Transformers documentation

Tokenizörler için yardımcı programlar

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

Tokenizörler için yardımcı programlar

Bu sayfa, PreTrainedTokenizer ve PreTrainedTokenizerFast arasındaki ortak yöntemleri uygulayan PreTrainedTokenizerBase sınıfı başta olmak üzere, tokenizörler tarafından kullanılan tüm yardımcı işlevleri listeler.

Bunların çoğu, kütüphanedeki tokenizörlerin kodunu inceliyorsanız işe yarar.

PreTrainedTokenizerBase

sınıf transformers.PreTrainedTokenizerBase

< >

( **kwargs )

Parametreler

  • model_max_length (int, isteğe bağlı) — Dönüştürücü modeline girecek girdilerin maksimum uzunluğu (token sayısı cinsinden). Tokenizer from_pretrained() ile yüklendiğinde, bu değer max_model_input_sizes içinde ilgili model için saklanan değere ayarlanır (bkz. yukarı). Bir değer sağlanmazsa, varsayılan olarak VERY_LARGE_INTEGER (int(1e30)) kullanılır.
  • padding_side (str, isteğe bağlı) — Modelin padding uygulanması gereken tarafı. [‘right’, ‘left’] arasından seçilmelidir. Varsayılan değer, aynı ada sahip sınıf özelliğinden seçilir.
  • truncation_side (str, isteğe bağlı) — Modelin kırpma işlemi uygulanması gereken tarafı. [‘right’, ‘left’] arasında seçilmelidir. Varsayılan değer, aynı ada sahip sınıf özelliğinden seçilir.
  • chat_template (str, isteğe bağlı) — Sohbet mesajı listelerini biçimlendirmek için kullanılacak bir Jinja şablon dizesi. Tam açıklama için bkz. https://huggingface.co/docs/transformers/chat_templating.
  • model_input_names (list[string], isteğe bağlı) — Modelin ileri geçişinin kabul ettiği girdilerin listesi (örneğin "token_type_ids" veya "attention_mask"). Varsayılan değer, aynı ada sahip sınıf özniteliğinden seçilir.
  • bos_token (str veya tokenizers.AddedToken, isteğe bağlı) — Bir cümlenin başlangıcını temsil eden özel bir belirteç.
  • eos_token (str veya tokenizers.AddedToken, isteğe bağlı) — Bir cümlenin sonunu temsil eden özel bir belirteç.
  • unk_token (str veya tokenizers.AddedToken, isteğe bağlı) — Sözlük dışı bir tokenı temsil eden özel bir token.
  • sep_token (str veya tokenizers.AddedToken, isteğe bağlı) — Aynı girdideki iki farklı cümleyi ayıran özel bir belirteç (örneğin BERT tarafından kullanılır).
  • pad_token (str veya tokenizers.AddedToken, isteğe bağlı) — Toplu işlem (batching) amacıyla token dizilerini aynı boyuta getirmek için kullanılan özel bir token. Dikkat mekanizmaları veya kayıp hesabı tarafından yok sayılır.
  • cls_token (str veya tokenizers.AddedToken, isteğe bağlı) — Girdinin sınıfını temsil eden özel bir jeton (örneğin BERT tarafından kullanılır).
  • mask_token (str veya tokenizers.AddedToken, isteğe bağlı) — Maskelenmiş bir tokenı temsil eden özel bir token (BERT gibi maskeli dil modelleme ön eğitim hedeflerinde kullanılır). self.mask_token ve self.mask_token_id ile ilişkilendirilecektir.
  • extra_special_tokens (str veya tokenizers.AddedToken listesi, isteğe bağlı) — Modelle ilgili ek özel tokenların listesi. skip_special_tokens True olarak ayarlandığında çözümleme sırasında bunların atlanmasını sağlamak için buraya ekleyin. Sözlüğün bir parçası değillerse, sözlüğün sonuna eklenirler.
  • split_special_tokens (bool, isteğe bağlı, varsayılan False) — Özel jetonların (token) tokenizasyon işlemi sırasında bölünüp bölünmeyeceğini belirtir. Bu parametrenin geçirilmesi, tokenizer'ın iç durumunu etkiler. Varsayılan davranış, özel jetonları bölmemektir. Bu, <s> bos_token ise tokenizer.tokenize("<s>") = ['<s>] sonucunu verir. Aksi halde, split_special_tokens=True ise tokenizer.tokenize("<s>") ['<','s', '>'] sonucunu verir.

Tüm tokenizer arka uçları için temel sınıf.

Sınıf özellikleri (türetilen sınıflar tarafından geçersiz kılınır)

  • vocab_files_names (dict[str, str]) — Modelin gerektirdiği her sözlük dosyasının __init__ anahtar kelime adını anahtar olarak, ilgili dosyanın kaydedilmesi için dosya adını (string) değer olarak içeren bir sözlük.
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Sözlüklerin sözlüğü; üst düzey anahtarlar, modelin gerektirdiği her sözlük dosyasının __init__ anahtar kelime adı, alt düzey anahtarlar ise ön eğitilmiş modellerin short-cut-names kısaltmaları olup ilişkili değerler, ilgili ön eğitilmiş sözlük dosyasına giden url adresidir.
  • model_input_names (list[str]) — Modelin forward pass'inde beklenen girdilerin listesi.
  • padding_side (str) — Modelin padding uygulanması gereken tarafı için varsayılan değer. 'right' veya 'left' olmalıdır.
  • truncation_side (str) — Modelde kırpmanın uygulanması gereken taraf için varsayılan değer. 'right' veya 'left' olmalıdır.

__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

