Transformers documentation

Utilitas untuk tokenizer

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Utilitas untuk tokenizer

Halaman ini mencantumkan semua fungsi utilitas yang digunakan oleh tokenizer, terutama kelas PreTrainedTokenizerBase yang mengimplementasikan metode umum antara PreTrainedTokenizer dan PreTrainedTokenizerFast.

Sebagian besar dari itu hanya berguna jika Anda sedang mempelajari kode tokenizer di pustaka tersebut.

PreTrainedTokenizerBase

kelas transformers.PreTrainedTokenizerBase

< >

( **kwargs )

Parameter

  • model_max_length (int, opsional) — Panjang maksimum (dalam jumlah token) untuk input ke model transformer. Ketika tokenizer dimuat dengan from_pretrained(), nilai ini akan diset ke nilai yang disimpan untuk model terkait di max_model_input_sizes (lihat di atas). Jika tidak ada nilai yang diberikan, akan default ke VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, opsional) — Sisi tempat model harus menerapkan padding. Harus dipilih antara [‘right’, ‘left’]. Nilai default diambil dari atribut kelas dengan nama yang sama.
  • truncation_side (str, opsional) — Sisi tempat model harus menerapkan pemotongan. Harus dipilih antara [‘right’, ‘left’]. Nilai default diambil dari atribut kelas dengan nama yang sama.
  • chat_template (str, opsional) — String template Jinja yang akan digunakan untuk memformat daftar pesan chat. Lihat https://huggingface.co/docs/transformers/chat_templating untuk deskripsi lengkap.
  • model_input_names (list[string], opsional) — Daftar input yang diterima oleh forward pass model (seperti "token_type_ids" atau "attention_mask"). Nilai default diambil dari atribut kelas dengan nama yang sama.
  • bos_token (str atau tokenizers.AddedToken, opsional) — Token khusus yang mewakili awal kalimat.
  • eos_token (str atau tokenizers.AddedToken, opsional) — Token khusus yang mewakili akhir kalimat.
  • unk_token (str atau tokenizers.AddedToken, opsional) — Token khusus yang mewakili token di luar kosakata (out-of-vocabulary).
  • sep_token (str atau tokenizers.AddedToken, opsional) — Token khusus yang memisahkan dua kalimat berbeda dalam input yang sama (dipakai, misalnya, oleh BERT).
  • pad_token (str atau tokenizers.AddedToken, opsional) — Token khusus yang digunakan untuk membuat array token berukuran sama untuk keperluan batching. Token ini kemudian akan diabaikan oleh mekanisme attention atau perhitungan loss.
  • cls_token (str atau tokenizers.AddedToken, opsional) — Token khusus yang mewakili kelas dari input (dipakai oleh BERT, misalnya).
  • mask_token (str atau tokenizers.AddedToken, opsional) — Token khusus yang mewakili token yang dimasker (digunakan oleh tujuan pra-pelatihan pemodelan bahasa yang dimasker, seperti BERT). Akan dikaitkan dengan self.mask_token dan self.mask_token_id.
  • extra_special_tokens (list of str or tokenizers.AddedToken, opsional) — Daftar token khusus tambahan yang spesifik untuk model. Tambahkan di sini untuk memastikan token tersebut dilewati saat decoding dengan skip_special_tokens yang diatur ke True. Jika token tersebut bukan bagian dari kosakata, token akan ditambahkan di akhir kosakata.
  • split_special_tokens (bool, opsional, defaultnya False) — Apakah token khusus harus dipecah selama proses tokenisasi. Mengalihkan nilai akan memengaruhi status internal tokenizer. Perilaku default adalah tidak memecah token khusus. Ini berarti jika <s> adalah bos_token, maka tokenizer.tokenize("<s>") = ['<s>]. Sebaliknya, jika split_special_tokens=True, maka tokenizer.tokenize("<s>") akan menghasilkan ['<','s', '>'].

Kelas dasar untuk semua backend tokenizer.

Atribut kelas (ditimpa oleh kelas turunan)

  • vocab_files_names (dict[str, str]) — Kamus yang berisi nama kata kunci __init__ dari setiap file kosakata yang diperlukan oleh model sebagai kunci, dan nama file untuk menyimpan file terkait (string) sebagai nilai yang terkait.
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Kamus dari kamus, dengan kunci tingkat tinggi berupa nama kata kunci __init__ dari setiap file kosakata yang diperlukan oleh model, dan kunci tingkat rendah berupa short-cut-names dari model pretrained, dengan nilai terkait berupa url ke file kosakata pretrained yang terkait.
  • model_input_names (list[str]) — Daftar input yang diharapkan dalam forward pass model.
  • padding_side (str) — Nilai default untuk sisi tempat model harus menerapkan padding. Harus berupa 'right' atau 'left'.
  • truncation_side (str) — Nilai default untuk sisi tempat model harus menerapkan pemotongan. Harus berupa 'right' atau 'left'.

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

Parameter

  • text (str, list[str], list[list[str]], opsional) — Sequens atau batch dari sequens yang akan dienkod. Setiap sequens dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika sequens diberikan sebagai daftar string (pretokenized), Anda harus mengatur is_split_into_words=True (untuk menghilangkan ambiguitas dengan batch dari sequens).
  • text_pair (str, list[str], list[list[str]], opsional) — Urutan atau batch dari urutan yang akan dienkod. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur is_split_into_words=True (untuk menghilangkan ambiguitas dengan batch dari urutan).
  • text_target (str, list[str], list[list[str]], opsional) — Sequens atau batch sequens yang akan dikodekan sebagai teks target. Setiap sequens dapat berupa string atau daftar string (string pretokenized). Jika sequens diberikan sebagai daftar string (pretokenized), Anda harus mengatur is_split_into_words=True (untuk menghilangkan ambiguitas dengan batch sequens).
  • text_pair_target (str, list[str], list[list[str]], opsional) — Urutan atau batch urutan yang akan dikodekan sebagai teks target. Setiap urutan dapat berupa string atau daftar string (string pretokenized). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur is_split_into_words=True (untuk menghilangkan ambiguitas dengan batch urutan).
  • tokenizer_kwargs (dict[str, Any], opsional) — Kwargs tambahan untuk diteruskan ke tokenizer. Kwargs ini akan digabungkan dengan parameter eksplisit dan kwargs lainnya, dengan parameter eksplisit memiliki prioritas lebih tinggi.
  • add_special_tokens (bool, opsional, default True) — Apakah akan menambahkan token khusus saat meng-encode urutan. Ini akan menggunakan fungsi PretrainedTokenizerBase.build_inputs_with_special_tokens yang mendasarinya, yang mendefinisikan token mana yang ditambahkan secara otomatis ke input ids. Ini berguna jika Anda ingin menambahkan token bos atau eos secara otomatis.
  • padding (bool, str atau PaddingStrategy, opsional, defaultnya False) — Mengaktifkan dan mengontrol padding. Menerima nilai-nilai berikut:
    • True atau 'longest': Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan).
    • 'max_length': Pad hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.
    • False atau 'do_not_pad' (default): Tidak ada padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda).
  • truncation (bool, str atau TruncationStrategy, opsional, defaultnya False) — Mengaktifkan dan mengontrol pemotongan. Menerima nilai-nilai berikut:
    • True atau 'longest_first': Memotong hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini akan memotong per token, dengan menghapus satu token dari urutan terpanjang dalam pasangan jika sepasang urutan (atau batch pasangan) diberikan.
    • 'only_first': Potong hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan pertama dari sebuah pasangan jika sepasang urutan (atau batch dari pasangan) diberikan.
    • 'only_second': Potong hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan kedua dari sebuah pasangan jika sepasang urutan (atau batch dari pasangan) diberikan.
    • False atau 'do_not_truncate' (default): Tidak ada pemotongan (yaitu, dapat menghasilkan batch dengan panjang sekuens yang lebih besar dari ukuran input maksimum yang diizinkan model).
  • max_length (int, opsional) — Mengontrol panjang maksimum yang digunakan oleh salah satu parameter truncation/padding.

    Jika tidak disetel atau disetel ke None, ini akan menggunakan panjang maksimum model yang telah didefinisikan sebelumnya jika panjang maksimum diperlukan oleh salah satu parameter truncation/padding. Jika model tidak memiliki panjang input maksimum yang spesifik (seperti XLNet), truncation/padding ke panjang maksimum akan dinonaktifkan.

  • stride (int, opsional, default 0) — Jika diatur ke sebuah angka bersama dengan max_length, token yang meluap yang dikembalikan saat return_overflowing_tokens=True akan berisi beberapa token dari akhir urutan terpotong yang dikembalikan untuk menyediakan beberapa tumpang tindih antara urutan terpotong dan urutan yang meluap. Nilai argumen ini menentukan jumlah token yang tumpang tindih.
  • is_split_into_words (bool, opsional, default False) — Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata). Jika disetel ke True, tokenizer mengasumsikan input sudah dipecah menjadi kata (misalnya, dengan memisahkannya berdasarkan spasi) yang akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.
  • pad_to_multiple_of (int, opsional) — Jika diset, akan melakukan padding pada urutan hingga menjadi kelipatan dari nilai yang diberikan. Memerlukan padding untuk diaktifkan. Ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan kemampuan komputasi >= 7.5 (Volta).
  • padding_side (str, opsional) — Sisi tempat model harus menerapkan padding. Harus dipilih antara [‘right’, ‘left’]. Nilai default diambil dari atribut kelas dengan nama yang sama.
  • return_tensors (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek Numpy np.ndarray.
  • return_token_type_ids (bool, opsional) — Apakah akan mengembalikan token type ID. Jika dibiarkan pada nilai default, akan mengembalikan token type ID sesuai dengan default tokenizer tertentu, yang ditentukan oleh return_outputs atribut.

    Apa itu token type ID?

  • return_attention_mask (bool, opsional) — Apakah akan mengembalikan attention mask. Jika dibiarkan pada nilai default, akan mengembalikan attention mask sesuai dengan default tokenizer tertentu, yang didefinisikan oleh return_outputs atribut.

    Apa itu attention mask?

  • return_overflowing_tokens (bool, opsional, default False) — Apakah akan mengembalikan urutan token yang meluap. Jika sepasang urutan id input (atau batch dari pasangan) diberikan dengan truncation_strategy = longest_first atau True, error akan dilemparkan alih-alih mengembalikan token yang meluap.
  • return_special_tokens_mask (bool, opsional, default False) — Apakah akan mengembalikan informasi mask token khusus.
  • return_offsets_mapping (bool, opsional, defaultnya False) — Apakah akan mengembalikan (char_start, char_end) untuk setiap token.

    Ini hanya tersedia pada fast tokenizer yang mewarisi dari PreTrainedTokenizerFast, jika menggunakan tokenizer Python, metode ini akan memicu NotImplementedError.

  • return_length (bool, opsional, default False) — Apakah akan mengembalikan panjang dari input yang dikodekan.
  • verbose (bool, opsional, defaultnya True) — Apakah akan mencetak lebih banyak informasi dan peringatan.
  • **kwargs — diteruskan ke metode self.tokenize()

Mengembalikan

BatchEncoding

BatchEncoding dengan bidang berikut:

  • input_ids — Daftar id token yang akan diberikan ke model.

    Apa itu input ID?

  • token_type_ids — Daftar token type id yang akan diberikan ke model (ketika return_token_type_ids=True atau jika “token_type_ids” ada di self.model_input_names).

    Apa itu token type ID?

  • attention_mask — Daftar indeks yang menentukan token mana yang harus diperhatikan oleh model (ketika return_attention_mask=True atau jika “attention_mask” ada di self.model_input_names).

    Apa itu attention mask?

  • overflowing_tokens — Daftar sekuens token yang meluap (ketika max_length ditentukan dan return_overflowing_tokens=True).

  • num_truncated_tokens — Jumlah token yang dipangkas (ketika max_length ditentukan dan return_overflowing_tokens=True).

  • special_tokens_mask — Daftar angka 0 dan 1, di mana 1 menandakan token khusus yang ditambahkan dan 0 menandakan token urutan reguler (ketika add_special_tokens=True dan return_special_tokens_mask=True).

  • length — Panjang dari input (ketika return_length=True)

Metode utama untuk melakukan tokenisasi dan persiapan satu atau beberapa urutan atau satu atau beberapa pasangan urutan untuk model.

add_special_tokens

< >

( special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]]replace_extra_special_tokens = True ) → int

