Transformers documentation

Veri toplayıcısı

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

Veri toplayıcısı

Data collatorlar, girdi olarak veri seti öğelerinin bir listesini kullanarak bir batch oluşturacak nesnelerdir. Bu öğeler, train_dataset veya eval_dataset öğeleriyle aynı tiptedir.

Toplu veriler oluşturulabilsin diye veri toplayıcılar bazı işlemler uygulayabilir (örneğin dolgu). Bunlardan bazıları (örneğin DataCollatorForLanguageModeling) oluşturulan toplu veri üzerinde bazı rastgele veri artırma teknikleri (örneğin rastgele maskeleme) uygular.

Kullanım örnekleri örnek defterlerde bulunabilir.

Varsayılan veri toplayıcısı

transformers.default_data_collator

< >

( features: listreturn_tensors = 'pt' )

Çok basit bir veri toplayıcı (collator); sözlük benzeri nesnelerin toplu işlemlerini (batch) toplar ve potansiyel olarak şu adlara sahip anahtarlar için özel işleme uygular:

  • label: nesne başına tek bir değer (int veya float) işler
  • label_ids: nesne başına bir değer listesini işler

Ek bir ön işleme yapmaz: girdi nesnesinin özellik adları, modele girdi olarak kullanılır. Bunun nasıl faydalı olduğunu görmek için glue ve ner örneklerine bakın.

DefaultDataCollator

sınıf transformers.DefaultDataCollator

< >

( return_tensors: str = 'pt' )

Parametreler

  • return_tensors (str, isteğe bağlı, varsayılan "pt") — Döndürülecek Tensor türü. Kabul edilen değerler “np” veya “pt”’dir.

Çok basit bir veri toplayıcı (collator); sözlük benzeri nesnelerin toplu işlemlerini (batch) toplar ve potansiyel olarak şu adlara sahip anahtarlar için özel işleme uygular:

  • label: nesne başına tek bir değer (int veya float) işler
  • label_ids: nesne başına bir değer listesini işler

Ek bir ön işleme yapmaz: girdi nesnesinin özellik adları, modele girdi olarak kullanılır. Bunun nasıl faydalı olduğunu görmek için glue ve ner örneklerine bakın.

Bu, default_data_collator gibi saf bir işlev değil, diğer veri toplayıcıları gibi bir nesnedir. Başlatma sırasında bir return_tensors değeri ayarlamanız gerekiyorsa bu işe yarayabilir.

DataCollatorWithPadding

sınıf transformers.DataCollatorWithPadding

< >

( tokenizer: PreTrainedTokenizerBasepadding: bool | str | transformers.utils.generic.PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonereturn_tensors: str = 'pt' )

Parametreler

  • tokenizer (PreTrainedTokenizer veya PreTrainedTokenizerFast) — Verilerin kodlanmasında kullanılan tokenizer.
  • padding (bool, str veya PaddingStrategy, isteğe bağlı, varsayılan olarak True) — Dönen dizilerin dolgu stratejisini seçin (modelin dolgu yönüne ve dolgu indeksine göre) aşağıdakilerden:
    • True veya 'longest' (varsayılan): Batch içindeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlanıyorsa 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.0 (Volta) olan NVIDIA donanımlarında Tensor Core'lerin kullanımını etkinleştirmek için özellikle faydalıdır.

  • return_tensors (str, isteğe bağlı, varsayılan "pt") — Döndürülecek Tensor türü. Kabul edilen değerler “np” veya “pt”’dir.

Alınan girdileri dinamik olarak dolduracak veri toplayıcı.

DataCollatorForTokenClassification

sınıf transformers.DataCollatorForTokenClassification

< >

( tokenizer: PreTrainedTokenizerBasepadding: bool | str | transformers.utils.generic.PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonelabel_pad_token_id: int = -100return_tensors: str = 'pt' )

Parametreler

  • tokenizer (PreTrainedTokenizer veya PreTrainedTokenizerFast) — Verilerin kodlanmasında kullanılan tokenizer.
  • padding (bool, str veya PaddingStrategy, isteğe bağlı, varsayılan olarak True) — Dönen dizilerin dolgu stratejisini seçin (modelin dolgu yönüne ve dolgu indeksine göre) aşağıdakilerden:
    • True veya 'longest' (varsayılan): Batch içindeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlanıyorsa 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.0 (Volta) olan NVIDIA donanımlarında Tensor Core'lerin kullanımını etkinleştirmek için özellikle faydalıdır.

  • label_pad_token_id (int, isteğe bağlı, varsayılan -100) — Etiketleri doldururken kullanılacak kimlik (PyTorch kayıp fonksiyonları -100 değerini otomatik olarak yoksayar).
  • return_tensors (str, isteğe bağlı, varsayılan "pt") — Döndürülecek Tensor türü. Kabul edilen değerler “np” veya “pt”’dir.