Parametreler

  • text (str, list[str], list[list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Diziler metin listesi olarak (önceden tokenize edilmiş) sağlanıyorsa, is_split_into_words=True değerini ayarlamalısınız (dizi grubu ile karışıklığı önlemek için).
  • text_pair (str, list[str], list[list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Diziler metin listesi olarak (önceden tokenize edilmiş) sağlanıyorsa, is_split_into_words=True değerini ayarlamalısınız (dizi grubu ile belirsizliği gidermek için).
  • text_target (str, list[str], list[list[str]], isteğe bağlı) — Hedef metin olarak kodlanacak dizi veya dizi grubu. Her dizi bir dize veya dize listesi (önceden tokenize edilmiş dize) olabilir. Diziler dize listesi (önceden tokenize edilmiş) olarak sağlanıyorsa, is_split_into_words=True değerini ayarlamanız gerekir (dizi grubu ile belirsizliği gidermek için).
  • text_pair_target (str, list[str], list[list[str]], isteğe bağlı) — Hedef metinler olarak kodlanacak dizi veya dizi partisi. Her dizi bir dize veya dize listesi (önceden tokenize edilmiş dize) olabilir. Diziler dize listesi (önceden tokenize edilmiş) olarak sağlanıyorsa, is_split_into_words=True değerini ayarlamanız gerekir (dizi partisiyle olan belirsizliği gidermek için).
  • tokenizer_kwargs (dict[str, Any], isteğe bağlı) — Tokenizöre iletilecek ek kwargs. Bunlar, açık parametreler ve diğer kwargs ile birleştirilir; açık parametreler önceliklidir.
  • add_special_tokens (bool, isteğe bağlı, varsayılan True) — Dizileri kodlarken özel token eklenip eklenmeyeceğini belirtir. Bu, girdi kimliklerine otomatik olarak hangi tokenların ekleneceğini tanımlayan alttaki PretrainedTokenizerBase.build_inputs_with_special_tokens işlevini kullanır. bos veya eos tokenlarını otomatik olarak eklemek istiyorsanız bu işe yarar.
  • padding (bool, str veya PaddingStrategy, isteğe bağlı, varsayılan olarak False) — Dolgu işlemini etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:
    • True veya 'longest': Toplu işlemdeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlanırsa dolgu yapılmaz).
    • 'max_length': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.
    • False veya 'do_not_pad' (varsayılan): Dolgu yok (yani, farklı uzunluklarda diziler içeren bir parti çıktı olarak üretilebilir).
  • truncation (bool, str veya TruncationStrategy, isteğe bağlı, varsayılan olarak False) — Kesmeyi (truncation) etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:
    • True veya 'longest_first': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltılır. Bu işlem, token bazında kısaltma yapar; bir çift dizi (veya çift dizilerden oluşan bir batch) sağlandığında, çiftteki en uzun diziden bir token kaldırılır.
    • 'only_first': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltır. Bir çift dizi (veya çiftlerin bir partisi) sağlandığında, yalnızca çiftin ilk dizisini kısaltır.
    • 'only_second': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum girdi uzunluğuna kısaltılır. Bu, bir dizi çifti (veya çiftlerin bir partisi) sağlandığında yalnızca çiftin ikinci dizisini kısaltır.
    • False veya 'do_not_truncate' (varsayılan): Kesme yapılmaz (yani, modelin kabul edebileceği maksimum giriş boyutundan daha uzun dizi uzunluklarına sahip bir çıktı partisi üretilebilir).
  • max_length (int, isteğe bağlı) — Bir kesme/doldurma parametresi tarafından kullanılacak maksimum uzunluğu kontrol eder.

    Eğer ayarlanmazsa veya None olarak ayarlanırsa, kırpma/dolgu parametrelerinden biri tarafından bir maksimum uzunluk gerekiyorsa, bu, önceden tanımlanmış modelin maksimum uzunluğunu kullanır. Modelin belirli bir maksimum giriş uzunluğu yoksa (XLNet gibi), maksimum uzunluğa kırpma/dolgu devre dışı bırakılır.

  • stride (int, isteğe bağlı, varsayılan 0) — max_length ile birlikte bir sayıya ayarlanırsa, return_overflowing_tokens=True olduğunda döndürülen taşan jetonlar, kısaltılmış ve taşan diziler arasında bazı örtüşme sağlamak için kısaltılmış dizinin sonundan bazı jetonları içerir. Bu argümanın değeri, örtüşen jeton sayısını tanımlar.
  • is_split_into_words (bool, isteğe bağlı, varsayılan False) — Girdinin zaten önceden tokenize edilip edilmediğini (örneğin, kelimelere ayrılmış olup olmadığını) belirtir. True olarak ayarlanırsa, tokenizer, girdinin zaten kelimelere ayrılmış olduğunu (örneğin, boşluklara göre bölünerek) ve bunları tokenize edeceğini varsayar. Bu, NER veya token sınıflandırma için faydalıdır.
  • pad_to_multiple_of (int, isteğe bağlı) — Belirlenirse, diziyi verilen değerin katına kadar doldurur. Bunun için padding etkinleştirilmelidir. Bu, hesaplama yeteneği >= 7.5 (Volta) olan NVIDIA donanımlarında Tensor Çekirdeklerinin kullanımını etkinleştirmek için özellikle faydalıdır.
  • padding_side (str, isteğe bağlı) — Modelin padding uygulanması gereken tarafı. [‘right’, ‘left’] arasından seçilmelidir. Varsayılan değer, aynı ada sahip sınıf özelliğinden seçilir.
  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, Python tamsayı listesi yerine tensörler döndürülür. Kabul edilen değerler şunlardır:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': Numpy np.ndarray nesnelerini döndürür.
  • return_token_type_ids (bool, isteğe bağlı) — Token type ID'lerinin döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre token type ID'lerini döndürür; bu, return_outputs özniteliği tarafından tanımlanır.

    Token type ID'leri nelerdir?

  • return_attention_mask (bool, isteğe bağlı) — Dikkat maskesinin (attention mask) döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre dikkat maskesini döndürür; bu, return_outputs özniteliği ile tanımlanır.

    Dikkat maskeleri nedir?

  • return_overflowing_tokens (bool, isteğe bağlı, varsayılan False) — Taşan token dizilerinin döndürülüp döndürülmeyeceği. Girdi kimlikleri çiftlerinden (veya çiftlerden oluşan bir partiden) truncation_strategy = longest_first veya True ile sağlanırsa, taşan tokenlar döndürülmek yerine bir hata oluşturulur.
  • return_special_tokens_mask (bool, isteğe bağlı, varsayılan False) — Özel jeton maskesi bilgisinin döndürülüp döndürülmemesi.
  • return_offsets_mapping (bool, isteğe bağlı, varsayılan olarak False) — Her token için (char_start, char_end) dönüp döndürmeyeceğini belirtir.

    Bu özellik yalnızca PreTrainedTokenizerFast sınıfından türeyen hızlı tokenizörlerde kullanılabilir; Python tokenizörü kullanılırsa bu yöntem NotImplementedError hatası fırlatır.

  • return_length (bool, isteğe bağlı, varsayılan False) — Kodlanmış girdilerin uzunluklarının döndürülüp döndürülmeyeceği.
  • verbose (bool, isteğe bağlı, varsayılan True) — Daha fazla bilgi ve uyarı basılıp basılmayacağı.
  • **kwargs — self.tokenize() yöntemine iletilir

Dönüş değeri

BatchEncoding

Aşağıdaki alanlara sahip bir BatchEncoding:

  • input_ids — Bir modele verilecek token kimliklerinin listesi.

    Girdi kimlikleri nelerdir?

  • token_type_ids — Bir modele verilecek token türü kimlikleri listesi (return_token_type_ids=True olduğunda veya “token_type_ids”, self.model_input_names içinde olduğunda).

    Token type ID'leri nelerdir?

  • attention_mask — Modelin hangi jetonlara dikkat etmesi gerektiğini belirleyen indeks listesi (return_attention_mask=True olduğunda veya self.model_input_names içinde “attention_mask” varsa).

    Dikkat maskeleri nedir?

  • overflowing_tokens — Taşan token dizileri listesi (max_length belirtildiğinde ve return_overflowing_tokens=True olduğunda).

  • num_truncated_tokens — Kırpılan token sayısı (max_length belirtildiğinde ve return_overflowing_tokens=True olduğunda).

  • special_tokens_mask — 0 ve 1'lerden oluşan liste; 1 eklenen özel tokenları, 0 ise normal dizi tokenlarını belirtir (add_special_tokens=True ve return_special_tokens_mask=True olduğunda).

  • length — Girdilerin uzunluğu (return_length=True olduğunda)

Bir veya birden fazla diziyi veya bir veya birden fazla dizi çiftini belirteçlere ayırmak ve model için hazırlamak için ana yöntem.

add_special_tokens

< >

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

Parametreler

  • special_tokens_dict (sözlük str ile str, tokenizers.AddedToken, veya Sequence[Union[str, AddedToken]]) — Anahtarlar, önceden tanımlanmış özel öznitelikler listesinde olmalıdır: [bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    Tokenler, sözlükte zaten yoklarsa eklenir (bunu, tokenizer'ın onlara unk_token dizinini atayıp atamadığını kontrol ederek test edilir).

  • replace_extra_special_tokens (bool, isteğe bağlı, varsayılan True) — True ise, mevcut ek özel token listesi, special_tokens_dict içinde sağlanan liste ile değiştirilir. Aksi takdirde, extra_special_tokens genişletilir. İlk durumda, tokenlar tokenizer’ın tam sözlüğünden KALDIRILMAZ - yalnızca özel olmayan token olarak işaretlenir. Unutmayın, bu yalnızca çözümleme sırasında atlanan tokenları etkiler, added_tokens_encoder ve added_tokens_decoder’i değil. Bu, önceki extra_special_tokens’ün hâlâ eklenmiş tokenlar olduğu ve model tarafından bölünmeyeceği anlamına gelir.

Dönüş değeri

int

Sözlüğe eklenen token sayısı.

Özel jetonların (eos, pad, cls vb.) sözlüğünü kodlayıcıya ekleyin ve bunları sınıf özniteliklerine bağlayın. Özel jetonlar sözlükte DEĞİLSE, sözlüğe eklenirler (mevcut sözlüğün son dizininden başlayarak indekslenir).

Sözlüğe yeni token eklerken, modelin token gömme matrisini yeniden boyutlandırmanız ve gömme matrisinin tokenizer ile eşleşmesini sağlamaya dikkat etmeniz gerekir.

Bunu yapmak için lütfen resize_token_embeddings() yöntemini kullanın.

add_special_tokens kullanmak, özel jetonlarınızın çeşitli şekillerde kullanılmasını sağlar:

  • Özel jetonlar, skip_special_tokens = True kullanılarak çözümlenirken atlanabilir.
  • Özel jetonlar, AddedTokens benzeri şekilde, tokenizer tarafından dikkatle işlenir (asla bölünmezler).
  • Özel jetonlara tokenizer.cls_token gibi tokenizer sınıf öznitelikleri aracılığıyla kolayca başvurabilirsiniz. Bu, modelden bağımsız eğitim ve ince ayar betikleri geliştirmeyi kolaylaştırır.

Mümkün olduğunda, özel jetonlar sağlanan önceden eğitilmiş modeller için zaten kayıtlıdır (örneğin BertTokenizer cls_token zaten '[CLS]' olarak kayıtlıdır ve XLM'ninkisi de '</s>' olarak kayıtlıdır).

Örnekler:

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

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

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

assert tokenizer.cls_token == "<CLS>"

add_tokens

< >

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

Parametreler

  • new_tokens (str, tokenizers.AddedToken veya str ya da tokenizers.AddedToken dizisi) — Tokenler yalnızca sözlükte henüz yoklarsa eklenir. tokenizers.AddedToken, bir dize tokenını sarar ve davranışını kişiselleştirmenizi sağlar: bu tokenın yalnızca tek bir kelimeyle eşleşip eşleşmeyeceği, sol taraftaki tüm olası boşlukları kaldırıp kaldırmayacağı, sağ taraftaki tüm olası boşlukları kaldırıp kaldırmayacağı vb.
  • special_tokens (bool, isteğe bağlı, varsayılan False) — Token'ın özel olup olmadığını belirtir. Bu, büyük ölçüde normalizasyon davranışını değiştirir. HuggingFace tokenizers kütüphanesindeki tokenizers.AddedToken için ayrıntılara bakın.

Dönüş değeri

int

Sözlüğe eklenen token sayısı.

#TODO buradan kaldır! PreTrainedTokenizerBase, AddedToken'dan bağımsız olmalıdır.

Yeni token listesini ekleyin. Yeni tokenler sözlükte yoksa, sonuna eklenir. Bu nedenle eklenen tokenler ve tokenizasyon algoritmasının sözlüğündeki tokenler aynı şekilde ele alınmaz.

Metaspace ön-ayırıcı kullanan ve prepend_scheme="always" parametresiyle (ör. NLLB) çalışan hızlı ayırıcılar, eklenen bir token'ın ardından gelen metnin başına "▁" ekler. tokenizer.add_tokens(["abcd"]) çağrısından sonra "abcdgym" metni ["abcd", "▁gym"] olarak ayrılır ve "abcd gym" olarak çözümlenir. Eklenen token'ların kelimelerin içinde görünebileceği durumlarda, ön-ayırıcıyı değiştirin

sadece girdinin başına eklenmesi için prepend_scheme="first" olarak

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
)

Örnekler:

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

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

apply_chat_template

< >

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

Parametreler

  • conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — Şu ana kadarki sohbet geçmişini temsil eden, “role” ve “content” anahtarlarına sahip sözlüklerden oluşan bir liste.
  • tools (list[Union[Dict, Callable]], isteğe bağlı) — Modelin erişebileceği araçların (çağrılabilir fonksiyonların) listesi. Şablon fonksiyon çağrısını desteklemiyorsa bu argüman hiçbir etki yaratmaz. Her araç, aracın adını, açıklamasını ve argüman türlerini belirten bir JSON Schema olarak geçirilmelidir. Daha fazla bilgi için araç kullanımı kılavuzumuza bakın.
  • documents (list[dict[str, str]], isteğe bağlı) — Model RAG (retrieval-augmented generation) gerçekleştiriyorsa modelin erişebileceği belgeleri temsil eden sözlüklerden oluşan bir liste. Şablon RAG'i desteklemiyorsa bu argümanın hiçbir etkisi olmaz. Her belgenin “title” ve “text” anahtarlarını içeren bir sözlük olmasını öneririz.
  • chat_template (str, isteğe bağlı) — Bu dönüştürme için kullanılacak bir Jinja şablonu. Modelin şablonu varsayılan olarak kullanıldığından, bu argümana bir şey geçirmek genellikle gerekmez.
  • add_generation_prompt (bool, isteğe bağlı) — Bu ayar etkinleştirilirse, asistan mesajının başlangıcını gösteren token(lar)ı içeren bir istem, biçimlendirilmiş çıktıya eklenir. Bu, modelden bir yanıt üretmek istediğinizde kullanışlıdır. Bu argümanın herhangi bir etki yaratabilmesi için, sohbet şablonuna (chat template) aktarılacağını ve dolayısıyla şablon tarafından desteklenmesi gerektiğini unutmayın.
  • continue_final_message (bool or str, isteğe bağlı) — Bu ayar etkinleştirilirse, sohbet, sohbetin son mesajının açık uçlu ve herhangi bir EOS token'ı içermeyecek şekilde biçimlendirilir. Model, yeni bir mesaj başlatmak yerine bu mesajı devam ettirir. Bu, modelin yanıtının bir kısmını model için “ön doldurmanıza” olanak tanır. Bir dize geçirilirse, devam edilecek alanın anahtarı olarak kullanılır (ör. “reasoning_content”). add_generation_prompt ile aynı anda kullanılamaz.
  • tokenize (bool, varsayılan True) — Çıktının tokenize edilip edilmeyeceği. False ise çıktı bir dize olacaktır.
  • sanitize_control_tokens (bool, varsayılan False) — Ayarlandığında, mesajlarda, araçlarda veya belgelerde görünen kontrol jetonları sıradan metin olarak kodlanır; böylece yalnızca sohbet şablonunun kendisi tarafından yazılan kontrol jetonları jeton olarak kodlanır. Kontrol jetonları, tokenizer’ın özel jetonları ile tokenizer.chat_control_tokens içindeki eklenen jetonlardır. Bu değişken ayarlanmamışsa, kontrol jetonları sohbet şablonunun metninde ve dizge sabitlerinde görünen eklenen jetonlardan çıkarılır. Yalnızca bütün kontrol jetonları temizlenir; bu nedenle şablon, girdiden dizgeleri kontrol jetonlarına birleştiriyorsa (örneğin '<|' + message['role'] + '|>'), bu dizgelerin ayrı ayrı doğrulanması gerekir. Sözlük anahtarları da temizlenmez.
  • padding (bool, str veya PaddingStrategy, isteğe bağlı, varsayılan olarak False) — Dönen dizilere dolgu uygulanacak stratejiyi seçin (modelin dolgu yönüne ve dolgu indeksine göre):
    • True veya 'longest': Toplu işlemdeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlandıysa dolgu yapılmaz).
    • 'max_length': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.
    • False veya 'do_not_pad' (varsayılan): Dolgu yok (yani, farklı uzunluklarda diziler içeren bir parti çıktı olarak üretilebilir).
  • truncation (bool, varsayılan False) — Dizilerin maksimum uzunlukta kırpılıp kırpılmayacağını belirtir. tokenize False ise etkisi yoktur.
  • max_length (int, isteğe bağlı) — Doldurma veya kısaltma için kullanılacak maksimum uzunluk (token cinsinden). tokenize False ise etkisi yoktur. Belirtilmezse, tokenizer'ın max_length özniteliği varsayılan olarak kullanılır.
  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. tokenize False ise etkisi yoktur. False. Kabul edilen değerler:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': NumPy np.ndarray nesnelerini döndürür.
  • return_dict (bool, varsayılan True) — Adlandırılmış çıktıları içeren bir sözlük döndürülüp döndürülmeyeceğini belirtir. tokenize False ise etkisi yoktur.
  • tokenizer_kwargs (dict[str -- Any], isteğe bağlı): Tokenizöre iletilecek ek kwargs.
  • return_assistant_tokens_mask (bool, varsayılan False) — Asistan tarafından üretilen jetonların bir maskesinin döndürülüp döndürülmediğini belirtir. Asistan tarafından üretilen jetonlar için maske 1 içerir. Kullanıcı ve sistem jetonları için maske 0 içerir. Bu özellik, yalnızca {% generation %} anahtar kelimesi aracılığıyla bunu destekleyen sohbet şablonları için kullanılabilir.
  • **kwargs — Şablon işleyicisine iletilecek ek kwargs. Sohbet şablonu tarafından erişilebilir olacaktır.

Dönüş değeri

Union[list[int], Dict]

Şimdiye kadar tokenize edilmiş sohbeti, kontrol token'ları dahil olmak üzere temsil eden token kimliği listesi. Bu çıktı, doğrudan veya generate() gibi yöntemler aracılığıyla modele iletmeye hazırdır. return_dict ayarlanırsa, bunun yerine tokenizer çıktılarından oluşan bir sözlük döndürülür.

"role" ve "content" anahtarlarına sahip sözlük listesini token kimlikleri listesine dönüştürür. Bu yöntem, sohbet modelleriyle kullanım için tasarlanmıştır ve dönüştürme sırasında kullanılacak biçimi ve kontrol tokenlarını belirlemek için tokenizer'ın chat_template özniteliklerini okur.

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]

Parametreler

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Tokenize edilmiş girdi kimliklerinin listesi. __call__ yöntemi kullanılarak elde edilebilir.
  • skip_special_tokens (bool, isteğe bağlı, varsayılan False) — Çözümleme sırasında özel tokenların kaldırılıp kaldırılmayacağı.
  • clean_up_tokenization_spaces (bool, isteğe bağlı) — Tokenizasyon boşluklarının temizlenip temizlenmeyeceğini belirtir. None ise, varsayılan olarak self.clean_up_tokenization_spaces kullanılır.
  • kwargs (ek anahtar kelime argümanları, isteğe bağlı) — Altta yatan modele özgü decode yöntemine aktarılacaktır.

Dönüş değeri

list[str]

Çözümlenmiş cümlelerin listesi.

decode çağrısı yaparak token kimlikleri içeren listelerin listesini, dizelerin listesine dönüştürün.

Bu yöntem geriye dönük uyumluluk için sağlanmıştır. decode yöntemi artık toplu girdileri yerel olarak işler, bu nedenle batch_decode yerine doğrudan decode kullanabilirsiniz.

clean_up_tokenization

< >

( text: str )

Verilen bir metindeki tokenizasyon boşluklarını temizler. Bu yöntem büyük ölçüde uzaktan kod desteği içindir.

convert_ids_to_tokens

< >

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

Parametreler

  • ids (int veya list[int]) — Token'a dönüştürülecek token kimliği (veya token kimlikleri).
  • skip_special_tokens (bool, isteğe bağlı, varsayılan False) — Çözümleme sırasında özel tokenların kaldırılıp kaldırılmayacağı.

Dönüş değeri

str veya list[str]

Çözümlenmiş token(lar).

Sözlüğü ve eklenen token'ları kullanarak tek bir token'daki veya token dizisindeki tek bir indeksi veya indeks dizisini dönüştürür.

convert_tokens_to_ids

< >

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

Parametreler

  • tokens (str veya list[str]) — Token kimliğine dönüştürülecek bir veya birden fazla token.

Dönüş değeri

int veya list[int]

Token kimliği veya token kimliği listesi.

Sözlüğü kullanarak bir token dizgisini (veya token dizisini) tek bir tamsayı kimliğine (veya kimlik dizisine) dönüştürür.

convert_tokens_to_string

< >

( tokens: list[str] ) → str

Parametreler

  • tokens (list[str]) — Birleşecek token'lar.

Dönüş değeri

str

Birleştirilen jetonlar.

Tek bir dizideki token dizisini dönüştürür. Bunu yapmanın en basit yolu " ".join(tokens) ifadesini kullanmaktır ancak genellikle aynı anda alt kelime tokenizasyon artefaktlarını da kaldırmak isteriz.

decode

< >

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

Parametreler

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Tek bir dizi veya tokenize edilmiş girdi kimliklerinin bir partisi (dizilerin listesi). __call__ yöntemi kullanılarak elde edilebilir.
  • skip_special_tokens (bool, isteğe bağlı, varsayılan False) — Çözümleme sırasında özel tokenların kaldırılıp kaldırılmayacağı.
  • kwargs (ek anahtar kelime argümanları, isteğe bağlı) — Altta yatan modele özgü decode yöntemine aktarılacaktır.

Dönüş değeri

Union[str, list[str]]

Tek bir dizi için çözümlenmiş dize veya bir dizi grubu için çözümlenmiş dizeler listesi.

Özel tokenları kaldırma ve tokenizasyon boşluklarını temizleme seçenekleriyle, tokenizer ve sözlük kullanarak bir kimlik dizisini bir dizeye, veya diziler listesini diziler listesine dönüştürür.

self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)) işlemine benzer.

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

Parametreler

  • text (str, list[str] veya list[int]) — Kodlanacak ilk dizi. Bu, bir dize, bir dize listesi (tokenize yöntemi kullanılarak tokenize edilmiş dize) veya bir tamsayı listesi (convert_tokens_to_ids yöntemi kullanılarak tokenize edilmiş dize kimlikleri) olabilir.
  • text_pair (str, list[str] veya list[int], isteğe bağlı) — Kodlanacak isteğe bağlı ikinci dizi. Bu, bir dize, bir dize listesi (tokenize yöntemi kullanılarak tokenize edilmiş dize) veya bir tamsayı listesi (convert_tokens_to_ids yöntemi kullanılarak tokenize edilmiş dize kimlikleri) olabilir.
  • add_special_tokens (bool, isteğe bağlı, varsayılan True) — Dizileri kodlarken özel token eklenip eklenmeyeceğini belirtir. Bu, girdi kimliklerine otomatik olarak hangi tokenların ekleneceğini tanımlayan alttaki PretrainedTokenizerBase.build_inputs_with_special_tokens işlevini kullanır. bos veya eos tokenlarını otomatik olarak eklemek istiyorsanız bu işe yarar.
  • padding (bool, str veya PaddingStrategy, isteğe bağlı, varsayılan olarak False) — Dolgu işlemini etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:
    • True veya 'longest': Toplu işlemdeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlanırsa dolgu yapılmaz).
    • 'max_length': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.
    • False veya 'do_not_pad' (varsayılan): Dolgu yok (yani, farklı uzunluklarda diziler içeren bir parti çıktı olarak üretilebilir).
  • truncation (bool, str veya TruncationStrategy, isteğe bağlı, varsayılan olarak False) — Kesmeyi (truncation) etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:
    • True veya 'longest_first': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltılır. Bu işlem, token bazında kısaltma yapar; bir çift dizi (veya çift dizilerden oluşan bir batch) sağlandığında, çiftteki en uzun diziden bir token kaldırılır.
    • 'only_first': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltır. Bir çift dizi (veya çiftlerin bir partisi) sağlandığında, yalnızca çiftin ilk dizisini kısaltır.
    • 'only_second': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum girdi uzunluğuna kısaltılır. Bu, bir dizi çifti (veya çiftlerin bir partisi) sağlandığında yalnızca çiftin ikinci dizisini kısaltır.
    • False veya 'do_not_truncate' (varsayılan): Kesme yapılmaz (yani, modelin kabul edebileceği maksimum giriş boyutundan daha uzun dizi uzunluklarına sahip bir çıktı partisi üretilebilir).
  • max_length (int, isteğe bağlı) — Bir kesme/doldurma parametresi tarafından kullanılacak maksimum uzunluğu kontrol eder.

    Eğer ayarlanmazsa veya None olarak ayarlanırsa, kırpma/dolgu parametrelerinden biri tarafından bir maksimum uzunluk gerekiyorsa, bu, önceden tanımlanmış modelin maksimum uzunluğunu kullanır. Modelin belirli bir maksimum giriş uzunluğu yoksa (XLNet gibi), maksimum uzunluğa kırpma/dolgu devre dışı bırakılır.

  • stride (int, isteğe bağlı, varsayılan 0) — max_length ile birlikte bir sayıya ayarlanırsa, return_overflowing_tokens=True olduğunda döndürülen taşan jetonlar, kısaltılmış ve taşan diziler arasında bazı örtüşme sağlamak için kısaltılmış dizinin sonundan bazı jetonları içerir. Bu argümanın değeri, örtüşen jeton sayısını tanımlar.
  • is_split_into_words (bool, isteğe bağlı, varsayılan False) — Girdinin zaten önceden tokenize edilip edilmediğini (örneğin, kelimelere ayrılmış olup olmadığını) belirtir. True olarak ayarlanırsa, tokenizer, girdinin zaten kelimelere ayrılmış olduğunu (örneğin, boşluklara göre bölünerek) ve bunları tokenize edeceğini varsayar. Bu, NER veya token sınıflandırma için faydalıdır.
  • pad_to_multiple_of (int, isteğe bağlı) — Belirlenirse, diziyi verilen değerin katına kadar doldurur. Bunun için padding etkinleştirilmelidir. Bu, hesaplama yeteneği >= 7.5 (Volta) olan NVIDIA donanımlarında Tensor Çekirdeklerinin kullanımını etkinleştirmek için özellikle faydalıdır.
  • padding_side (str, isteğe bağlı) — Modelin padding uygulanması gereken tarafı. [‘right’, ‘left’] arasından seçilmelidir. Varsayılan değer, aynı ada sahip sınıf özelliğinden seçilir.
  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, Python tamsayı listesi yerine tensörler döndürülür. Kabul edilen değerler şunlardır:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': Numpy np.ndarray nesnelerini döndürür.
  • **kwargs — .tokenize() yöntemine iletilir.

