Transformers documentation

FlauBERT

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 2019-12-11 tarihinde HF papers'ta yayımlanmış ve 2020-11-16 tarihinde Hugging Face Transformers'a katkıda bulunmuştur.

FlauBERT

Genel Bakış

FlauBERT modeli, Hang Le ve diğerleri tarafından FlauBERT: Unsupervised Language Model Pre-training for French adlı makalede önerilmiştir. Bu, maskeli dil modelleme (MLM) hedefi (BERT gibi) kullanılarak ön eğitilmiş bir transformer modelidir.

Makalenin özeti aşağıdaki gibidir:

Dil modelleri, birçok farklı Doğal Dil İşleme (NLP) görevinde son derece iyi sonuçlar elde etmek için kritik bir adım haline gelmiştir. Günümüzde mevcut olan devasa miktardaki etiketsiz metinlerden yararlanarak, cümle düzeyinde bağlamsallaştırma ile birlikte, bir sonraki aşama görevi için ince ayar yapılabilecek sürekli kelime temsillerini ön eğitmek için verimli bir yol sunarlar. Bu durum, bağlamsal temsiller kullanılarak İngilizce için geniş çapta kanıtlanmıştır (Dai ve Le, 2015; Peters ve ark., 2018; Howard ve Ruder, 2018; Radford ve ark., 2018; Devlin ve ark., 2019; Yang ve ark., 2019b). Bu makalede, çok büyük ve heterojen bir Fransızca korpusu üzerinde öğrenilen FlauBERT modelini tanıtıyor ve paylaşıyoruz. Farklı boyutlardaki modeller, yeni CNRS (Fransız Ulusal Bilimsel Araştırma Merkezi) Jean Zay süperbilgisayarı kullanılarak eğitilmiştir. Fransızca dil modellerimizi çeşitli NLP görevlerine (metin sınıflandırma, yeniden ifade etme, doğal dil çıkarımı, ayrıştırma, kelime anlamı belirsizliğini giderme) uyguluyoruz ve çoğu durumda diğer ön eğitim yaklaşımlarından daha iyi performans gösterdiklerini gösteriyoruz. FlauBERT'in farklı sürümleri ile birlikte, sonraki aşama görevleri için FLUE (French Language Understanding Evaluation) olarak adlandırılan birleşik bir değerlendirme protokolü, Fransızca NLP'de daha fazla tekrarlanabilir deney için araştırma topluluğuyla paylaşılıyor.

Bu model formiel tarafından katkıda bulunmuştur. Orijinal kod burada bulunabilir.

İpuçları:

  • RoBERTa gibi, ancak cümle sıralama tahmini olmadan (yani yalnızca MLM hedefi üzerinde eğitilmiş).

Kaynaklar

FlaubertConfig

sınıf transformers.FlaubertConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonepre_norm: bool = Falselayerdrop: float | int = 0.0vocab_size: int = 30145emb_dim: int = 2048n_layers: int = 12n_heads: int = 16dropout: float | int = 0.1attention_dropout: float | int = 0.1gelu_activation: bool = Truesinusoidal_embeddings: bool = Falsecausal: bool = Falseasm: bool = Falsen_langs: int = 1use_lang_emb: bool = Truemax_position_embeddings: int = 512embed_init_std: float = 0.02209708691207961layer_norm_eps: float = 1e-12init_std: float = 0.02bos_index: int = 0eos_index: int = 1pad_index: int = 2unk_index: int = 3mask_index: int = 5is_encoder: bool = Truesummary_type: str = 'first'summary_use_proj: bool = Truesummary_activation: str | None = Nonesummary_proj_to_labels: bool = Truesummary_first_dropout: float | int = 0.1start_n_top: int = 5end_n_top: int = 5mask_token_id: int = 0lang_id: int = 0pad_token_id: int | None = 2bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 1tie_word_embeddings: bool = True )

