Transformers documentation

Tokenizer

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

and get access to the augmented documentation experience

to get started

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:

  1. peningkatan kecepatan yang signifikan, terutama saat melakukan tokenisasi batched dan
  2. 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

< >

( **kwargs )

Parameter

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

Kelas dasar untuk semua 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 berupa short-cut-names dari model pretrained, dengan nilai terkait berupa url ke file kosakata pretrained yang terkait.
  • model_input_names (list[str]) — Daftar input yang diharapkan dalam forward pass model.
  • padding_side (str) — Nilai default untuk sisi tempat model harus menerapkan padding. Harus berupa 'right' atau 'left'.
  • truncation_side (str) — Nilai default untuk sisi tempat model harus menerapkan pemotongan. Harus berupa 'right' atau 'left'.

__call__

< >

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

Parameter

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

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

  • stride (int, opsional, default 0) — Jika diatur ke sebuah angka bersama dengan max_length, token yang meluap yang dikembalikan saat return_overflowing_tokens=True akan berisi beberapa token dari akhir urutan terpotong yang dikembalikan untuk menyediakan beberapa tumpang tindih antara urutan terpotong dan urutan yang meluap. Nilai argumen ini menentukan jumlah token yang tumpang tindih.
  • is_split_into_words (bool, opsional, default False) — Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata). Jika disetel ke True, tokenizer mengasumsikan input sudah dipecah menjadi kata (misalnya, dengan memisahkannya berdasarkan spasi) yang akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.
  • pad_to_multiple_of (int, optional) — If set will pad the sequence to a multiple of the provided value. Requires padding to 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 (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek Numpy np.ndarray.
  • return_token_type_ids (bool, opsional) — Apakah akan mengembalikan token type ID. Jika dibiarkan pada nilai default, akan mengembalikan token type ID sesuai dengan default tokenizer tertentu, yang ditentukan oleh return_outputs atribut.

    Apa itu token type ID?

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

    Apa itu attention mask?

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

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

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

Mengembalikan

BatchEncoding

BatchEncoding dengan bidang berikut:

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

    Apa itu input ID?

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

    Apa itu token type ID?

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

    Apa itu attention mask?

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

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

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

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

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

add_tokens

< >

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

Parameter

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

Mengembalikan

int

Jumlah token yang ditambahkan ke dalam kosakata.

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

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

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

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

from tokenizers import pre_tokenizers

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

Contoh:

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

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

add_special_tokens

< >

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

Parameter

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

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

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

Mengembalikan

int

Jumlah token yang ditambahkan ke dalam kosakata.

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

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

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

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

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

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

Contoh:

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

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

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

assert tokenizer.cls_token == "<CLS>"

apply_chat_template

< >

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

Parameter

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

Mengembalikan

Union[list[int], Dict]

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

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

batch_decode

< >

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

Parameter

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

Mengembalikan

list[str]

Daftar kalimat yang telah didekode.

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

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

decode

< >

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

Parameter

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

Mengembalikan

Union[str, list[str]]

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

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

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

encode

< >

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

Parameter

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

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

  • stride (int, opsional, default 0) — Jika diatur ke sebuah angka bersama dengan max_length, token yang meluap yang dikembalikan saat return_overflowing_tokens=True akan berisi beberapa token dari akhir urutan terpotong yang dikembalikan untuk menyediakan beberapa tumpang tindih antara urutan terpotong dan urutan yang meluap. Nilai argumen ini menentukan jumlah token yang tumpang tindih.
  • is_split_into_words (bool, opsional, default False) — Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata). Jika disetel ke True, tokenizer mengasumsikan input sudah dipecah menjadi kata (misalnya, dengan memisahkannya berdasarkan spasi) yang akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.
  • pad_to_multiple_of (int, optional) — If set will pad the sequence to a multiple of the provided value. Requires padding to 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 (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek Numpy np.ndarray.
  • **kwargs — Diteruskan ke metode .tokenize().

Mengembalikan

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

ID tokenisasi dari teks.

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

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

push_to_hub

< >

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

Parameter

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

Unggah file tokenizer ke 🤗 Model Hub.

Contoh:

from transformers import AutoTokenizer

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

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

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

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Parameter

  • token_ids_0 (list[int]) — Daftar ID tempat token khusus akan ditambahkan.
  • token_ids_1 (list[int], opsional) — Daftar ID kedua opsional untuk pasangan sekuens.

Mengembalikan

list[int]

Daftar ID input dengan token khusus yang sesuai.

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

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Parameter

  • token_ids_0 (list[int]) — Daftar ID.
  • token_ids_1 (list[int], opsional) — Daftar ID kedua opsional untuk pasangan sekuens.

Mengembalikan

list[int]

ID tipe token sesuai dengan pola yang dikonfigurasi.

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 pairs

get_added_vocab

< >

( ) → 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

< >

( 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, default False) — 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

< >

( pair: bool = False ) → int

Parameter

  • pair (bool, opsional, default False) — Apakah jumlah token yang ditambahkan harus dihitung untuk kasus pasangan sekuens atau sekuens tunggal.

Mengembalikan

int

Jumlah token khusus yang ditambahkan ke dalam sekuens.

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

< >

( 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 )

Parameter

  • ids — ID input yang telah ditokenisasi dari urutan pertama.
  • pair_ids — ID input bertoken dari urutan kedua (opsional).

Menyiapkan urutan id input agar dapat digunakan oleh model. Menambahkan token khusus, memotong, dan mengisi (padding).

prepare_for_tokenization

< >

( 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, default False) — Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata). Jika disetel ke True, tokenizer mengasumsikan input sudah dipecah menjadi kata (misalnya, dengan memisahkannya berdasarkan spasi) yang akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.
  • 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

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