Dönüş değeri

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

Metnin tokenize edilmiş kimlikleri.

Dizgiyi, belirteç ayrıştırıcı ve sözlük kullanarak kimlik (tamsay) dizisine dönüştürür.

self.convert_tokens_to_ids(self.tokenize(text)) işlemiyle aynıdır.

encode_message_with_chat_template

< >

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

Parametreler

  • message (dict) — Tokenize edilecek mesajı temsil eden, “role” ve “content” anahtarlarına sahip bir sözlük.
  • conversation_history (list[dict], isteğe bağlı) — Şu ana kadarki sohbet geçmişini temsil eden, “role” ve “content” anahtarlarına sahip sözlüklerden oluşan bir liste. Mesajları tek tek işliyorsanız, konuşmadaki önceki mesajları buradan geçirmelisiniz.
  • **kwargs — apply_chat_template yöntemine iletilecek ek kwargs.

Dönüş değeri

list[int]

Tokenize edilmiş mesajı temsil eden token kimlikleri listesi.

Tek bir mesajı belirteçlere ayırın (tokenize). Bu yöntem, apply_chat_template etrafında bir kolaylık sarmalayıcısıdır ve mesajları tek tek belirteçlere ayırmanıza olanak tanır. Bu, belirteç bazlı akış (streaming) gibi işlemler için faydalıdır. Bu yöntemin kusursuz olması garanti edilemez. Bazı modellerde tek bir mesajı sağlam bir şekilde belirteçlere ayırmak imkansız olabilir. Örneğin, sohbet şablonu her mesajın ardından belirteçler ekliyorsa ancak tüm sohbete eklenen bir öneki (prefix) de varsa, sohbet başlangıç belirtecini (chat-start-token) mesaj başlangıç belirteçlerinden (message-start-token) ayırt etmek imkansız olacaktır. Bu durumlarda, bu yöntem doğru belirteçlemeyi bulmak için elinden geleni yapar, ancak kusursuz olmayabilir. Not: Bu yöntem add_generation_prompt parametresini desteklemez. Bir üretim istemi (generation prompt) eklemek istiyorsanız, bunu sohbeti belirteçlere ayırdıktan sonra ayrı olarak yapmalısınız.