Parametreler

  • pre_norm (bool, isteğe bağlı, varsayılan False) — Her katmandaki dikkat mekanizmasını izleyen ileri beslemeli katmandan önce mi yoksa sonra mı katman normalizasyonu uygulanacağı (Vaswani et al., Tensor2Tensor for Neural Machine Translation. 2018)
  • layerdrop (Union[float, int], isteğe bağlı, varsayılan 0.0) — LayerDrop olasılığı. Daha fazla ayrıntı için [LayerDrop makalesine](bkz. https://huggingface.co/papers/1909.11556) bakın.
  • vocab_size (int, isteğe bağlı, varsayılan 30145) — Modelin sözlük boyutu. input_ids ile temsil edilebilecek farklı token sayısını belirler.
  • emb_dim (int, isteğe bağlı, varsayılan 2048) — Gömme katmanının boyutluluğu.
  • n_layers (int, isteğe bağlı, varsayılan 12) — Transformer çözücüdeki gizli katman sayısı.
  • n_heads (int, isteğe bağlı, varsayılan 16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • dropout (Union[float, int], isteğe bağlı, varsayılan 0.1) — Tüm dropout katmanları için oran.
  • attention_dropout (Union[float, int], isteğe bağlı, varsayılan 0.1) — Dikkat olasılıkları için dropout oranı.
  • gelu_activation (bool, isteğe bağlı, varsayılan True) — GeLU aktivasyon fonksiyonunun kullanılıp kullanılmayacağı.
  • sinusoidal_embeddings (bool, isteğe bağlı, varsayılan False) — Mutlak konumsal gömüm yerine sinüzoidal konumsal gömüm kullanılıp kullanılmayacağı.
  • causal (bool, isteğe bağlı, varsayılan False) — Modelin nedensel (causal) bir şekilde davranıp davranmayacağı. Nedensel modeller, çift yönlü bağlam yerine yalnızca sol taraftaki bağlama odaklanmak için üçgen bir dikkat maskesi kullanır.
  • asm (bool, isteğe bağlı, varsayılan False) — Tahmin katmanı için doğrusal bir katman yerine adaptif log softmax projeksiyon katmanı kullanılıp kullanılmayacağı.
  • n_langs (int, isteğe bağlı, varsayılan 1) — Modelin işlediği dil sayısı. Tek dilli modeller için 1 olarak ayarlayın.
  • use_lang_emb (bool, isteğe bağlı, varsayılan True) — Dil gömme (embedding) kullanılıp kullanılmayacağı. Bazı modeller ek dil gömmeleri kullanır; bunların nasıl kullanılacağına dair bilgi için çok dilli modeller sayfasına bakın.
  • embed_init_std (float, isteğe bağlı, varsayılan 2048^-0.5) — Gömme matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • max_position_embeddings (int, isteğe bağlı, varsayılan 512) — Bu modelin kullanılabileceği en uzun dizi uzunluğu.
  • embed_init_std (float, isteğe bağlı, varsayılan 2048**-0.5) — Gömme katmanları için başlatıcı std.
  • layer_norm_eps (float, isteğe bağlı, varsayılan 1e-12) — Katman normalizasyon katmanları tarafından kullanılan epsilon.
  • init_std (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • bos_index (int, isteğe bağlı, varsayılan 0) — Sözlükte cümle başlangıç token'ının indeksi.
  • eos_index (int, isteğe bağlı, varsayılan 1) — Sözlükteki cümle sonu token'ının indeksi.
  • pad_index (int, isteğe bağlı, varsayılan 2) — Sözlükte dolgu token'ının indeksi.
  • unk_index (int, isteğe bağlı, varsayılan 3) — Sözlükte bilinmeyen token'in indeksi.
  • mask_index (int, isteğe bağlı, varsayılan 5) — Sözlükte maskelama jetonunun indeksi.
  • is_encoder (bool, isteğe bağlı, varsayılan True) — Modelin bir kodlayıcı olarak kullanılıp kullanılmadığı.
  • summary_type (string, isteğe bağlı, varsayılan olarak “first”) — Dizi özetleme yapılırken kullanılan argüman. Dizi sınıflandırma ve çoklu seçim modellerinde kullanılır. Aşağıdaki seçeneklerden biri olmalıdır:
    • "last": Son token gizli durumunu alır (XLNet gibi).
    • "first": İlk token gizli durumunu alır (BERT gibi).
    • "mean": Tüm token gizli durumlarının ortalamasını alın.
    • "cls_index": Sınıflandırma belirteci konumunu içeren bir Tensor sağlayın (GPT/GPT-2 gibi).
    • "attn": Şu an uygulanmadı, çok başlı dikkat kullanın.
  • summary_use_proj (bool, isteğe bağlı, varsayılan True) — Dizi özetleme yapılırken kullanılan argüman. Dizi sınıflandırma ve çoklu seçim modellerinde kullanılır. Vektör çıkarımından sonra bir projeksiyon eklenip eklenmeyeceğini belirtir.
  • summary_activation (str, isteğe bağlı) — Dizi özetleme yapılırken kullanılan argüman. Dizi sınıflandırma ve çoklu seçim modellerinde kullanılır. Çıktıya tanh aktivasyonu uygulamak için "tanh" geçirin; diğer herhangi bir değer, aktivasyon uygulanmamasına neden olur.
  • summary_proj_to_labels (bool, isteğe bağlı, varsayılan True) — Sıralı sınıflandırma ve çoklu seçim modellerinde kullanılır. Projeksiyon çıktıları config.num_labels ya da config.hidden_size sınıf içermelidir.
  • summary_first_dropout (float, isteğe bağlı, varsayılan 0.1) — Dizi sınıflandırma ve çoklu seçim modellerinde kullanılır. Projeksiyon ve aktivasyon sonrasında kullanılacak dropout oranı.
  • start_n_top (int, isteğe bağlı, varsayılan 5) — SQuAD değerlendirme betiğinde kullanılır.
  • end_n_top (int, isteğe bağlı, varsayılan 5) — SQuAD değerlendirme betiğinde kullanılır.
  • mask_token_id (int, isteğe bağlı, varsayılan 0) — MLM bağlamında metin üretirken maskelenmiş token'ları belirlemek için model bağımsız parametre.
  • lang_id (int, isteğe bağlı, varsayılan 1) — Modelin kullandığı dilin kimliği. Bu parametre, belirli bir dilde metin üretirken kullanılır.
  • pad_token_id (int, isteğe bağlı, varsayılan 2) — Sözlükte dolgu için kullanılan token kimliği.
  • bos_token_id (int, isteğe bağlı, varsayılan 0) — Sözlükte akış başlangıcı için kullanılan token kimliği.
  • eos_token_id (Union[int, list[int]], isteğe bağlı, varsayılan 1) — Sözlükte akış sonu için kullanılan token kimliği.
  • tie_word_embeddings (bool, isteğe bağlı, varsayılan True) — Modelin tied_weights_keys eşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.

Bu, bir FlaubertModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Flaubert modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, flaubert/flaubert_base_uncased yapılandırmasına benzer bir yapılandırma elde edilmesini sağlar.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

FlaubertTokenizer

sınıf transformers.FlaubertTokenizer

< >

( vocab_filemerges_filedo_lowercase = Falseunk_token = '<unk>'bos_token = '<s>'sep_token = '</s>'pad_token = '<pad>'cls_token = '</s>'mask_token = '<special1>'additional_special_tokens = ['<special0>', '<special1>', '<special2>', '<special3>', '<special4>', '<special5>', '<special6>', '<special7>', '<special8>', '<special9>']lang2id = Noneid2lang = None**kwargs )

Parametreler

  • vocab_file (str) — Sözlük dosyası.
  • merges_file (str) — Merges dosyası.
  • do_lowercase (bool, isteğe bağlı, varsayılan False) — Küçük harfe çevirmeyi kontrol eder.
  • unk_token (str, isteğe bağlı, varsayılan "<unk>") — Bilinmeyen token. Sözlükte yer almayan bir token, bir kimliğe dönüştürülemez ve bunun yerine bu token olarak ayarlanır.
  • bos_token (str, isteğe bağlı, varsayılan olarak "<s>") — Ön eğitim sırasında kullanılan dizinin başlangıç token'ı. Bir dizi sınıflandırıcı token'ı olarak kullanılabilir. Özel token'lar kullanılarak bir dizi oluşturulduğunda, dizinin başlangıcı için kullanılan token bu değildir. Kullanılan token, cls_token'dır.

    Özel jetonlar kullanılarak bir dizi oluşturulduğunda, dizinin başlangıcı için kullanılan jeton bu değildir. Kullanılan jeton cls_token'dir.

  • sep_token (str, isteğe bağlı, varsayılan "</s>") — Ayrıştırıcı belirteci; birden fazla diziden bir dizi oluşturulurken kullanılır, örneğin dizi sınıflandırma için iki dizi veya soru cevaplamada bir metin ve bir soru için. Özel belirteçlerle oluşturulan bir dizinin son belirteci olarak da kullanılır.
  • pad_token (str, isteğe bağlı, varsayılan "<pad>") — Doldurma için kullanılan jeton, örneğin farklı uzunluklardaki dizileri toplu işleme (batching) sırasında.
  • cls_token (str, isteğe bağlı, varsayılan "</s>") — Dizil sınıflandırması yapılırken (token başına sınıflandırma yerine tüm dizilinin sınıflandırılması) kullanılan sınıflandırıcı token'ıdır. Özel token'larla oluşturulduğunda dizilinin ilk token'ıdır.
  • mask_token (str, isteğe bağlı, varsayılan "<special1>") — Değerleri maskelemek için kullanılan jeton. Bu, modelin masked language modeling ile eğitildiğinde kullanılan jetondur. Modelin tahmin etmeye çalışacağı jeton budur.
  • additional_special_tokens (List[str], isteğe bağlı, varsayılan ['<special0>', '<special1>', '<special2>', '<special3>', '<special4>', '<special5>', '<special6>', '<special7>', '<special8>', '<special9>']) — Ek özel jetonların listesi.
  • lang2id (Dict[str, int], isteğe bağlı) — Dil dizgi tanımlayıcılarını kimliklerine eşleyen sözlük.
  • id2lang (Dict[int, str], isteğe bağlı) — Dil kimliklerini, dizge tanımlayıcılarına eşleyen sözlük.

Flaubert tokenizer'ı oluşturun. Bayt-Çift Kodlamaya (Byte-Pair Encoding) dayanır. Tokenizasyon süreci şu şekildedir:

  • Moses ön işleme ve tokenizasyonu.
  • Tüm girdi metinlerini normalize etme.
  • special_tokens argümanı ve set_special_tokens fonksiyonu, bir sözlüğe ek semboller (örneğin classify) eklemek için kullanılabilir.
  • do_lowercase argümanı, küçük harfe çevirmeyi kontrol eder (önceden eğitilmiş sözlükler için otomatik olarak ayarlanır).

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

build_inputs_with_special_tokens

< >

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

Parametreler

  • token_ids_0 (List[int]) — Özel jetonların ekleneceği kimlik listesi.
  • token_ids_1 (List[int], isteğe bağlı) — Dizi çiftleri için isteğe bağlı ikinci kimlik listesi.

Dönüş değeri

List[int]

Uygun özel jetonlarla girdi kimlikleri listesi.

Sıralı sınıflandırma görevleri için bir sıralama veya sıralama çiftinden model girdilerini birleştirerek ve özel jetonlar ekleyerek oluşturun. Bir XLM sıralamasının biçimi aşağıdaki gibidir:

  • tek dizi: <s> X </s>
  • dizi çifti: <s> A </s> B </s>

convert_tokens_to_string

< >

( tokens )

Bir dizi belirteci (dizgi) tek bir dizgide birleştirir.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → List[int]

Parametreler

  • token_ids_0 (List[int]) — Kimlik listesi.
  • token_ids_1 (List[int], isteğe bağlı) — Dizi çiftleri için isteğe bağlı ikinci kimlik listesi.
  • already_has_special_tokens (bool, isteğe bağlı, varsayılan False) — Token listesinin, model için özel token'larla zaten biçimlendirilmiş olup olmadığı.

Dönüş değeri

List[int]

[0, 1] aralığında tamsayıların bir listesi: özel bir jeton için 1, bir dizi jetonu için 0.

Özel tokenler eklenmemiş bir token listesinden dizi kimliklerini alır. Bu yöntem, tokenizer'ın prepare_for_model yöntemi kullanılarak özel tokenler eklenirken çağrılır.

FlaubertModel

sınıf transformers.FlaubertModel

< >

( config: FlaubertConfig )

Parametreler

  • config (FlaubertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üzerinde herhangi bir özel başlık olmadan ham gizli durumları (hidden-states) üreten çıplak Flaubert Modeli.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonelengths: typing.Optional[torch.LongTensor] = Nonecache: dict[str, torch.FloatTensor] | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BaseModelOutput or tuple(torch.FloatTensor)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.FloatTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • langs (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdideki her token'ın dilini belirtmek için kullanılacak paralel token dizisi. Dizinler, model yapılandırmasında sağlanan iki dönüşüm eşlemesi kullanılarak dil adlarından elde edilebilen dil kimlikleridir (yalnızca çok dilli modeller için sağlanır). Daha spesifik olarak, dil adından dil kimliğine eşlemesi model.config.lang2id (içinde yer alır (bu, string'ten int'e bir sözlüktür) ve dil kimliğinden dil adına eşlemesi model.config.id2lang (içinde yer alır (int'ten string'e bir sözlük). Çok dilli belgelendirmede ayrıntılı kullanım örneklerine bakın.

    Kullanım örnekleri, çok dilli belgelerde ayrıntılı olarak açıklanmıştır.

  • token_type_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler [0, 1]:
    • 0, sentence A belirteci ile eşleşir,
    • 1, sentence B belirteçlerine karşılık gelir.

    Token type ID'leri nelerdir?

  • position_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • lengths (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılabilecek her bir cümlenin uzunluğu. Aynı sonucu elde etmek için attention_mask parametresini de kullanabilirsiniz (bkz. yukarıdaki açıklama); bu parametre yalnızca uyumluluk amacıyla burada tutulmuştur. [0, ..., input_ids.size(-1)] aralığından seçilen indeksler:
  • cache (dict[str, torch.FloatTensor], opsiyonel) — Model tarafından hesaplanan, dikkat bloklarındaki gizli durumları (anahtar ve değerleri) içeren torch.FloatTensor nesnelerine eşleyen bir sözlük (aşağıdaki cache çıktısına bakın). Ardışık çözümlemeyi hızlandırmak için kullanılabilir. Sözlük nesnesi, ileri geçiş sırasında yeni hesaplanan gizli durumları eklemek üzere yerinde değiştirilir.
  • inputs_embeds (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • output_attentions (bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki attentions bölümüne bakın.
  • output_hidden_states (bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki hidden_states bölümüne bakın.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

BaseModelOutput veya tuple(torch.FloatTensor)

Bir BaseModelOutput veya torch.FloatTensor bir demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (FlaubertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

FlaubertModel forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • last_hidden_state (torch.FloatTensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  • hidden_states (tuple(torch.FloatTensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.FloatTensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

FlaubertWithLMHeadModel

sınıf transformers.FlaubertWithLMHeadModel

< >

( config: FlaubertConfig )

Parametreler

  • config (FlaubertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üzerinde bir dil modelleme başlığı (giriş gömme ağırlıklarıyla bağlı ağırlıklara sahip doğrusal katman) bulunan Flaubert Model dönüştürücüsü.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → MaskedLMOutput or tuple(torch.FloatTensor)

Parametreler

  • input_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • langs (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdideki her token'ın dilini belirtmek için kullanılacak paralel token dizisi. Endeksler, model yapılandırmasında sağlanan iki dönüşüm eşlemesi kullanılarak dil adlarından elde edilebilen dil kimlikleridir (yalnızca çok dilli modeller için sağlanır). Daha spesifik olarak, dil adından dil kimliğine eşlemesi model.config.lang2id (içinde yer alır (bu, string'ten int'e bir sözlüktür) ve dil kimliğinden dil adına eşlemesi model.config.id2lang (içinde yer alır (int'ten string'e bir sözlük). Çok dilli belgelendirmede ayrıntılı kullanım örneklerine bakın.

    Kullanım örnekleri, çok dilli belgelerde ayrıntılı olarak açıklanmıştır.

  • token_type_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler [0, 1]:
    • 0, sentence A belirteci ile eşleşir,
    • 1, sentence B belirteçlerine karşılık gelir.

    Token type ID'leri nelerdir?

  • position_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • lengths (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işleminin uygulanmasını önlemek için kullanılabilecek her bir cümlenin uzunluğu. Aynı sonucu elde etmek için attention_mask parametresini de kullanabilirsiniz (bkz. yukarıdaki açıklama); bu parametre yalnızca uyumluluk amacıyla burada tutulmuştur. [0, ..., input_ids.size(-1)] aralığında seçilen indeksler:
  • cache (dict[str, torch.FloatTensor], opsiyonel) — Model tarafından hesaplanan önceden hesaplanmış gizli durumları (dikkat bloklarındaki anahtar ve değerler) içeren torch.FloatTensor nesnelerine eşleyen sözlük (aşağıdaki cache çıktısına bakın). Ardışık çözümlemeyi hızlandırmak için kullanılabilir. Sözlük nesnesi, ileri geçiş sırasında yeni hesaplanan gizli durumları eklemek üzere yerinde değiştirilir.
  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Dil modelleme için etiketler. Not: Etiketler model içinde kaydırılır, yani labels = input_ids olarak ayarlayabilirsiniz. İndisler [-100, 0, ..., config.vocab_size] aralığından seçilir. -100 olarak ayarlanan tüm etiketler yoksayılır (maske uygulanır), kayıp yalnızca [0, ..., config.vocab_size] aralığındaki etiketler için hesaplanır.
  • output_attentions (bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki attentions bölümüne bakın.
  • output_hidden_states (bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki hidden_states bölümüne bakın.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

MaskedLMOutput veya tuple(torch.FloatTensor)

Bir MaskedLMOutput veya torch.FloatTensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (FlaubertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

FlaubertWithLMHeadModel forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.FloatTensor, şekli (1,), opsiyonel, labels sağlandığında döndürülür) — Maskeli dil modelleme (MLM) kaybı.

  • logits (torch.FloatTensor, şekli (batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).

  • hidden_states (tuple(torch.FloatTensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.FloatTensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnek:

>>> import torch
>>> from transformers import AutoTokenizer, FlaubertWithLMHeadModel

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertWithLMHeadModel.from_pretrained("flaubert/flaubert_base_uncased")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs, labels=inputs["input_ids"])
>>> loss = outputs.loss
>>> logits = outputs.logits

FlaubertForSequenceClassification

sınıf transformers.FlaubertForSequenceClassification

< >

( config: FlaubertConfig )

Parametreler

  • config (FlaubertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üstünde bir dizi sınıflandırma/geri dönüş (regression) başlığı bulunan Flaubert Modeli (toplanmış çıktının üzerinde doğrusal bir katman) ör. GLUE görevleri için.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → SequenceClassifierOutput or tuple(torch.FloatTensor)

Parametreler

  • input_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • langs (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdideki her token'ın dilini belirtmek için kullanılacak paralel token dizisi. Dizinler, model yapılandırmasında sağlanan iki dönüşüm eşlemesi kullanılarak dil adlarından elde edilebilen dil kimlikleridir (yalnızca çok dilli modeller için sağlanır). Daha spesifik olarak, dil adından dil kimliğine eşlemesi model.config.lang2id (içinde yer alır (bu, string'ten int'e bir sözlüktür) ve dil kimliğinden dil adına eşlemesi model.config.id2lang (içinde yer alır (int'ten string'e bir sözlük). Çok dilli belgelendirmede ayrıntılı kullanım örneklerine bakın.

    Kullanım örnekleri, çok dilli belgelerde ayrıntılı olarak açıklanmıştır.

  • token_type_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler [0, 1]:
    • 0, sentence A belirteci ile eşleşir,
    • 1, sentence B belirteçlerine karşılık gelir.

    Token type ID'leri nelerdir?

  • position_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • lengths (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işleminin uygulanmasını önlemek için kullanılabilecek her bir cümlenin uzunluğu. Aynı sonucu elde etmek için attention_mask parametresini de kullanabilirsiniz (bkz. yukarıdaki açıklama); bu parametre yalnızca uyumluluk amacıyla burada tutulmuştur. Seçilen indeksler [0, ..., input_ids.size(-1)] aralığındadır.
  • cache (dict[str, torch.FloatTensor], opsiyonel) — Önceden hesaplanmış KV durumlarını içeren EncoderDecoderCache örneği. Sıralı çözümlemeyi hızlandırmak için kullanılabilir.
  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • labels (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Sınıflandırma/geri dönüş kaybını hesaplamak için etiketler. Endeksler [0, ..., config.num_labels - 1] aralığında olmalıdır. config.num_labels == 1 ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır, config.num_labels > 1 ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.
  • output_attentions (bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki attentions bölümüne bakın.
  • output_hidden_states (bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki hidden_states bölümüne bakın.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

SequenceClassifierOutput veya tuple(torch.FloatTensor)

Bir SequenceClassifierOutput veya return_dict=False geçirildiğinde ya da config.return_dict=False olduğunda torch.FloatTensor içeren bir demet; yapılandırma (FlaubertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

FlaubertForSequenceClassification forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.FloatTensor, şekli (1,), opsiyonel, labels sağlandığında döndürülür) — Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.

  • logits (torch.FloatTensor, şekli (batch_size, config.num_labels)) — Sınıflandırma (veya config.num_labels==1 ise regresyon) puanları (SoftMax öncesi).

  • hidden_states (tuple(torch.FloatTensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.FloatTensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Tek etiketli sınıflandırma örneği:

>>> import torch
>>> from transformers import AutoTokenizer, FlaubertForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForSequenceClassification.from_pretrained("flaubert/flaubert_base_uncased")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
...

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = FlaubertForSequenceClassification.from_pretrained("flaubert/flaubert_base_uncased", num_labels=num_labels)

>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...

Çok etiketli sınıflandırma örneği:

>>> import torch
>>> from transformers import AutoTokenizer, FlaubertForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForSequenceClassification.from_pretrained("flaubert/flaubert_base_uncased", problem_type="multi_label_classification")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = FlaubertForSequenceClassification.from_pretrained(
...     "flaubert/flaubert_base_uncased", num_labels=num_labels, problem_type="multi_label_classification"
... )

>>> labels = torch.sum(
...     torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).loss

FlaubertForMultipleChoice

sınıf transformers.FlaubertForMultipleChoice

< >

( config: FlaubertConfig*inputs**kwargs )

Parametreler

  • config (FlaubertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üstünde çoktan seçmeli sınıflandırma başlığı (havuzlanmış çıktının üzerinde doğrusal bir katman ve softmax) bulunan Flaubert Modeli, örneğin RocStories/SWAG görevleri için.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → MultipleChoiceModelOutput or tuple(torch.FloatTensor)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, num_choices, sequence_length)) — Girdi dizisi belirteçlerinin sözlükteki indeksleri.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • langs (torch.LongTensor şeklinde (batch_size, num_choices, sequence_length), isteğe bağlı) — Girdideki her token'ın dilini belirtmek için kullanılacak paralel token dizisi. Dizinler, model yapılandırmasında sağlanan iki dönüşüm eşlemesi kullanılarak dil adlarından elde edilebilen dil kimlikleridir (yalnızca çok dilli modeller için sağlanır). Daha spesifik olarak, dil adından dil kimliğine eşlemesi model.config.lang2id (içinde yer alır (bu, string'ten int'e bir sözlüktür) ve dil kimliğinden dil adına eşlemesi model.config.id2lang (içinde yer alır (int'ten string'e bir sözlük). Çok dilli belgelerde ayrıntılı olarak verilen kullanım örneklerine bakın.

    Kullanım örnekleri, çok dilli belgelerde ayrıntılı olarak açıklanmıştır.

  • token_type_ids (torch.LongTensor şeklinde (batch_size, num_choices, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler [0, 1]:
    • 0, sentence A belirteci ile eşleşir,
    • 1, sentence B belirteçlerine karşılık gelir.

    Token type ID'leri nelerdir?

  • position_ids (torch.LongTensor şeklinde (batch_size, num_choices, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.max_position_embeddings - 1].

    Pozisyon kimlikleri nedir?

  • lengths (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işleminin uygulanmasını önlemek için kullanılabilecek her bir cümlenin uzunluğu. Aynı sonucu elde etmek için attention_mask parametresini de kullanabilirsiniz (bkz. yukarıdaki açıklama); bu parametre uyumluluk amacıyla burada tutulmuştur. Seçilen indeksler [0, ..., input_ids.size(-1)] aralığındadır.
  • cache (dict[str, torch.FloatTensor], opsiyonel) — Önceden hesaplanmış KV durumlarını içeren EncoderDecoderCache örneği. Sıralı çözümlemeyi hızlandırmak için kullanılabilir.
  • inputs_embeds (torch.FloatTensor, şekli (batch_size, num_choices, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • labels (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Çoklu seçim sınıflandırma kaybını hesaplamak için etiketler. İndisler, num_choices'in giriş tensörlerinin ikinci boyutunun boyutu olduğu [0, ..., num_choices-1] aralığında olmalıdır. (Bkz. yukarıdaki input_ids)
  • output_attentions (bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki attentions bölümüne bakın.
  • output_hidden_states (bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki hidden_states bölümüne bakın.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

MultipleChoiceModelOutput veya tuple(torch.FloatTensor)

A MultipleChoiceModelOutput veya bir torch.FloatTensor tuple'ı (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (FlaubertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

FlaubertForMultipleChoice forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.FloatTensor, şekli (1,), opsiyonel, labels sağlandığında döndürülür) — Sınıflandırma kaybı.

  • logits (torch.FloatTensor, şekli (batch_size, num_choices)) — num_choices, girdi tensörlerinin ikinci boyutudur (bkz. yukarıdaki input_ids).

    Sınıflandırma puanları (SoftMax öncesi).

  • hidden_states (tuple(torch.FloatTensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.FloatTensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnek:

>>> from transformers import AutoTokenizer, FlaubertForMultipleChoice
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForMultipleChoice.from_pretrained("flaubert/flaubert_base_uncased")

>>> prompt = "In Italy, pizza served in formal settings, such as at a restaurant, is presented unsliced."
>>> choice0 = "It is eaten with a fork and a knife."
>>> choice1 = "It is eaten while held in the hand."
>>> labels = torch.tensor(0).unsqueeze(0)  # choice0 is correct (according to Wikipedia ;)), batch size 1

>>> encoding = tokenizer([prompt, prompt], [choice0, choice1], return_tensors="pt", padding=True)
>>> outputs = model(**{k: v.unsqueeze(0) for k, v in encoding.items()}, labels=labels)  # batch size is 1

>>> # the linear classifier still needs to be trained
>>> loss = outputs.loss
>>> logits = outputs.logits

FlaubertForTokenClassification

sınıf transformers.FlaubertForTokenClassification

< >

( config: FlaubertConfig )

Parametreler

  • config (FlaubertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üzerinde bir token sınıflandırma başlığı bulunan (gizli durumlar çıktısının üzerine eklenmiş doğrusal bir katman) Flaubert transformer'ı, örneğin Adlandırılmış Varlık Tanıma (NER) görevleri için.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → TokenClassifierOutput or tuple(torch.FloatTensor)

Parametreler

  • input_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • langs (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdideki her token'ın dilini belirtmek için kullanılacak paralel token dizisi. Endeksler, model yapılandırmasında sağlanan iki dönüşüm eşlemesi kullanılarak dil adlarından elde edilebilen dil kimlikleridir (yalnızca çok dilli modeller için sağlanır). Daha spesifik olarak, dil adından dil kimliğine eşlemesi model.config.lang2id (içinde yer alır (bu, string'ten int'e bir sözlüktür) ve dil kimliğinden dil adına eşlemesi model.config.id2lang (içinde yer alır (int'ten string'e bir sözlük). Çok dilli belgelendirmede ayrıntılı kullanım örneklerine bakın.

    Kullanım örnekleri, çok dilli belgelerde ayrıntılı olarak açıklanmıştır.

  • token_type_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler [0, 1]:
    • 0, sentence A belirteci ile eşleşir,
    • 1, sentence B belirteçlerine karşılık gelir.

    Token type ID'leri nelerdir?

  • position_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • lengths (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılabilen her bir cümlenin uzunluğu. Aynı sonucu elde etmek için attention_mask parametresini de kullanabilirsiniz (bkz. yukarıdaki açıklama); bu parametre yalnızca uyumluluk amacıyla burada tutulmuştur. Seçilen indeksler [0, ..., input_ids.size(-1)] aralığındadır.
  • cache (dict[str, torch.FloatTensor], opsiyonel) — Önceden hesaplanmış KV durumlarını içeren EncoderDecoderCache örneği. Sıralı çözümlemeyi hızlandırmak için kullanılabilir.
  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketler. Endeksler [0, ..., config.num_labels - 1] aralığında olmalıdır.
  • output_attentions (bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki attentions bölümüne bakın.
  • output_hidden_states (bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki hidden_states bölümüne bakın.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

TokenClassifierOutput veya tuple(torch.FloatTensor)

Bir TokenClassifierOutput veya torch.FloatTensor (eğer return_dict=False geçirildiyse veya config.return_dict=False ise) içeren bir demet; yapılandırma (FlaubertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

FlaubertForTokenClassification forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.FloatTensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Sınıflandırma kaybı.

  • logits (torch.FloatTensor, şekli (batch_size, sequence_length, config.num_labels)) — Sınıflandırma puanları (SoftMax öncesi).

  • hidden_states (tuple(torch.FloatTensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.FloatTensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnek:

>>> from transformers import AutoTokenizer, FlaubertForTokenClassification
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForTokenClassification.from_pretrained("flaubert/flaubert_base_uncased")

>>> inputs = tokenizer(
...     "HuggingFace is a company based in Paris and New York", add_special_tokens=False, return_tensors="pt"
... )

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_token_class_ids = logits.argmax(-1)

>>> # Note that tokens are classified rather then input words which means that
>>> # there might be more predicted token classes than words.
>>> # Multiple token classes might account for the same word
>>> predicted_tokens_classes = [model.config.id2label[t.item()] for t in predicted_token_class_ids[0]]
>>> predicted_tokens_classes
...

>>> labels = predicted_token_class_ids
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...

FlaubertForQuestionAnsweringSimple

sınıf transformers.FlaubertForQuestionAnsweringSimple

< >

( config: FlaubertConfig )

Parametreler

  • config (FlaubertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

SQuAD gibi çıkarımsal soru-cevap görevleri için üstünde bir aralık sınıflandırma kafası bulunan Flaubert Modeli (gizli durum çıktısının üzerine, span start logits ve span end logits hesaplamak için doğrusal katmanlar eklenir).

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → QuestionAnsweringModelOutput or tuple(torch.FloatTensor)

Parametreler

  • input_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • langs (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdideki her token'ın dilini belirtmek için kullanılacak paralel token dizisi. Dizinler, model yapılandırmasında sağlanan iki dönüşüm eşlemesi kullanılarak dil adlarından elde edilebilen dil kimlikleridir (yalnızca çok dilli modeller için sağlanır). Daha spesifik olarak, dil adından dil kimliğine eşlemesi model.config.lang2id (içinde yer alır (bu, string'ten int'e bir sözlüktür) ve dil kimliğinden dil adına eşlemesi model.config.id2lang (içinde yer alır (int'ten string'e bir sözlük). Çok dilli belgelendirmede ayrıntılı kullanım örneklerine bakın.

    Kullanım örnekleri, çok dilli belgelerde ayrıntılı olarak açıklanmıştır.

  • token_type_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler [0, 1]:
    • 0, sentence A belirteci ile eşleşir,
    • 1, sentence B belirteçlerine karşılık gelir.

    Token type ID'leri nelerdir?

  • position_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • lengths (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işleminin uygulanmasını önlemek için kullanılabilecek her bir cümlenin uzunluğu. Aynı sonucu elde etmek için attention_mask parametresini de kullanabilirsiniz (bkz. yukarıdaki açıklama); bu parametre yalnızca uyumluluk amacıyla burada tutulmuştur. Seçilen indeksler [0, ..., input_ids.size(-1)] aralığındadır.
  • cache (dict[str, torch.FloatTensor], opsiyonel) — Önceden hesaplanmış KV durumlarını içeren EncoderDecoderCache örneği. Sıralı çözümlemeyi hızlandırmak için kullanılabilir.
  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • start_positions (torch.Tensor, şekli (batch_size,), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketli aralığın başlangıç konumunun (indeksinin) etiketleri. Konumlar, dizinin uzunluğuna (sequence_length) göre sınırlandırılır. Dizi dışındaki konumlar, kayıp hesabında dikkate alınmaz.
  • end_positions (torch.Tensor, şekli (batch_size,), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketli aralığın sonundaki konumun (indeksin) etiketleri. Konumlar, dizinin uzunluğuna (sequence_length) göre sınırlandırılır. Dizi dışındaki konumlar, kayıp hesabında dikkate alınmaz.
  • output_attentions (bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki attentions bölümüne bakın.
  • output_hidden_states (bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki hidden_states bölümüne bakın.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

QuestionAnsweringModelOutput veya tuple(torch.FloatTensor)

Bir QuestionAnsweringModelOutput veya return_dict=False geçirildiğinde ya da config.return_dict=False olduğunda torch.FloatTensor içeren bir demet; yapılandırma (FlaubertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

FlaubertForQuestionAnsweringSimple forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.FloatTensor, şekli (1,), opsiyonel, labels sağlandığında döndürülür) — Toplam span çıkarım kaybı, başlangıç ve bitiş konumları için Çapraz Entropinin (Cross-Entropy) toplamıdır.

  • start_logits (torch.FloatTensor, şekli (batch_size, sequence_length)) — Span başlangıç puanları (SoftMax öncesi).

  • end_logits (torch.FloatTensor, şekli (batch_size, sequence_length)) — Span sonu skorları (SoftMax öncesi).

  • hidden_states (tuple(torch.FloatTensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.FloatTensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.FloatTensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (her katman için bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnek:

>>> from transformers import AutoTokenizer, FlaubertForQuestionAnsweringSimple
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForQuestionAnsweringSimple.from_pretrained("flaubert/flaubert_base_uncased")

>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"

>>> inputs = tokenizer(question, text, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> answer_start_index = outputs.start_logits.argmax()
>>> answer_end_index = outputs.end_logits.argmax()

>>> predict_answer_tokens = inputs.input_ids[0, answer_start_index : answer_end_index + 1]
>>> tokenizer.decode(predict_answer_tokens, skip_special_tokens=True)
...

>>> # target is "nice puppet"
>>> target_start_index = torch.tensor([14])
>>> target_end_index = torch.tensor([15])

>>> outputs = model(**inputs, start_positions=target_start_index, end_positions=target_end_index)
>>> loss = outputs.loss
>>> round(loss.item(), 2)
...

FlaubertForQuestionAnswering

sınıf transformers.FlaubertForQuestionAnswering

< >

( config: FlaubertConfig )

Parametreler

  • config (FlaubertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

SQuAD gibi çıkarımsal soru-cevap görevleri için üstünde bir aralık sınıflandırma başlığı bulunan Flaubert transformer (gizli durum çıktısının üzerine, span start logits ve span end logits hesaplamak için bir doğrusal katman).

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneis_impossible: typing.Optional[torch.Tensor] = Nonecls_index: typing.Optional[torch.Tensor] = Nonep_mask: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → FlaubertForQuestionAnsweringOutput or tuple(torch.FloatTensor)

Parametreler

  • input_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • langs (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdideki her token'ın dilini belirtmek için kullanılacak paralel token dizisi. Dizinler, model yapılandırmasında sağlanan iki dönüşüm eşlemesi kullanılarak dil adlarından elde edilebilen dil kimlikleridir (yalnızca çok dilli modeller için sağlanır). Daha spesifik olarak, dil adından dil kimliğine eşlemesi model.config.lang2id (içinde yer alır (bu, string'ten int'e bir sözlüktür) ve dil kimliğinden dil adına eşlemesi model.config.id2lang (içinde yer alır (int'ten string'e bir sözlük). Çok dilli belgelendirmede ayrıntılı kullanım örneklerine bakın.

    Kullanım örnekleri, çok dilli belgelerde ayrıntılı olarak açıklanmıştır.

  • token_type_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler [0, 1]:
    • 0, sentence A belirteci ile eşleşir,
    • 1, sentence B belirteçlerine karşılık gelir.

    Token type ID'leri nelerdir?

  • position_ids (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • lengths (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işleminin uygulanmasını önlemek için kullanılabilecek her bir cümlenin uzunluğu. Aynı sonucu elde etmek için attention_mask parametresini de kullanabilirsiniz (bkz. yukarıdaki açıklama); bu parametre yalnızca uyumluluk amacıyla burada tutulmuştur. Seçilen indeksler [0, ..., input_ids.size(-1)] aralığındadır.
  • cache (dict[str, torch.FloatTensor], opsiyonel) — Önceden hesaplanmış KV durumlarını içeren EncoderDecoderCache örneği. Sıralı çözümlemeyi hızlandırmak için kullanılabilir.
  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • start_positions (torch.Tensor, şekli (batch_size,), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketli aralığın başlangıç konumunun (indeksinin) etiketleri. Konumlar, dizinin uzunluğuna (sequence_length) göre sınırlandırılır. Dizi dışındaki konumlar, kayıp hesabında dikkate alınmaz.
  • end_positions (torch.Tensor, şekli (batch_size,), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketli aralığın sonundaki konumun (indeksin) etiketleri. Konumlar, dizinin uzunluğuna (sequence_length) göre sınırlandırılır. Dizi dışındaki konumlar, kayıp hesabında dikkate alınmaz.
  • is_impossible (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Bir sorunun cevabının olup olmadığını etiketler (SQuAD 2.0)
  • cls_index (torch.LongTensor, şekli (batch_size,), isteğe bağlı) — Cevabın geçerliliğini hesaplamak için girdi olarak kullanılacak sınıflandırma token'ının konumunun (indeksinin) etiketleri.
  • p_mask (torch.FloatTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Cevap olarak bulunamayacak jetonlar için isteğe bağlı maske (ör. [CLS], [PAD], …). 1.0, jetonun maskelenmesi gerektiğini belirtir. 0.0, jetonun maskelenmediğini belirtir.
  • output_attentions (bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki attentions bölümüne bakın.
  • output_hidden_states (bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki hidden_states bölümüne bakın.
  • return_dict (bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi?

Dönüş değeri

FlaubertForQuestionAnsweringOutput veya tuple(torch.FloatTensor)

FlaubertForQuestionAnsweringOutput veya bir torch.FloatTensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (FlaubertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

FlaubertForQuestionAnswering forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.FloatTensor, şekli (1,), opsiyonel, start_positions ve end_positions sağlanırsa döndürülür) — Başlangıç tokeni, bitiş tokeni (ve sağlanırsa is_impossible) sınıflandırma kayıplarının toplamı olarak sınıflandırma kaybı.

  • start_top_log_probs (torch.FloatTensor, şekli (batch_size, config.start_n_top), opsiyonel, start_positions veya end_positions sağlanmadığında döndürülür) — config.start_n_top başlangıç tokeni olasılıkları için log olasılıklar (beam-search).

  • start_top_index (torch.LongTensor, şekli (batch_size, config.start_n_top), opsiyonel, start_positions veya end_positions sağlanmadığında döndürülür) — En iyi config.start_n_top başlangıç tokeni olasılıklarının (beam-search) indeksleri.

  • end_top_log_probs (torch.FloatTensor, şekli (batch_size, config.start_n_top * config.end_n_top), opsiyonel, start_positions veya end_positions sağlanmadığında döndürülür) — En iyi config.start_n_top * config.end_n_top bitiş token olasılıkları için log olasılıklar (beam-search).

  • end_top_index (torch.LongTensor, şekli (batch_size, config.start_n_top * config.end_n_top), isteğe bağlı, start_positions veya end_positions sağlanmadığında döndürülür) — En iyi config.start_n_top * config.end_n_top bitiş tokeni olasılıkları için (beam-search) indeksler.

  • cls_logits (torch.FloatTensor, şekli (batch_size,), opsiyonel, start_positions veya end_positions sağlanmadığında döndürülür) — Cevapların is_impossible etiketi için log olasılıkları.

  • hidden_states (tuple[torch.FloatTensor], isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.FloatTensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple[torch.FloatTensor], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.FloatTensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnek:

>>> from transformers import AutoTokenizer, FlaubertForQuestionAnswering
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> model = FlaubertForQuestionAnswering.from_pretrained("FacebookAI/xlm-mlm-en-2048")

>>> input_ids = torch.tensor(tokenizer.encode("Hello, my dog is cute", add_special_tokens=True)).unsqueeze(
...     0
... )  # Batch size 1
>>> start_positions = torch.tensor([1])
>>> end_positions = torch.tensor([3])

>>> outputs = model(input_ids, start_positions=start_positions, end_positions=end_positions)
>>> loss = outputs.loss
Update on GitHub