Parameter

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

Mengembalikan

tuple[str, ...]

Path ke file yang disimpan, atau tuple kosong jika tidak ada file yang disimpan.

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

< >

( text: str**kwargs )

Parameter

  • text — Urutan yang akan dikodekan.
  • **kwargs — Diteruskan ke metode pra-pemrosesan prepare_for_tokenization yang spesifik untuk model.

Mengonversi string menjadi urutan token, menggunakan tokenizer.

truncate_sequences

< >

( 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

< >

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

__call__

< >

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

Parameter

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

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

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

    Apa itu token type ID?

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

    Apa itu attention mask?

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

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

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

Mengembalikan

BatchEncoding

BatchEncoding dengan bidang berikut:

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

    Apa itu input ID?

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

    Apa itu token type ID?

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

    Apa itu attention mask?

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

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

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

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

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

add_tokens

< >

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

Parameter

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

Mengembalikan

int

Jumlah token yang ditambahkan ke dalam kosakata.

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

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

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

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

from tokenizers import pre_tokenizers

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

Contoh:

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

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

add_special_tokens

< >

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

Parameter

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

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

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

Mengembalikan

int

Jumlah token yang ditambahkan ke dalam kosakata.

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

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

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

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

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

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

Contoh:

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

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

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

assert tokenizer.cls_token == "<CLS>"

apply_chat_template

< >

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

Parameter

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

Mengembalikan

Union[list[int], Dict]

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

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

batch_decode

< >

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

Parameter

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

Mengembalikan

list[str]

Daftar kalimat yang telah didekode.

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

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

decode

< >

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

Parameter

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

Mengembalikan

Union[str, list[str]]

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

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

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

encode

< >

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

Parameter

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

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

  • stride (int, opsional, default 0) — Jika diatur ke sebuah angka bersama dengan max_length, token yang meluap yang dikembalikan saat return_overflowing_tokens=True akan berisi beberapa token dari akhir urutan terpotong yang dikembalikan untuk menyediakan beberapa tumpang tindih antara urutan terpotong dan urutan yang meluap. Nilai argumen ini menentukan jumlah token yang tumpang tindih.
  • is_split_into_words (bool, opsional, default False) — Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata). Jika disetel ke True, tokenizer mengasumsikan input sudah dipecah menjadi kata (misalnya, dengan memisahkannya berdasarkan spasi) yang akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.
  • pad_to_multiple_of (int, optional) — If set will pad the sequence to a multiple of the provided value. Requires padding to 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 (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek Numpy np.ndarray.
  • **kwargs — Diteruskan ke metode .tokenize().

Mengembalikan

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

ID tokenisasi dari teks.

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

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

push_to_hub

< >

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

Parameter

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

Unggah file tokenizer ke 🤗 Model Hub.

Contoh:

from transformers import AutoTokenizer

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

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

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

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

Bangun backend tokenizers.Tokenizer dari file serialisasi yang tersedia (tokenizer.json, model sentencepiece, tekken.json, vocab/merges).

get_added_vocab

< >

( ) → 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

< >

( pair: bool = False ) → int

Parameter

  • pair (bool, opsional, default False) — Apakah jumlah token yang ditambahkan harus dihitung untuk kasus pasangan sekuens atau sekuens tunggal.

Mengembalikan

int

Jumlah token khusus yang ditambahkan ke dalam sekuens.

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

< >

( 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 sebagai tekken.json asli dengan menyalin file asli (memerlukan file kosakata tekken asli tersedia). Nama akan dinormalisasi menjadi tekken.json saat disimpan, dan tokenizer yang diinstansiasi harus masih cocok dengan file tersebut secara persis. "hf" atau None untuk 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

< >

( 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

< >

( 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 str atau AddedToken, 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.

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.

update_post_processor

< >

( )

Memperbarui post processor dasar dengan bos_token dan eos_token saat ini.

PythonBackend

kelas transformers.PythonBackend

< >

( **kwargs )

Parameter

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

Kelas dasar untuk semua 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 berupa short-cut-names dari model pretrained, dengan nilai terkait berupa url ke file kosakata pretrained yang terkait.
  • model_input_names (list[str]) — Daftar input yang diharapkan dalam forward pass model.
  • padding_side (str) — Nilai default untuk sisi tempat model harus menerapkan padding. Harus berupa 'right' atau 'left'.
  • truncation_side (str) — Nilai default untuk sisi tempat model harus menerapkan pemotongan. Harus berupa 'right' atau 'left'.

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Parameter

  • token_ids_0 (list[int]) — Daftar ID tempat token khusus akan ditambahkan.
  • token_ids_1 (list[int], opsional) — Daftar ID kedua opsional untuk pasangan sekuens.

Mengembalikan

list[int]

Daftar ID input dengan token khusus yang sesuai.

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

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Parameter

  • token_ids_0 (list[int]) — Daftar ID.
  • token_ids_1 (list[int], opsional) — Daftar ID kedua opsional untuk pasangan sekuens.

Mengembalikan

list[int]

ID tipe token sesuai dengan pola yang dikonfigurasi.

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 pairs

get_added_vocab

< >

( ) → 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

< >

( 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, default False) — 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

< >

( pair: bool = False ) → int

Parameter

  • pair (bool, opsional, default False) — Apakah jumlah token yang ditambahkan harus dihitung untuk kasus pasangan sekuens atau sekuens tunggal.

Mengembalikan

int

Jumlah token khusus yang ditambahkan ke dalam sekuens.

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

< >

( 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 )

Parameter

  • ids — ID input yang telah ditokenisasi dari urutan pertama.
  • pair_ids — ID input bertoken dari urutan kedua (opsional).

Menyiapkan urutan id input agar dapat digunakan oleh model. Menambahkan token khusus, memotong, dan mengisi (padding).

prepare_for_tokenization

< >

( 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, default False) — Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata). Jika disetel ke True, tokenizer mengasumsikan input sudah dipecah menjadi kata (misalnya, dengan memisahkannya berdasarkan spasi) yang akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.
  • 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

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

Parameter

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

Mengembalikan

tuple[str, ...]

Path ke file yang disimpan, atau tuple kosong jika tidak ada file yang disimpan.

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

< >

( text: str**kwargs )

Parameter

  • text — Urutan yang akan dikodekan.
  • **kwargs — Diteruskan ke metode pra-pemrosesan prepare_for_tokenization yang spesifik untuk model.

Mengonversi string menjadi urutan token, menggunakan tokenizer.

truncate_sequences

< >

( 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

< >

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

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

Bangun backend tokenizers.Tokenizer dari file serialisasi yang tersedia (tokenizer.json, model sentencepiece, tekken.json, vocab/merges).

get_added_vocab

< >

( ) → 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

< >

( pair: bool = False ) → int

Parameter

  • pair (bool, opsional, default False) — Apakah jumlah token yang ditambahkan harus dihitung untuk kasus pasangan sekuens atau sekuens tunggal.

Mengembalikan

int

Jumlah token khusus yang ditambahkan ke dalam sekuens.

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

< >

( 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 sebagai tekken.json asli dengan menyalin file asli (memerlukan file kosakata tekken asli tersedia). Nama akan dinormalisasi menjadi tekken.json saat disimpan, dan tokenizer yang diinstansiasi harus masih cocok dengan file tersebut secara persis. "hf" atau None untuk 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

< >

( 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

< >

( 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 str atau AddedToken, 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.

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.

update_post_processor

< >

( )

Memperbarui post processor dasar dengan bos_token dan eos_token saat ini.

SentencePieceBackend

kelas transformers.SentencePieceBackend

< >

( **kwargs )

Parameter

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

Kelas dasar untuk 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 berupa short-cut-names dari model pretrained, dengan nilai terkait berupa url ke file kosakata pretrained yang terkait.
  • model_input_names (list[str]) — Daftar input yang diharapkan dalam forward pass model.
  • padding_side (str) — Nilai default untuk sisi tempat model harus menerapkan padding. Harus berupa 'right' atau 'left'.
  • truncation_side (str) — Nilai default untuk sisi tempat model harus menerapkan pemotongan. Harus berupa 'right' atau 'left'.

convert_tokens_to_string

< >

( tokens: list )

Mengonversi urutan token (string) dalam satu string.

get_vocab

< >

( )

Mengembalikan vocab sebagai dict

save_vocabulary

< >

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

Parameter

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

Mengembalikan

tuple(str)

Path ke file yang disimpan.

Simpan kosakata sentencepiece (salin file asli) ke sebuah direktori.

BatchEncoding

kelas transformers.BatchEncoding

< >

( 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.Encoding atau Sequence[tokenizers.Encoding], opsional) — Jika tokenizer adalah fast tokenizer yang mengoutputkan informasi tambahan seperti pemetaan dari ruang kata/karakter ke ruang token, instance tokenizers.Encoding atau 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, default False) — Apakah akan menambahkan sumbu batch saat mengonversi ke tensor (lihat tensor_type di atas). Perhatikan bahwa parameter ini berpengaruh jika parameter tensor_type disetel, tidak berpengaruh jika tidak.
  • n_sequences (Optional[int], opsional) — Jumlah urutan input yang direpresentasikan oleh setiap encoding (None untuk tidak diketahui, 1 untuk satu urutan, dan 2 untuk 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

< >

( 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 1
  • self.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

< >

( 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 1
  • self.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

< >

( tensor_type: str | TensorType | None = Noneprepend_batch_axis: bool = False )

Parameter

  • tensor_type (str atau TensorType, opsional) — Jenis tensor yang akan digunakan. Jika str, harus salah satu nilai dari enum TensorType. Jika None, tidak ada modifikasi yang dilakukan.
  • prepend_batch_axis (bool, opsional, default False) — Apakah akan menambahkan dimensi batch selama konversi.

Konversi konten internal menjadi tensor.

sequence_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

Parameter

  • batch_index (int, opsional, default 0) — Indeks untuk mengakses dalam batch.

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:

  • None untuk token khusus yang ditambahkan di sekitar atau di antara urutan,
  • 0 untuk token yang sesuai dengan kata dalam urutan pertama,
  • 1 untuk token yang sesuai dengan kata dalam urutan kedua ketika sepasang urutan dikodekan secara bersama.

ke

< >

( device: str | torch.device | intnon_blocking: bool = False ) → BatchEncoding

Parameter

  • device (str atau torch.device atau int) — Perangkat untuk menempatkan tensor.
  • non_blocking (bool) — Apakah akan melakukan salinan secara asinkron.

Mengembalikan

BatchEncoding

Instans yang sama setelah dimodifikasi.

Kirim semua nilai ke perangkat dengan memanggil v.to(device, non_blocking=non_blocking) (hanya PyTorch).

token_to_chars

< >

( 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

CharSpan

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 1
  • self.token_to_chars(batch_index, token_index) jika ukuran batch lebih besar atau sama dengan 1

token_to_sequence

< >

( 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 1
  • self.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

< >

( 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 1
  • self.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

< >

( batch_index: int = 0 ) → list[str]

Parameter

  • batch_index (int, opsional, default 0) — Indeks untuk mengakses dalam batch.

Mengembalikan

list[str]

Daftar token pada indeks tersebut.

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

< >

( batch_index: int = 0 ) → list[Optional[int]]

Parameter

  • batch_index (int, opsional, default 0) — Indeks untuk mengakses dalam batch.

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

< >

( 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 1
  • self.word_to_chars(batch_index, word_index) jika ukuran batch lebih besar atau sama dengan 1

word_to_tokens

< >

( 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 1
  • self.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.

Update on GitHub