Transformers documentation

XLNet

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

XLNet

Genel Bakış

XLNet modeli, Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov ve Quoc V. Le tarafından XLNet: Generalized Autoregressive Pretraining for Language Understanding makalesinde önerilmiştir. XLNet, girdi dizisinin faktörizasyon sırasının tüm permütasyonları üzerindeki beklenen olasılığı maksimize ederek çift yönlü bağlamları öğrenmek için otoregresif bir yöntemle ön eğitilmiş Transformer-XL modelinin bir uzantısıdır.

Makalenin özeti aşağıdaki gibidir:

Çift yönlü bağlamları modelleme yeteneği sayesinde, BERT gibi gürültü giderme otomatik kodlamaya dayalı ön eğitim, otoregresif dil modellemeye dayalı ön eğitim yaklaşımlarından daha iyi performans elde eder. Ancak, girdiyi maskelerle bozarak çalıştığı için BERT, maskelenmiş konumlar arasındaki bağımlılığı göz ardı eder ve ön eğitim-ince ayarlama tutarsızlığından muzdarip olur. Bu avantaj ve dezavantajlar göz önüne alındığında, (1) faktörizasyon sırasının tüm permütasyonları üzerindeki beklenen olasılığı maksimize ederek çift yönlü bağlamları öğrenmeyi mümkün kılan ve (2) otoregresif formülasyonu sayesinde BERT'in sınırlamalarını aşan, genelleştirilmiş bir otoregresif ön eğitim yöntemi olan XLNet'i öneriyoruz. Ayrıca XLNet, en son otoregresif model olan Transformer-XL'deki fikirleri ön eğitime entegre eder. Deneysel olarak, karşılaştırılabilir deneysel ayarlar altında XLNet, soru-cevap, doğal dil çıkarımı, duygu analizi ve belge sıralama dahil olmak üzere 20 görevde, çoğu zaman büyük bir farkla BERT'ten daha iyi performans gösterir.

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

Kullanım ipuçları

  • Belirli dikkat deseni, eğitim ve test sırasında perm_mask girdisi kullanılarak kontrol edilebilir.
  • Farklı faktörizasyon sıraları üzerinde tam otoregresif bir modeli eğitmenin zorluğu nedeniyle, XLNet yalnızca target_mapping girdisiyle seçilen çıktı token'larının bir alt kümesini hedef olarak kullanarak ön eğitilir.
  • XLNet'i ardışık çözümleme için (yani tam çift yönlü yapılandırma dışında) kullanmak için, dikkat aralığını ve çıktıları kontrol etmek üzere perm_mask ve target_mapping girdilerini kullanın.
  • XLNet, sıralama uzunluğu sınırı olmayan nadir modellerden biridir.
  • XLNet geleneksel bir otoregresif model değildir, ancak bu strateji üzerine kurulu bir eğitim stratejisi kullanır. Cümledeki token'ları permütasyonla değiştirir, ardından modelin son n token'ı kullanarak n+1. token'ı tahmin etmesine izin verir. Tüm bu işlem bir maske ile yapıldığından, cümle modele aslında doğru sırada verilir; ancak n+1 için ilk n token'ı maskelemek yerine XLNet, 1,…,dizgi uzunluğu diziliminin belirli bir permütasyonunda önceki token'ları gizleyen bir maske kullanır.
  • XLNet, uzun vadeli bağımlılıkları oluşturmak için Transformer-XL ile aynı yineleme mekanizmasını kullanır.

Kaynaklar

XLNetConfig

sınıf transformers.XLNetConfig

< >

( 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 = Nonevocab_size: int = 32000d_model: int = 1024n_layer: int = 24n_head: int = 16d_inner: int = 4096d_head: int | None = Noneff_activation: str = 'gelu'attn_type: str = 'bi'initializer_range: float = 0.02layer_norm_eps: float = 1e-12dropout: float | int = 0.1mem_len: int | None = 512reuse_len: int | None = Noneuse_mems_eval: bool = Trueuse_mems_train: bool = Falsebi_data: bool = Falseclamp_len: int = -1same_length: bool = Falsesummary_type: str = 'last'summary_use_proj: bool = Truesummary_activation: str = 'tanh'summary_last_dropout: float | int = 0.1start_n_top: int = 5end_n_top: int = 5pad_token_id: int | None = 5bos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2tie_word_embeddings: bool = True )