from_pretrained

< >

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

Parametreler

  • pretrained_model_name_or_path (str veya os.PathLike) — Şu seçeneklerden biri olabilir:
    • Bir dize, huggingface.co'daki bir model deposunda barındırılan önceden tanımlanmış bir tokenizer'ın model kimliği.
    • Tokenizer tarafından gerekli olan sözlük dosyalarını içeren, örneğin save_pretrained() yöntemi kullanılarak kaydedilen bir dizin yolunu belirtir, örn. ./my_model_directory/.
    • (Kullanımdan kaldırıldı, tüm türetilmiş sınıflar için geçerli değildir) tek bir kaydedilmiş sözlük dosyasına giden yol (yalnızca Bert veya XLNet gibi tek bir sözlük dosyası gerektiren bir tokenizer için), örneğin ./my_model_directory/vocab.txt.
  • cache_dir (str veya os.PathLike, isteğe bağlı) — Standart önbellek kullanılmayacaksa, indirilen önceden tanımlı tokenizer sözlük dosyalarının önbelleğe alınacağı dizinin yolu.
  • force_download (bool, isteğe bağlı, varsayılan False) — Sözlük dosyalarının (yeniden) indirilmesini zorlayıp mevcut ise önbellekteki sürümleri geçersiz kılıp kılmayacağı.
  • proxies (dict[str, str], isteğe bağlı) — Protokole veya uç noktaya göre kullanılacak vekil sunucuların sözlüğü, örn. {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Vekiller her istekte kullanılır.
  • token (str veya bool, isteğe bağlı) — Uzak dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton. True ise, hf auth login çalıştırıldığında oluşturulan jeton ( ~/.huggingface içinde saklanır) kullanılır.
  • local_files_only (bool, isteğe bağlı, varsayılan False) — Yalnızca yerel dosyalara güvenip dosya indirmeye çalışmama durumu.
  • revision (str, isteğe bağlı, varsayılan "main") — Kullanılacak belirli model sürümü. huggingface.co üzerinde modelleri ve diğer artefaktları depolamak için git tabanlı bir sistem kullandığımız için bir dal adı, etiket adı veya commit kimliği olabilir; bu nedenle revision, git tarafından izin verilen herhangi bir tanımlayıcı olabilir.
  • subfolder (str, isteğe bağlı) — İlgili dosyalar huggingface.co üzerindeki model deposunun bir alt klasöründe konumlanıyorsa (ör. facebook/rag-token-base için), bunu burada belirtin.
  • inputs (ek konumsal argümanlar, isteğe bağlı) — Tokenizer __init__ yöntemine aktarılacaktır.
  • trust_remote_code (bool, isteğe bağlı, varsayılan False) — Hub üzerinde kendi modelleme dosyalarında tanımlanan özel modellere izin verilip verilmeyeceğini belirtir. Bu seçenek, yalnızca güvendiğiniz ve kodunu incelediğiniz depolar için True olarak ayarlanmalıdır; çünkü Hub'da bulunan kodu yerel makinenizde çalıştırır.
  • kwargs (ek anahtar kelime argümanları, isteğe bağlı) — Tokenizer __init__ yöntemine aktarılır. bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens gibi özel belirteçleri ayarlamak için kullanılabilir. Daha fazla ayrıntı için __init__ içindeki parametrelere bakın.

Önceden tanımlanmış bir tokenizer'dan PreTrainedTokenizerBase (veya türetilmiş bir sınıf) örneği oluşturun.

Özel bir model kullanmak istediğinizde token=True parametresini geçmek zorunludur.

Örnekler:

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

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

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

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

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

get_chat_template

< >

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

Parametreler

  • chat_template (str, isteğe bağlı) — Bu dönüştürme için kullanılacak bir Jinja şablonu veya bir şablon adı. Genellikle bu argümana bir şey geçirmek gerekmez, çünkü varsayılan olarak modelin şablonu kullanılır.
  • tools (list[Dict], isteğe bağlı) — Modelin erişebileceği araçların (çağrılabilir fonksiyonların) listesi. Şablon fonksiyon çağrısını desteklemiyorsa, bu argüman hiçbir etki yaratmaz. Her araç, aracın adını, açıklamasını ve argüman türlerini belirten bir JSON Şeması olarak geçirilmelidir. Daha fazla bilgi için sohbet şablonlama kılavuzumuza bakın.

Dönüş değeri

str

Sohbet şablonu dizesi.

Sohbet mesajlarını belirteçleştirmek için kullanılan sohbet şablonu dizesini getirir. Bu şablon, apply_chat_template yöntemi tarafından dahili olarak kullanılır ve ayrıca daha iyi üretim takibi için modelin sohbet şablonunu dışarıdan almak için de kullanılabilir.

get_response_parser

< >

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

Akışta gelen bir yanıtı kademeli olarak ayrıştırmak için durumlu bir ResponseParser döndürür. Aksi belirtilmedikçe, belirteç ayrıştırıcısının response_template özniteliğini kullanır.

prefix (bir dize, token kimliği listesi veya 1B tensör) zorunludur: akış, sohbet istemci bağlamının ima ettiği durumda (spesifikasyondaki start_anchor’dan sağa doğru kırpılmış) başlatılır, böylece stream.feed() üzerinden beslenen üretilen parçalar, sohbet şablonu modelin devam ettiği asistan turu içeriği (ör. <think>\n) yayımladığında bile doğru şekilde sınıflandırılır. Bu parametrenin atlanması bir hata fırlatır; akış gerçekten temiz bir asistan turundan başlıyorsa, bu davranıştan kaçınmak için prefix="" geçin.

tools (list[Union[Dict, Callable]], isteğe bağlı): modelin kullanabileceği araçlar, apply_chat_template'in kabul ettiği aynı formatta. Ayarlandığında, her bölge kapanırken araç çağrısı argümanları, çağrılan aracın JSON şeması kullanılarak dönüştürülür; bu sayede region_close olayları, tiplemiş argümanları taşır.

get_special_tokens_mask

< >

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

Parametreler

  • token_ids_0 — (muhtemelen zaten biçimlendirilmiş) dizinin kimlik listesi.
  • token_ids_1 — already_has_special_tokens=True olduğunda kullanılmaz. Bu durumda None olmalıdır.
  • already_has_special_tokens — Sıralamanın özel jetonlarla zaten biçimlendirilmiş olup olmadığı.

Dönüş değeri

[0, 1] aralığında tamsayıların bir listesi

özel bir jeton için 1, bir dizi jetonu için 0.

Özel tokenlar eklenmemiş bir token listesinden dizi kimliklerini (sequence ids) alın.

Hızlı tokenizörlerde, veri toplayıcılar (data collators) bu işlemi already_has_special_tokens=True parametresiyle çağırarak, biçimlendirilmiş bir dizinin üzerine bir maske oluşturur. Bu durumda, maskeyi all_special_ids içinde üyelik kontrolü yaparak hesaplarız.

get_vocab

< >

( ) → dict[str, int]

Dönüş değeri

dict[str, int]

Kelime dağarcığı.

Sözlüğü, belirteçten indekse giden bir sözlük olarak döndürür.

tokenizer.get_vocab()[token], token sözlükte (vocab) olduğunda tokenizer.convert_tokens_to_ids(token) ile eşdeğerdir.

pad

< >

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

Parametreler

  • encoded_inputs (BatchEncoding, list of BatchEncoding, dict[str, list[int]], dict[str, list[list[int]] veya list[dict[str, list[int]]]) — Tokenize edilmiş girdiler. Tek bir girdiyi temsil edebilir (BatchEncoding veya dict[str, list[int]]) veya tokenize edilmiş girdilerden oluşan bir partiyi (list of BatchEncoding, dict[str, list[list[int]]] veya list[dict[str, list[int]]]) bu sayede bu yöntemi hem ön işleme sırasında hem de PyTorch Dataloader birleştirme (collate) işlevinde kullanabilirsiniz.

    list[int] yerine tensörler (numpy dizileri veya PyTorch tensörleri) kullanabilirsiniz, dönüş tipi için yukarıdaki notu inceleyin.

  • padding (bool, str veya PaddingStrategy, isteğe bağlı, varsayılan olarak True) — Dönen dizilere dolgu uygulanacak stratejiyi seçin (modelin dolgu yönüne ve dolgu indeksine göre):
    • True veya 'longest' (varsayılan): Batch içindeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlandıysa dolgu yapılmaz).
    • 'max_length': max_length argümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.
    • False veya 'do_not_pad': Dolgu yok (yani, farklı uzunluklarda dizilere sahip bir parti çıktı olarak verilebilir).
  • max_length (int, isteğe bağlı) — Döndürülen listenin ve isteğe bağlı dolgu uzunluğunun (bkz. yukarı) maksimum uzunluğu.
  • pad_to_multiple_of (int, isteğe bağlı) — Belirlenirse, diziyi verilen değerin katına kadar doldurur.

    Bu, hesaplama yeteneği >= 7.5 (Volta) olan NVIDIA donanımlarında Tensor Core kullanımını etkinleştirmek için özellikle faydalıdır.

  • padding_side (str, isteğe bağlı) — Modelin padding uygulanması gereken tarafı. [‘right’, ‘left’] arasından seçilmelidir. Varsayılan değer, aynı ada sahip sınıf özelliğinden seçilir.
  • return_attention_mask (bool, isteğe bağlı) — Dikkat maskesinin (attention mask) döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre dikkat maskesini döndürür; bu, return_outputs özniteliği ile tanımlanır.

    Dikkat maskeleri nedir?

  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, Python tamsayı listesi yerine tensörler döndürülür. Kabul edilen değerler şunlardır:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': Numpy np.ndarray nesnelerini döndürür.
  • verbose (bool, isteğe bağlı, varsayılan True) — Daha fazla bilgi ve uyarı basılıp basılmayacağı.

Tek bir kodlanmış girdiyi veya kodlanmış girdilerden oluşan bir partiyi, önceden tanımlanmış uzunluğa veya partideki en uzun dizi uzunluğuna kadar doldurun.

Doldurma tarafı (sol/sağ) doldurma belirteç kimlikleri, belirteçleştirici düzeyinde tanımlanır (self.padding_side, self.pad_token_id ve self.pad_token_type_id ile).

Hızlı bir tokenizer ile __call__ metodunu kullanmanın, metni kodlamak için bir metot kullanıp ardından dolgulu bir kodlama almak için pad metodunu çağırmaktan daha hızlı olduğunu lütfen unutmayın.

encoded_inputs olarak numpy dizileri sözlüğü veya PyTorch tensörleri geçirilirse, sonuç, return_tensors ile farklı bir tensör türü belirtmedikçe aynı türü kullanır. PyTorch tensörleri durumunda, tensörlerinizin belirli cihazını kaybedersiniz.

parse_response

< >

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

Parametreler

  • response (str, token kimlikleri, 1B/2B tensör veya bunlardan birinin listesi) — Model tarafından üretilen çıktı. Tek bir dizi (str / list[int] / 1B dizi / 1B tensör) veya bir parti (list[str] / list[list[int]] / 2B dizi / 2B tensör) olarak çözümlenmiş metin veya token kimlikleri. Not: Bu alan yalnızca model çıktısını içermeli, önceki istem metnini değil (o prefix alanına gider).
  • schema (dict, isteğe bağlı) — Beklenen çıktı biçimini ve ayrıştırmanın nasıl yapılacağını gösteren bir yanıt şablonu. Sağlanmazsa, tokenizer’ın response_template özniteliği kullanılır.
  • prefix (str, token ids, 1D/2D tensor, or a list of these) — Üretimden önce gelen istem (prompt). Birçok sohbet şablonu mesajın bir kısmını önceden yazdığından, doğru ayrıştırma için istemi görmemiz gerekir. Toplu (batched) bir response için, tek bir prefix (her öğeye yayılır) veya öğe başına bir prefix geçirin.
  • tools (list[Union[Dict, Callable]], isteğe bağlı) — Modelin kullanabileceği araçlar, apply_chat_template'in kabul ettiği aynı formatta. Geçirildiğinde, araç çağrısı argümanları çağrılan aracın JSON şeması kullanılarak dönüştürülür: "7" bir tamsayı parametresi için 7 olurken bir dize parametresi için "7" olarak kalır.

Bir modelden metin üretilerek oluşturulan çıktı dizgesini, ayrıştırılmış bir mesaj sözlüğüne dönüştürür. Bu yöntem, sohbet modelleriyle kullanım için tasarlanmıştır ve doğrudan bir schema argümanı geçirilmediği sürece ayrıştırma işlemini kontrol etmek için tokenizer'ın response_template özniteliğini okur.

Tek bir dizi veya bir parti kabul eder. Tek bir dizi (bir dize veya token kimliklerinden oluşan 1B bir dizi) tek bir ayrıştırılmış mesaj dict döndürür; bir parti (dizeler listesi, token kimliği dizileri listesi veya 2B bir tensör/dizi) ise her öğe için bir tane olmak üzere ayrıştırılmış mesaj dict'lerinden oluşan bir list döndürür.

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 )

