Transformers documentation
ALBERT
Bu model 2019-09-26 tarihinde HF papers'ta yayımlandı ve 2020-11-16 tarihinde Hugging Face Transformers'a katkıda bulunuldu.
ALBERT
ALBERT, BERT'in ölçeklendirme ve eğitim süreçlerindeki bellek kısıtlamalarını ele almak üzere tasarlanmıştır. İki parametre azaltma tekniği ekler. İlki, faktörize edilmiş gömme parametrelendirmesidir; daha büyük sözlük gömme matrisini iki küçük matrise böler, böylece gizli boyutu çok fazla parametre eklemeye gerek kalmadan büyütülebilir. İkincisi, katmanlar arası parametre paylaşımıdır; katmanların parametreleri paylaşmasına olanak tanır ve bu da öğrenilebilir parametre sayısını düşük tutar.
ALBERT, BERT'teki GPU/TPU bellek kısıtlamaları, daha uzun eğitim süreleri ve beklenmedik model bozulması gibi sorunları ele almak için oluşturulmuştur. ALBERT, BERT'in bellek tüketimini azaltmak ve eğitim hızını artırmak için iki parametre azaltma tekniği kullanır:
- Faktörize gömme parametrelendirmesi: Büyük sözlük gömme matrisi, bellek tüketimini azaltmak için iki daha küçük matrise ayrıştırılır.
- Katmanlar arası parametre paylaşımı: Her transformer katmanı için ayrı parametreler öğrenmek yerine ALBERT, parametreleri katmanlar arasında paylaşarak öğrenilebilir ağırlıkların sayısını daha da azaltır.
ALBERT, BERT gibi mutlak konum gömme kullanır; bu nedenle dolgu sağa uygulanır. Gömme boyutu 128'dir. BERT ise 768 kullanır. ALBERT, bir seferde en fazla 512 token işleyebilir.
Tüm orijinal ALBERT checkpoint'lerini ALBERT topluluğu kuruluşu altında bulabilirsiniz.
Farklı dil görevlerine ALBERT uygulamak için daha fazla örnek görmek için sağ kenar çubuğundaki ALBERT modellerine tıklayın.
Aşağıdaki örnek, [MASK] token'ını Pipeline, AutoModel ve komut satırından nasıl tahmin edeceğinizi göstermektedir.
from transformers import pipeline
pipeline = pipeline(
task="fill-mask",
model="albert-base-v2",
device=0
)
pipeline("Plants create [MASK] through a process known as photosynthesis.", top_k=5)import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("albert/albert-base-v2")
model = AutoModelForMaskedLM.from_pretrained(
"albert/albert-base-v2",
attn_implementation="sdpa",
device_map="auto"
)
prompt = "Plants create energy through a process known as [MASK]."
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model(**inputs)
mask_token_index = torch.where(inputs["input_ids"] == tokenizer.mask_token_id)[1]
predictions = outputs.logits[0, mask_token_index]
top_k = torch.topk(predictions, k=5).indices.tolist()
for token_id in top_k[0]:
print(f"Prediction: {tokenizer.decode([token_id])}")Notlar
- BERT mutlak konum gömme (embedding) kullandığı için girdiler sağ taraftan dolgu (padding) ile tamamlanmalıdır.
- Gömme boyutu
E, gömlemelerin bağlamdan bağımsız (bir gömme vektörü bir token'ı temsil eder) ve gizli durumların bağlama bağımlı (bir gizli durum, token dizisini temsil eder) olması nedeniyle gizli boyuttanHfarklıdır. Gömme matrisi deV x Eolduğundan daha büyüktür; buradaVsözlük boyutudur. Sonuç olarak,H >> Eolması daha mantıklıdır.E < Hise modelin parametre sayısı daha azdır.
Kaynaklar
Aşağıdaki bölümlerde sağlanan kaynaklar, ALBERT ile başlamanıza yardımcı olmak için resmi Hugging Face ve topluluk (🌎 ile belirtilen) kaynaklarının bir listesinden oluşur. Burada yer alacak bir kaynak göndermekle ilgileniyorsanız, bir Pull Request açmaktan çekinmeyin; inceleyeceğiz! Kaynak, mevcut bir kaynağı tekrarlamak yerine ideal olarak yeni bir şeyi göstermelidir.
- Modelin nasıl kullanılacağını görmek için Metin sınıflandırma görevi kılavuzuna göz atın.
- 🤗 Hugging Face Kursu'nun Token sınıflandırma bölümü.
- Modelin nasıl kullanılacağını görmek için Token classification görevi kılavuzuna göz atın.
- Bu defter AlbertForMaskedLM sınıfını destekler.
- 🤗 Hugging Face Kursu'nun Masked language modeling bölümü.
- Modelin nasıl kullanılacağına dair Masked language modeling görevi kılavuzunu kontrol edin.
- Bu defter AlbertForQuestionAnswering sınıfını destekler.
- 🤗 Hugging Face Kursu'nun Soru yanıtlama bölümü.
- Modelin nasıl kullanılacağını görmek için Soru yanıtlama görevi kılavuzuna göz atın.
Çoktan seçmeli
- Bu defter AlbertForMultipleChoice sınıfını destekler.
- Modelin nasıl kullanılacağına dair Çoktan seçmeli görev kılavuzuna göz atın.
AlbertConfig
sınıf transformers.AlbertConfig
< source >( 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 = 30000embedding_size: int = 128hidden_size: int = 4096num_hidden_layers: int = 12num_hidden_groups: int = 1num_attention_heads: int = 64intermediate_size: int = 16384inner_group_num: int = 1hidden_act: str = 'gelu_new'hidden_dropout_prob: int | float = 0.0attention_probs_dropout_prob: int | float = 0.0max_position_embeddings: int = 512type_vocab_size: int = 2initializer_range: float = 0.02layer_norm_eps: float = 1e-12classifier_dropout_prob: int | float = 0.1pad_token_id: int | None = 0bos_token_id: int | None = 2eos_token_id: int | list[int] | None = 3tie_word_embeddings: bool = True )
Parametreler
- vocab_size (
int, isteğe bağlı, varsayılan30000) — Modelin sözlük boyutu.input_idstarafından temsil edilebilecek farklı token sayısını tanımlar. - embedding_size (
int, isteğe bağlı, varsayılan128) — Gömme ve gizli durumların boyutluluğu. - hidden_size (
int, isteğe bağlı, varsayılan4096) — Gizli temsillerin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan12) — Transformer çözücüdeki gizli katman sayısı. - num_hidden_groups (
int, isteğe bağlı, varsayılan 1) — Gizli katmanlar için grup sayısı, aynı gruptaki parametreler paylaşılır. - num_attention_heads (
int, isteğe bağlı, varsayılan64) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - intermediate_size (
int, isteğe bağlı, varsayılan16384) — MLP temsillerinin boyutu. - inner_group_num (
int, isteğe bağlı, varsayılan 1) — Dikkat ve ffn'nin iç tekrarlama sayısı. - hidden_act (
str, isteğe bağlı, varsayılangelu_new) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - hidden_dropout_prob (
Union[int, float], isteğe bağlı, varsayılan0.0) — Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı. - attention_probs_dropout_prob (
Union[int, float], isteğe bağlı, varsayılan0.0) — Dikkat olasılıkları için dropout oranı. - max_position_embeddings (
int, isteğe bağlı, varsayılan512) — Bu modelin kullanılabileceği en uzun dizi uzunluğu. - type_vocab_size (
int, isteğe bağlı, varsayılan2) —token_type_idsiçin sözlük boyutu. - initializer_range (
float, isteğe bağlı, varsayılan0.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ılan1e-12) — Katman normalizasyon katmanları tarafından kullanılan epsilon. - classifier_dropout_prob (
Union[int, float], isteğe bağlı, varsayılan0.1) — Sınıflandırıcı için dropout oranı. - pad_token_id (
int, isteğe bağlı, varsayılan0) — Sözlükte dolgu için kullanılan token kimliği. - bos_token_id (
int, isteğe bağlı, varsayılan2) — 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ılan3) — Sözlükte akış sonu için kullanılan token kimliği. - tie_word_embeddings (
bool, isteğe bağlı, varsayılanTrue) — Modelintied_weights_keyseşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.
Bu, bir AlbertModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Albert modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneği oluşturmak, albert/albert-xxlarge-v2 ile benzer bir yapılandırmaya yol açar.
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 AlbertConfig, AlbertModel
>>> # Initializing an ALBERT-xxlarge style configuration
>>> albert_xxlarge_configuration = AlbertConfig()
>>> # Initializing an ALBERT-base style configuration
>>> albert_base_configuration = AlbertConfig(
... hidden_size=768,
... num_attention_heads=12,
... intermediate_size=3072,
... )
>>> # Initializing a model (with random weights) from the ALBERT-base style configuration
>>> model = AlbertModel(albert_xxlarge_configuration)
>>> # Accessing the model configuration
>>> configuration = model.configAlbertTokenizer
sınıf transformers.AlbertTokenizer
< source >( vocab: str | list[tuple[str, float]] | None = Nonedo_lower_case: bool = Truekeep_accents: bool = Falsebos_token: str = '[CLS]'eos_token: str = '[SEP]'unk_token: str = '<unk>'sep_token: str = '[SEP]'pad_token: str = '<pad>'cls_token: str = '[CLS]'mask_token: str = '[MASK]'_spm_precompiled_charsmap: str | None = Noneadd_prefix_space: bool = Truetrim_offsets: bool = True**kwargs )
Parametreler
- do_lower_case (
bool, isteğe bağlı, varsayılanTrue) — Tokenize sırasında girdinin küçük harfe dönüştürülüp dönüştürülmemesi. - keep_accents (
bool, isteğe bağlı, varsayılanFalse) — Tokenize sırasında aksanların korunup korunmayacağı. - bos_token (
str, isteğe bağlı, varsayılan olarak"[CLS]") — Ön eğitim sırasında kullanılan dizinin başlangıç token'ı. Bir dizi sınıflandırıcı token'ı olarak kullanılabilir.Ö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"[SEP]") — Dizi sonu belirteci. .. note:: Ö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'tur. - 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]") — Ayracı belirten token; birden fazla diziden bir dizi oluşturulurken kullanılır, örneğin dizi sınıflandırma için iki dizi veya soru cevaplamada bir metin ve bir soru için. Özel token'larla oluşturulan bir dizinin son token'ı 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]") — Dizi sınıflandırması yapılırken (token başına sınıflandırma yerine tüm dizinin sınıflandırılması) kullanılan sınıflandırıcı tokenıdır. Özel tokenlarla oluşturulduğunda dizinin ilk tokenıdır. - mask_token (
str, isteğe bağlı, varsayılan"[MASK]") — Değerleri maskelemek için kullanılan jeton. Bu, modelin maskeli dil modelleme ile eğitildiğinde kullanılan jetondur. Modelin tahmin etmeye çalışacağı jeton budur. - add_prefix_space (
bool, isteğe bağlı, varsayılanTrue) — Girişe başlangıçta bir boşluk eklenip eklenmeyeceğini belirtir. Bu, baştaki kelimenin diğer herhangi bir kelime gibi ele alınmasını sağlar. - trim_offsets (
bool, isteğe bağlı, varsayılanTrue) — Son işleme adımının, boşlukların dahil edilmesini önlemek için ofsetleri kırpıp kırmayacağı. - vocab (
strveyalist[tuple[str, float]], isteğe bağlı) —(token, score)demetlerinden oluşan özel sözlük. Sağlanmazsa, sözlükvocab_fileiçinden yüklenir. - vocab_file (
str, isteğe bağlı) — Bir tokenizer örneği oluşturmak için gerekli sözlüğü içeren SentencePiece dosyası (genellikle .model uzantısına sahiptir).
“fast” bir ALBERT 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 PreTrainedTokenizerFast sınıfından devralır. Kullanıcıların bu yöntemler hakkında daha fazla bilgi için bu üst sınıfa başvurması gerekir
get_special_tokens_mask
< source >( 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=Trueolduğ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.
Albert'e özgü çıktılar
sınıf transformers.models.albert.modeling_albert.AlbertForPreTrainingOutput
< source >( loss: typing.Optional[torch.FloatTensor] = Noneprediction_logits: typing.Optional[torch.FloatTensor] = Nonesop_logits: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor] | None = Noneattentions: tuple[torch.FloatTensor] | None = None )
Parametreler
- loss (
*optional*, returned whenlabelsis provided,torch.FloatTensorof shape(1,)) — Total loss as the sum of the masked language modeling loss and the next sequence prediction (classification) loss. - prediction_logits (
torch.FloatTensor, şekli(batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar). - sop_logits (
torch.FloatTensor, şekli(batch_size, 2)) — Sonraki sıra tahmini (sınıflandırma) başlığının tahmin puanları (SoftMax öncesi True/False devam puanları). - hidden_states (
tuple[torch.FloatTensor], isteğe bağlı, geri döndürülüroutput_hidden_states=Truegeçildiğinde veyaconfig.output_hidden_states=True) — şu türden bir demet:torch.FloatTensor(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.FloatTensor], isteğe bağlı, geri döndürülüroutput_attentions=Truegeçildiğinde veyaconfig.output_attentions=True) — şu türden bir demet:torch.FloatTensor(şeklinde, her katman için bir adet(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.
AlbertForPreTraining'in çıktı türü.
AlbertModel
sınıf transformers.AlbertModel
< source >( config: AlbertConfigadd_pooling_layer: bool = True )
Parametreler
- config (AlbertConfig) — 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.
- add_pooling_layer (
bool, isteğe bağlı, varsayılanTrue) — Bir havuzlama katmanı eklenip eklenmeyeceği
Üzerinde herhangi bir özel başlık olmadan ham gizli durumları (hidden-states) üreten çıplak Albert 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
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)
Parametreler
- input_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.FloatTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- token_type_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler[0, 1]:- 0, sentence A belirteci ile eşleşir,
- 1, sentence B belirteçlerine karşılık gelir.
- position_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.n_positions - 1]. - inputs_embeds (
torch.FloatTensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
Dönüş değeri
BaseModelOutputWithPooling veya tuple(torch.FloatTensor)
Bir BaseModelOutputWithPooling veya
torch.FloatTensor (eğer return_dict=False geçirildiyse veya config.return_dict=False ise) içeren bir demet, yapılandırma (AlbertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
AlbertModel forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
last_hidden_state (
torch.FloatTensor, şekli(batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.pooler_output (
torch.FloatTensor, şekli(batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.hidden_states (
tuple(torch.FloatTensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.FloatTensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.FloatTensor(her katman için bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
AlbertForPreTraining
sınıf transformers.AlbertForPreTraining
< source >( config: AlbertConfig )
Parametreler
- config (AlbertConfig) — 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.
Ön eğitim sırasında yapıldığı gibi üstte iki başa sahip Albert Modeli: bir masked language modeling başı ve bir sentence order prediction (classification) başı.
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
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = Nonesentence_order_label: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → AlbertForPreTrainingOutput or tuple(torch.FloatTensor)
Parametreler
- input_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.FloatTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- token_type_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler[0, 1]:- 0, sentence A belirteci ile eşleşir,
- 1, sentence B belirteçlerine karşılık gelir.
- position_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.n_positions - 1]. - inputs_embeds (
torch.FloatTensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler[-100, 0, ..., config.vocab_size]aralığında olmalıdır (bkz.input_idsdocstring). Endeksleri-100olarak ayarlanan jetonlar yok sayılır (maskelenir), kayıp yalnızca etiketleri[0, ..., config.vocab_size]aralığında olan jetonlar için hesaplanır. - sentence_order_label (
torch.LongTensor, şekli(batch_size,), isteğe bağlı) — Sıradaki sıra tahmini (sınıflandırma) kaybını hesaplamak için etiketler. Girdi bir sıra çifti olmalıdır (input_idsdocstring'ine bakın). İndisler[0, 1]aralığında olmalıdır.0orijinal sırayı (önce sıra A, sonra sıra B),1ise değiştirilmiş sırayı (önce sıra B, sonra sıra A) belirtir.
Dönüş değeri
AlbertForPreTrainingOutput veya tuple(torch.FloatTensor)
A AlbertForPreTrainingOutput veya bir torch.FloatTensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (AlbertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
AlbertForPreTraining 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 (
*optional*,labelssağlandığında döndürülür,(1,)biçimindetorch.FloatTensor) — Maskeli dil modelleme kaybı ile sonraki sıra tahmin (sınıflandırma) kaybının toplamı olarak toplam kayıp.prediction_logits (
torch.FloatTensor, şekli(batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).sop_logits (
torch.FloatTensor, şekli(batch_size, 2)) — Sıradaki diziyi tahmin etme (sınıflandırma) başlığının tahmin puanları (SoftMax öncesi True/False devam puanları).hidden_states (
tuple[torch.FloatTensor], isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple[torch.FloatTensor], isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.FloatTensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> from transformers import AutoTokenizer, AlbertForPreTraining
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("albert/albert-base-v2")
>>> model = AlbertForPreTraining.from_pretrained("albert/albert-base-v2")
>>> input_ids = torch.tensor(tokenizer.encode("Hello, my dog is cute", add_special_tokens=True)).unsqueeze(0)
>>> # Batch size 1
>>> outputs = model(input_ids)
>>> prediction_logits = outputs.prediction_logits
>>> sop_logits = outputs.sop_logitsAlbertForMaskedLM
sınıf transformers.AlbertForMaskedLM
< source >( config: AlbertConfig )
Parametreler
- config (AlbertConfig) — 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 language modeling başlığı olan Albert 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
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MaskedLMOutput or tuple(torch.FloatTensor)
Parametreler
- input_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.FloatTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- token_type_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler[0, 1]:- 0, sentence A belirteci ile eşleşir,
- 1, sentence B belirteçlerine karşılık gelir.
- position_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.n_positions - 1]. - inputs_embeds (
torch.FloatTensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler[-100, 0, ..., config.vocab_size]aralığında olmalıdır (bkz.input_idsdocstring). Endeksleri-100olarak ayarlanan jetonlar yok sayılır (maskelenir), kayıp yalnızca etiketleri[0, ..., config.vocab_size]aralığında olan jetonlar için hesaplanır.
Dönüş değeri
MaskedLMOutput veya tuple(torch.FloatTensor)
Bir MaskedLMOutput veya
torch.FloatTensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (AlbertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
AlbertForMaskedLM forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.FloatTensor, şekli(1,), opsiyonel,labelssağlandığında döndürülür) — Maskeli dil modelleme (MLM) kaybı.logits (
torch.FloatTensor, şekli(batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).hidden_states (
tuple(torch.FloatTensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.FloatTensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.FloatTensor(her katman için bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> import torch
>>> from transformers import AutoTokenizer, AlbertForMaskedLM
>>> tokenizer = AutoTokenizer.from_pretrained("albert/albert-base-v2")
>>> model = AlbertForMaskedLM.from_pretrained("albert/albert-base-v2")
>>> # add mask_token
>>> inputs = tokenizer("The capital of [MASK] is Paris.", return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> # retrieve index of [MASK]
>>> mask_token_index = (inputs.input_ids == tokenizer.mask_token_id)[0].nonzero(as_tuple=True)[0]
>>> predicted_token_id = logits[0, mask_token_index].argmax(axis=-1)
>>> tokenizer.decode(predicted_token_id)
'france'AlbertForSequenceClassification
sınıf transformers.AlbertForSequenceClassification
< source >( config: AlbertConfig )
Parametreler
- config (AlbertConfig) — 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.
GLUE görevleri için örneğin, havuzlanmış çıktının üzerine bir doğrusal katman eklenmiş bir dınıflandırma/geri dönüş başlığına sahip Albert model dönüştürücüsü.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SequenceClassifierOutput or tuple(torch.FloatTensor)
Parametreler
- input_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.FloatTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- token_type_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler[0, 1]:- 0, sentence A belirteci ile eşleşir,
- 1, sentence B belirteçlerine karşılık gelir.
- position_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.n_positions - 1]. - inputs_embeds (
torch.FloatTensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - 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 == 1ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır,config.num_labels > 1ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.
Dönüş değeri
SequenceClassifierOutput veya tuple(torch.FloatTensor)
Bir SequenceClassifierOutput veya
torch.FloatTensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (AlbertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
AlbertForSequenceClassification forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.FloatTensor, şekli(1,), opsiyonel,labelssağlandığında döndürülür) — Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.logits (
torch.FloatTensor, şekli(batch_size, config.num_labels)) — Sınıflandırma (veya config.num_labels==1 ise regresyon) puanları (SoftMax öncesi).hidden_states (
tuple(torch.FloatTensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.FloatTensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.FloatTensor(her katman için bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Tek etiketli sınıflandırma örneği:
>>> import torch
>>> from transformers import AutoTokenizer, AlbertForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("albert/albert-xxlarge-v2")
>>> model = AlbertForSequenceClassification.from_pretrained("albert/albert-xxlarge-v2")
>>> 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 = AlbertForSequenceClassification.from_pretrained("albert/albert-xxlarge-v2", 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, AlbertForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("albert/albert-xxlarge-v2")
>>> model = AlbertForSequenceClassification.from_pretrained("albert/albert-xxlarge-v2", 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 = AlbertForSequenceClassification.from_pretrained(
... "albert/albert-xxlarge-v2", 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).lossAlbertForMultipleChoice
sınıf transformers.AlbertForMultipleChoice
< source >( config: AlbertConfig )
Parametreler
- config (AlbertConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üstünde çoktan seçmeli sınıflandırma kafası (pooled çıktı üzerinde doğrusal bir katman ve softmax) bulunan Albert Model ö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
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → AlbertForPreTrainingOutput or tuple(torch.FloatTensor)
Parametreler
- input_ids (
torch.LongTensorşeklinde(batch_size, num_choices, sequence_length)) — Girdi dizisi belirteçlerinin sözlükteki indeksleri.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.call() ve PreTrainedTokenizer.encode() başlıklarına bakın.
- attention_mask (
torch.FloatTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- 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.
- position_ids (
torch.LongTensorşeklinde(batch_size, num_choices, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.max_position_embeddings - 1]. - inputs_embeds (
torch.FloatTensor, şekli(batch_size, num_choices, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels (
torch.LongTensor, şekli(batch_size,), isteğe bağlı) — Çoklu seçim sınıflandırma kaybını hesaplamak için etiketler. İndisler,num_choices'in giriş tensörlerinin ikinci boyutunun boyutu olduğu[0, ..., num_choices-1]aralığında olmalıdır. (Bkz. yukarıdakiinput_ids)
Dönüş değeri
AlbertForPreTrainingOutput veya tuple(torch.FloatTensor)
A AlbertForPreTrainingOutput veya bir torch.FloatTensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (AlbertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
AlbertForMultipleChoice 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 (
*optional*,labelssağlandığında döndürülür,(1,)biçimindetorch.FloatTensor) — Maskeli dil modelleme kaybı ile sonraki sıra tahmin (sınıflandırma) kaybının toplamı olarak toplam kayıp.prediction_logits (
torch.FloatTensor, şekli(batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).sop_logits (
torch.FloatTensor, şekli(batch_size, 2)) — Sıradaki diziyi tahmin etme (sınıflandırma) başlığının tahmin puanları (SoftMax öncesi True/False devam puanları).hidden_states (
tuple[torch.FloatTensor], isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple[torch.FloatTensor], isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.FloatTensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> from transformers import AutoTokenizer, AlbertForMultipleChoice
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("albert/albert-xxlarge-v2")
>>> model = AlbertForMultipleChoice.from_pretrained("albert/albert-xxlarge-v2")
>>> 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.logitsAlbertForTokenClassification
sınıf transformers.AlbertForTokenClassification
< source >( config: AlbertConfig )
Parametreler
- config (AlbertConfig) — 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ığı (gizli durumlar çıktısının üzerine yerleştirilmiş doğrusal bir katman) bulunan Albert transformer'ı, örneğin Adlandırılmış Varlık Tanıma (NER) görevleri için.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → TokenClassifierOutput or tuple(torch.FloatTensor)
Parametreler
- input_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.FloatTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- token_type_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler[0, 1]:- 0, sentence A belirteci ile eşleşir,
- 1, sentence B belirteçlerine karşılık gelir.
- position_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.n_positions - 1]. - inputs_embeds (
torch.FloatTensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketler. Endeksler[0, ..., config.num_labels - 1]aralığında olmalıdır.
Dönüş değeri
TokenClassifierOutput veya tuple(torch.FloatTensor)
Bir TokenClassifierOutput veya
torch.FloatTensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (AlbertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
AlbertForTokenClassification forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.FloatTensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Sınıflandırma kaybı.logits (
torch.FloatTensor, şekli(batch_size, sequence_length, config.num_labels)) — Sınıflandırma puanları (SoftMax öncesi).hidden_states (
tuple(torch.FloatTensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.FloatTensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.FloatTensor(her katman için bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> from transformers import AutoTokenizer, AlbertForTokenClassification
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("albert/albert-xxlarge-v2")
>>> model = AlbertForTokenClassification.from_pretrained("albert/albert-xxlarge-v2")
>>> 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)
...AlbertForQuestionAnswering
sınıf transformers.AlbertForQuestionAnswering
< source >( config: AlbertConfig )
Parametreler
- config (AlbertConfig) — 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 Albert transformer (gizli durum çıktısının üzerine, span start logits ve span end logits hesaplamak için bir doğrusal katman).
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.FloatTensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonestart_positions: typing.Optional[torch.LongTensor] = Noneend_positions: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → AlbertForPreTrainingOutput or tuple(torch.FloatTensor)
Parametreler
- input_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.FloatTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- token_type_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdilerin ilk ve ikinci bölümlerini belirtmek için segment token dizinleri. Dizinler[0, 1]:- 0, sentence A belirteci ile eşleşir,
- 1, sentence B belirteçlerine karşılık gelir.
- position_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.n_positions - 1]. - inputs_embeds (
torch.FloatTensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - start_positions (
torch.LongTensor, ş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.LongTensor, ş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, kaybın hesaplanmasında dikkate alınmaz.
Dönüş değeri
AlbertForPreTrainingOutput veya tuple(torch.FloatTensor)
A AlbertForPreTrainingOutput veya bir torch.FloatTensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (AlbertConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
AlbertForQuestionAnswering 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 (
*optional*,labelssağlandığında döndürülür,(1,)biçimindetorch.FloatTensor) — Maskeli dil modelleme kaybı ile sonraki sıra tahmin (sınıflandırma) kaybının toplamı olarak toplam kayıp.prediction_logits (
torch.FloatTensor, şekli(batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).sop_logits (
torch.FloatTensor, şekli(batch_size, 2)) — Sıradaki diziyi tahmin etme (sınıflandırma) başlığının tahmin puanları (SoftMax öncesi True/False devam puanları).hidden_states (
tuple[torch.FloatTensor], isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.FloatTensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple[torch.FloatTensor], isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.FloatTensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> from transformers import AutoTokenizer, AlbertForQuestionAnswering
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("albert/albert-xxlarge-v2")
>>> model = AlbertForQuestionAnswering.from_pretrained("albert/albert-xxlarge-v2")
>>> 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)
...