Alınan girdileri ve etiketleri dinamik olarak dolduracak (pad) veri toplayıcı (data collator).

DataCollatorForSeq2Seq

sınıf transformers.DataCollatorForSeq2Seq

< >

( tokenizer: PreTrainedTokenizerBasemodel: typing.Any | None = Nonepadding: bool | str | transformers.utils.generic.PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonelabel_pad_token_id: int = -100return_tensors: str = 'pt' )

Parametreler

  • tokenizer (PreTrainedTokenizer veya PreTrainedTokenizerFast) — Verilerin kodlanmasında kullanılan tokenizer.
  • model (PreTrainedModel, isteğe bağlı) — Eğitilen model. Ayarlanmışsa ve prepare_decoder_input_ids_from_labels, içeriyorsa, bunu kullanarak decoder_input_ids

    label_smoothing kullanırken kaybın iki kez hesaplanmasını önlemek için bu işe yarar.

  • padding (bool, str veya PaddingStrategy, isteğe bağlı, varsayılan olarak True) — Dönen dizilerin dolgu stratejisini seçin (modelin dolgu yönüne ve dolgu indeksine göre) aşağıdakilerden:
    • True veya 'longest' (varsayılan): Batch içindeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlanıyorsa 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.0 (Volta) olan NVIDIA donanımlarında Tensor Core'lerin kullanımını etkinleştirmek için özellikle faydalıdır.

  • label_pad_token_id (int, isteğe bağlı, varsayılan -100) — Etiketleri doldururken kullanılacak kimlik (PyTorch kayıp fonksiyonları -100 değerini otomatik olarak yok sayar).
  • return_tensors (str, isteğe bağlı, varsayılan "pt") — Döndürülecek Tensor türü. Kabul edilen değerler “np” veya “pt”’dir.

Alınan girdileri ve etiketleri dinamik olarak dolduracak (pad) veri toplayıcı (data collator).

DataCollatorForLanguageModeling

sınıf transformers.DataCollatorForLanguageModeling

< >

( tokenizer: PreTrainedTokenizerBasemlm: bool = Truewhole_word_mask: bool = Falsemlm_probability: float | None = 0.15mask_replace_prob: float = 0.8random_replace_prob: float = 0.1pad_to_multiple_of: int | None = Nonereturn_tensors: str = 'pt'seed: int | None = None )

Parametreler

  • tokenizer (PreTrainedTokenizer veya PreTrainedTokenizerFast) — Verilerin kodlanmasında kullanılan tokenizer.
  • mlm (bool, isteğe bağlı, varsayılan True) — Maskeli dil modellemesi kullanılıp kullanılmayacağı. False olarak ayarlanırsa, etiketler dolgu token'ları yok sayılarak (onları -100 olarak ayarlayarak) girdilerle aynı olur. Aksi halde, etiketler maskelenmemiş token'lar için -100, maskelenmiş token için ise tahmin edilecek değerdir.
  • whole_word_mask (bool, isteğe bağlı, varsayılan False) — Bireysel token'lar yerine tüm kelimelerin maskelenip maskelenmeyeceğini belirtir.
  • mlm_probability (float, isteğe bağlı, varsayılan 0.15) — mlm True olarak ayarlandığında, girdideki token'ların (rastgele) maskeleme olasılığı.
  • mask_replace_prob (float, isteğe bağlı, varsayılan 0.8) — Maskelenmiş tokenların tokenizer'ın mask token'ı (ör. [MASK]) ile değiştirilme olasılığı. Varsayılan 0.8'dir, bu da maskelenmiş tokenların %80'inin [MASK] ile değiştirileceği anlamına gelir. Yalnızca mlm True olarak ayarlandığında çalışır.
  • random_replace_prob (float, isteğe bağlı, varsayılan 0.1) — Maskelenmiş tokenların, tokenizer sözlüğündeki rastgele tokenlarla değiştirilme olasılığı. Varsayılan değeri 0.1'dir; bu, maskelenmiş tokenların %10'unun rastgele tokenlarla değiştirileceği anlamına gelir. Kalan maskelenmiş tokenlar (1 - mask_replace_prob - random_replace_prob) değiştirilmeden bırakılır. Yalnızca mlm True olarak ayarlandığında çalışır.
  • pad_to_multiple_of (int, isteğe bağlı) — Belirlenirse, diziyi verilen değerin katına kadar doldurur.
  • return_tensors (str) — Dönülecek Tensor türü. Kabul edilen değerler “np” veya “pt”’dir.
  • seed (int, isteğe bağlı) — Maskelendirme için rastgele sayı üretecinde kullanılacak tohum. Verilmezse, küresel RNG kullanılır.