Parametreler

  • repo_id (str) — Tokenizörünüzü göndermek istediğiniz depoyun adı. Belirli bir organizasyona gönderirken organizasyon adınızı içermelidir.
  • commit_message (str, isteğe bağlı) — İterken iletilecek mesaj. Varsayılan olarak "Upload tokenizer" olur.
  • commit_description (str, isteğe bağlı) — Oluşturulacak commit'in açıklaması
  • private (bool, isteğe bağlı) — Deponun özel yapılıp yapılmayacağı. None (varsayılan) ise, organizasyonun varsayılanı özel değilse depo herkese açık olur. Depo zaten mevcutsa bu değer yok sayılır.
  • token (bool veya str, isteğe bağlı) — Uzak dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton. True (varsayılan) ise, hf auth login çalıştırıldığında oluşturulan jeton ( ~/.huggingface içinde saklanır) kullanılır.
  • revision (str, isteğe bağlı) — Yüklenen dosyaların itileceği dal.
  • create_pr (bool, isteğe bağlı, varsayılan False) — Yüklenen dosyalarla bir PR oluşturulup oluşturulmayacağı veya doğrudan commit atılıp atılmayacağı.
  • max_shard_size (int veya str, isteğe bağlı, varsayılan "50GB") — Yalnızca modeller için geçerlidir. Bir kontrol noktasının parçalanmadan önceki maksimum boyutu. Parçalanan kontrol noktalarının her biri bu boyuttan küçük olacaktır. Bir dize olarak ifade ediliyorsa, birimden (ör. "5MB") önce rakamlar içermelidir.
  • tags (list[str], isteğe bağlı) — Hub'a itilecek etiketlerin listesi.