Parametreler

  • vocab_size (int, isteğe bağlı, varsayılan 32000) — Modelin sözlük boyutu. input_ids tarafından temsil edilebilecek farklı token sayısını tanımlar.
  • d_model (int, isteğe bağlı, varsayılan 1024) — Kodlayıcı katmanlarının ve pooler katmanının boyutu.
  • n_layer (int, isteğe bağlı, varsayılan 24) — Transformer çözücüdeki gizli katman sayısı.
  • n_head (int, isteğe bağlı, varsayılan 16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • d_inner (int, isteğe bağlı, varsayılan 4096) — MLP temsil boyutu.
  • d_head (int, isteğe bağlı) — Dikkat başlığı boyutu. None ise, varsayılan olarak hidden_size // num_attention_heads değerini alır.
  • ff_activation (str veya Callable, isteğe bağlı, varsayılan "gelu") — Doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Dize olarak verilirse "gelu", "relu", "silu" ve "gelu_new" desteklenir.
  • attn_type (str, isteğe bağlı, varsayılan "bi") — Modelin kullandığı dikkat türü. XLNet için "bi", Transformer-XL için "uni" olarak ayarlayın.
  • initializer_range (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ı.
  • layer_norm_eps (float, isteğe bağlı, varsayılan 1e-12) — Katman normalizasyon katmanları tarafından kullanılan epsilon.
  • dropout (Union[float, int], isteğe bağlı, varsayılan 0.1) — Tüm dropout katmanları için oran.
  • mem_len (int veya None, isteğe bağlı) — Önbelleğe alınacak token sayısı. Önceki bir ileri geçişte önceden hesaplanmış olan anahtar/değer çiftleri yeniden hesaplanmaz. Daha fazla bilgi için hızlı başlangıç bölümüne bakın.
  • reuse_len (int, isteğe bağlı) — Gelecekte önbelleğe alınacak ve yeniden kullanılacak olan mevcut batch'teki token sayısı.
  • use_mems_eval (bool, isteğe bağlı, varsayılan True) — Modelin değerlendirme modunda tekrarlı bellek mekanizmasını kullanıp kullanmayacağı.
  • use_mems_train (bool, isteğe bağlı, varsayılan False) — Modelin eğitim modunda tekrarlı bellek mekanizmasını kullanıp kullanmayacağı.
    Ön eğitim için `use_mems_train` değerinin `True` olarak ayarlanması önerilir. İnce ayarlama için, [burada](https://github.com/zihangdai/xlnet/issues/41#issuecomment-505102587) tartışıldığı üzere, `use_mems_train` değerinin `False` olarak ayarlanması önerilir. `use_mems_train` değeri `True` olarak ayarlanırsa, eğitim partilerinin doğru şekilde ön işlenmiş olduğundan emin olunmalıdır; *örneğin* `batch_1 = [[This line is], [This is the]]` ve `batch_2 = [[ the first line], [ second line]]` ve tüm partilerin eşit boyutta olduğundan emin olunmalıdır.
  • bi_data (bool, isteğe bağlı, varsayılan False) — Çift yönlü giriş hattının kullanılıp kullanılmayacağını belirtir. Genellikle ön eğitim sırasında True, ince ayar sırasında ise False olarak ayarlanır.
  • clamp_len (int, isteğe bağlı, varsayılan -1) — clamp_len değerinden büyük olan tüm göreli mesafeleri sınırlar. Bu özniteliği -1 olarak ayarlamak, sınırlama yapılmayacağı anlamına gelir.
  • same_length (bool, isteğe bağlı, varsayılan False) — Her token için aynı dikkat uzunluğunun kullanılıp kullanılmayacağı.
  • summary_type (str, isteğe bağlı, varsayılan olarak “last”) — 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_last_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.
  • pad_token_id (int, isteğe bağlı, varsayılan 5) — Sözlükte dolgu için kullanılan token kimliği.
  • bos_token_id (int, isteğe bağlı, varsayılan 1) — 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 2) — 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 XLNetModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Xlnet modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, xlnet/xlnet-large-cased ile benzer bir yapılandırma elde edilir.

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.

Örnekler:

>>> from transformers import XLNetConfig, XLNetModel

>>> # Initializing a XLNet configuration
>>> configuration = XLNetConfig()

>>> # Initializing a model (with random weights) from the configuration
>>> model = XLNetModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

XLNetTokenizer

sınıf transformers.XLNetTokenizer

< >

( vocab: str | list[tuple[str, float]] | None = Noneunk_id: int = 0do_lower_case = Falseremove_space = Truekeep_accents = Falsebos_token = '<s>'eos_token = '</s>'unk_token = '<unk>'sep_token = '<sep>'pad_token = '<pad>'cls_token = '<cls>'mask_token = '<mask>'_spm_precompiled_charsmap = Noneadditional_special_tokens = None**kwargs )

Parametreler

  • vocab (list of tuples, isteğe bağlı) — Unigram modeli için (token, score) tuple listesi. Sağlanmazsa boş bir liste kullanılır.
  • unk_id (int, isteğe bağlı, varsayılan 0) — Sözlükteki bilinmeyen token'ın kimliği.
  • do_lower_case (bool, isteğe bağlı, varsayılan False) — Tokenize sırasında girdinin küçük harfe dönüştürülüp dönüştürülmeyeceğini belirtir.
  • remove_space (bool, isteğe bağlı, varsayılan True) — Tokenize sırasında metni temizleyip temizlemeyeceğini belirtir (dizgenin başındaki ve sonundaki gereksiz boşlukları kaldırır).
  • keep_accents (bool, isteğe bağlı, varsayılan False) — Tokenize sırasında aksanların korunup korunmayacağı.
  • 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.

  • eos_token (str, isteğe bağlı, varsayılan olarak "</s>") — Dizi sonu belirteci. Özel belirteçler kullanılarak bir dizi oluşturulduğunda, dizi sonu için kullanılan belirteç bu değildir. Kullanılan belirteç sep_token'dir.

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

  • 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.
  • sep_token (str, isteğe bağlı, varsayılan "<sep>") — Birden fazla diziden bir dizi oluşturulurken (ör. dizi sınıflandırma için iki dizi veya soru-cevap için bir metin ve bir soru) kullanılan ayraç belirteci. Ö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 "<cls>") — 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 "<mask>") — Değerleri maskelemek için kullanılan belirteç. Bu, modelin maskeli dil modelleme ile eğitildiğinde kullanılan belirteçtir. Modelin tahmin etmeye çalışacağı belirteç budur.
  • additional_special_tokens (list[str], isteğe bağlı, varsayılan ["<eop>", "<eod>"]) — Tokenizör tarafından kullanılan ek özel tokenler.

XLNet tokenizer'ı oluşturun (HuggingFace'in tokenizers kütüphanesi tarafından desteklenir). 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.

get_special_tokens_mask

< >

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

Parametreler

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

Dönüş değeri

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

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

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

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

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

XLNet'e özgü çıktılar

sınıf transformers.models.xlnet.modeling_xlnet.XLNetModelOutput

< >

