Transformers documentation
Utilitas untuk tokenizer
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
< source >( **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 dimax_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 (
stratautokenizers.AddedToken, opsional) — Token khusus yang mewakili awal kalimat. - eos_token (
stratautokenizers.AddedToken, opsional) — Token khusus yang mewakili akhir kalimat. - unk_token (
stratautokenizers.AddedToken, opsional) — Token khusus yang mewakili token di luar kosakata (out-of-vocabulary). - sep_token (
stratautokenizers.AddedToken, opsional) — Token khusus yang memisahkan dua kalimat berbeda dalam input yang sama (dipakai, misalnya, oleh BERT). - pad_token (
stratautokenizers.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 (
stratautokenizers.AddedToken, opsional) — Token khusus yang mewakili kelas dari input (dipakai oleh BERT, misalnya). - mask_token (
stratautokenizers.AddedToken, opsional) — Token khusus yang mewakili token yang dimasker (digunakan oleh tujuan pra-pelatihan pemodelan bahasa yang dimasker, seperti BERT). Akan dikaitkan denganself.mask_tokendanself.mask_token_id. - extra_special_tokens (list of
strortokenizers.AddedToken, opsional) — Daftar token khusus tambahan yang spesifik untuk model. Tambahkan di sini untuk memastikan token tersebut dilewati saat decoding denganskip_special_tokensyang diatur ke True. Jika token tersebut bukan bagian dari kosakata, token akan ditambahkan di akhir kosakata. - split_special_tokens (
bool, opsional, defaultnyaFalse) — 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>adalahbos_token, makatokenizer.tokenize("<s>") = ['<s>]. Sebaliknya, jikasplit_special_tokens=True, makatokenizer.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 berupashort-cut-namesdari model pretrained, dengan nilai terkait berupaurlke 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__
< source >( 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 mengaturis_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 mengaturis_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 mengaturis_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 mengaturis_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, defaultTrue) — Apakah akan menambahkan token khusus saat meng-encode urutan. Ini akan menggunakan fungsiPretrainedTokenizerBase.build_inputs_with_special_tokensyang mendasarinya, yang mendefinisikan token mana yang ditambahkan secara otomatis ke input ids. Ini berguna jika Anda ingin menambahkan tokenbosataueossecara otomatis. - padding (
bool,stratau PaddingStrategy, opsional, defaultnyaFalse) — Mengaktifkan dan mengontrol padding. Menerima nilai-nilai berikut:Trueatau'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 argumenmax_lengthatau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.Falseatau'do_not_pad'(default): Tidak ada padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda).
- truncation (
bool,stratau TruncationStrategy, opsional, defaultnyaFalse) — Mengaktifkan dan mengontrol pemotongan. Menerima nilai-nilai berikut:Trueatau'longest_first': Memotong hingga panjang maksimum yang ditentukan dengan argumenmax_lengthatau 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 argumenmax_lengthatau 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 argumenmax_lengthatau 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.Falseatau'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 denganmax_length, token yang meluap yang dikembalikan saatreturn_overflowing_tokens=Trueakan 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, defaultFalse) — Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata). Jika disetel keTrue, 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 melakukanpaddingpada urutan hingga menjadi kelipatan dari nilai yang diberikan. Memerlukanpaddinguntuk 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 (
stratau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek Numpynp.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 olehreturn_outputsatribut. - 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 olehreturn_outputsatribut. - return_overflowing_tokens (
bool, opsional, defaultFalse) — Apakah akan mengembalikan urutan token yang meluap. Jika sepasang urutan id input (atau batch dari pasangan) diberikan dengantruncation_strategy = longest_firstatauTrue, error akan dilemparkan alih-alih mengembalikan token yang meluap. - return_special_tokens_mask (
bool, opsional, defaultFalse) — Apakah akan mengembalikan informasi mask token khusus. - return_offsets_mapping (
bool, opsional, defaultnyaFalse) — 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, defaultFalse) — Apakah akan mengembalikan panjang dari input yang dikodekan. - verbose (
bool, opsional, defaultnyaTrue) — Apakah akan mencetak lebih banyak informasi dan peringatan. - **kwargs — diteruskan ke metode
self.tokenize()
Mengembalikan
BatchEncoding dengan bidang berikut:
-
input_ids — Daftar id token yang akan diberikan ke model.
-
token_type_ids — Daftar token type id yang akan diberikan ke model (ketika
return_token_type_ids=Trueatau jika “token_type_ids” ada diself.model_input_names). -
attention_mask — Daftar indeks yang menentukan token mana yang harus diperhatikan oleh model (ketika
return_attention_mask=Trueatau jika “attention_mask” ada diself.model_input_names). -
overflowing_tokens — Daftar sekuens token yang meluap (ketika
max_lengthditentukan danreturn_overflowing_tokens=True). -
num_truncated_tokens — Jumlah token yang dipangkas (ketika
max_lengthditentukan danreturn_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=Truedanreturn_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
< source >( 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, atauSequence[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_tokenkepada token tersebut). - replace_extra_special_tokens (
bool, opsional, defaultnyaTrue) — JikaTrue, daftar token khusus tambahan yang ada akan diganti oleh daftar yang diberikan dalamspecial_tokens_dict. Sebaliknya,extra_special_tokensakan 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, bukanadded_tokens_encoderdanadded_tokens_decoder. Ini berarti bahwaextra_special_tokenssebelumnya 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
< source >( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int
Parameter
- new_tokens (
str,tokenizers.AddedTokenatau urutan dari str atautokenizers.AddedToken) — Token hanya ditambahkan jika belum ada dalam kosakata.tokenizers.AddedTokenmembungkus 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, defaultFalse) — Menentukan apakah token tersebut bersifat khusus. Ini terutama mengubah perilaku normalisasi. Lihat detailtokenizers.AddedTokendi 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
Metaspaceyang menggunakanprepend_scheme="always"(misalnya NLLB) menambahkan"▁"ke teks yang mengikuti token yang ditambahkan. Setelahtokenizer.add_tokens(["abcd"]),"abcdgym"ditokenisasi menjadi["abcd", "▁gym"]dan didekode menjadi"abcd gym". Jika token yang ditambahkan dapat muncul di dalam kata, ganti pre-tokenizerke
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
< source >( 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, defaultnyaTrue) — Apakah akan melakukan tokenisasi pada output. JikaFalse, output akan berupa string. - sanitize_control_tokens (
bool, defaultnyaFalse) — 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 ditokenizer.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,stratau PaddingStrategy, opsional, defaultnyaFalse) — Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara:Trueatau'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 argumenmax_lengthatau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.Falseatau'do_not_pad'(default): Tidak ada padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda).
- truncation (
bool, defaultnyaFalse) — Apakah akan memotong (truncate) urutan pada panjang maksimum. Tidak berpengaruh jika tokenize adalahFalse. - max_length (
int, opsional) — Panjang maksimum (dalam token) yang digunakan untuk padding atau truncation. Tidak berpengaruh jika tokenize adalahFalse. Jika tidak ditentukan, atributmax_lengthdari tokenizer akan digunakan sebagai nilai default. - return_tensors (
stratau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Tidak berpengaruh jika tokenize adalahFalse. Nilai yang dapat diterima adalah:'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek NumPynp.ndarray.
- return_dict (
bool, defaultnyaTrue) — Apakah akan mengembalikan kamus dengan output bernama. Tidak berpengaruh jika tokenize adalahFalse. - tokenizer_kwargs (
dict[str -- Any], opsional): Kwargs tambahan untuk diteruskan ke tokenizer. - return_assistant_tokens_mask (
bool, defaultnyaFalse) — 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
< source >( 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, defaultnyaFalse) — Apakah token khusus akan dihapus saat decoding. - clean_up_tokenization_spaces (
bool, opsional) — Apakah akan membersihkan spasi tokenisasi. JikaNone, akan menggunakan nilai defaultself.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.
Bersihkan spasi tokenisasi dalam teks tertentu. Metode ini sebagian besar untuk dukungan kode jarak jauh.
convert_ids_to_tokens
< source >( ids: int | list[int]skip_special_tokens: bool = False ) → str or list[str]
Mengonversi satu indeks atau rangkaian indeks dalam sebuah token atau rangkaian token, menggunakan kosakata dan token yang ditambahkan.
convert_tokens_to_ids
< source >( tokens: str | list[str] ) → int or list[int]
Mengonversi string token (atau urutan token) menjadi id integer tunggal (atau urutan id), menggunakan kosakata.
convert_tokens_to_string
< source >( tokens: list[str] ) → str
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
< source >( 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, defaultnyaFalse) — 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
< source >( 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]ataulist[int]) — Urutan pertama yang akan dikodekan. Ini bisa berupa string, daftar string (string yang ditokenisasi menggunakan metodetokenize) atau daftar bilangan bulat (id string yang ditokenisasi menggunakan metodeconvert_tokens_to_ids). - text_pair (
str,list[str]ataulist[int], opsional) — Urutan kedua opsional untuk dikodekan. Ini bisa berupa string, daftar string (string yang ditokenisasi menggunakan metodetokenize) atau daftar bilangan bulat (id string yang ditokenisasi menggunakan metodeconvert_tokens_to_ids). - add_special_tokens (
bool, opsional, defaultTrue) — Apakah akan menambahkan token khusus saat meng-encode urutan. Ini akan menggunakan fungsiPretrainedTokenizerBase.build_inputs_with_special_tokensyang mendasarinya, yang mendefinisikan token mana yang ditambahkan secara otomatis ke input ids. Ini berguna jika Anda ingin menambahkan tokenbosataueossecara otomatis. - padding (
bool,stratau PaddingStrategy, opsional, defaultnyaFalse) — Mengaktifkan dan mengontrol padding. Menerima nilai-nilai berikut:Trueatau'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 argumenmax_lengthatau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.Falseatau'do_not_pad'(default): Tidak ada padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda).
- truncation (
bool,stratau TruncationStrategy, opsional, defaultnyaFalse) — Mengaktifkan dan mengontrol pemotongan. Menerima nilai-nilai berikut:Trueatau'longest_first': Memotong hingga panjang maksimum yang ditentukan dengan argumenmax_lengthatau 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 argumenmax_lengthatau 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 argumenmax_lengthatau 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.Falseatau'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 denganmax_length, token yang meluap yang dikembalikan saatreturn_overflowing_tokens=Trueakan 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, defaultFalse) — Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata). Jika disetel keTrue, 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 melakukanpaddingpada urutan hingga menjadi kelipatan dari nilai yang diberikan. Memerlukanpaddinguntuk 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 (
stratau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek Numpynp.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
< source >( 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
< source >( 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 (
stratauos.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 (
stratauos.PathLike, opsional) — Path ke direktori tempat file kosakata tokenizer predefined yang diunduh harus di-cache jika cache standar tidak digunakan. - force_download (
bool, opsional, defaultFalse) — 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 (
stratau bool, opsional) — Token yang akan digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. JikaTrue, akan menggunakan token yang dihasilkan saat menjalankanhf auth login(disimpan di~/.huggingface). - local_files_only (
bool, opsional, defaultnyaFalse) — 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, sehinggarevisiondapat 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, defaultFalse) — Apakah mengizinkan model kustom yang didefinisikan di Hub dalam file modeling mereka sendiri. Opsi ini harus hanya diatur keTrueuntuk 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 sepertibos_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=Truediperlukan 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
< source >( 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
< source >( 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
< source >( 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.
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
< source >( 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]]ataulist[dict[str, list[int]]]) — Input yang telah ditokenisasi. Dapat merepresentasikan satu input (BatchEncoding ataudict[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,stratau PaddingStrategy, opsional, defaultnyaTrue) — Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara:Trueatau'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 argumenmax_lengthatau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.Falseatau'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 olehreturn_outputsatribut. - return_tensors (
stratau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek Numpynp.ndarray.
- verbose (
bool, opsional, defaultnyaTrue) — 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_inputsyang diberikan berupa dictionary dari array numpy, atau tensor PyTorch, hasilnya akan menggunakan tipe yang sama kecuali Anda menyediakan tipe tensor yang berbeda denganreturn_tensors. Dalam kasus tensor PyTorch, Anda akan kehilangan perangkat spesifik dari tensor Anda.
parse_response
< source >( 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 dalamprefix). - schema (
dict, opsional) — Template respons yang menunjukkan format output yang diharapkan dan bagaimana parsing harus dilakukan. Jika tidak disediakan, atributresponse_templatedari 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. Untukresponseyang 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 olehapply_chat_template. Ketika diberikan, argumen tool-call akan di-cast menggunakan JSON schema dari tool yang dipanggil:"7"menjadi7untuk 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
< source >( 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. JikaNone(default), repo akan menjadi publik kecuali default organisasi adalah privat. Nilai ini diabaikan jika repo sudah ada. - token (
boolataustr, opsional) — Token yang digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. JikaTrue(default), akan menggunakan token yang dihasilkan saat menjalankanhf auth login(disimpan di~/.huggingface). - revision (
str, opsional) — Cabang untuk mendorong file yang diunggah. - create_pr (
bool, opsional, defaultFalse) — Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit. - max_shard_size (
intataustr, 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
< source >( auto_class = 'AutoTokenizer' )
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
< source >( 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
< source >( 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 (
stratauos.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, defaultFalse) — Apakah model Anda akan didorong ke Hugging Face model hub setelah disimpan. Anda dapat menentukan repository yang ingin Anda tuju denganrepo_id(defaultnya adalah namasave_directorydi 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
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple(str)
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
< source >( 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, defaultFalse) — 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
< source >( 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
< source >( start: ForwardRef('int')end: ForwardRef('int') )
Rentang karakter dalam string asli.
kelas transformers.TokenSpan
< source >( start: ForwardRef('int')end: ForwardRef('int') )
Rentang token dalam string terenkod (daftar token).