Tokenizer dosyalarını 🤗 Model Hub'a yükleyin.

Örnekler:

from transformers import AutoTokenizer

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

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

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

register_for_auto_class

< >

( auto_class = 'AutoTokenizer' )

Parametreler

  • auto_class (str veya type, isteğe bağlı, varsayılan "AutoTokenizer") — Bu yeni tokenizer'ın kaydedileceği otomatik sınıf.

Bu sınıfı, verilen bir otomatik sınıf ile kaydedin. Bu, yalnızca özel tokenizörler için kullanılmalıdır, çünkü kütüphanedekiler zaten AutoTokenizer ile eşlenmiştir.

save_chat_templates

< >

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

Yeni format kullanılıyorsa sohbet şablonlarını kayıt dizinine yazar ve varsa tokenizer yapılandırmasından kaldırır. Eski format kullanılıyorsa hiçbir dosya yazmaz, bunun yerine şablonları doğru formatta tokenizer yapılandırmasına yazar.

save_pretrained

< >

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

Parametreler

  • save_directory (str veya os.PathLike) — Tokenizer'ın kaydedileceği dizinin yolu.
  • legacy_format (bool, isteğe bağlı) — Yalnızca hızlı bir tokenizer için geçerlidir. Ayarlanmazsa (varsayılan), tokenizer hem birleşik JSON biçiminde hem de mevcut ise eski biçimde (yani tokenizer'a özgü sözlük ve ayrı added_tokens dosyalarıyla) kaydedilir.

    False ise, tokenizer yalnızca birleşik JSON biçiminde kaydedilir. Bu biçim, “yavaş” tokenizer'larla (tokenizers kütüphanesi tarafından desteklenmeyenler) uyumlu değildir, bu nedenle tokenizer ilgili “yavaş” tokenizer'da yüklenemez.

    True ise, tokenizer eski biçimde kaydedilir. “slow” tokenizer mevcut değilse bir değer hatası (value error) oluşturulur.

  • filename_prefix (str, isteğe bağlı) — Tokenizörün kaydettiği dosyaların adlarına eklenecek bir önek.
  • push_to_hub (bool, isteğe bağlı, varsayılan False) — Modelinizi kaydettikten sonra Hugging Face model hub'ına gönderip göndermeyeceğinizi belirtir. Göndermek istediğiniz depoyu repo_id ile belirtebilirsiniz (varsayılan olarak ad alanınızdaki save_directory adını kullanır).
  • kwargs (dict[str, Any], isteğe bağlı) — push_to_hub() yöntemine iletilen ek anahtar kelime argümanları.

Dönüş değeri

str türünde bir demet

Kaydedilen dosyalar.

Tam tokenizer durumunu kaydedin.

Bu yöntem, tam tokenizer'ın ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained sınıf yöntemi kullanılarak yeniden yüklenebileceğinden emin olur.

Warning,None Bu işlem, nesne oluşturulduktan sonra tokenizer'a uyguladığınız değişiklikleri (örneğin, oluşturulduktan sonra tokenizer.do_lower_case'in değiştirilmesi) kaydetmez.