Dil modelleme için kullanılan veri toplayıcı. Girdiler, hepsi aynı uzunlukta değilse, bir partinin maksimum uzunluğuna dinamik olarak dolgu yapılır.

En iyi performans için, bu veri toplayıcısının, PreTrainedTokenizer veya return_special_tokens_mask=True argümanıyla bir PreTrainedTokenizerFast tarafından döndürüldüğü gibi, "special_tokens_mask" anahtarına sahip sözlükler veya BatchEncoding öğelerine sahip bir veri setiyle kullanılması önerilir.

<Example Options and Expectations>
  1. Varsayılan Davranış:

    • mask_replace_prob=0.8, random_replace_prob=0.1.
    • Maskelenmiş token'ların %80'inin [MASK] ile değiştirilmesini, %10'unun rastgele token'larla değiştirilmesini ve %10'unun değiştirilmemesini bekleyin.
  2. [MASK] ile değiştirilen tüm maskelenmiş jetonlar:

    • mask_replace_prob=1.0, random_replace_prob=0.0.
    • Tüm maskelenmiş tokenların [MASK] ile değiştirilmesini bekleyin. Hiçbir token değiştirilmeden bırakılmaz veya rastgele tokenlarla değiştirilmez.
  3. [MASK] ikamesi yok, yalnızca rastgele jetonlar:

    • mask_replace_prob=0.0, random_replace_prob=1.0.
    • Tüm maskelenmiş tokenların rastgele tokenlarla değiştirilmesini bekleyin. [MASK] yer değiştirmeleri veya değiştirilmemiş tokenlar yoktur.
  4. Dengeli değiştirme:

    • mask_replace_prob=0.5, random_replace_prob=0.4.
    • Maskelenmiş token'ların %50'sinin [MASK] ile değiştirilmesini, %40'ının rastgele token'larla değiştirilmesini ve %10'unun değiştirilmemesini bekleyin.

Not: mask_replace_prob ile random_replace_prob değerlerinin toplamı 1'i geçmemelidir. Toplam 1'den küçükse, kalan oran değiştirilmemiş maskelenmiş tokenlardan oluşur.

numpy_mask_tokens

< >

( inputs: Anyspecial_tokens_mask: typing.Any | None = Noneoffset_mapping: typing.Any | None = None )

Maskeli dil modellemesi için maskeli jeton girdilerini/etiketlerini hazırlar.

torch_mask_tokens

< >

( inputs: Anyspecial_tokens_mask: typing.Any | None = Noneoffset_mapping: typing.Any | None = None )

Maskeli dil modellemesi için maskeli jeton girdilerini/etiketlerini hazırlar.

DataCollatorForPermutationLanguageModeling

sınıf transformers.DataCollatorForPermutationLanguageModeling

< >

( tokenizer: PreTrainedTokenizerBaseplm_probability: float = 0.16666666666666666max_span_length: int = 5return_tensors: str = 'pt' )

Permutasyon dil modellemesi için kullanılan veri toplayıcı.

  • tensör gruplarını bir araya getirir, tokenizörün pad_token değerine saygı gösterir
  • XLNet'e özgü prosedürlerle permütasyon dil modellemesi için partileri ön işler

numpy_mask_tokens

< >

( inputs: Any )

Belirli bir dizi için tahmin edilecek maskelenmiş jetonlar aşağıdaki algoritma tarafından belirlenir:

  1. Dizinin başlangıcından başlayın; cur_len = 0 (şu ana kadar işlenen jeton sayısı) olarak ayarlayın.
  2. span_length değerini [1, max_span_length] aralığından örnekleyin (maskelenecek token dizisinin uzunluğu)
  3. Maskelenecek span'ı çevrelemek için context_length = span_length / plm_probability uzunluğunda bir bağlam ayırın
  4. start_index başlangıç noktasını [cur_len, cur_len + context_length - span_length] aralığından örnekleyin ve start_index:start_index + span_length jetonlarını maskeleyin
  5. cur_len = cur_len + context_length olarak ayarlayın. cur_len < max_len ise (yani işlenecek dizide kalan tokenlar varsa), Adım 1'den tekrarlayın.

torch_mask_tokens

< >

( inputs: Any )