( last_hidden_state: Tensormems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

Parametreler

  • last_hidden_state (torch.Tensor şeklinde (batch_size, num_predict, hidden_size)) — Modelin son katmanındaki gizli durumlar dizisi.

    num_predict, target_mapping.shape[1] ile eşleşir. target_mapping None ise, num_predict sequence_length ile eşleşir.

  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.
  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: torch.Tensor (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) ve şekli (batch_size, sequence_length, hidden_size).

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

  • attentions (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir adet). Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır. (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.

XLNetModel'ün çıktı türü.

sınıf transformers.models.xlnet.modeling_xlnet.XLNetLMHeadModelOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

Parametreler

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Dil modelleme kaybı (sonraki token tahmini için).
  • logits (torch.Tensor şeklinde (batch_size, num_predict, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).

    num_predict, target_mapping.shape[1] ile eşleşir. target_mapping None ise, num_predict sequence_length ile eşleşir.

  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.
  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: torch.Tensor (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) ve şekli (batch_size, sequence_length, hidden_size).

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

  • attentions (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir adet). Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır. (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.

XLNetLMHeadModel'in çıktı türü.

sınıf transformers.models.xlnet.modeling_xlnet.XLNetForSequenceClassificationOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

Parametreler

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, label sağlandığında döndürülür) — Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.
  • logits (torch.Tensor, şekli (batch_size, config.num_labels)) — Sınıflandırma (veya config.num_labels==1 ise regresyon) puanları (SoftMax öncesi).
  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.
  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: torch.Tensor (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) ve şekli (batch_size, sequence_length, hidden_size).

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

  • attentions (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir adet). Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır. (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.

XLNetForSequenceClassification'in çıktı türü.

sınıf transformers.models.xlnet.modeling_xlnet.XLNetForMultipleChoiceOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

Parametreler

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Sınıflandırma kaybı.
  • logits (torch.Tensor şeklinde (batch_size, num_choices)) — num_choices girdi tensörlerinin ikinci boyutudur. (bkz. input_ids yukarıda).

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

  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.
  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: torch.Tensor (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) ve şekli (batch_size, sequence_length, hidden_size).

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

  • attentions (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir adet). Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır. (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.

XLNetForMultipleChoice'ün çıktı türü.

sınıf transformers.models.xlnet.modeling_xlnet.XLNetForTokenClassificationOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

Parametreler

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Sınıflandırma kaybı.
  • logits (torch.Tensor, şekli (batch_size, sequence_length, config.num_labels)) — Sınıflandırma puanları (SoftMax öncesi).
  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.
  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: torch.Tensor (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) ve şekli (batch_size, sequence_length, hidden_size).

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

  • attentions (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir adet). Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır. (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.

XLNetForTokenClassificationOutput'un çıktı türü.

sınıf transformers.models.xlnet.modeling_xlnet.XLNetForQuestionAnsweringSimpleOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonestart_logits: typing.Optional[torch.Tensor] = Noneend_logits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

Parametreler

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, 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.Tensor, şekli (batch_size, sequence_length,)) — Span başlangıç puanları (SoftMax öncesi).
  • end_logits (torch.Tensor, şekli (batch_size, sequence_length,)) — Span sonu puanları (SoftMax öncesi).
  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.
  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: torch.Tensor (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) ve şekli (batch_size, sequence_length, hidden_size).

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

  • attentions (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir adet). Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır. (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.

XLNetForQuestionAnsweringSimple'in çıktı türü.

sınıf transformers.models.xlnet.modeling_xlnet.XLNetForQuestionAnsweringOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonestart_top_log_probs: typing.Optional[torch.Tensor] = Nonestart_top_index: typing.Optional[torch.LongTensor] = Noneend_top_log_probs: typing.Optional[torch.Tensor] = Noneend_top_index: typing.Optional[torch.LongTensor] = Nonecls_logits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

Parametreler

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, 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.Tensor, şekli (batch_size, config.start_n_top), isteğe bağlı, start_positions veya end_positions sağlanmadığında döndürülür) — İlk 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), isteğe bağlı, 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) dizinleri.
  • end_top_log_probs (torch.Tensor, ş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) — (beam-search) için en iyi config.start_n_top * config.end_n_top bitiş token olasılıklarının log olasılıkları
  • 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ının (beam-search) indeksleri.
  • cls_logits (torch.Tensor, şekli (batch_size,), isteğe bağlı, start_positions veya end_positions sağlanmadığında döndürülür) — Cevapların is_impossible etiketi için log olasılıkları.
  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.
  • hidden_states (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_hidden_states=True geçildiğinde veya config.output_hidden_states=True) — şu türden bir demet: torch.Tensor (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) ve şekli (batch_size, sequence_length, hidden_size).

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

  • attentions (tuple[torch.Tensor, ...], isteğe bağlı, geri döndürülür output_attentions=True geçildiğinde veya config.output_attentions=True) — şu türden bir demet torch.Tensor (şeklinde, her katman için bir adet). Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır. (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.

XLNetForQuestionAnswering sınıfının çıktı türü.

XLNetModel

sınıf transformers.XLNetModel

< >

( config: XLNetConfig )

Parametreler

  • config (XLNetConfig) — 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 head olmadan ham hidden-state çıktısı üreten çıplak Xlnet Model.

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] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetModelOutput or tuple(torch.Tensor)

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?

  • mems (list[torch.Tensor] uzunluğu config.n_layers) — önceden hesaplanmış gizli durumları içerir (bkz. mems aşağıdaki çıktı). Sıralı çözümlemeyi hızlandırmak için kullanılabilir. Bu modele geçmişleri verilmiş token kimlikleri, zaten hesaplandıkları için input_ids olarak geçirilmemelidir.

    mems'in kullanılabilmesi için use_mems'in True olarak ayarlanması gerekir.

  • perm_mask (torch.Tensor şeklinde (batch_size, sequence_length, sequence_length), isteğe bağlı) — Her giriş token'ı için dikkat desenini, [0, 1] aralığından seçilen değerlerle belirtmek için kullanılan maske: perm_mask[k, i, j] = 0 ise k. batch'te i, j'ye dikkat eder; perm_mask[k, i, j] = 1 ise k. batch'te i, j'ye dikkat etmez. Ayarlanmazsa, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır. [0, 1]:
    • perm_mask[k, i, j] = 0 ise, k toplu işlemi içinde i, j'ye dikkat eder;
    • perm_mask[k, i, j] = 1 ise, k toplu işlemi içinde i, j'ye dikkat etmez.

    Belirtilmezse, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır.

  • target_mapping (torch.Tensor, şekli (batch_size, num_predict, sequence_length), isteğe bağlı) — Kullanılacak çıktı jetonlarını belirtmek için maske. target_mapping[k, i, j] = 1 ise, k. batch'teki i. tahmin j. jeton üzerindedir. Yalnızca ön eğitim sırasında kısmi tahmin veya ardışık çözümleme (üretim) için kullanılı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?

  • input_mask (torch.Tensor şeklinde batch_size, sequence_length, isteğe bağlı) — Doldurma (padding) jeton indekslerinde dikkat (attention) işleminin uygulanmaması için kullanılan maske. attention_mask, yani gerçek jetonlar için 0 ve orijinal kod tabanı ile uyumluluk için korunan doldurma jetonları için 1 içeren.

    [0, 1] aralığında seçilen maske değerleri:

    • maskelenen jetonlar için 1,
    • maskelenmemiş jetonlar için 0.

    input_mask ve attention_mask parametrelerinden yalnızca birini kullanabilirsiniz.

  • 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.
  • use_mems (bool, isteğe bağlı) — Sıralı çözümleme hızlandırmak için bellek durumlarının kullanılıp kullanılmayacağını belirtir. True olarak ayarlanırsa, model dikkat hesaplaması için önceki ileri geçişlerden gelen gizli durumları kullanır; bu, sıralı çözümleme görevlerinde performansı önemli ölçüde artırabilir.
  • 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

XLNetModelOutput veya tuple(torch.Tensor)

A XLNetModelOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (XLNetConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

XLNetModel 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.Tensor, şekli (batch_size, num_predict, hidden_size)) — Modelin son katmanındaki gizli durumlar dizisi.

    num_predict, target_mapping.shape[1] ile eşleşir. target_mapping None ise, num_predict sequence_length ile eşleşir.

  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.

  • hidden_states (tuple[torch.Tensor, ...], 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.Tensor (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.Tensor, ...], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

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

XLNetLMHeadModel

sınıf transformers.XLNetLMHeadModel

< >

( config: XLNetConfig )

Parametreler

  • config (XLNetConfig) — 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 dil modelleme başlığı bulunan (giriş gömme ağırlıklarıyla bağlı ağırlıklara sahip doğrusal katman) XLNet 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.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs ) → XLNetLMHeadModelOutput or tuple(torch.Tensor)

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?

  • mems (list[torch.Tensor] uzunluğu config.n_layers) — önceden hesaplanmış gizli durumları içerir (bkz. mems aşağıdaki çıktı). Sıralı çözümlemeyi hızlandırmak için kullanılabilir. Bu modele geçmişleri verilmiş token kimlikleri, zaten hesaplandıkları için input_ids olarak geçirilmemelidir.

    mems'in kullanılabilmesi için use_mems'in True olarak ayarlanması gerekir.

  • perm_mask (torch.Tensor şeklinde (batch_size, sequence_length, sequence_length), isteğe bağlı) — Her giriş token'ı için dikkat desenini, [0, 1] aralığından seçilen değerlerle belirtmek için kullanılan maske: perm_mask[k, i, j] = 0 ise k. batch'te i, j'ye dikkat eder; perm_mask[k, i, j] = 1 ise k. batch'te i, j'ye dikkat etmez. Ayarlanmazsa, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır. [0, 1]:
    • perm_mask[k, i, j] = 0 ise, k toplu işlemi içinde i, j'ye dikkat eder;
    • perm_mask[k, i, j] = 1 ise, k toplu işlemi içinde i, j'ye dikkat etmez.

    Belirtilmezse, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır.

  • target_mapping (torch.Tensor, şekli (batch_size, num_predict, sequence_length), isteğe bağlı) — Kullanılacak çıktı jetonlarını belirtmek için maske. target_mapping[k, i, j] = 1 ise, k. batch'teki i. tahmin j. jeton üzerindedir. Yalnızca ön eğitim sırasında kısmi tahmin veya ardışık çözümleme (üretim) için kullanılı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?

  • input_mask (torch.Tensor şeklinde batch_size, sequence_length, isteğe bağlı) — Doldurma (padding) jeton indekslerinde dikkat (attention) işleminin uygulanmaması için kullanılan maske. attention_mask, yani gerçek jetonlar için 0 ve orijinal kod tabanı ile uyumluluk için korunan doldurma jetonları için 1 içeren.

    [0, 1] aralığında seçilen maske değerleri:

    • maskelenen jetonlar için 1,
    • maskelenmemiş jetonlar için 0.

    input_mask ve attention_mask parametrelerinden yalnızca birini kullanabilirsiniz.

  • 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 şeklinde (batch_size, num_predict), isteğe bağlı) — Maskeli dil modelleme için etiketler. num_predict şuna karşılık gelir: target_mapping.shape[1]. Eğer target_mapping şu değerse: None, bu durumda num_predict şuna karşılık gelir: sequence_length.

    Etiketler, tahmin edilmesi gereken maskelenmiş girdi kelimelerine karşılık gelmeli ve target_mapping değerine bağlıdır. Standart otoregresif dil modellemesi yapmak için input_ids dizisine bir token'ı eklenmesi gerekir (aşağıdaki prepare_inputs_for_generation fonksiyonuna ve örneklerine bakınız).

    Dizinler [-100, 0, ..., config.vocab_size] aralığında seçilir. -100 olarak ayarlanan tüm etiketler yok sayılır; kayıp yalnızca [0, ..., config.vocab_size] aralığındaki etiketler için hesaplanır.

  • use_mems (bool, isteğe bağlı) — Sıralı çözümleme hızlandırmak için bellek durumlarının kullanılıp kullanılmayacağını belirtir. True olarak ayarlanırsa, model dikkat hesaplaması için önceki ileri geçişlerden gelen gizli durumları kullanır; bu, sıralı çözümleme görevlerinde performansı önemli ölçüde artırabilir.
  • 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?
  • logits_to_keep (Union[int, torch.Tensor], isteğe bağlı, varsayılan 0) — int ise, son logits_to_keep token için logits hesaplanır. 0 ise, tüm input_ids için logits hesaplanır (özel durum). Üretim için yalnızca son token logits'leri gereklidir ve bunların yalnızca o token için hesaplanması bellek tasarrufu sağlar; bu, uzun diziler veya büyük sözlük boyutu için oldukça önemli hale gelir. torch.Tensor ise, dizi uzunluğu boyutundaki korunacak indekslere karşılık gelen 1B olmalıdır. Bu, paketlenmiş tensor biçimini (batch ve dizi uzunluğu için tek boyut) kullanırken faydalıdır.

Dönüş değeri

XLNetLMHeadModelOutput veya tuple(torch.Tensor)

A XLNetLMHeadModelOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (XLNetConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

XLNetLMHeadModel 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.Tensor, şekli (1,), opsiyonel, labels sağlandığında döndürülür) — Dil modelleme kaybı (sonraki token tahmini için).

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

    num_predict, target_mapping.shape[1] ile eşleşir. target_mapping None ise, num_predict sequence_length ile eşleşir.

  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.

  • hidden_states (tuple[torch.Tensor, ...], 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.Tensor (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.Tensor, ...], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

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

Örnekler:

>>> from transformers import AutoTokenizer, XLNetLMHeadModel
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetLMHeadModel.from_pretrained("xlnet/xlnet-large-cased")

>>> # We show how to setup inputs to predict a next token using a bi-directional context.
>>> input_ids = torch.tensor(
...     tokenizer.encode("Hello, my dog is very <mask>", add_special_tokens=False)
... ).unsqueeze(
...     0
... )  # We will predict the masked token
>>> perm_mask = torch.zeros((1, input_ids.shape[1], input_ids.shape[1]), dtype=torch.float)
>>> perm_mask[:, :, -1] = 1.0  # Previous tokens don't see last token
>>> target_mapping = torch.zeros(
...     (1, 1, input_ids.shape[1]), dtype=torch.float
... )  # Shape [1, 1, seq_length] => let's predict one token
>>> target_mapping[
...     0, 0, -1
... ] = 1.0  # Our first (and only) prediction will be the last token of the sequence (the masked token)

>>> outputs = model(input_ids, perm_mask=perm_mask, target_mapping=target_mapping)
>>> next_token_logits = outputs[
...     0
... ]  # Output has shape [target_mapping.size(0), target_mapping.size(1), config.vocab_size]

>>> # The same way can the XLNetLMHeadModel be used to be trained by standard auto-regressive language modeling.
>>> input_ids = torch.tensor(
...     tokenizer.encode("Hello, my dog is very <mask>", add_special_tokens=False)
... ).unsqueeze(
...     0
... )  # We will predict the masked token
>>> labels = torch.tensor(tokenizer.encode("cute", add_special_tokens=False)).unsqueeze(0)
>>> assert labels.shape[0] == 1, "only one word will be predicted"
>>> perm_mask = torch.zeros((1, input_ids.shape[1], input_ids.shape[1]), dtype=torch.float)
>>> perm_mask[
...     :, :, -1
... ] = 1.0  # Previous tokens don't see last token as is done in standard auto-regressive lm training
>>> target_mapping = torch.zeros(
...     (1, 1, input_ids.shape[1]), dtype=torch.float
... )  # Shape [1, 1, seq_length] => let's predict one token
>>> target_mapping[
...     0, 0, -1
... ] = 1.0  # Our first (and only) prediction will be the last token of the sequence (the masked token)

>>> outputs = model(input_ids, perm_mask=perm_mask, target_mapping=target_mapping, labels=labels)
>>> loss = outputs.loss
>>> next_token_logits = (
...     outputs.logits
... )  # Logits have shape [target_mapping.size(0), target_mapping.size(1), config.vocab_size]

XLNetForSequenceClassification

sınıf transformers.XLNetForSequenceClassification

< >

( config: XLNetConfig )

Parametreler

  • config (XLNetConfig) — 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üşüm başlığı (toplanmış çıktının üzerinde doğrusal bir katman) bulunan XLNet Modeli, örneğin 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] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForSequenceClassificationOutput or tuple(torch.Tensor)

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?

  • mems (list[torch.Tensor] uzunluğu config.n_layers) — önceden hesaplanmış gizli durumları içerir (bkz. mems aşağıdaki çıktı). Sıralı çözümlemeyi hızlandırmak için kullanılabilir. Bu modele geçmişleri verilmiş token kimlikleri, zaten hesaplandıkları için input_ids olarak geçirilmemelidir.

    mems'in kullanılabilmesi için use_mems'in True olarak ayarlanması gerekir.

  • perm_mask (torch.Tensor şeklinde (batch_size, sequence_length, sequence_length), isteğe bağlı) — Her giriş token'ı için dikkat desenini, [0, 1] aralığından seçilen değerlerle belirtmek için kullanılan maske: perm_mask[k, i, j] = 0 ise k. batch'te i, j'ye dikkat eder; perm_mask[k, i, j] = 1 ise k. batch'te i, j'ye dikkat etmez. Ayarlanmazsa, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır. [0, 1]:
    • perm_mask[k, i, j] = 0 ise, k toplu işlemi içinde i, j'ye dikkat eder;
    • perm_mask[k, i, j] = 1 ise, k toplu işlemi içinde i, j'ye dikkat etmez.

    Belirtilmezse, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır.

  • target_mapping (torch.Tensor, şekli (batch_size, num_predict, sequence_length), isteğe bağlı) — Kullanılacak çıktı jetonlarını belirtmek için maske. target_mapping[k, i, j] = 1 ise, k. batch'teki i. tahmin j. jeton üzerindedir. Yalnızca ön eğitim sırasında kısmi tahmin veya ardışık çözümleme (üretim) için kullanılı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?

  • input_mask (torch.Tensor şeklinde batch_size, sequence_length, isteğe bağlı) — Doldurma (padding) jeton indekslerinde dikkat (attention) işleminin uygulanmaması için kullanılan maske. attention_mask, yani gerçek jetonlar için 0 ve orijinal kod tabanı ile uyumluluk için korunan doldurma jetonları için 1 içeren.

    [0, 1] aralığında seçilen maske değerleri:

    • maskelenen jetonlar için 1,
    • maskelenmemiş jetonlar için 0.

    input_mask ve attention_mask parametrelerinden yalnızca birini kullanabilirsiniz.

  • 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.
  • use_mems (bool, isteğe bağlı) — Sıralı çözümleme hızlandırmak için bellek durumlarının kullanılıp kullanılmayacağını belirtir. True olarak ayarlanırsa, model dikkat hesaplaması için önceki ileri geçişlerden gelen gizli durumları kullanır; bu, sıralı çözümleme görevlerinde performansı önemli ölçüde artırabilir.
  • 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

XLNetForSequenceClassificationOutput veya tuple(torch.Tensor)

Bir XLNetForSequenceClassificationOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (XLNetConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

XLNetForSequenceClassification 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.Tensor, şekli (1,), isteğe bağlı, label sağlandığında döndürülür) — Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.

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

  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.

  • hidden_states (tuple[torch.Tensor, ...], 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.Tensor (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.Tensor, ...], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

    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, XLNetForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForSequenceClassification.from_pretrained("xlnet/xlnet-large-cased")

>>> 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 = XLNetForSequenceClassification.from_pretrained("xlnet/xlnet-large-cased", 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, XLNetForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForSequenceClassification.from_pretrained("xlnet/xlnet-large-cased", 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 = XLNetForSequenceClassification.from_pretrained(
...     "xlnet/xlnet-large-cased", 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

XLNetForMultipleChoice

sınıf transformers.XLNetForMultipleChoice

< >

( config: XLNetConfig )

Parametreler

  • config (XLNetConfig) — 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 çoklu seçim sınıflandırma başlığı (havuzlanmış çıktının üzerinde doğrusal bir katman ve softmax) bulunan Xlnet 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] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForMultipleChoiceOutput or tuple(torch.Tensor)

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?

  • 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?

  • input_mask (torch.Tensor şeklinde batch_size, num_choices, sequence_length, isteğe bağlı) — Doldurma (padding) jeton indekslerinde dikkat (attention) işleminin uygulanmaması için kullanılan maske. attention_mask, yani gerçek jetonlar için 0 ve orijinal kod tabanı ile uyumluluk için korunan doldurma jetonları için 1 içeren.

    [0, 1] aralığında seçilen maske değerleri:

    • maskelenen jetonlar için 1,
    • maskelenmemiş jetonlar için 0.

    input_mask ve attention_mask parametrelerinden yalnızca birini kullanabilirsiniz.

  • 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?

  • mems (list[torch.Tensor] uzunluğu config.n_layers) — önceden hesaplanmış gizli durumları içerir (bkz. mems aşağıdaki çıktı). Sıralı çözümlemeyi hızlandırmak için kullanılabilir. Bu modele geçmişleri verilmiş token kimlikleri, zaten hesaplandıkları için input_ids olarak geçirilmemelidir.

    mems'in kullanılabilmesi için use_mems'in True olarak ayarlanması gerekir.

  • perm_mask (torch.Tensor şeklinde (batch_size, sequence_length, sequence_length), isteğe bağlı) — Her giriş token'ı için dikkat desenini, [0, 1] aralığından seçilen değerlerle belirtmek için kullanılan maske: perm_mask[k, i, j] = 0 ise k. batch'te i, j'ye dikkat eder; perm_mask[k, i, j] = 1 ise k. batch'te i, j'ye dikkat etmez. Ayarlanmazsa, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır. [0, 1]:
    • perm_mask[k, i, j] = 0 ise, k toplu işlemi içinde i, j'ye dikkat eder;
    • perm_mask[k, i, j] = 1 ise, k toplu işlemi içinde i, j'ye dikkat etmez.

    Belirtilmezse, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır.

  • target_mapping (torch.Tensor, şekli (batch_size, num_predict, sequence_length), isteğe bağlı) — Kullanılacak çıktı jetonlarını belirtmek için maske. target_mapping[k, i, j] = 1 ise, k. batch'teki i. tahmin j. jeton üzerindedir. Yalnızca ön eğitim sırasında kısmi tahmin veya ardışık çözümleme (üretim) için kullanılır.
  • inputs_embeds (torch.Tensor, ş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. İndeksler `[0, …,
  • use_mems (bool, isteğe bağlı) — Sıralı çözümleme hızlandırmak için bellek durumlarının kullanılıp kullanılmayacağını belirtir. True olarak ayarlanırsa, model dikkat hesaplaması için önceki ileri geçişlerden gelen gizli durumları kullanır; bu, sıralı çözümleme görevlerinde performansı önemli ölçüde artırabilir.
  • 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

XLNetForMultipleChoiceOutput veya tuple(torch.Tensor)

Bir XLNetForMultipleChoiceOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (XLNetConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

XLNetForMultipleChoice 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.Tensor, şekli (1,), opsiyonel, labels sağlandığında döndürülür) — Sınıflandırma kaybı.

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

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

  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.

  • hidden_states (tuple[torch.Tensor, ...], 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.Tensor (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.Tensor, ...], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

    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, XLNetForMultipleChoice
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForMultipleChoice.from_pretrained("xlnet/xlnet-large-cased")

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

XLNetForTokenClassification

sınıf transformers.XLNetForTokenClassification

< >

( config: XLNetConfig )

Parametreler

  • config (XLNetConfig) — 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 yerleştirilen doğrusal bir katman) Xlnet dönüştürücüsü, ö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] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForTokenClassificationOutput or tuple(torch.Tensor)

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?

  • mems (list[torch.Tensor] uzunluğu config.n_layers) — önceden hesaplanmış gizli durumları içerir (bkz. mems aşağıdaki çıktı). Sıralı çözümlemeyi hızlandırmak için kullanılabilir. Bu modele geçmişleri verilmiş token kimlikleri, zaten hesaplandıkları için input_ids olarak geçirilmemelidir.

    mems'in kullanılabilmesi için use_mems'in True olarak ayarlanması gerekir.

  • perm_mask (torch.Tensor şeklinde (batch_size, sequence_length, sequence_length), isteğe bağlı) — Her giriş token'ı için dikkat desenini, [0, 1] aralığından seçilen değerlerle belirtmek için kullanılan maske: perm_mask[k, i, j] = 0 ise k. batch'te i, j'ye dikkat eder; perm_mask[k, i, j] = 1 ise k. batch'te i, j'ye dikkat etmez. Ayarlanmazsa, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır. [0, 1]:
    • perm_mask[k, i, j] = 0 ise, k toplu işlemi içinde i, j'ye dikkat eder;
    • perm_mask[k, i, j] = 1 ise, k toplu işlemi içinde i, j'ye dikkat etmez.

    Belirtilmezse, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır.

  • target_mapping (torch.Tensor, şekli (batch_size, num_predict, sequence_length), isteğe bağlı) — Kullanılacak çıktı jetonlarını belirtmek için maske. target_mapping[k, i, j] = 1 ise, k. batch'teki i. tahmin j. jeton üzerindedir. Yalnızca ön eğitim sırasında kısmi tahmin veya ardışık çözümleme (üretim) için kullanılı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?

  • input_mask (torch.Tensor şeklinde batch_size, sequence_length, isteğe bağlı) — Doldurma (padding) jeton indekslerinde dikkat (attention) işleminin uygulanmaması için kullanılan maske. attention_mask, yani gerçek jetonlar için 0 ve orijinal kod tabanı ile uyumluluk için korunan doldurma jetonları için 1 içeren.

    [0, 1] aralığında seçilen maske değerleri:

    • maskelenen jetonlar için 1,
    • maskelenmemiş jetonlar için 0.

    input_mask ve attention_mask parametrelerinden yalnızca birini kullanabilirsiniz.

  • 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ı) — Çoklu seçim sınıflandırma kaybını hesaplamak için etiketler. İndeksler, num_choices'ün girdi tensörlerinin ikinci boyutunun boyutu olduğu [0, ..., num_choices] aralığında olmalıdır. (bkz. yukarıdaki input_ids)
  • use_mems (bool, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için bellek durumlarının kullanılıp kullanılmayacağını belirtir. True olarak ayarlanırsa, model dikkat hesaplaması için önceki ileri geçişlerden gelen gizli durumları kullanır; bu da sıralı çözümleme görevlerinde performansı önemli ölçüde artırabilir. Sıralı çözümlemeyi hızlandırmak için bellek durumları. True olarak ayarlanırsa, model dikkat hesaplaması için önceki ileri geçişlerden gelen gizli durumları kullanır; bu da sıralı çözümleme görevlerinde performansı önemli ölçüde artırabilir.
  • 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

XLNetForTokenClassificationOutput veya tuple(torch.Tensor)

A XLNetForTokenClassificationOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (XLNetConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

XLNetForTokenClassification 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.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Sınıflandırma kaybı.

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

  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.

  • hidden_states (tuple[torch.Tensor, ...], 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.Tensor (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.Tensor, ...], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

    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, XLNetForTokenClassification
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForTokenClassification.from_pretrained("xlnet/xlnet-large-cased")

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

XLNetForQuestionAnsweringSimple

sınıf transformers.XLNetForQuestionAnsweringSimple

< >

( config: XLNetConfig )

Parametreler

  • config (XLNetConfig) — 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 XLNet 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] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForQuestionAnsweringSimpleOutput or tuple(torch.Tensor)

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?

  • mems (list[torch.Tensor] uzunluğu config.n_layers) — önceden hesaplanmış gizli durumları içerir (bkz. mems aşağıdaki çıktı). Sıralı çözümlemeyi hızlandırmak için kullanılabilir. Bu modele geçmişleri verilmiş token kimlikleri, zaten hesaplandıkları için input_ids olarak geçirilmemelidir.

    mems'in kullanılabilmesi için use_mems'in True olarak ayarlanması gerekir.

  • perm_mask (torch.Tensor şeklinde (batch_size, sequence_length, sequence_length), isteğe bağlı) — Her giriş token'ı için dikkat desenini, [0, 1] aralığından seçilen değerlerle belirtmek için kullanılan maske: perm_mask[k, i, j] = 0 ise k. batch'te i, j'ye dikkat eder; perm_mask[k, i, j] = 1 ise k. batch'te i, j'ye dikkat etmez. Ayarlanmazsa, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır. [0, 1]:
    • perm_mask[k, i, j] = 0 ise, k toplu işlemi içinde i, j'ye dikkat eder;
    • perm_mask[k, i, j] = 1 ise, k toplu işlemi içinde i, j'ye dikkat etmez.

    Belirtilmezse, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır.

  • target_mapping (torch.Tensor, şekli (batch_size, num_predict, sequence_length), isteğe bağlı) — Kullanılacak çıktı jetonlarını belirtmek için maske. target_mapping[k, i, j] = 1 ise, k. batch'teki i. tahmin j. jeton üzerindedir. Yalnızca ön eğitim sırasında kısmi tahmin veya ardışık çözümleme (üretim) için kullanılı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?

  • input_mask (torch.Tensor şeklinde batch_size, sequence_length, isteğe bağlı) — Doldurma (padding) jeton indekslerinde dikkat (attention) işleminin uygulanmaması için kullanılan maske. attention_mask, yani gerçek jetonlar için 0 ve orijinal kod tabanı ile uyumluluk için korunan doldurma jetonları için 1 içeren.

    [0, 1] aralığında seçilen maske değerleri:

    • maskelenen jetonlar için 1,
    • maskelenmemiş jetonlar için 0.

    input_mask ve attention_mask parametrelerinden yalnızca birini kullanabilirsiniz.

  • 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.
  • use_mems (bool, isteğe bağlı) — Sıralı çözümleme hızlandırmak için bellek durumlarının kullanılıp kullanılmayacağını belirtir. True olarak ayarlanırsa, model dikkat hesaplaması için önceki ileri geçişlerden gelen gizli durumları kullanır; bu, sıralı çözümleme görevlerinde performansı önemli ölçüde artırabilir.
  • 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

XLNetForQuestionAnsweringSimpleOutput veya tuple(torch.Tensor)

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

XLNetForQuestionAnsweringSimple 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.Tensor, şekli (1,), isteğe bağlı, 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.Tensor, şekli (batch_size, sequence_length,)) — Span başlangıç puanları (SoftMax öncesi).

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

  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.

  • hidden_states (tuple[torch.Tensor, ...], 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.Tensor (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.Tensor, ...], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

    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, XLNetForQuestionAnsweringSimple
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForQuestionAnsweringSimple.from_pretrained("xlnet/xlnet-large-cased")

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

XLNetForQuestionAnswering

sınıf transformers.XLNetForQuestionAnswering

< >

( config: XLNetConfig )

Parametreler

  • config (XLNetConfig) — 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 span sınıflandırma kafası bulunan Xlnet dönüştürücüsü (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] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = 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] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForQuestionAnsweringOutput or tuple(torch.Tensor)

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?

  • mems (list[torch.Tensor] uzunluğu config.n_layers) — önceden hesaplanmış gizli durumları içerir (bkz. mems aşağıdaki çıktı). Sıralı çözümlemeyi hızlandırmak için kullanılabilir. Bu modele geçmişleri verilmiş token kimlikleri, zaten hesaplandıkları için input_ids olarak geçirilmemelidir.

    mems'in kullanılabilmesi için use_mems'in True olarak ayarlanması gerekir.

  • perm_mask (torch.Tensor şeklinde (batch_size, sequence_length, sequence_length), isteğe bağlı) — Her giriş token'ı için dikkat desenini, [0, 1] aralığından seçilen değerlerle belirtmek için kullanılan maske: perm_mask[k, i, j] = 0 ise k. batch'te i, j'ye dikkat eder; perm_mask[k, i, j] = 1 ise k. batch'te i, j'ye dikkat etmez. Ayarlanmazsa, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır. [0, 1]:
    • perm_mask[k, i, j] = 0 ise, k toplu işlemi içinde i, j'ye dikkat eder;
    • perm_mask[k, i, j] = 1 ise, k toplu işlemi içinde i, j'ye dikkat etmez.

    Belirtilmezse, her token diğer tüm token'lara dikkat eder (tam çift yönlü dikkat). Yalnızca ön eğitim sırasında (faktörizasyon sırasını tanımlamak için) veya ardışık çözümleme (üretim) sırasında kullanılır.

  • target_mapping (torch.Tensor, şekli (batch_size, num_predict, sequence_length), isteğe bağlı) — Kullanılacak çıktı jetonlarını belirtmek için maske. target_mapping[k, i, j] = 1 ise, k. batch'teki i. tahmin j. jeton üzerindedir. Yalnızca ön eğitim sırasında kısmi tahmin veya ardışık çözümleme (üretim) için kullanılı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?

  • input_mask (torch.Tensor şeklinde batch_size, sequence_length, isteğe bağlı) — Doldurma (padding) jeton indekslerinde dikkat (attention) işleminin uygulanmaması için kullanılan maske. attention_mask, yani gerçek jetonlar için 0 ve orijinal kod tabanı ile uyumluluk için korunan doldurma jetonları için 1 içeren.

    [0, 1] aralığında seçilen maske değerleri:

    • maskelenen jetonlar için 1,
    • maskelenmemiş jetonlar için 0.

    input_mask ve attention_mask parametrelerinden yalnızca birini kullanabilirsiniz.

  • 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.Tensor, şekli (batch_size, sequence_length), isteğe bağlı) — Cevap olamayacak token'ların isteğe bağlı maskesi (ör. [CLS], [PAD], …). 1.0, token'ın maskelenmesi gerektiğini belirtir. 0.0, token'ın maskelenmediğini belirtir.
  • use_mems (bool, isteğe bağlı) — Sıralı çözümleme hızlandırmak için bellek durumlarının kullanılıp kullanılmayacağını belirtir. True olarak ayarlanırsa, model dikkat hesaplaması için önceki ileri geçişlerden gelen gizli durumları kullanır; bu, sıralı çözümleme görevlerinde performansı önemli ölçüde artırabilir.
  • 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

XLNetForQuestionAnsweringOutput veya tuple(torch.Tensor)

A XLNetForQuestionAnsweringOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (XLNetConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

XLNetForQuestionAnswering 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.Tensor, şekli (1,), isteğe bağlı, 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.Tensor, şekli (batch_size, config.start_n_top), isteğe bağlı, 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.Tensor, ş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ş 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.Tensor, şekli (batch_size,), isteğe bağlı, start_positions veya end_positions sağlanmadığında döndürülür) — Cevapların is_impossible etiketi için log olasılıkları.

  • mems (list[torch.Tensor], uzunluğu config.n_layers) — Önceden hesaplanmış gizli durumları içerir. Sıralı çözümlemeyi hızlandırmak için kullanılabilir (bkz. mems girdisi). Geçmişi bu modele verilen token kimlikleri, zaten hesaplandığı için input_ids olarak geçirilmemelidir.

  • hidden_states (tuple[torch.Tensor, ...], 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.Tensor (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.Tensor, ...], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — (batch_size, num_heads, sequence_length, sequence_length) biçiminde, her katman için bir adet içeren torch.Tensor demeti.

    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, XLNetForQuestionAnswering
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-base-cased")
>>> model = XLNetForQuestionAnswering.from_pretrained("xlnet/xlnet-base-cased")

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