Transformers documentation

NLLB

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

Bu model 2022-07-11 tarihinde HF papers'ta yayımlandı ve 2022-07-18 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

NLLB

FlashAttention SDPA

Genel Bakış

NLLB: No Language Left Behind çok dilli bir çeviri modelidir. Düşük kaynaklı dillere özel olarak tasarlanmış veri madenciliği teknikleri kullanılarak veri üzerinde eğitilmiştir ve 200'den fazla dili destekler. NLLB, Sparsely Gated Mixture of Experts kullanan koşullu bir hesaplama mimarisine sahiptir.

Tüm orijinal NLLB checkpoint'lerini AI at Meta kuruluşu altında bulabilirsiniz.

Bu model Lysandre tarafından katkıda bulunmuştur. NLLB'nin farklı çeviri görevlerine nasıl uygulanacağına dair daha fazla örnek için sağ kenar çubuğundaki NLLB modellerine tıklayın.

Aşağıdaki örnek, metin çevirisinin Pipeline veya AutoModel sınıfı ile nasıl yapıldığını göstermektedir.

Pipeline
AutoModel
from transformers import pipeline


pipeline = pipeline(task="translation", model="facebook/nllb-200-distilled-600M", src_lang="eng_Latn", tgt_lang="fra_Latn", device=0)
pipeline("UN Chief says there is no military solution in Syria")

Quantization, ağırlıkları daha düşük bir hassasiyetle temsil ederek büyük modellerin bellek yükünü azaltır. Daha fazla kullanılabilir quantization backend'i için Quantization genel bakışına başvurun.

Aşağıdaki örnek, ağırlıkları 8-bite indirgemek için bitsandbytes kullanır.

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, BitsAndBytesConfig


bnb_config = BitsAndBytesConfig(load_in_8bit=True)
model = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-200-distilled-1.3B", quantization_config=bnb_config, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("facebook/nllb-200-distilled-1.3B")

article = "UN Chief says there is no military solution in Syria"
inputs = tokenizer(article, return_tensors="pt").to(model.device)
translated_tokens = model.generate(
    **inputs, forced_bos_token_id=tokenizer.convert_tokens_to_ids("fra_Latn"), max_length=30,
)
print(tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0])

Modelin hangi token'lara dikkat edebildiğini ve edemediğini daha iyi anlamak için AttentionMaskVisualizer'ı kullanın.

from transformers.utils.attention_visualizer import AttentionMaskVisualizer


visualizer = AttentionMaskVisualizer("facebook/nllb-200-distilled-600M")
visualizer("UN Chief says there is no military solution in Syria")

Notlar

  • Tokenizer, Nisan 2023'te hedef dil yerine kaynak dilin kaynak dizinin başına eklenmesi şeklinde güncellendi. Bu, denetimli performansta küçük bir maliyet karşılığında sıfır atış (zero-shot) performansını önceliklendirir.

    from transformers import NllbTokenizer
    
    tokenizer = NllbTokenizer.from_pretrained("facebook/nllb-200-distilled-600M")
    tokenizer("How was your day?").input_ids
    [256047, 13374, 1398, 4260, 4039, 248130, 2]

    Eski davranışa geri dönmek için aşağıdaki kod örneğini kullanın.

    from transformers import NllbTokenizer
    
    tokenizer = NllbTokenizer.from_pretrained("facebook/nllb-200-distilled-600M", legacy_behaviour=True)
  • İngilizce dışındaki diller için, aşağıda gösterildiği gibi dilin BCP-47 kodunu src_lang anahtar kelimesiyle belirtin.

  • Romence'den Almancaya çeviri için aşağıdaki örneğe bakın.

    from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
    
    tokenizer = AutoTokenizer.from_pretrained("facebook/nllb-200-distilled-600M")
    model = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-200-distilled-600M", device_map="auto")
    
    article = "UN Chief says there is no military solution in Syria"
    inputs = tokenizer(article, return_tensors="pt").to(model.device)
    
    translated_tokens = model.generate(
        **inputs, forced_bos_token_id=tokenizer.convert_tokens_to_ids("fra_Latn"), max_length=30
    )
    tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0]
    Le chef de l'ONU dit qu'il n'y a pas de solution militaire en Syrie

NllbTokenizer

sınıf transformers.NllbTokenizer

< >

( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Nonebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'src_lang = Nonetgt_lang = None_spm_precompiled_charsmap: str | None = Noneadditional_special_tokens = Noneextra_special_tokens = Nonelegacy_behaviour = False**kwargs )

Parametreler

  • vocab_file (str, isteğe bağlı) — Sözlük dosyasının yolu.
  • bos_token (str, isteğe bağlı, varsayılan "<s>") — Ön eğitim sırasında kullanılan dizinin başlangıç belirteci.
  • eos_token (str, isteğe bağlı, varsayılan "</s>") — Dizi sonu belirteci.
  • sep_token (str, isteğe bağlı, varsayılan "</s>") — Ayrıştırıcı belirteci.
  • cls_token (str, isteğe bağlı, varsayılan "<s>") — Sınıflandırıcı belirteci.
  • unk_token (str, isteğe bağlı, varsayılan "<unk>") — Bilinmeyen jeton.
  • pad_token (str, isteğe bağlı, varsayılan "<pad>") — Doldurma için kullanılan jeton.
  • mask_token (str, isteğe bağlı, varsayılan "<mask>") — Değerleri maskelemek için kullanılan jeton.
  • src_lang (str, isteğe bağlı) — Çeviri için kaynak dil olarak kullanılacak dil.
  • tgt_lang (str, isteğe bağlı) — Çeviri için hedef dil olarak kullanılacak dil.
  • legacy_behaviour (bool, isteğe bağlı, varsayılan False) — Eski davranışın (son ek deseni) yoksa yeni davranışın (ön ek deseni) kullanılacağı.

HuggingFace'in tokenizers kütüphanesiyle desteklenen bir NLLB tokenizer'ı oluşturun. Unigram tabanlıdır.

Bu tokenizer, ana yöntemlerin çoğunu içeren TokenizersBackend sınıfından devralır. Kullanıcıların bu yöntemlerle ilgili daha fazla bilgi için bu üst sınıfa başvurması gerekir.

Kaynak dil belgeleri için tokenizasyon yöntemi <tokens> <eos> <language code> şeklindedir ve `<language code>

<tokens> <eos>` for target language documents.

Örnekler:

>>> from transformers import NllbTokenizer

>>> tokenizer = NllbTokenizer.from_pretrained(
...     "facebook/nllb-200-distilled-600M", src_lang="eng_Latn", tgt_lang="fra_Latn"
... )
>>> example_english_phrase = " UN Chief Says There Is No Military Solution in Syria"
>>> expected_translation_french = "Le chef de l'ONU affirme qu'il n'y a pas de solution militaire en Syrie."
>>> inputs = tokenizer(example_english_phrase, text_target=expected_translation_french, return_tensors="pt")

set_src_lang_special_tokens

< >

( src_lang )

Özel tokenleri kaynak dil ayarına sıfırlayın.

  • Eski modda: Önek yok ve sonek=[eos, src_lang_code].
  • Varsayılan modda: Önek=[src_lang_code], sonek=[eos]

set_tgt_lang_special_tokens

< >

( lang: str )

Özel tokenleri hedef dil ayarına sıfırlayın.

  • Eski (legacy) modda: Ön ek yok ve suffix=[eos, tgt_lang_code].
  • Varsayılan modda: önek=[tgt_lang_code], sonek=[eos]
Update on GitHub