Rumah > pembangunan bahagian belakang > Tutorial Python > TypeError: llama_tokenize() tiada 2 argumen kedudukan yang diperlukan: 'add_bos' dan 'special'

TypeError: llama_tokenize() tiada 2 argumen kedudukan yang diperlukan: 'add_bos' dan 'special'

PHPz
Lepaskan: 2024-02-09 15:54:04
ke hadapan
1066 orang telah melayarinya

类型错误:llama_tokenize() 缺少 2 个必需的位置参数:“add_bos”和“special”

Kandungan soalan

Saya menjalankan python 3.11 dan versi terkini model llama-cpp-python 以及 一个 gguf

Saya mahu kod berjalan seperti biasa seperti chatbot tetapi saya mendapat ralat ini:

traceback (most recent call last):
  file "d:\ai custom\ai arush\server.py", line 223, in <module>
    init()
  file "d:\ai custom\ai arush\server.py", line 57, in init
    m_eval(model, m_tokenize(model, prompt_init, true), false, "starting up...")
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  file "d:\ai custom\ai arush\server.py", line 182, in m_tokenize
    n_tokens = llama_cpp.llama_tokenize(
               ^^^^^^^^^^^^^^^^^^^^^^^^^
typeerror: llama_tokenize() missing 2 required positional arguments: 'add_bos' and 'special'
Salin selepas log masuk

Ini ialah kod tokenisasi saya:

def m_tokenize(model: llama_cpp.Llama, text: bytes, add_bos=False, special=False):
    assert model.ctx is not None
    n_ctx = llama_cpp.llama_n_ctx(model.ctx)
    tokens = (llama_cpp.llama_token * int(n_ctx))()
    n_tokens = llama_cpp.llama_tokenize(
        model.ctx,
        text,
        tokens,
        n_ctx,
        llama_cpp.c_bool(add_bos),
    )
    if int(n_tokens) < 0:
        raise RuntimeError(f'Failed to tokenize: text="{text}" n_tokens={n_tokens}')
    return list(tokens[:n_tokens])
Salin selepas log masuk


Jawapan betul


typeerror: llama_tokenize() missing 2 required positional arguments: 'add_bos' and 'special'
Salin selepas log masuk

Untuk membetulkan ralat ini, anda perlu menghantar parameter add_bosspecial 包含到 llama_tokenize() ke dalam fungsi.

def m_tokenize(model: llama_cpp.llama, text: bytes, add_bos=false, special=false):
    assert model.ctx is not none
    n_ctx = llama_cpp.llama_n_ctx(model.ctx)
    tokens = (llama_cpp.llama_token * int(n_ctx))()
    
    # include the missing arguments in the function call
    n_tokens = llama_cpp.llama_tokenize(
        model.ctx,
        text,
        tokens,
        n_ctx,
        # you should check if llama_cpp.c_bool(add_bos) is returning a c_boo value also you have the arguments add_bos=false and special=false in this function 
        # if i am right all you need is:
        add_bos
        # not
        # llama_cpp.c_bool(add_bos),
        # you should check if llama_cpp.c_bool(special) is returning a c_boo value
        # if i am right all you need is:
        special  # include the special argument
        # not 
        # llama_cpp.c_bool(special) 
    )
    
    if int(n_tokens) < 0:
        raise runtimeerror(f'failed to tokenize: text="{text}" n_tokens={n_tokens}')
    
    return list(tokens[:n_tokens])
Salin selepas log masuk

Dari llama_cpp.py (github), baris bermula pada 1817

def llama_tokenize(
    model: llama_model_p,
    text: bytes,
    text_len: Union[c_int, int],
    tokens,  # type: Array[llama_token]
    n_max_tokens: Union[c_int, int],
    add_bos: Union[c_bool, bool],
    special: Union[c_bool, bool],
) -> int:
    """Convert the provided text into tokens."""
    return _lib.llama_tokenize(
        model, text, text_len, tokens, n_max_tokens, add_bos, special
    )


_lib.llama_tokenize.argtypes = [
    llama_model_p,
    c_char_p,
    c_int32,
    llama_token_p,
    c_int32,
    c_bool,
    c_bool,
]
_lib.llama_tokenize.restype = c_int32
Salin selepas log masuk

Atas ialah kandungan terperinci TypeError: llama_tokenize() tiada 2 argumen kedudukan yang diperlukan: 'add_bos' dan 'special'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan