Transformers documentation
Tokenizer
Tokenizer
Tokenizer bertugas menyiapkan input untuk model. Library ini berisi tokenizer untuk semua model. Sebagian besar tokenizer tersedia dalam dua versi: implementasi Python penuh dan implementasi “Fast” yang berbasis pada library Rust 🤗 Tokenizers. Implementasi “Fast” memungkinkan:
- peningkatan kecepatan yang signifikan, terutama saat melakukan tokenisasi batched dan
- metode tambahan untuk memetakan antara string asli (karakter dan kata) dan ruang token (misalnya, mendapatkan indeks token yang mencakup karakter tertentu atau rentang karakter yang sesuai dengan token tertentu).
Kelas dasar PreTrainedTokenizer dan PreTrainedTokenizerFast mengimplementasikan metode umum untuk mengkodekan input string menjadi input model (lihat di bawah) serta menginstansiasi/menyimpan tokenizer python dan “Fast” baik dari file atau direktori lokal maupun dari tokenizer pretrained yang disediakan oleh pustaka (diunduh dari repositori AWS S3 HuggingFace). Keduanya bergantung pada PreTrainedTokenizerBase yang berisi metode-metode umum.
PreTrainedTokenizer dan PreTrainedTokenizerFast dengan demikian mengimplementasikan metode utama untuk menggunakan semua tokenizer:
- Menokenisasi (memecah string menjadi string sub-kata token), mengonversi string token menjadi id dan sebaliknya, serta mengodekan/mendekodekan (yaitu, menokenisasi dan mengonversi menjadi bilangan bulat).
- Menambahkan token baru ke dalam kosakata dengan cara yang independen dari struktur dasarnya (BPE, SentencePiece…).
- Mengelola token khusus (seperti mask, beginning-of-sentence, dll.): menambahkannya, menugaskannya ke atribut dalam tokenizer untuk akses yang mudah, dan memastikan mereka tidak dipecah selama proses tokenisasi.
BatchEncoding menyimpan keluaran dari metode encoding PreTrainedTokenizerBase (__call__, encode_plus dan batch_encode_plus) dan diturunkan dari kamus Python. Ketika tokenizer adalah tokenizer python murni, kelas ini berperilaku seperti kamus python standar dan menyimpan berbagai input model yang dihitung oleh metode-metode tersebut (input_ids, attention_mask…). Ketika tokenizer adalah tokenizer “Fast” (yaitu, didukung oleh tokenizers library HuggingFace), kelas ini juga menyediakan beberapa metode alignment lanjutan yang dapat digunakan untuk memetakan antara string asli (karakter dan kata) dan ruang token (misalnya, mendapatkan indeks token yang mencakup karakter tertentu atau rentang karakter yang sesuai dengan token tertentu).
Tokenizer Multimodal
Selain itu, setiap tokenizer dapat berupa tokenizer “multimodal”, yang berarti tokenizer tersebut akan menyimpan semua token khusus yang relevan sebagai bagian dari atribut tokenizer untuk memudahkan akses. Misalnya, jika tokenizer dimuat dari model vision-language seperti LLaVA, Anda akan dapat mengakses tokenizer.image_token_id untuk mendapatkan token gambar khusus yang digunakan sebagai placeholder.
Untuk mengaktifkan token khusus tambahan untuk jenis tokenizer apa pun, Anda harus menambahkan baris-baris berikut dan menyimpan tokenizer. Token khusus tambahan tidak harus terkait dengan modalitas dan bisa berupa apa pun yang sering dibutuhkan oleh model. Pada kode di bawah, tokenizer di output_dir akan memiliki akses langsung ke tiga token khusus tambahan.
vision_tokenizer = AutoTokenizer.from_pretrained(
"llava-hf/llava-1.5-7b-hf",
extra_special_tokens={"image_token": "<image>", "boi_token": "<image_start>", "eoi_token": "<image_end>"}
)
print(vision_tokenizer.image_token, vision_tokenizer.image_token_id)
("<image>", 32000)PreTrainedTokenizer
kelas transformers.PythonBackend
< 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 tokenizer lambat.
Mewarisi dari PreTrainedTokenizerBase.
Kelola semua metode bersama untuk tokenisasi dan token khusus, serta metode untuk mengunduh/meng-cache/memuat tokenizer terlatih sebelumnya, dan menambahkan token ke kosakata.
Kelas ini juga berisi token yang ditambahkan dengan cara yang terpadu di atas semua tokenizer, sehingga kita tidak perlu menangani metode augmentasi kosakata spesifik dari berbagai struktur kamus yang mendasarinya (BPE, sentencepiece…).
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, optional) — If set will pad the sequence to a multiple of the provided value. Requirespaddingto be activated. This is especially useful to enable the use of Tensor Cores on NVIDIA hardware with compute capability>= 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_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))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>"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.
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, optional) — If set will pad the sequence to a multiple of the provided value. Requirespaddingto be activated. This is especially useful to enable the use of Tensor Cores on NVIDIA hardware with compute capability>= 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)).
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")build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Bangun input model dari sebuah urutan atau sepasang urutan dengan menambahkan token khusus.
Metode ini secara dinamis membangun input berdasarkan special_tokens_pattern tokenizer:
"none": Tidak ada token khusus"cls_sep": [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] seq1 [SEP]"eos": seq0 [EOS] atau seq0 [EOS] seq1 [EOS]"bos": [BOS] seq0 atau [BOS] seq0 [BOS] seq1"bos_eos": [BOS] seq0 [EOS] atau [BOS] seq0 [EOS] seq1 [EOS]"cls_double_sep": [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] [SEP] seq1 [SEP]"prefix_suffix":<prefix_tokens> seq0 [seq1] <suffix_tokens>(prefix/suffix kustom yang disimpan pada tokenizer)
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Buat mask dari dua urutan yang diteruskan untuk digunakan dalam tugas klasifikasi pasangan urutan.
Metode ini secara dinamis membangun ID tipe token berdasarkan atribut konfigurasi tokenizer:
token_type_ids_pattern: Pola yang digunakan (“all_zeros” atau “bert_style”)token_type_ids_include_special_tokens: Apakah token khusus diperhitungkan dalam perhitungan panjang
Contoh:
# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences
# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairsget_added_vocab
< source >( ) → dict[str, int]
Mengembalikan
dict[str, int]
Token yang ditambahkan.
Mengembalikan token yang ditambahkan dalam kosakata sebagai kamus dari token ke indeks. Hasilnya mungkin berbeda dari panggilan cepat karena saat ini kami selalu menambahkan token meskipun token tersebut sudah ada dalam kosakata. Ini adalah sesuatu yang harus kami ubah.
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
Parameter
- token_ids_0 (
list[int]) — Daftar id dari urutan pertama. - token_ids_1 (
list[int], opsional) — Daftar id dari urutan kedua. - already_has_special_tokens (
bool, opsional, defaultFalse) — Apakah daftar token sudah diformat dengan token khusus untuk model.
Mengembalikan
Daftar bilangan bulat dalam rentang [0, 1]
1 untuk token khusus, 0 untuk token urutan.
Mengambil id urutan dari daftar token yang tidak memiliki token khusus yang ditambahkan. Metode ini dipanggil saat menambahkan token khusus menggunakan metode prepare_for_model atau encode_plus tokenizer.
Metode ini secara dinamis membangun mask token khusus berdasarkan special_tokens_pattern tokenizer:
"none": Tidak ada token khusus (default, mengembalikan semua 0)"cls_sep": [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] seq1 [SEP]"eos": seq0 [EOS] atau seq0 [EOS] seq1 [EOS]"bos": [BOS] seq0 atau [BOS] seq0 [BOS] seq1"bos_eos": [BOS] seq0 [EOS] atau [BOS] seq0 [EOS] seq1 [EOS]"cls_double_sep": [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] [SEP] seq1 [SEP]"prefix_suffix":<prefix_tokens> seq0 [seq1] <suffix_tokens>
num_special_tokens_to_add
< source >( pair: bool = False ) → int
Mengembalikan jumlah token yang ditambahkan saat mengkodekan sekuens dengan token khusus.
Ini mengkodekan input dummy dan memeriksa jumlah token yang ditambahkan, sehingga tidak efisien. Jangan letakkan ini di dalam loop pelatihan Anda.
prepare_for_model
< source >( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )
Menyiapkan urutan id input agar dapat digunakan oleh model. Menambahkan token khusus, memotong, dan mengisi (padding).
prepare_for_tokenization
< source >( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]
Parameter
- text (
str) — Teks yang akan disiapkan. - 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. - kwargs (
dict[str, Any], opsional) — Argumen kata kunci untuk digunakan dalam tokenisasi.
Mengembalikan
tuple[str, dict[str, Any]]
Teks yang telah disiapkan dan kwargs yang tidak digunakan.
Melakukan transformasi yang diperlukan sebelum tokenisasi.
Metode ini harus mengambil argumen dari kwargs dan juga mengembalikan kwargs yang tersisa. Kami menguji kwargs di akhir proses encoding untuk memastikan semua argumen telah digunakan.
save_vocabulary
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]
Implementasi default untuk pola penyimpanan kosakata umum. Menyimpan self.encoder/self.vocab sebagai JSON, opsional dengan self.bpe_ranks sebagai merges. Mengembalikan tuple kosong jika tidak ada kosakata.
Override metode ini jika tokenizer Anda memerlukan logika penyimpanan khusus (misalnya, model SentencePiece, beberapa file kosakata, atau format file khusus).
tokenize
< source >( text: str**kwargs )
Mengonversi string menjadi urutan token, menggunakan tokenizer.
truncate_sequences
< source >( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )
Memotong urutan sesuai dengan strategi yang ditentukan.
PreTrainedTokenizerFast
PreTrainedTokenizerFast bergantung pada pustaka tokenizers. Tokenizer yang diperoleh dari pustaka 🤗 tokenizers dapat dimuat ke 🤗 transformers dengan sangat sederhana. Lihat halaman Menggunakan tokenizer dari 🤗 tokenizers untuk memahami cara melakukannya.
kelas transformers.TokenizersBackend
< source >( *args**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', '>']. - tokenizer_object (
tokenizers.Tokenizer) — Objektokenizers.Tokenizerdari 🤗 tokenizers untuk diinstansiasi. Lihat Menggunakan tokenizers dari 🤗 tokenizers untuk informasi lebih lanjut. - tokenizer_file (
str) — Path ke file JSON lokal yang merepresentasikan objektokenizers.Tokenizeryang sebelumnya diserialisasi dari 🤗 tokenizers.
Kelas dasar untuk semua tokenizer cepat (membungkus pustaka tokenizers HuggingFace).
Mewarisi dari PreTrainedTokenizerBase.
Menangani semua metode bersama untuk tokenisasi dan token khusus, serta metode untuk mengunduh/meng-cache/memuat tokenizer pretrained, serta menambahkan token ke dalam kosakata.
Kelas ini juga berisi token yang ditambahkan secara terpadu di atas semua tokenizer, sehingga kita tidak perlu menangani metode augmentasi kosakata spesifik dari berbagai struktur kamus yang mendasarinya (BPE, sentencepiece…).
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_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))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>"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.
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, optional) — If set will pad the sequence to a multiple of the provided value. Requirespaddingto be activated. This is especially useful to enable the use of Tensor Cores on NVIDIA hardware with compute capability>= 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)).
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")Bangun backend tokenizers.Tokenizer dari file serialisasi yang tersedia (tokenizer.json, model sentencepiece, tekken.json, vocab/merges).
get_added_vocab
< source >( ) → dict[str, int]
Mengembalikan
dict[str, int]
Token yang ditambahkan.
Mengembalikan token yang ditambahkan dalam kosakata sebagai kamus dari token ke indeks.
num_special_tokens_to_add
< source >( pair: bool = False ) → int
Mengembalikan jumlah token yang ditambahkan saat mengkodekan sekuens dengan token khusus.
Ini mengkodekan input dummy dan memeriksa jumlah token yang ditambahkan, sehingga tidak efisien. Jangan letakkan ini di dalam loop pelatihan Anda.
save_pretrained
< source >( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str
Parameter
- save_format (
str, opsional) —"mistral"untuk menyimpan sebagaitekken.jsonasli dengan menyalin file asli (memerlukan file kosakata tekken asli tersedia). Nama akan dinormalisasi menjaditekken.jsonsaat disimpan, dan tokenizer yang diinstansiasi harus masih cocok dengan file tersebut secara persis."hf"atauNoneuntuk format HuggingFace default. - 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.
Memperluas save_pretrained() dengan dukungan save_format, untuk tokenizer yang dikonversi dari file kosakata asli (misalnya tekken.json dari Mistral). Lihat metode dasar untuk legacy_format, filename_prefix, dan push_to_hub.
set_truncation_and_padding
< source >( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )
Parameter
- padding_strategy (PaddingStrategy) — Jenis padding yang akan diterapkan pada input
- truncation_strategy (TruncationStrategy) — Jenis pemotongan yang akan diterapkan pada input
- max_length (
int) — Ukuran maksimum dari sebuah sekuens. - stride (
int) — Stride yang digunakan saat menangani overflow. - 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.
Definisikan strategi pemotongan (truncation) dan padding untuk fast tokenizers (yang disediakan oleh pustaka tokenizers HuggingFace) dan kembalikan pengaturan tokenizer setelahnya.
Tokenizer yang disediakan tidak memiliki strategi padding / truncation sebelum bagian yang dikelola. Jika tokenizer Anda telah menetapkan strategi padding / truncation sebelumnya, maka strategi tersebut akan direset menjadi tanpa padding / truncation saat keluar dari bagian yang dikelola.
train_new_from_iterator
< source >( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast
Parameter
- text_iterator (generator of
list[str]) — Korpus pelatihan. Harus berupa generator dari batch teks, misalnya daftar dari daftar teks jika Anda memiliki semuanya di memori. - vocab_size (
int) — Ukuran kosakata yang Anda inginkan untuk tokenizer Anda. - length (
int, opsional) — Jumlah total urutan dalam iterator. Ini digunakan untuk memberikan pelacakan kemajuan yang bermakna - new_special_tokens (list of
stratauAddedToken, opsional) — Daftar token khusus baru yang akan ditambahkan ke tokenizer yang sedang Anda latih. - special_tokens_map (
dict[str, str], opsional) — Jika Anda ingin mengganti nama beberapa token khusus yang digunakan tokenizer ini, berikan pemetaan dari nama token khusus lama ke nama token khusus baru melalui argumen ini. - kwargs (
dict[str, Any], opsional) — Argumen kata kunci tambahan yang diteruskan ke trainer dari pustaka 🤗 Tokenizers.
Mengembalikan
Tokenizer baru dengan tipe yang sama dengan tokenizer asli, dilatih pada
text_iterator.
Melatih tokenizer pada korpus baru dengan nilai default yang sama (dalam hal token khusus atau pipeline tokenisasi) seperti tokenizer saat ini.
Memperbarui post processor dasar dengan bos_token dan eos_token saat ini.
PythonBackend
kelas transformers.PythonBackend
< 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 tokenizer lambat.
Mewarisi dari PreTrainedTokenizerBase.
Kelola semua metode bersama untuk tokenisasi dan token khusus, serta metode untuk mengunduh/meng-cache/memuat tokenizer terlatih sebelumnya, dan menambahkan token ke kosakata.
Kelas ini juga berisi token yang ditambahkan dengan cara yang terpadu di atas semua tokenizer, sehingga kita tidak perlu menangani metode augmentasi kosakata spesifik dari berbagai struktur kamus yang mendasarinya (BPE, sentencepiece…).
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'.
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Bangun input model dari sebuah urutan atau sepasang urutan dengan menambahkan token khusus.
Metode ini secara dinamis membangun input berdasarkan special_tokens_pattern tokenizer:
"none": Tidak ada token khusus"cls_sep": [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] seq1 [SEP]"eos": seq0 [EOS] atau seq0 [EOS] seq1 [EOS]"bos": [BOS] seq0 atau [BOS] seq0 [BOS] seq1"bos_eos": [BOS] seq0 [EOS] atau [BOS] seq0 [EOS] seq1 [EOS]"cls_double_sep": [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] [SEP] seq1 [SEP]"prefix_suffix":<prefix_tokens> seq0 [seq1] <suffix_tokens>(prefix/suffix kustom yang disimpan pada tokenizer)
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Buat mask dari dua urutan yang diteruskan untuk digunakan dalam tugas klasifikasi pasangan urutan.
Metode ini secara dinamis membangun ID tipe token berdasarkan atribut konfigurasi tokenizer:
token_type_ids_pattern: Pola yang digunakan (“all_zeros” atau “bert_style”)token_type_ids_include_special_tokens: Apakah token khusus diperhitungkan dalam perhitungan panjang
Contoh:
# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences
# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairsget_added_vocab
< source >( ) → dict[str, int]
Mengembalikan
dict[str, int]
Token yang ditambahkan.
Mengembalikan token yang ditambahkan dalam kosakata sebagai kamus dari token ke indeks. Hasilnya mungkin berbeda dari panggilan cepat karena saat ini kami selalu menambahkan token meskipun token tersebut sudah ada dalam kosakata. Ini adalah sesuatu yang harus kami ubah.
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
Parameter
- token_ids_0 (
list[int]) — Daftar id dari urutan pertama. - token_ids_1 (
list[int], opsional) — Daftar id dari urutan kedua. - already_has_special_tokens (
bool, opsional, defaultFalse) — Apakah daftar token sudah diformat dengan token khusus untuk model.
Mengembalikan
Daftar bilangan bulat dalam rentang [0, 1]
1 untuk token khusus, 0 untuk token urutan.
Mengambil id urutan dari daftar token yang tidak memiliki token khusus yang ditambahkan. Metode ini dipanggil saat menambahkan token khusus menggunakan metode prepare_for_model atau encode_plus tokenizer.
Metode ini secara dinamis membangun mask token khusus berdasarkan special_tokens_pattern tokenizer:
"none": Tidak ada token khusus (default, mengembalikan semua 0)"cls_sep": [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] seq1 [SEP]"eos": seq0 [EOS] atau seq0 [EOS] seq1 [EOS]"bos": [BOS] seq0 atau [BOS] seq0 [BOS] seq1"bos_eos": [BOS] seq0 [EOS] atau [BOS] seq0 [EOS] seq1 [EOS]"cls_double_sep": [CLS] seq0 [SEP] atau [CLS] seq0 [SEP] [SEP] seq1 [SEP]"prefix_suffix":<prefix_tokens> seq0 [seq1] <suffix_tokens>
num_special_tokens_to_add
< source >( pair: bool = False ) → int
Mengembalikan jumlah token yang ditambahkan saat mengkodekan sekuens dengan token khusus.
Ini mengkodekan input dummy dan memeriksa jumlah token yang ditambahkan, sehingga tidak efisien. Jangan letakkan ini di dalam loop pelatihan Anda.
prepare_for_model
< source >( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )
Menyiapkan urutan id input agar dapat digunakan oleh model. Menambahkan token khusus, memotong, dan mengisi (padding).
prepare_for_tokenization
< source >( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]
Parameter
- text (
str) — Teks yang akan disiapkan. - 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. - kwargs (
dict[str, Any], opsional) — Argumen kata kunci untuk digunakan dalam tokenisasi.
Mengembalikan
tuple[str, dict[str, Any]]
Teks yang telah disiapkan dan kwargs yang tidak digunakan.
Melakukan transformasi yang diperlukan sebelum tokenisasi.
Metode ini harus mengambil argumen dari kwargs dan juga mengembalikan kwargs yang tersisa. Kami menguji kwargs di akhir proses encoding untuk memastikan semua argumen telah digunakan.
save_vocabulary
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]
Implementasi default untuk pola penyimpanan kosakata umum. Menyimpan self.encoder/self.vocab sebagai JSON, opsional dengan self.bpe_ranks sebagai merges. Mengembalikan tuple kosong jika tidak ada kosakata.
Override metode ini jika tokenizer Anda memerlukan logika penyimpanan khusus (misalnya, model SentencePiece, beberapa file kosakata, atau format file khusus).
tokenize
< source >( text: str**kwargs )
Mengonversi string menjadi urutan token, menggunakan tokenizer.
truncate_sequences
< source >( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )
Memotong urutan sesuai dengan strategi yang ditentukan.
TokenizersBackend
kelas transformers.TokenizersBackend
< source >( *args**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', '>']. - tokenizer_object (
tokenizers.Tokenizer) — Objektokenizers.Tokenizerdari 🤗 tokenizers untuk diinstansiasi. Lihat Menggunakan tokenizers dari 🤗 tokenizers untuk informasi lebih lanjut. - tokenizer_file (
str) — Path ke file JSON lokal yang merepresentasikan objektokenizers.Tokenizeryang sebelumnya diserialisasi dari 🤗 tokenizers.
Kelas dasar untuk semua tokenizer cepat (membungkus pustaka tokenizers HuggingFace).
Mewarisi dari PreTrainedTokenizerBase.
Menangani semua metode bersama untuk tokenisasi dan token khusus, serta metode untuk mengunduh/meng-cache/memuat tokenizer pretrained, serta menambahkan token ke dalam kosakata.
Kelas ini juga berisi token yang ditambahkan secara terpadu di atas semua tokenizer, sehingga kita tidak perlu menangani metode augmentasi kosakata spesifik dari berbagai struktur kamus yang mendasarinya (BPE, sentencepiece…).
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'.
Bangun backend tokenizers.Tokenizer dari file serialisasi yang tersedia (tokenizer.json, model sentencepiece, tekken.json, vocab/merges).
get_added_vocab
< source >( ) → dict[str, int]
Mengembalikan
dict[str, int]
Token yang ditambahkan.
Mengembalikan token yang ditambahkan dalam kosakata sebagai kamus dari token ke indeks.
num_special_tokens_to_add
< source >( pair: bool = False ) → int
Mengembalikan jumlah token yang ditambahkan saat mengkodekan sekuens dengan token khusus.
Ini mengkodekan input dummy dan memeriksa jumlah token yang ditambahkan, sehingga tidak efisien. Jangan letakkan ini di dalam loop pelatihan Anda.
save_pretrained
< source >( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str
Parameter
- save_format (
str, opsional) —"mistral"untuk menyimpan sebagaitekken.jsonasli dengan menyalin file asli (memerlukan file kosakata tekken asli tersedia). Nama akan dinormalisasi menjaditekken.jsonsaat disimpan, dan tokenizer yang diinstansiasi harus masih cocok dengan file tersebut secara persis."hf"atauNoneuntuk format HuggingFace default. - 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.
Memperluas save_pretrained() dengan dukungan save_format, untuk tokenizer yang dikonversi dari file kosakata asli (misalnya tekken.json dari Mistral). Lihat metode dasar untuk legacy_format, filename_prefix, dan push_to_hub.
set_truncation_and_padding
< source >( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )
Parameter
- padding_strategy (PaddingStrategy) — Jenis padding yang akan diterapkan pada input
- truncation_strategy (TruncationStrategy) — Jenis pemotongan yang akan diterapkan pada input
- max_length (
int) — Ukuran maksimum dari sebuah sekuens. - stride (
int) — Stride yang digunakan saat menangani overflow. - 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.
Definisikan strategi pemotongan (truncation) dan padding untuk fast tokenizers (yang disediakan oleh pustaka tokenizers HuggingFace) dan kembalikan pengaturan tokenizer setelahnya.
Tokenizer yang disediakan tidak memiliki strategi padding / truncation sebelum bagian yang dikelola. Jika tokenizer Anda telah menetapkan strategi padding / truncation sebelumnya, maka strategi tersebut akan direset menjadi tanpa padding / truncation saat keluar dari bagian yang dikelola.
train_new_from_iterator
< source >( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast
Parameter
- text_iterator (generator of
list[str]) — Korpus pelatihan. Harus berupa generator dari batch teks, misalnya daftar dari daftar teks jika Anda memiliki semuanya di memori. - vocab_size (
int) — Ukuran kosakata yang Anda inginkan untuk tokenizer Anda. - length (
int, opsional) — Jumlah total urutan dalam iterator. Ini digunakan untuk memberikan pelacakan kemajuan yang bermakna - new_special_tokens (list of
stratauAddedToken, opsional) — Daftar token khusus baru yang akan ditambahkan ke tokenizer yang sedang Anda latih. - special_tokens_map (
dict[str, str], opsional) — Jika Anda ingin mengganti nama beberapa token khusus yang digunakan tokenizer ini, berikan pemetaan dari nama token khusus lama ke nama token khusus baru melalui argumen ini. - kwargs (
dict[str, Any], opsional) — Argumen kata kunci tambahan yang diteruskan ke trainer dari pustaka 🤗 Tokenizers.
Mengembalikan
Tokenizer baru dengan tipe yang sama dengan tokenizer asli, dilatih pada
text_iterator.
Melatih tokenizer pada korpus baru dengan nilai default yang sama (dalam hal token khusus atau pipeline tokenisasi) seperti tokenizer saat ini.
Memperbarui post processor dasar dengan bos_token dan eos_token saat ini.
SentencePieceBackend
kelas transformers.SentencePieceBackend
< 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 tokenizer berbasis SentencePiece yang dimuat dari file sentencepiece.model.
Mewarisi dari PreTrainedTokenizer.
Kelola semua metode bersama untuk tokenisasi dan token khusus, serta metode untuk mengunduh/meng-cache/memuat tokenizer terlatih sebelumnya, dan menambahkan token ke kosakata.
Kelas ini juga berisi token yang ditambahkan dengan cara yang terpadu di atas semua tokenizer, sehingga kita tidak perlu menangani metode augmentasi kosakata spesifik dari berbagai struktur kamus yang mendasarinya (BPE, sentencepiece…).
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'.
Mengonversi urutan token (string) dalam satu string.
Mengembalikan vocab sebagai dict
save_vocabulary
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple(str)
Simpan kosakata sentencepiece (salin file asli) ke sebuah direktori.
BatchEncoding
kelas transformers.BatchEncoding
< source >( data: dict[str, Any] | None = Noneencoding: EncodingFast | Sequence[EncodingFast] | None = Nonetensor_type: None | str | TensorType = Noneprepend_batch_axis: bool = Falsen_sequences: int | None = None )
Parameter
- data (
dict, opsional) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode__call__/encode_plus/batch_encode_plus(‘input_ids’, ‘attention_mask’, dll.). - encoding (
tokenizers.EncodingatauSequence[tokenizers.Encoding], opsional) — Jika tokenizer adalah fast tokenizer yang mengoutputkan informasi tambahan seperti pemetaan dari ruang kata/karakter ke ruang token, instancetokenizers.Encodingatau daftar instance (untuk batch) menyimpan informasi ini. - tensor_type (
Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi. - prepend_batch_axis (
bool, opsional, defaultFalse) — Apakah akan menambahkan sumbu batch saat mengonversi ke tensor (lihattensor_typedi atas). Perhatikan bahwa parameter ini berpengaruh jika parametertensor_typedisetel, tidak berpengaruh jika tidak. - n_sequences (
Optional[int], opsional) — Jumlah urutan input yang direpresentasikan oleh setiap encoding (Noneuntuk tidak diketahui,1untuk satu urutan, dan2untuk sepasang urutan).
Menyimpan output dari metode call(), ~tokenization_utils_base.PreTrainedTokenizerBase.encode_plus dan ~tokenization_utils_base.PreTrainedTokenizerBase.batch_encode_plus (token, attention_masks, dll).
Kelas ini diturunkan dari kamus python dan dapat digunakan sebagai kamus. Selain itu, kelas ini menyediakan metode utilitas untuk memetakan dari ruang kata/karakter ke ruang token.
char_to_token
< source >( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int
Parameter
- batch_or_char_index (
int) — Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat menjadi indeks dari karakter dalam urutan tersebut - char_index (
int, opsional) — Jika indeks batch diberikan dalam batch_or_char_index, ini dapat berupa indeks karakter dalam urutan. - sequence_index (
int, opsional, default 0) — Jika sepasang sekuens dikodekan dalam batch, ini dapat digunakan untuk menentukan sekuens mana dalam pasangan tersebut (0 atau 1) yang memiliki indeks karakter yang diberikan.
Mengembalikan
int
Indeks token, atau None jika indeks karakter merujuk pada token yang hanya berisi spasi dan spasi dipangkas dengan trim_offsets=True.
Dapatkan indeks token dalam output terenkripsi yang mencakup karakter dalam string asli untuk sebuah urutan dari batch.
Dapat dipanggil sebagai:
self.char_to_token(char_index)jika ukuran batch adalah 1self.char_to_token(batch_index, char_index)jika ukuran batch lebih besar atau sama dengan 1
Metode ini sangat cocok ketika urutan input diberikan sebagai urutan yang sudah ditokenisasi sebelumnya (yaitu kata-kata didefinisikan oleh pengguna). Dalam kasus ini, metode ini memungkinkan asosiasi yang mudah antara token yang dikodekan dengan kata-kata yang ditokenisasi.
char_to_word
< source >( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int
Parameter
- batch_or_char_index (
int) — Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat berupa indeks dari karakter dalam string asli. - char_index (
int, opsional) — Jika indeks batch diberikan dalam batch_or_char_index, ini dapat berupa indeks karakter dalam string asli. - sequence_index (
int, opsional, default 0) — Jika sepasang sekuens dikodekan dalam batch, ini dapat digunakan untuk menentukan sekuens mana dalam pasangan tersebut (0 atau 1) yang memiliki indeks karakter yang diberikan.
Mengembalikan
int
Indeks kata yang mengandung karakter tersebut.
Dapatkan kata dalam string asli yang sesuai dengan karakter dalam string asli dari urutan dalam batch.
Dapat dipanggil sebagai:
self.char_to_word(char_index)jika ukuran batch adalah 1self.char_to_word(batch_index, char_index)jika ukuran batch lebih dari 1
Metode ini sangat cocok ketika urutan input diberikan sebagai urutan yang sudah ditokenisasi sebelumnya (yaitu kata-kata didefinisikan oleh pengguna). Dalam kasus ini, metode ini memungkinkan asosiasi yang mudah antara token yang dikodekan dengan kata-kata yang ditokenisasi.
convert_to_tensors
< source >( tensor_type: str | TensorType | None = Noneprepend_batch_axis: bool = False )
Parameter
- tensor_type (
stratau TensorType, opsional) — Jenis tensor yang akan digunakan. Jikastr, harus salah satu nilai dari enum TensorType. JikaNone, tidak ada modifikasi yang dilakukan. - prepend_batch_axis (
bool, opsional, defaultFalse) — Apakah akan menambahkan dimensi batch selama konversi.
Konversi konten internal menjadi tensor.
sequence_ids
< source >( batch_index: int = 0 ) → list[Optional[int]]
Parameter
Mengembalikan
list[Optional[int]]
Daftar yang menunjukkan id urutan yang sesuai untuk setiap token. Token khusus yang ditambahkan oleh tokenizer dipetakan ke None dan token lainnya dipetakan ke indeks urutan yang sesuai.
Kembalikan daftar yang memetakan token ke id kalimat aslinya:
Noneuntuk token khusus yang ditambahkan di sekitar atau di antara urutan,0untuk token yang sesuai dengan kata dalam urutan pertama,1untuk token yang sesuai dengan kata dalam urutan kedua ketika sepasang urutan dikodekan secara bersama.
ke
< source >( device: str | torch.device | intnon_blocking: bool = False ) → BatchEncoding
Kirim semua nilai ke perangkat dengan memanggil v.to(device, non_blocking=non_blocking) (hanya PyTorch).
token_to_chars
< source >( batch_or_token_index: inttoken_index: int | None = None ) → CharSpan
Parameter
- batch_or_token_index (
int) — Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat berupa indeks dari token dalam urutan tersebut. - token_index (
int, opsional) — Jika indeks batch diberikan dalam batch_or_token_index, ini dapat berupa indeks token atau token-token dalam urutan.
Mengembalikan
Rentang karakter dalam string asli, atau None, jika token
(e.g. , ) tidak sesuai dengan karakter apa pun dalam string asal.
Dapatkan rentang karakter yang sesuai dengan token terenkod dalam urutan batch.
Rentang karakter dikembalikan sebagai CharSpan dengan:
- start — Indeks karakter pertama dalam string asli yang terkait dengan token.
- end — Indeks karakter setelah karakter terakhir dalam string asli yang terkait dengan token.
Dapat dipanggil sebagai:
self.token_to_chars(token_index)jika ukuran batch adalah 1self.token_to_chars(batch_index, token_index)jika ukuran batch lebih besar atau sama dengan 1
token_to_sequence
< source >( batch_or_token_index: inttoken_index: int | None = None ) → int
Parameter
- batch_or_token_index (
int) — Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat berupa indeks dari token dalam urutan tersebut. - token_index (
int, opsional) — Jika indeks batch diberikan dalam batch_or_token_index, ini dapat berupa indeks token dalam urutan.
Mengembalikan
int
Indeks dari urutan input yang berisi token (0 untuk urutan pertama atau 1 untuk urutan kedua dari sebuah pasangan).
Dapatkan indeks dari urutan yang direpresentasikan oleh token yang diberikan. Dalam kasus penggunaan umum, metode ini mengembalikan 0 untuk satu urutan atau urutan pertama dari sepasang, dan 1 untuk urutan kedua dari sepasang
Dapat dipanggil sebagai:
self.token_to_sequence(token_index)jika ukuran batch adalah 1self.token_to_sequence(batch_index, token_index)jika ukuran batch lebih dari 1
Metode ini sangat cocok ketika urutan input diberikan sebagai urutan yang sudah ditokenisasi sebelumnya (yaitu, kata-kata didefinisikan oleh pengguna). Dalam kasus ini, metode ini memungkinkan asosiasi yang mudah antara token yang dikodekan dengan kata-kata yang sudah ditokenisasi.
token_to_word
< source >( batch_or_token_index: inttoken_index: int | None = None ) → int
Parameter
- batch_or_token_index (
int) — Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat berupa indeks dari token dalam urutan tersebut. - token_index (
int, opsional) — Jika indeks batch diberikan dalam batch_or_token_index, ini dapat berupa indeks token dalam urutan.
Mengembalikan
int
Indeks kata dalam urutan input.
Dapatkan indeks kata yang sesuai (yaitu yang membentuk) dengan token terenkod dalam urutan batch.
Dapat dipanggil sebagai:
self.token_to_word(token_index)jika ukuran batch adalah 1self.token_to_word(batch_index, token_index)jika ukuran batch lebih dari 1
Metode ini sangat cocok ketika urutan input diberikan sebagai urutan yang sudah ditokenisasi sebelumnya (yaitu, kata-kata didefinisikan oleh pengguna). Dalam kasus ini, metode ini memungkinkan asosiasi yang mudah antara token yang dikodekan dengan kata-kata yang sudah ditokenisasi.
token
< source >( batch_index: int = 0 ) → list[str]
Kembalikan daftar token (sub-bagian dari string input setelah pemecahan kata/subkata dan sebelum konversi ke indeks integer) pada indeks batch tertentu (hanya berfungsi untuk output tokenizer cepat).
word_ids
< source >( batch_index: int = 0 ) → list[Optional[int]]
Parameter
Mengembalikan
list[Optional[int]]
Daftar yang menunjukkan kata yang sesuai dengan setiap token. Token khusus yang ditambahkan oleh tokenizer dipetakan ke None dan token lainnya dipetakan ke indeks kata yang sesuai (beberapa token akan dipetakan ke indeks kata yang sama jika mereka merupakan bagian dari kata tersebut).
Kembalikan daftar yang memetakan token ke kata aslinya dalam kalimat awal untuk fast tokenizer.
word_to_chars
< source >( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → CharSpan
Parameter
- batch_or_word_index (
int) — Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat menjadi indeks dari kata dalam urutan tersebut - word_index (
int, opsional) — Jika indeks batch diberikan dalam batch_or_word_index, ini dapat berupa indeks kata dalam urutan. - sequence_index (
int, opsional, default 0) — Jika sepasang sekuens dikodekan dalam batch, ini dapat digunakan untuk menentukan sekuens mana dalam pasangan tersebut (0 atau 1) yang memiliki indeks kata yang diberikan.
Mengembalikan
CharSpan
Rentang karakter terkait dalam string. CharSpan adalah NamedTuple dengan:
- start: indeks karakter pertama yang terkait dengan kata dalam string asli
- end: indeks karakter setelah karakter terakhir yang terkait dengan kata dalam string asli
Dapatkan rentang karakter dalam string asli yang sesuai dengan kata tertentu dalam urutan batch.
Span karakter dikembalikan sebagai CharSpan NamedTuple dengan:
- start: indeks karakter pertama dalam string asli
- end: indeks karakter setelah karakter terakhir dalam string asli
Dapat dipanggil sebagai:
self.word_to_chars(word_index)jika ukuran batch adalah 1self.word_to_chars(batch_index, word_index)jika ukuran batch lebih besar atau sama dengan 1
word_to_tokens
< source >( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → (TokenSpan, optional)
Parameter
- batch_or_word_index (
int) — Indeks dari urutan dalam batch. Jika batch hanya terdiri dari satu urutan, ini dapat menjadi indeks dari kata dalam urutan tersebut. - word_index (
int, opsional) — Jika indeks batch diberikan dalam batch_or_word_index, ini dapat berupa indeks kata dalam urutan. - sequence_index (
int, opsional, default 0) — Jika sepasang sekuens dikodekan dalam batch, ini dapat digunakan untuk menentukan sekuens mana dalam pasangan tersebut (0 atau 1) yang memiliki indeks kata yang diberikan.
Mengembalikan
(TokenSpan, opsional)
Rentang token dalam urutan yang dikodekan. Mengembalikan
None jika tidak ada token yang sesuai dengan kata tersebut. Hal ini dapat terjadi terutama ketika token tersebut adalah token khusus
yang digunakan untuk memformat tokenisasi. Misalnya, ketika kami menambahkan token kelas di awal
tokenisasi.
Dapatkan rentang token terenkod yang sesuai dengan sebuah kata dalam urutan dari batch.
Token spans dikembalikan sebagai TokenSpan dengan:
- start — Indeks token pertama.
- end — Indeks token setelah token terakhir.
Dapat dipanggil sebagai:
self.word_to_tokens(word_index, sequence_index: int = 0)jika ukuran batch adalah 1self.word_to_tokens(batch_index, word_index, sequence_index: int = 0)jika ukuran batch lebih besar atau sama dengan 1
Metode ini sangat cocok ketika urutan input diberikan sebagai urutan yang sudah ditokenisasi sebelumnya (yaitu kata-kata didefinisikan oleh pengguna). Dalam kasus ini, metode ini memungkinkan asosiasi yang mudah antara token yang dikodekan dengan kata-kata yang ditokenisasi.