Parameter

  • special_tokens_dict (dictionary str ke str, tokenizers.AddedToken, atau Sequence[Union[str, AddedToken]]) — Kunci harus berada dalam daftar atribut khusus yang telah ditentukan sebelumnya: [bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    Token hanya ditambahkan jika belum ada dalam kosakata (diuji dengan memeriksa apakah tokenizer mengalokasikan indeks unk_token kepada token tersebut).

  • replace_extra_special_tokens (bool, opsional, defaultnya True) — Jika True, daftar token khusus tambahan yang ada akan diganti oleh daftar yang diberikan dalam special_tokens_dict. Sebaliknya, extra_special_tokens akan diperluas. Dalam kasus pertama, token tersebut TIDAK akan dihapus dari kosakata lengkap tokenizer - mereka hanya ditandai sebagai token non-khusus. Ingat, ini hanya memengaruhi token mana yang dilewati selama decoding, bukan added_tokens_encoder dan added_tokens_decoder. Ini berarti bahwa extra_special_tokens sebelumnya masih merupakan token yang ditambahkan, dan tidak akan dipecah oleh model.

Mengembalikan

int

Jumlah token yang ditambahkan ke dalam kosakata.

Tambahkan kamus token khusus (eos, pad, cls, dll.) ke encoder dan hubungkan ke atribut kelas. Jika token khusus TIDAK ada dalam kosakata, token tersebut akan ditambahkan ke kosakata (diindeks mulai dari indeks terakhir kosakata saat ini).

Saat menambahkan token baru ke dalam kosakata, Anda harus memastikan untuk juga mengubah ukuran matriks embedding token dari model agar matriks embedding-nya sesuai dengan tokenizer.

Untuk melakukan hal tersebut, silakan gunakan metode resize_token_embeddings().

Menggunakan add_special_tokens akan memastikan token khusus Anda dapat digunakan dalam beberapa cara:

  • Token khusus dapat dilewati saat decoding menggunakan skip_special_tokens = True.
  • Token khusus ditangani dengan cermat oleh tokenizer (tidak pernah dipecah), mirip dengan AddedTokens.
  • Anda dapat dengan mudah merujuk ke token khusus menggunakan atribut kelas tokenizer seperti tokenizer.cls_token. Hal ini memudahkan pengembangan skrip pelatihan dan fine-tuning yang tidak bergantung pada model tertentu.

Jika memungkinkan, token khusus sudah terdaftar untuk model pretrained yang disediakan (misalnya BertTokenizer cls_token sudah terdaftar sebagai '[CLS]' dan milik XLM juga sudah terdaftar sebagai '</s>').

Contoh:

# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"

add_tokens

< >

( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int

Parameter

  • new_tokens (str, tokenizers.AddedToken atau urutan dari str atau tokenizers.AddedToken) — Token hanya ditambahkan jika belum ada dalam kosakata. tokenizers.AddedToken membungkus token string untuk memungkinkan Anda mempersonalisasi perilakunya: apakah token ini harus hanya cocok dengan satu kata, apakah token ini harus menghapus semua spasi potensial di sisi kiri, apakah token ini harus menghapus semua spasi potensial di sisi kanan, dll.
  • special_tokens (bool, opsional, default False) — Menentukan apakah token tersebut bersifat khusus. Ini terutama mengubah perilaku normalisasi. Lihat detail tokenizers.AddedToken di pustaka tokenizers HuggingFace.

Mengembalikan

int

Jumlah token yang ditambahkan ke dalam kosakata.

#TODO hapus ini dari sini! PreTrainedTokenizerBase harus tidak bergantung pada AddedToken.

Tambahkan daftar token baru. Jika token baru tidak ada dalam kosakata, mereka akan ditambahkan ke akhir. Token yang ditambahkan dan token dari kosakata algoritma tokenisasi oleh karena itu tidak diperlakukan dengan cara yang sama.

Tokenizer cepat dengan pre-tokenizer Metaspace yang menggunakan prepend_scheme="always" (misalnya NLLB) menambahkan "▁" ke teks yang mengikuti token yang ditambahkan. Setelah tokenizer.add_tokens(["abcd"]), "abcdgym" ditokenisasi menjadi ["abcd", "▁gym"] dan didekode menjadi "abcd gym". Jika token yang ditambahkan dapat muncul di dalam kata, ganti pre-tokenizer

ke prepend_scheme="first" sehingga hanya awal input yang diberi awalan:

from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)

Contoh:

# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | Callable] | None = Nonedocuments: list[dict[str, str]] | None = Nonechat_template: str | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsetokenize: bool = Truesanitize_control_tokens: bool = Falsepadding: bool | str | PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_dict: bool = Truereturn_assistant_tokens_mask: bool = Falsetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → Union[list[int], Dict]

Parameter

  • conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — Daftar dict dengan kunci “role” dan “content”, yang merepresentasikan riwayat percakapan sejauh ini.
  • tools (list[Union[Dict, Callable]], opsional) — Daftar tools (fungsi callable) yang akan dapat diakses oleh model. Jika template tidak mendukung function calling, argumen ini tidak akan berpengaruh. Setiap tool harus diberikan sebagai JSON Schema, yang mencantumkan nama, deskripsi, dan tipe argumen untuk tool tersebut. Lihat panduan penggunaan tool untuk informasi lebih lanjut.
  • documents (list[dict[str, str]], opsional) — Daftar dict yang merepresentasikan dokumen yang akan dapat diakses oleh model jika model tersebut sedang melakukan RAG (retrieval-augmented generation). Jika template tidak mendukung RAG, argumen ini tidak akan memiliki efek. Kami merekomendasikan agar setiap dokumen berupa dict yang berisi kunci “title” dan “text”.
  • chat_template (str, opsional) — Template Jinja yang digunakan untuk konversi ini. Biasanya tidak perlu meneruskan apa pun ke argumen ini, karena template model akan digunakan secara default.
  • add_generation_prompt (bool, opsional) — Jika ini diatur, prompt dengan token yang menandakan awal pesan asisten akan ditambahkan ke hasil yang diformat. Ini berguna ketika Anda ingin menghasilkan respons dari model. Perhatikan bahwa argumen ini akan diteruskan ke template chat, sehingga template tersebut harus mendukung argumen ini agar argumen tersebut memiliki efek.
  • continue_final_message (bool atau str, opsional) — Jika ini disetel, chat akan diformat sehingga pesan terakhir dalam chat bersifat terbuka, tanpa token EOS. Model akan melanjutkan pesan ini alih-alih memulai pesan baru. Hal ini memungkinkan Anda untuk “memrefill” sebagian respons model. Jika string diteruskan, string tersebut akan digunakan sebagai kunci untuk field yang akan dilanjutkan (contohnya “reasoning_content”). Tidak dapat digunakan bersamaan dengan add_generation_prompt.
  • tokenize (bool, defaultnya True) — Apakah akan melakukan tokenisasi pada output. Jika False, output akan berupa string.
  • sanitize_control_tokens (bool, defaultnya False) — Jika diaktifkan, token kontrol yang muncul di pesan, alat, atau dokumen akan dikodekan sebagai teks biasa, sehingga hanya token kontrol yang ditulis oleh template chat itu sendiri yang dikodekan sebagai token. Token kontrol adalah token khusus dari tokenizer, ditambah token yang ditambahkan di tokenizer.chat_control_tokens. Jika variabel tersebut tidak disetel, token kontrol disimpulkan dari token yang ditambahkan yang muncul di teks template chat dan literal string. Hanya token kontrol utuh yang disanitasi, jadi jika template menggabungkan string dari input menjadi token kontrol (seperti '<|' + message['role'] + '|>'), string-string tersebut harus divalidasi secara terpisah. Kunci Dict juga tidak disanitasi.
  • padding (bool, str atau PaddingStrategy, opsional, defaultnya False) — Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara:
    • True atau 'longest': Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan).
    • 'max_length': Pad hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.
    • False atau 'do_not_pad' (default): Tidak ada padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda).
  • truncation (bool, defaultnya False) — Apakah akan memotong (truncate) urutan pada panjang maksimum. Tidak berpengaruh jika tokenize adalah False.
  • max_length (int, opsional) — Panjang maksimum (dalam token) yang digunakan untuk padding atau truncation. Tidak berpengaruh jika tokenize adalah False. Jika tidak ditentukan, atribut max_length dari tokenizer akan digunakan sebagai nilai default.
  • return_tensors (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Tidak berpengaruh jika tokenize adalah False. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek NumPy np.ndarray.
  • return_dict (bool, defaultnya True) — Apakah akan mengembalikan kamus dengan output bernama. Tidak berpengaruh jika tokenize adalah False.
  • tokenizer_kwargs (dict[str -- Any], opsional): Kwargs tambahan untuk diteruskan ke tokenizer.
  • return_assistant_tokens_mask (bool, defaultnya False) — Apakah akan mengembalikan mask untuk token yang dihasilkan oleh asisten. Untuk token yang dihasilkan oleh asisten, mask akan berisi 1. Untuk token user dan system, mask akan berisi 0. Fungsionalitas ini hanya tersedia untuk chat template yang mendukungnya melalui kata kunci {% generation %}.
  • **kwargs — kwargs tambahan untuk diteruskan ke template renderer. Akan dapat diakses oleh chat template.

Mengembalikan

Union[list[int], Dict]

Daftar id token yang mewakili chat yang telah ditokenisasi sejauh ini, termasuk token kontrol. Output ini siap untuk diteruskan ke model, baik secara langsung maupun melalui metode seperti generate(). Jika return_dict diset, akan mengembalikan dict dari output tokenizer.

Mengonversi daftar kamus dengan kunci "role" dan "content" menjadi daftar id token. Metode ini ditujukan untuk digunakan dengan model chat, dan akan membaca atribut chat_template tokenizer untuk menentukan format dan token kontrol yang akan digunakan saat mengonversi.

batch_decode

< >

( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

Parameter

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Daftar id input yang telah ditokenisasi. Dapat diperoleh menggunakan metode __call__.
  • skip_special_tokens (bool, opsional, defaultnya False) — Apakah token khusus akan dihapus saat decoding.
  • clean_up_tokenization_spaces (bool, opsional) — Apakah akan membersihkan spasi tokenisasi. Jika None, akan menggunakan nilai default self.clean_up_tokenization_spaces.
  • kwargs (argumen kata kunci tambahan, opsional) — Akan diteruskan ke metode decode spesifik model yang mendasarinya.

Mengembalikan

list[str]

Daftar kalimat yang telah didekode.

Konversi daftar dari daftar id token menjadi daftar string dengan memanggil decode.

Metode ini disediakan untuk kompatibilitas mundur. Metode decode sekarang menangani input batch secara native, sehingga Anda dapat menggunakan decode secara langsung alih-alih batch_decode.

clean_up_tokenization

< >

( text: str )

Bersihkan spasi tokenisasi dalam teks tertentu. Metode ini sebagian besar untuk dukungan kode jarak jauh.

convert_ids_to_tokens

< >

( ids: int | list[int]skip_special_tokens: bool = False ) → str or list[str]

Parameter

  • ids (int atau list[int]) — ID token (atau ID token) yang akan dikonversi menjadi token.
  • skip_special_tokens (bool, opsional, defaultnya False) — Apakah token khusus akan dihapus saat decoding.

Mengembalikan

str atau list[str]

Token yang telah didekodekan.

Mengonversi satu indeks atau rangkaian indeks dalam sebuah token atau rangkaian token, menggunakan kosakata dan token yang ditambahkan.

convert_tokens_to_ids

< >

( tokens: str | list[str] ) → int or list[int]

Parameter

  • tokens (str atau list[str]) — Satu atau beberapa token untuk dikonversi menjadi id token.

Mengembalikan

int atau list[int]

ID token atau daftar ID token.

Mengonversi string token (atau urutan token) menjadi id integer tunggal (atau urutan id), menggunakan kosakata.

convert_tokens_to_string

< >

( tokens: list[str] ) → str

Parameter

  • tokens (list[str]) — Token yang akan digabungkan menjadi string.

Mengembalikan

str

Token yang digabungkan.

Mengonversi urutan token dalam satu string. Cara paling sederhana untuk melakukannya adalah " ".join(tokens) tetapi kita sering ingin menghapus artefak tokenisasi sub-kata pada saat yang sama.

decode

< >

( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]

Parameter

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Satu sekuens atau batch (daftar sekuens) dari id input yang telah ditokenisasi. Dapat diperoleh menggunakan metode __call__.
  • skip_special_tokens (bool, opsional, defaultnya False) — Apakah token khusus akan dihapus saat decoding.
  • kwargs (argumen kata kunci tambahan, opsional) — Akan diteruskan ke metode decode spesifik model yang mendasarinya.

Mengembalikan

Union[str, list[str]]

String yang didekode untuk satu urutan, atau daftar string yang didekode untuk batch urutan.

Mengonversi urutan id menjadi string, atau daftar urutan menjadi daftar string, menggunakan tokenizer dan kosakata dengan opsi untuk menghapus token khusus dan merapikan spasi tokenisasi.

Mirip dengan melakukan self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

encode

< >

( text: TextInput | PreTokenizedInput | EncodedInputtext_pair: TextInput | PreTokenizedInput | EncodedInput | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0padding_side: str | None = Nonereturn_tensors: str | TensorType | None = None**kwargs ) → list[int], torch.Tensor, or np.ndarray

Parameter

  • text (str, list[str] atau list[int]) — Urutan pertama yang akan dikodekan. Ini bisa berupa string, daftar string (string yang ditokenisasi menggunakan metode tokenize) atau daftar bilangan bulat (id string yang ditokenisasi menggunakan metode convert_tokens_to_ids).
  • text_pair (str, list[str] atau list[int], opsional) — Urutan kedua opsional untuk dikodekan. Ini bisa berupa string, daftar string (string yang ditokenisasi menggunakan metode tokenize) atau daftar bilangan bulat (id string yang ditokenisasi menggunakan metode convert_tokens_to_ids).
  • add_special_tokens (bool, opsional, default True) — Apakah akan menambahkan token khusus saat meng-encode urutan. Ini akan menggunakan fungsi PretrainedTokenizerBase.build_inputs_with_special_tokens yang mendasarinya, yang mendefinisikan token mana yang ditambahkan secara otomatis ke input ids. Ini berguna jika Anda ingin menambahkan token bos atau eos secara otomatis.
  • padding (bool, str atau PaddingStrategy, opsional, defaultnya False) — Mengaktifkan dan mengontrol padding. Menerima nilai-nilai berikut:
    • True atau 'longest': Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan).
    • 'max_length': Pad hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.
    • False atau 'do_not_pad' (default): Tidak ada padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda).
  • truncation (bool, str atau TruncationStrategy, opsional, defaultnya False) — Mengaktifkan dan mengontrol pemotongan. Menerima nilai-nilai berikut:
    • True atau 'longest_first': Memotong hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini akan memotong per token, dengan menghapus satu token dari urutan terpanjang dalam pasangan jika sepasang urutan (atau batch pasangan) diberikan.
    • 'only_first': Potong hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan pertama dari sebuah pasangan jika sepasang urutan (atau batch dari pasangan) diberikan.
    • 'only_second': Potong hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan kedua dari sebuah pasangan jika sepasang urutan (atau batch dari pasangan) diberikan.
    • False atau 'do_not_truncate' (default): Tidak ada pemotongan (yaitu, dapat menghasilkan batch dengan panjang sekuens yang lebih besar dari ukuran input maksimum yang diizinkan model).
  • max_length (int, opsional) — Mengontrol panjang maksimum yang digunakan oleh salah satu parameter truncation/padding.

    Jika tidak disetel atau disetel ke None, ini akan menggunakan panjang maksimum model yang telah didefinisikan sebelumnya jika panjang maksimum diperlukan oleh salah satu parameter truncation/padding. Jika model tidak memiliki panjang input maksimum yang spesifik (seperti XLNet), truncation/padding ke panjang maksimum akan dinonaktifkan.

  • stride (int, opsional, default 0) — Jika diatur ke sebuah angka bersama dengan max_length, token yang meluap yang dikembalikan saat return_overflowing_tokens=True akan berisi beberapa token dari akhir urutan terpotong yang dikembalikan untuk menyediakan beberapa tumpang tindih antara urutan terpotong dan urutan yang meluap. Nilai argumen ini menentukan jumlah token yang tumpang tindih.
  • is_split_into_words (bool, opsional, default False) — Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata). Jika disetel ke True, tokenizer mengasumsikan input sudah dipecah menjadi kata (misalnya, dengan memisahkannya berdasarkan spasi) yang akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.
  • pad_to_multiple_of (int, opsional) — Jika diset, akan melakukan padding pada urutan hingga menjadi kelipatan dari nilai yang diberikan. Memerlukan padding untuk diaktifkan. Ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan kemampuan komputasi >= 7.5 (Volta).
  • padding_side (str, opsional) — Sisi tempat model harus menerapkan padding. Harus dipilih antara [‘right’, ‘left’]. Nilai default diambil dari atribut kelas dengan nama yang sama.
  • return_tensors (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek Numpy np.ndarray.
  • **kwargs — Diteruskan ke metode .tokenize().

Mengembalikan

list[int], torch.Tensor, atau np.ndarray

ID tokenisasi dari teks.

Mengonversi string menjadi urutan id (bilangan bulat), menggunakan tokenizer dan kosakata.

Sama seperti melakukan self.convert_tokens_to_ids(self.tokenize(text)).

encode_message_with_chat_template

< >

( message: dict[str, str]conversation_history: list[dict[str, str]] | None = None**kwargs ) → list[int]

Parameter

  • message (dict) — Kamus dengan kunci “role” dan “content”, yang mewakili pesan untuk ditokenisasi.
  • conversation_history (list[dict], opsional) — Daftar dict dengan kunci “role” dan “content”, yang merepresentasikan riwayat percakapan sejauh ini. Jika Anda melakukan tokenisasi pesan satu per satu, Anda harus meneruskan pesan-pesan sebelumnya dalam percakapan di sini.
  • **kwargs — Kwargs tambahan untuk diteruskan ke metode apply_chat_template.

Mengembalikan

list[int]

Daftar id token yang mewakili pesan yang ditokenisasi.

Tokenisasi satu pesan. Metode ini adalah pembungkus kenyamanan di sekitar apply_chat_template yang memungkinkan Anda menokenisasi pesan satu per satu. Ini berguna untuk hal-hal seperti streaming per token. Metode ini tidak dijamin sempurna. Untuk beberapa model, mungkin tidak mungkin untuk menokenisasi pesan tunggal secara robust. Misalnya, jika template chat menambahkan token setelah setiap pesan, tetapi juga memiliki prefiks yang ditambahkan ke seluruh chat, maka akan mustahil untuk membedakan token-pemula-chat dari token-pemula-pesan. Dalam kasus seperti ini, metode ini akan berusaha semaksimal mungkin untuk menemukan tokenisasi yang benar, tetapi mungkin tidak sempurna. Catatan: Metode ini tidak mendukung add_generation_prompt. Jika Anda ingin menambahkan prompt generasi, Anda harus melakukannya secara terpisah setelah menokenisasi percakapan.

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLike*init_inputscache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'trust_remote_code = False**kwargs )

Parameter

  • pretrained_model_name_or_path (str atau os.PathLike) — Dapat berupa:
    • String, model id dari tokenizer yang sudah ditentukan sebelumnya dan dihosting di dalam repositori model di huggingface.co.
    • Path ke direktori yang berisi file kosakata yang diperlukan oleh tokenizer, misalnya yang disimpan menggunakan metode save_pretrained(), contohnya ./my_model_directory/.
    • (Deprecated, tidak berlaku untuk semua kelas turunan) jalur ke satu file kosakata yang disimpan (jika dan hanya jika tokenizer hanya memerlukan satu file kosakata seperti Bert atau XLNet), misalnya, ./my_model_directory/vocab.txt.
  • cache_dir (str atau os.PathLike, opsional) — Path ke direktori tempat file kosakata tokenizer predefined yang diunduh harus di-cache jika cache standar tidak digunakan.
  • force_download (bool, opsional, default False) — Apakah akan memaksa (mengunduh ulang) file kosakata dan menimpa versi yang di-cache jika sudah ada.
  • proxies (dict[str, str], opsional) — Kamus server proxy yang digunakan berdasarkan protokol atau endpoint, misalnya {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Proxy digunakan pada setiap permintaan.
  • token (str atau bool, opsional) — Token yang akan digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. Jika True, akan menggunakan token yang dihasilkan saat menjalankan hf auth login (disimpan di ~/.huggingface).
  • local_files_only (bool, opsional, defaultnya False) — Apakah hanya mengandalkan file lokal dan tidak mencoba mengunduh file apa pun.
  • revision (str, opsional, default "main") — Versi model spesifik yang akan digunakan. Bisa berupa nama branch, nama tag, atau commit id, karena kami menggunakan sistem berbasis git untuk menyimpan model dan artefak lainnya di huggingface.co, sehingga revision dapat berupa identifikasi apa pun yang diizinkan oleh git.
  • subfolder (str, opsional) — Jika file yang relevan berada di dalam subfolder dari repo model di huggingface.co (misalnya untuk facebook/rag-token-base), tentukan di sini.
  • inputs (argumen posisional tambahan, opsional) — Akan diteruskan ke metode __init__ Tokenizer.
  • trust_remote_code (bool, opsional, default False) — Apakah mengizinkan model kustom yang didefinisikan di Hub dalam file modeling mereka sendiri. Opsi ini harus hanya diatur ke True untuk repositori yang Anda percaya dan yang kodenya telah Anda baca, karena opsi ini akan mengeksekusi kode yang ada di Hub pada mesin lokal Anda.
  • kwargs (argumen kata kunci tambahan, opsional) — Akan diteruskan ke metode __init__ Tokenizer. Dapat digunakan untuk mengatur token khusus seperti bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens. Lihat parameter di __init__ untuk detail lebih lanjut.

Instansiasi PreTrainedTokenizerBase (atau kelas turunan) dari tokenizer yang sudah ditentukan.

Menyampaikan token=True diperlukan ketika Anda ingin menggunakan model privat.

Contoh:

# We can't instantiate directly the base class *PreTrainedTokenizerBase* so let's show our examples on a derived class: BertTokenizer
# Download vocabulary from huggingface.co and cache.
tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased")

# Download vocabulary from huggingface.co (user-uploaded) and cache.
tokenizer = BertTokenizer.from_pretrained("dbmdz/bert-base-german-cased")

# If vocabulary files are in a directory (e.g. tokenizer was saved using *save_pretrained('./test/saved_model/')*)
tokenizer = BertTokenizer.from_pretrained("./test/saved_model/")

# If the tokenizer uses a single vocabulary file, you can point directly to this file
tokenizer = BertTokenizer.from_pretrained("./test/saved_model/my_vocab.txt")

# You can link tokens to special vocabulary when instantiating
tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased", unk_token="<unk>")
# You should be sure '<unk>' is in the vocabulary when doing that.
# Otherwise use tokenizer.add_special_tokens({'unk_token': '<unk>'}) instead)
assert tokenizer.unk_token == "<unk>"

get_chat_template

< >

( chat_template: str | None = Nonetools: list[dict] | None = None ) → str

Parameter

  • chat_template (str, opsional) — Template Jinja atau nama template yang akan digunakan untuk konversi ini. Biasanya tidak perlu meneruskan apa pun ke argumen ini, karena template model akan digunakan secara default.
  • tools (list[Dict], opsional) — Daftar tools (fungsi callable) yang akan dapat diakses oleh model. Jika template tidak mendukung function calling, argumen ini tidak akan berpengaruh. Setiap tool harus diberikan sebagai JSON Schema, yang mencantumkan nama, deskripsi, dan tipe argumen untuk tool tersebut. Lihat panduan chat templating kami untuk informasi lebih lanjut.

Mengembalikan

str

String template chat.

Ambil string template chat yang digunakan untuk menokenisasi pesan chat. Template ini digunakan secara internal oleh metode apply_chat_template dan juga dapat digunakan secara eksternal untuk mengambil template chat model guna pelacakan generasi yang lebih baik.

get_response_parser

< >

( response_template: dict | None = Noneprefix: str | list[int] | np.ndarray | torch.Tensor | None = Nonetools: list[dict | Callable] | None = None )

Kembalikan ResponseParser stateful untuk parsing respons yang di-stream secara inkremental. Menggunakan atribut response_template dari tokenizer kecuali jika ditimpa.

prefix (string, daftar token id, atau tensor 1D) wajib diisi: stream diinisialisasi dalam keadaan yang diimplikasikan oleh konteks chat-prompt (dipangkas dari kanan melewati start_anchor spesifikasi), sehingga chunk yang dihasilkan dan dikirim melalui stream.feed() diklasifikasikan dengan benar bahkan ketika template chat mengeluarkan konten giliran asisten (misalnya, <think>\n) yang dilanjutkan oleh model. Jika diabaikan, akan memicu error; jika stream benar-benar dimulai dari giliran asisten yang bersih, berikan prefix="" untuk memilih keluar.

tools (list[Union[Dict, Callable]], opsional): tools yang tersedia untuk model, dalam format yang sama seperti yang diterima oleh apply_chat_template. Ketika diset, argumen tool-call akan di-cast menggunakan JSON schema dari tool pemanggil saat setiap region ditutup, sehingga event streaming region_close membawa argumen bertipe.

get_special_tokens_mask

< >

( token_ids_0: list[int]token_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

Parameter

  • token_ids_0 — Daftar ID untuk urutan (yang mungkin sudah diformat).
  • token_ids_1 — Tidak digunakan saat already_has_special_tokens=True. Harus None dalam kasus tersebut.
  • already_has_special_tokens — Apakah urutan sudah diformat dengan token khusus.

Mengembalikan

Daftar bilangan bulat dalam rentang [0, 1]

1 untuk token khusus, 0 untuk token urutan.

Ambil id urutan dari daftar token yang tidak memiliki token khusus yang ditambahkan.

Untuk tokenizer yang cepat, data collator memanggil ini dengan already_has_special_tokens=True untuk membangun mask di atas urutan yang sudah diformat. Dalam kasus tersebut, kami menghitung mask dengan memeriksa keanggotaan dalam all_special_ids.

get_vocab

< >

( ) → dict[str, int]

Mengembalikan

dict[str, int]

Kosakata.

Mengembalikan kosakata sebagai kamus dari token ke indeks.

tokenizer.get_vocab()[token] setara dengan tokenizer.convert_tokens_to_ids(token) ketika token ada dalam vocab.

pad

< >

( encoded_inputs: BatchEncoding | list[BatchEncoding] | dict[str, EncodedInput] | dict[str, list[EncodedInput]] | list[dict[str, EncodedInput]]padding: bool | str | PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_attention_mask: bool | None = Nonereturn_tensors: str | TensorType | None = Noneverbose: bool = True )

Parameter

  • encoded_inputs (BatchEncoding, daftar BatchEncoding, dict[str, list[int]], dict[str, list[list[int]] atau list[dict[str, list[int]]]) — Input yang telah ditokenisasi. Dapat merepresentasikan satu input (BatchEncoding atau dict[str, list[int]]) atau batch dari input yang telah ditokenisasi (daftar BatchEncoding, dict[str, list[list[int]]] atau list[dict[str, list[int]]]) sehingga Anda dapat menggunakan metode ini selama pra-pemrosesan maupun dalam fungsi collate PyTorch Dataloader.

    Alih-alih list[int], Anda dapat memiliki tensor (array numpy, atau tensor PyTorch), lihat catatan di atas untuk tipe pengembalian.

  • padding (bool, str atau PaddingStrategy, opsional, defaultnya True) — Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara:
    • True atau 'longest' (default): Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan).
    • 'max_length': Pad hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.
    • False atau 'do_not_pad': Tanpa padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda).
  • max_length (int, opsional) — Panjang maksimum dari daftar yang dikembalikan dan secara opsional panjang padding (lihat di atas).
  • pad_to_multiple_of (int, opsional) — Jika diset, akan melakukan padding pada urutan hingga menjadi kelipatan dari nilai yang diberikan.

    Ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan kemampuan komputasi >= 7.5 (Volta).

  • padding_side (str, opsional) — Sisi tempat model harus menerapkan padding. Harus dipilih antara [‘right’, ‘left’]. Nilai default diambil dari atribut kelas dengan nama yang sama.
  • return_attention_mask (bool, opsional) — Apakah akan mengembalikan attention mask. Jika dibiarkan pada nilai default, akan mengembalikan attention mask sesuai dengan default tokenizer tertentu, yang didefinisikan oleh return_outputs atribut.

    Apa itu attention mask?

  • return_tensors (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek Numpy np.ndarray.
  • verbose (bool, opsional, defaultnya True) — Apakah akan mencetak lebih banyak informasi dan peringatan.

Pad satu input terenkod atau batch input terenkod hingga panjang yang telah ditentukan atau hingga panjang urutan maksimum dalam batch.

Sisi padding (kiri/kanan) dan id token padding didefinisikan pada level tokenizer (dengan self.padding_side, self.pad_token_id dan self.pad_token_type_id).

Perhatikan bahwa dengan tokenizer cepat, menggunakan metode __call__ lebih cepat daripada menggunakan metode untuk mengkodekan teks yang diikuti oleh pemanggilan metode pad untuk mendapatkan encoding yang di-pad.

Jika encoded_inputs yang diberikan berupa dictionary dari array numpy, atau tensor PyTorch, hasilnya akan menggunakan tipe yang sama kecuali Anda menyediakan tipe tensor yang berbeda dengan return_tensors. Dalam kasus tensor PyTorch, Anda akan kehilangan perangkat spesifik dari tensor Anda.

parse_response

< >

( response: str | list[int] | list[str] | list[list[int]] | np.ndarray | torch.Tensorschema: dict | None = Noneprefix: str | list[int] | list[str] | list[list[int]] | np.ndarray | torch.Tensor | None = Nonetools: list[dict | Callable] | None = None )

Parameter

  • response (str, token ids, tensor 1D/2D, atau daftar dari salah satu dari ini) — Output yang dihasilkan oleh model. Teks yang didekodekan atau token ids, sebagai satu urutan (str / list[int] / array 1D / tensor 1D) atau batch (list[str] / list[list[int]] / array 2D / tensor 2D). Perhatikan bahwa ini harus hanya berisi output model, bukan teks prompt sebelumnya (yang masuk ke dalam prefix).
  • schema (dict, opsional) — Template respons yang menunjukkan format output yang diharapkan dan bagaimana parsing harus dilakukan. Jika tidak disediakan, atribut response_template dari tokenizer akan digunakan.
  • prefix (str, token ids, tensor 1D/2D, atau daftar dari hal-hal tersebut) — Prompt yang mendahului generasi. Hal ini diperlukan karena banyak template chat menulis sebagian pesan sebelumnya, sehingga kita perlu melihat prompt untuk mem-parsing dengan benar. Untuk response yang di-batch, berikan satu prefix tunggal (di-broadcast ke setiap item) atau satu prefix per item.
  • tools (list[Union[Dict, Callable]], opsional) — Tools yang tersedia untuk model, dalam format yang sama seperti yang diterima oleh apply_chat_template. Ketika diberikan, argumen tool-call akan di-cast menggunakan JSON schema dari tool yang dipanggil: "7" menjadi 7 untuk parameter integer, tetapi tetap "7" untuk parameter string.

Mengonversi string output yang dibuat dengan menghasilkan teks dari model menjadi kamus pesan yang telah diurai. Metode ini ditujukan untuk digunakan dengan model chat, dan akan membaca atribut response_template tokenizer untuk mengontrol penguraian, kecuali argumen schema dilewatkan secara langsung.

Menerima satu urutan tunggal atau batch. Satu urutan tunggal (string, atau urutan 1D dari id token) mengembalikan satu pesan yang telah diurai berupa dict; batch (daftar string, daftar urutan id token, atau tensor/array 2D) mengembalikan list dari dict pesan yang telah diurai, satu untuk setiap item.

push_to_hub

< >

( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )

Parameter

  • repo_id (str) — Nama repositori tempat Anda ingin mendorong tokenizer Anda. Seharusnya berisi nama organisasi Anda saat mendorong ke organisasi tertentu.
  • commit_message (str, opsional) — Pesan untuk commit saat push. Secara default akan menjadi "Upload tokenizer".
  • commit_description (str, opsional) — Deskripsi dari commit yang akan dibuat
  • private (bool, opsional) — Apakah membuat repo menjadi privat. Jika None (default), repo akan menjadi publik kecuali default organisasi adalah privat. Nilai ini diabaikan jika repo sudah ada.
  • token (bool atau str, opsional) — Token yang digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. Jika True (default), akan menggunakan token yang dihasilkan saat menjalankan hf auth login (disimpan di ~/.huggingface).
  • revision (str, opsional) — Cabang untuk mendorong file yang diunggah.
  • create_pr (bool, opsional, default False) — Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit.
  • max_shard_size (int atau str, opsional, default "50GB") — Hanya berlaku untuk model. Ukuran maksimum checkpoint sebelum di-shard. Setiap shard checkpoint akan memiliki ukuran lebih kecil dari nilai ini. Jika dinyatakan sebagai string, harus berupa angka diikuti satuan (seperti "5MB").
  • tags (list[str], opsional) — Daftar tag untuk didorong ke Hub.

Unggah file tokenizer ke 🤗 Model Hub.

Contoh:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

# Push the tokenizer to your namespace with the name "my-finetuned-bert".
tokenizer.push_to_hub("my-finetuned-bert")

# Push the tokenizer to an organization with the name "my-finetuned-bert".
tokenizer.push_to_hub("huggingface/my-finetuned-bert")

register_for_auto_class

< >

( auto_class = 'AutoTokenizer' )

Parameter

  • auto_class (str atau type, opsional, defaultnya "AutoTokenizer") — Kelas otomatis untuk mendaftarkan tokenizer baru ini.

Daftarkan kelas ini dengan kelas auto yang diberikan. Ini hanya harus digunakan untuk tokenizer kustom karena yang ada di pustaka sudah dipetakan dengan AutoTokenizer.

save_chat_templates

< >

( save_directory: str | os.PathLiketokenizer_config: dictfilename_prefix: str | Nonesave_jinja_files: bool )

Menulis template chat ke direktori penyimpanan jika kita menggunakan format baru, dan menghapusnya dari konfigurasi tokenizer jika ada. Jika kita menggunakan format lama, tidak ada file yang ditulis, dan sebaliknya template ditulis ke konfigurasi tokenizer dalam format yang benar.

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = False**kwargs ) → A tuple of str

Parameter

  • save_directory (str atau os.PathLike) — Path ke direktori tempat tokenizer akan disimpan.
  • legacy_format (bool, opsional) — Hanya berlaku untuk fast tokenizer. Jika tidak diset (default), tokenizer akan disimpan dalam format JSON terpadu serta dalam format legacy jika ada, yaitu dengan kosakata spesifik tokenizer dan file added_tokens yang terpisah.

    Jika False, hanya tokenizer yang akan disimpan dalam format JSON terpadu. Format ini tidak kompatibel dengan tokenizer “lambat” (yang tidak didukung oleh pustaka tokenizers), sehingga tokenizer tidak akan dapat dimuat dalam tokenizer “lambat” yang sesuai.

    Jika True, tokenizer akan disimpan dalam format legacy. Jika tokenizer “slow” tidak ada, error nilai akan dilempar.

  • filename_prefix (str, opsional) — Awalan yang ditambahkan ke nama file yang disimpan oleh tokenizer.
  • push_to_hub (bool, opsional, default False) — Apakah model Anda akan didorong ke Hugging Face model hub setelah disimpan. Anda dapat menentukan repository yang ingin Anda tuju dengan repo_id (defaultnya adalah nama save_directory di namespace Anda).
  • kwargs (dict[str, Any], opsional) — Argumen kata kunci tambahan yang diteruskan ke metode push_to_hub().

Mengembalikan

Tuple dari str

File yang disimpan.

Simpan status tokenizer lengkap.

Metode ini memastikan tokenizer lengkap dapat dimuat ulang menggunakan metode kelas ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained.

Warning,None Ini tidak akan menyimpan modifikasi yang mungkin telah Anda terapkan pada tokenizer setelah instansiasi (misalnya, memodifikasi tokenizer.do_lower_case setelah pembuatan).

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple(str)

Parameter

  • save_directory (str) — Direktori tempat menyimpan kosakata.
  • filename_prefix (str, opsional) — Prefiks opsional untuk ditambahkan ke nama file yang disimpan.

Mengembalikan

tuple(str)

Path ke file yang disimpan.

Simpan hanya kosakata tokenizer (kosakata + token yang ditambahkan).

Metode ini tidak akan menyimpan konfigurasi dan pemetaan token khusus dari tokenizer. Gunakan _save_pretrained() untuk menyimpan seluruh state tokenizer.

tokenize

< >

( text: strpair: str | None = Noneadd_special_tokens: bool = False**kwargs ) → list[str]

Parameter

  • text (str) — Urutan yang akan dikodekan.
  • pair (str, opsional) — Sebuah urutan kedua untuk dikodekan bersama urutan pertama.
  • add_special_tokens (bool, opsional, default False) — Apakah akan menambahkan token khusus yang terkait dengan model yang sesuai.
  • kwargs (argumen kata kunci tambahan, opsional) — Akan diteruskan ke metode encode spesifik model yang mendasarinya. Lihat detail di call()

Mengembalikan

list[str]

Daftar token.

Mengonversi string menjadi urutan token, dengan mengganti token yang tidak dikenal menggunakan unk_token.

Enum dan namedtuple

kelas transformers.tokenization_utils_base.TruncationStrategy

< >

( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1boundary = None )

Nilai yang mungkin untuk argumen truncation dalam PreTrainedTokenizerBase.call(). Berguna untuk tab-completion di IDE.

kelas transformers.CharSpan

< >

( start: ForwardRef('int')end: ForwardRef('int') )

Parameter

  • start (int) — Indeks karakter pertama dalam string asli.
  • end (int) — Indeks karakter setelah karakter terakhir dalam string asli.

Rentang karakter dalam string asli.

kelas transformers.TokenSpan

< >

( start: ForwardRef('int')end: ForwardRef('int') )

Parameter

  • start (int) — Indeks token pertama dalam span.
  • end (int) — Indeks token setelah token terakhir dalam span.

Rentang token dalam string terenkod (daftar token).

Update on GitHub