Belirli bir dizi için tahmin edilecek maskelenmiş jetonlar aşağıdaki algoritma tarafından belirlenir:

  1. Dizinin başlangıcından başlayın; cur_len = 0 (şu ana kadar işlenen jeton sayısı) olarak ayarlayın.
  2. span_length değerini [1, max_span_length] aralığından örnekleyin (maskelenecek token dizisinin uzunluğu)
  3. Maskelenecek span'ı çevrelemek için context_length = span_length / plm_probability uzunluğunda bir bağlam ayırın
  4. start_index başlangıç noktasını [cur_len, cur_len + context_length - span_length] aralığından örnekleyin ve start_index:start_index + span_length jetonlarını maskeleyin
  5. cur_len = cur_len + context_length olarak ayarlayın. cur_len < max_len ise (yani işlenecek dizide kalan tokenlar varsa), Adım 1'den tekrarlayın.

DataCollatorWithFlattening

sınıf transformers.DataCollatorWithFlattening

< >

( *argsreturn_position_ids = Trueseparator_id = -100return_flash_attn_kwargs = Falsereturn_seq_idx = Falseposition_ids_start = 0**kwargs )

Parametreler

  • return_position_ids (bool, isteğe bağlı, varsayılan True) — Her düzleştirilmiş dizi için position_ids_start değerinden yeniden başlayan position_ids değerlerinin döndürülüp döndürülmemesi.
  • separator_id (int, isteğe bağlı, varsayılan -100) — Birleştirilmiş labels içindeki dizileri ayırmak için kullanılan değer.
  • return_flash_attn_kwargs (bool, isteğe bağlı, varsayılan False) — FlashAttention tarafından kullanılan dizi sınırı kwargs'larını (cu_seq_lens_q, cu_seq_lens_k, max_length_q ve max_length_k) döndürüp döndürmeyeceğini belirtir.
  • return_seq_idx (bool, isteğe bağlı, varsayılan False) — Her token'ın ait olduğu diziyi gösteren seq_idx'in döndürülüp döndürülmeyeceğini belirtir.
  • position_ids_start (int, isteğe bağlı, varsayılan 0) — Her dizinin ilk token'ına verilen konum kimliği.

Doluksuz (padding free) yaklaşım için kullanılan veri toplayıcı (data collator). Şunları yapar:

  • mini batch'in tamamını [1, total_tokens] biçiminde tek bir uzun diziye birleştirir
  • separator_id, birleştirilmiş labels içindeki dizileri ayırmak için kullanılır; varsayılan değeri -100'dür
  • dolgu eklenmez, varsayılan olarak input_ids, labels ve position_ids döndürülür
  • FlashAttentionKwargs içindeki kwargs'yı isteğe bağlı olarak döndürür
  • her bir token'ın hangi dizeye ait olduğunu gösteren seq_idx değerini isteğe bağlı olarak döndürür

DataCollatorWithFlattening kullanıldığında tüm mini batch tek uzun diziye düzleştirilir. Dikkat (attention) hesabınızın bunu işleyebildiğinden emin olun!

Her model, konum kimliklerini kendisi hesapladığında konumları 0'dan numaralandırmaz. RoBERTa benzeri mimariler (arasında mutlak konum gömme kullanan roberta, xlm_roberta, camembert, mpnet ve esm) genellikle 2 olan padding_idx + 1 değerinden başlar. Bu modellere varsayılan 0 tabanlı position_ids geçirildiğinde konum gömme sessizce kayar ve çıktıları bozulur; bu nedenle bu modeller için position_ids_start değerini buna göre ayarlayın.

DataCollatorForMultipleChoice

sınıf transformers.DataCollatorForMultipleChoice

< >

( tokenizer: PreTrainedTokenizerBasepadding: bool | str | transformers.utils.generic.PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonereturn_tensors: str = 'pt' )

Parametreler

  • tokenizer (PreTrainedTokenizer veya PreTrainedTokenizerFast) — Verilerin kodlanmasında kullanılan tokenizer.
  • padding (bool, str veya PaddingStrategy, isteğe bağlı, varsayılan olarak True) — Modelin padding yönüne ve padding indeksine göre döndürülen dizileri doldurmak için bir strateji seçin:
    • 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).
  • 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ı) — Diziyi, verilen değerin katına kadar doldurun.

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

  • return_tensors (str, isteğe bağlı, varsayılan "pt") — Döndürülecek Tensor türü. Kabul edilen değerler “np” veya “pt”’dir.

Çoktan seçmeli sorular için iç içe geçmiş örneklerden oluşan bir partiyi dinamik olarak dolduran, böylece tüm örneklerin tüm seçeneklerinin aynı uzunlukta olmasını sağlayan veri toplayıcı (data collator).

Update on GitHub