save_vocabulary

< >

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

Parametreler

  • save_directory (str) — Sözlüğün kaydedileceği dizin.
  • filename_prefix (str, isteğe bağlı) — Kaydedilen dosyaların adlarına eklenecek isteğe bağlı bir önek.

Dönüş değeri

tuple(str)

Kaydedilen dosyaların yolları.

Sadece tokenizer'ın sözlüğünü (sözlük + eklenen tokenlar) kaydedin.

Bu yöntem, tokenizer'ın yapılandırmasını ve özel token eşlemelerini kaydetmez. Tokenizer'ın tüm durumunu kaydetmek için _save_pretrained() kullanın.

tokenize

< >

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

Parametreler

  • text (str) — Kodlanacak dizi.
  • pair (str, opsiyonel) — İlk diziyle birlikte kodlanacak ikinci dizi.
  • add_special_tokens (bool, isteğe bağlı, varsayılan False) — İlgili modele ait özel tokenların eklenip eklenmeyeceğini belirtir.
  • kwargs (ek anahtar kelime argümanları, isteğe bağlı) — Altta yatan modele özgü encode yöntemine aktarılacaktır. Ayrıntılar için call() bölümüne bakın.

Dönüş değeri

list[str]

Tokenların listesi.

Bir dizeyi token dizisine dönüştürür, bilinmeyen tokenları unk_token ile değiştirir.

Sayıtlar ve adlandırılmış demetler

sınıf transformers.tokenization_utils_base.TruncationStrategy

< >

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

PreTrainedTokenizerBase.call() içindeki truncation argümanı için olası değerler. Bir IDE'de sekme tamamlama için faydalıdır.

sınıf transformers.CharSpan

< >

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

Parametreler

  • start (int) — Orijinal dizideki ilk karakterin indeksi.
  • end (int) — Orijinal dizideki son karakterin hemen ardından gelen karakterin indeksi.

Orijinal dizideki karakter aralığı.

sınıf transformers.TokenSpan

< >

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

Parametreler

  • start (int) — Aralıktaki ilk jetonun indeksi.
  • end (int) — Aralıktaki son token'ı takip eden token'ın indeksi.

Kodlanmış bir dizideki (token listesi) token aralığı.

Update on GitHub