Transformers documentation

MarianMT

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 2018-04-01 tarihinde HF papers'ta yayımlandı ve 2020-11-16 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

FlashAttention SDPA

MarianMT

MarianMT, saf C++ ile yazılmış Marian çerçevesiyle eğitilen bir makine çevirisi modelidir. Çerçeve, BART gibi kodlayıcı-çözücü modelleri eğitmek için kendi özel otomatik-diferansiyasyon motorunu ve verimli meta-algoritmalarını içerir.

Tüm MarianMT modelleri, her bileşende 6 katmana sahip transformer encoder-decoder mimarisine sahiptir, statik sinüzoidal konumsal gömme kullanır, layernorm gömme içermez ve model <s/> yerine pad_token_id önekiyle üretimi başlatır.

Tüm orijinal MarianMT kontrol noktalarını Helsinki Üniversitesi Dil Teknolojileri Araştırma Grubu kuruluşu altında bulabilirsiniz.

Bu model sshleifer tarafından katkıda bulunmuştur.

MarianMT'nin çeviri görevlerine nasıl uygulanacağına dair daha fazla örnek için sağ kenar çubuğundaki MarianMT modellerine tıklayın.

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

Pipeline
AutoModel
from transformers import pipeline


pipeline = pipeline("translation_en_to_de", model="Helsinki-NLP/opus-mt-en-de", device=0)
pipeline("Hello, how are you?")

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

from transformers.utils.attention_visualizer import AttentionMaskVisualizer


visualizer = AttentionMaskVisualizer("Helsinki-NLP/opus-mt-en-de")
visualizer("Hello, how are you?")

Notlar

  • MarianMT modelleri diskte ~298MB boyutundadır ve 1000'den fazla model bulunmaktadır. Desteklenen dil çiftleri için bu listeye bakın. Dil kodları tutarsız olabilir. İki haneli kodlar burada bulunabilirken, üç haneli kodlar için ek arama gerekebilir.
  • BPE ön işleme gerektiren modeller desteklenmez.
  • Tüm model adları aşağıdaki biçimi kullanır: Helsinki-NLP/opus-mt-{src}-{tgt}. es_AR gibi biçimlendirilmiş dil kodları genellikle code_{region} formatındadır. Örneğin, es_AR Arjantin İspanyolcasını ifade eder.
  • Bir model birden fazla dilde çıktı üretebiliyorsa, aşağıda gösterildiği gibi istenen çıktı dilini src_txt başına ekleyin. Tatoeba-Challenge tarafından sunulan yeni çok dilli modeller 3 karakterlik dil kodları gerektirir.
from transformers import MarianMTModel, MarianTokenizer


# Model trained on multiple source languages → multiple target languages
# Example: multilingual to Arabic (arb)
model_name = "Helsinki-NLP/opus-mt-mul-mul"  # Tatoeba Challenge model
tokenizer = MarianTokenizer.from_pretrained(model_name)
model = MarianMTModel.from_pretrained(model_name, device_map="auto")

# Prepend the desired output language code (3-letter ISO 639-3)
src_texts = ["arb>> Hello, how are you today?"]

# Tokenize and translate
inputs = tokenizer(src_texts, return_tensors="pt", padding=True, truncation=True).to(model.device)
translated = model.generate(**inputs)

# Decode and print result
translated_texts = tokenizer.batch_decode(translated, skip_special_tokens=True)
print(translated_texts[0])
  • Eski çok dilli modeller 2 karakterlik dil kodları kullanır.
from transformers import MarianMTModel, MarianTokenizer


# Example: older multilingual model (like en → many)
model_name = "Helsinki-NLP/opus-mt-en-ROMANCE"  # English → French, Spanish, Italian, etc.
tokenizer = MarianTokenizer.from_pretrained(model_name)
model = MarianMTModel.from_pretrained(model_name, device_map="auto")

# Prepend the 2-letter ISO 639-1 target language code (older format)
src_texts = [">>fr<< Hello, how are you today?"]

# Tokenize and translate
inputs = tokenizer(src_texts, return_tensors="pt", padding=True, truncation=True).to(model.device)
translated = model.generate(**inputs)

# Decode and print result
translated_texts = tokenizer.batch_decode(translated, skip_special_tokens=True)
print(translated_texts[0])

MarianConfig

sınıf transformers.MarianConfig

< >

( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truevocab_size: int = 58101decoder_vocab_size: int | None = Nonemax_position_embeddings: int = 1024encoder_layers: int = 12encoder_ffn_dim: int = 4096encoder_attention_heads: int = 16decoder_layers: int = 12decoder_ffn_dim: int = 4096decoder_attention_heads: int = 16encoder_layerdrop: float | int = 0.0decoder_layerdrop: float | int = 0.0use_cache: bool = Trueactivation_function: str = 'gelu'd_model: int = 1024dropout: float | int = 0.1attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0init_std: float = 0.02decoder_start_token_id: int = 58100scale_embedding: bool = Falsepad_token_id: int | None = 58100eos_token_id: int | list[int] | None = 0bos_token_id: int | None = Noneforced_eos_token_id: int | list[int] | None = 0share_encoder_decoder_embeddings: bool = Trueis_decoder: bool = Falsetie_word_embeddings: bool = True )

Parametreler

  • is_encoder_decoder (bool, isteğe bağlı, varsayılan True) — Modelin bir kodlayıcı/çözücü olarak kullanılıp kullanılmadığı.
  • vocab_size (int, isteğe bağlı, varsayılan 58101) — Modelin sözlük boyutu. input_ids ile temsil edilebilecek farklı token sayısını belirler.
  • decoder_vocab_size (int, isteğe bağlı) — Decoder katmanının gömme (embedding) boyutu.
  • max_position_embeddings (int, isteğe bağlı, varsayılan 1024) — Bu modelin kullanılabileceği maksimum dizi uzunluğu.
  • encoder_layers (int, isteğe bağlı, varsayılan 12) — Transformer kodlayıcısındaki gizli katman sayısı. Ayarlanmazsa num_layers ile aynı değeri kullanır.
  • encoder_ffn_dim (int, isteğe bağlı, varsayılan 4096) — Encoder'daki “ara” (genellikle feed-forward olarak adlandırılan) katmanın boyutluğu.
  • encoder_attention_heads (int, isteğe bağlı, varsayılan 16) — Transformer kodlayıcısındaki her dikkat katmanı için dikkat başı sayısı.
  • decoder_layers (int, isteğe bağlı, varsayılan 12) — Transformer decoder'ındaki gizli katman sayısı. Ayarlanmazsa num_layers ile aynı değeri kullanır.
  • decoder_ffn_dim (int, isteğe bağlı, varsayılan 4096) — Decoder'daki “ara” (genellikle feed-forward olarak adlandırılan) katmanın boyutluluğu.
  • decoder_attention_heads (int, isteğe bağlı, varsayılan 16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • encoder_layerdrop (Union[float, int], isteğe bağlı, varsayılan 0.0) — Encoder için LayerDrop olasılığı. Daha fazla ayrıntı için [LayerDrop makalesine](bkz. https://huggingface.co/papers/1909.11556) bakın.
  • decoder_layerdrop (Union[float, int], isteğe bağlı, varsayılan 0.0) — Çözücü için LayerDrop olasılığı. Daha fazla ayrıntı için [LayerDrop makalesine](bkz. https://huggingface.co/papers/1909.11556) bakın.
  • use_cache (bool, isteğe bağlı, varsayılan True) — Modelin son anahtar/değer dikkatlerini (tüm modellerde kullanılmaz) döndürüp döndürmeyeceği. Yalnızca config.is_decoder=True olduğunda veya model yalnızca çözücü tabanlı üretken bir model olduğunda geçerlidir.
  • activation_function (str, isteğe bağlı, varsayılan gelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, "gelu", "relu", "silu" vb.
  • d_model (int, isteğe bağlı, varsayılan 1024) — Kodlayıcı katmanlarının ve pooler katmanının boyutu.
  • dropout (Union[float, int], isteğe bağlı, varsayılan 0.1) — Tüm dropout katmanları için oran.
  • attention_dropout (Union[float, int], isteğe bağlı, varsayılan 0.0) — Dikkat olasılıkları için dropout oranı.
  • activation_dropout (Union[float, int], isteğe bağlı, varsayılan 0.0) — Tamamen bağlı katmandaki aktivasyonlar için dropout oranı.
  • init_std (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • decoder_start_token_id (int, isteğe bağlı, varsayılan 58100) — Bir encoder-decoder modeli, bos ile farklı bir token ile çözmeye başlıyorsa, o token'ın kimliği.
  • scale_embedding (bool, isteğe bağlı, varsayılan False) — Gömme değerlerinin sqrt(d_model) ile bölünerek ölçeklendirilip ölçeklendirilmeyeceğini belirtir.
  • pad_token_id (int, isteğe bağlı, varsayılan 58100) — Sözlükte dolgu için kullanılan token kimliği.
  • eos_token_id (Union[int, list[int]], isteğe bağlı, varsayılan 0) — Sözlükte akış sonu için kullanılan token kimliği.
  • bos_token_id (int, isteğe bağlı) — Sözlükte akış başlangıcı için kullanılan token kimliği.
  • forced_eos_token_id (Union[int, list[int]], isteğe bağlı, varsayılan 0) — max_length değerine ulaşıldığında son üretilen token olarak zorlanacak token'ın kimliği. Genellikle eos_token_id olarak ayarlanır.
  • share_encoder_decoder_embeddings (bool, isteğe bağlı, varsayılan True) — Encoder ve decoder gömme vektörlerinin bağlanıp paylaşıp paylaşılmayacağı
  • is_decoder (bool, isteğe bağlı, varsayılan False) — Modelin bir decoder olarak kullanılıp kullanılmadığı. False ise model bir encoder olarak kullanılır.
  • 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 MarianModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Marian modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, Helsinki-NLP/opus-mt-en-de modelinin yapılandırmasına 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 MarianModel, MarianConfig

>>> # Initializing a Marian Helsinki-NLP/opus-mt-en-de style configuration
>>> configuration = MarianConfig()

>>> # Initializing a model from the Helsinki-NLP/opus-mt-en-de style configuration
>>> model = MarianModel(configuration)

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

MarianTokenizer

sınıf transformers.MarianTokenizer

< >

( source_spmtarget_spmvocabtarget_vocab_file = Nonesource_lang = Nonetarget_lang = Noneunk_token = '<unk>'eos_token = '</s>'pad_token = '<pad>'model_max_length = 512sp_model_kwargs: dict[str, typing.Any] | None = Noneseparate_vocabs = False**kwargs )

Parametreler

  • source_spm (str) — Kaynak dilin sözlüğünü içeren SentencePiece dosyası (genellikle .spm uzantısına sahiptir).
  • target_spm (str) — Hedef dilin sözlüğünü içeren SentencePiece dosyası (genellikle .spm uzantısına sahiptir).
  • source_lang (str, isteğe bağlı) — Kaynak dili temsil eden bir dize.
  • target_lang (str, isteğe bağlı) — Hedef dili temsil eden bir dize.
  • 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.
  • eos_token (str, isteğe bağlı, varsayılan "</s>") — Dizi sonu belirteci.
  • 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.
  • model_max_length (int, isteğe bağlı, varsayılan 512) — Modelin kabul ettiği maksimum cümle uzunluğu.
  • additional_special_tokens (list[str], isteğe bağlı, varsayılan ["<eop>", "<eod>"]) — Tokenizör tarafından kullanılan ek özel tokenler.
  • sp_model_kwargs (dict, isteğe bağlı) — şuna aktarılacak: SentencePieceProcessor.__init__() metodu. SentencePiece için Python sarmalayıcısı arasında şunları ayarlamak için kullanılabilir:
    • enable_sampling: Alt kelime düzenlemesini etkinleştirir.

    • nbest_size: Unigram için örneklem parametreleri. BPE-Dropout için geçersizdir.

      • nbest_size = {0,1}: Örnekleme yapılmaz.
      • nbest_size > 1: nbest_size sonuçlarından örnekler.
      • nbest_size < 0: nbest_size'in sonsuz olduğu varsayılır ve tüm hipotezlerden (lattice) forward-filtering-and-backward-sampling algoritması kullanılarak örneklemeler yapılır.
    • alpha: Unigram örneklemesi için düzeltme parametresi ve BPE-dropout için birleştirme işlemlerinin atılma olasılığı.

SentencePiece tabanlı bir Marian tokenizer'ı oluşturun.

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

Örnekler:

>>> from transformers import MarianForCausalLM, MarianTokenizer

>>> model = MarianForCausalLM.from_pretrained("Helsinki-NLP/opus-mt-en-de")
>>> tokenizer = MarianTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-de")
>>> src_texts = ["I am a small frog.", "Tom asked his teacher for advice."]
>>> tgt_texts = ["Ich bin ein kleiner Frosch.", "Tom bat seinen Lehrer um Rat."]  # optional
>>> inputs = tokenizer(src_texts, text_target=tgt_texts, return_tensors="pt", padding=True)

>>> outputs = model(**inputs)  # should work

build_inputs_with_special_tokens

< >

( token_ids_0token_ids_1 = None )

Bir diziden model girdilerini, eos_token_id ekleyerek oluşturun.

MarianModel

sınıf transformers.MarianModel

< >

( config: MarianConfig )

Parametreler

  • config (MarianConfig) — 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 Marian 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.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: tuple[torch.Tensor] | transformers.modeling_outputs.BaseModelOutput | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqModelOutput or tuple(torch.Tensor)

Parametreler

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

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

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.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?

  • decoder_input_ids (torch.LongTensor şeklinde (batch_size, target_sequence_length), isteğe bağlı) — Sözlükteki decoder giriş dizisi tokenlarının indeksleri. İndeksler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() yöntemlerine bakın. Decoder giriş ID'leri nedir? Marian, decoder_input_ids üretimi için başlangıç tokenı olarak pad_token_id kullanır. past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_input_ids girdisi sağlanmalıdır (bkz. past_key_values).

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

    Çözücü girdi kimlikleri nelerdir?

    Marian, decoder_input_ids üretimi için başlangıç jetonu olarak pad_token_id kullanır. past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_input_ids girdi olarak verilmelidir (bkz. past_key_values).

  • decoder_attention_mask (torch.LongTensor, şekli (batch_size, target_sequence_length), isteğe bağlı) — Varsayılan davranış: decoder_input_ids içindeki pad tokenlarını yok sayan bir tensör oluşturur. Varsayılan olarak nedensel maske de kullanılır.
  • encoder_outputs (Union[tuple[torch.Tensor], ~modeling_outputs.BaseModelOutput], isteğe bağlı) — (last_hidden_state, isteğe bağlı: hidden_states, isteğe bağlı: attentions) içeren bir Tuple last_hidden_state, (batch_size, sequence_length, hidden_size) biçiminde, isteğe bağlı) kodlayıcının (encoder) son katmanının çıktısındaki gizli durumlar (hidden-states) dizisidir. Kodlayıcıda (decoder) çapraz dikkat (cross-attention) için kullanılır.
  • past_key_values (~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • 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.
  • decoder_inputs_embeds (torch.Tensor şeklinde (batch_size, target_sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, decoder_input_ids geçirmek yerine gömülü bir temsil doğrudan geçirebilirsiniz. Eğer past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_inputs_embeds girdi olarak verilmelidir (bkz. past_key_values). Bu, modelin dahili gömme arama matrisine kıyasla decoder_input_ids endekslerini ilgili vektörlere dönüştürme biçimi üzerinde daha fazla kontrol sağlamak istiyorsanız faydalıdır.

    decoder_input_ids ve decoder_inputs_embeds her ikisi de ayarlanmamışsa, decoder_inputs_embeds inputs_embeds değerini alır.

  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).

Dönüş değeri

Seq2SeqModelOutput veya tuple(torch.Tensor)

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

MarianModel 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, sequence_length, hidden_size)) — Modelin decoder'ının son katmanının çıktısındaki gizli durumlar dizisi.

    past_key_values kullanılırsa, yalnızca (batch_size, 1, hidden_size) biçimindeki dizilerin son gizli durumu (hidden-state) çıktı olarak verilir.

  • past_key_values (EncoderDecoderCache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir EncoderDecoderCache örneğidir. Daha fazla ayrıntı için kv önbellek kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki ve cross-attention bloklarındaki anahtar ve değerler) içerir.

  • decoder_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 decoder'ın gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • decoder_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) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat ağırlıkları, dikkat softmax'ından sonra, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan dekoderin

  • cross_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.

    Dekoderin çapraz dikkat katmanının dikkat ağırlıkları, dikkat softmax'ından sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

  • encoder_last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — Modelin kodlayıcısının son katmanının çıktısındaki gizli durumlar dizisi.

  • encoder_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 kodlayıcının gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • encoder_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) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat yumuşatma (attention softmax) sonrasında, öz-dikkat (self-attention) kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan kodlayıcının dikkat ağırlıkları.

Örnek:

>>> from transformers import AutoTokenizer, MarianModel

>>> tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-de")
>>> model = MarianModel.from_pretrained("Helsinki-NLP/opus-mt-en-de")

>>> inputs = tokenizer("Studies have been shown that owning a dog is good for you", return_tensors="pt")
>>> decoder_inputs = tokenizer(
...     "<pad> Studien haben gezeigt dass es hilfreich ist einen Hund zu besitzen",
...     return_tensors="pt",
...     add_special_tokens=False,
... )
>>> outputs = model(input_ids=inputs.input_ids, decoder_input_ids=decoder_inputs.input_ids)

>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 26, 512]

MarianMTModel

sınıf transformers.MarianMTModel

< >

( config: MarianConfig )

Parametreler

  • config (MarianConfig) — 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.

Dil modelleme başlığına sahip Marian Model. Özetleme için kullanılabilir.

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: tuple[torch.Tensor] | transformers.modeling_outputs.BaseModelOutput | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)

Parametreler

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

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

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.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?

  • decoder_input_ids (torch.LongTensor şeklinde (batch_size, target_sequence_length), isteğe bağlı) — Sözlükteki decoder giriş dizisi tokenlarının indeksleri. İndeksler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() yöntemlerine bakın. Decoder giriş ID'leri nedir? Marian, decoder_input_ids üretimi için başlangıç tokenı olarak pad_token_id kullanır. past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_input_ids girdisi sağlanmalıdır (bkz. past_key_values).

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

    Çözücü girdi kimlikleri nelerdir?

    Marian, decoder_input_ids üretimi için başlangıç jetonu olarak pad_token_id kullanır. past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_input_ids girdi olarak verilmelidir (bkz. past_key_values).

  • decoder_attention_mask (torch.LongTensor, şekli (batch_size, target_sequence_length), isteğe bağlı) — Varsayılan davranış: decoder_input_ids içindeki pad tokenlarını yok sayan bir tensör oluşturur. Varsayılan olarak nedensel maske de kullanılır.
  • encoder_outputs (Union[tuple[torch.Tensor], ~modeling_outputs.BaseModelOutput], isteğe bağlı) — (last_hidden_state, isteğe bağlı: hidden_states, isteğe bağlı: attentions) içeren bir Tuple last_hidden_state, (batch_size, sequence_length, hidden_size) biçiminde, isteğe bağlı) kodlayıcının (encoder) son katmanının çıktısındaki gizli durumlar (hidden-states) dizisidir. Kodlayıcıda (decoder) çapraz dikkat (cross-attention) için kullanılır.
  • past_key_values (~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • 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.
  • decoder_inputs_embeds (torch.Tensor şeklinde (batch_size, target_sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, decoder_input_ids geçirmek yerine gömülü bir temsil doğrudan geçirebilirsiniz. Eğer past_key_values kullanılıyorsa, isteğe bağlı olarak yalnızca son decoder_inputs_embeds girdi olarak verilmelidir (bkz. past_key_values). Bu, modelin dahili gömme arama matrisine kıyasla decoder_input_ids endekslerini ilgili vektörlere dönüştürme biçimi üzerinde daha fazla kontrol sağlamak istiyorsanız faydalıdır.

    decoder_input_ids ve decoder_inputs_embeds her ikisi de ayarlanmamışsa, decoder_inputs_embeds inputs_embeds değerini alır.

  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [0, ..., config.vocab_size] aralığında olmalı ya da -100 olmalı (input_ids docstring'ine bakın). Endeksleri -100 olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan tokenlar için hesaplanır.
  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).

Dönüş değeri

Seq2SeqLMOutput veya tuple(torch.Tensor)

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

MarianMTModel 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) — Dil modelleme kaybı.

  • logits (torch.Tensor, ş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).

  • past_key_values (EncoderDecoderCache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir EncoderDecoderCache örneğidir. Daha fazla ayrıntı için kv önbellek kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki ve cross-attention bloklarındaki anahtar ve değerler) içerir.

  • decoder_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 ve başlangıç gömme çıktılarında dekodlayıcının gizli durumları.

  • decoder_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) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat ağırlıkları, dikkat softmax'ından sonra, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan dekoderin

  • cross_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.

    Dekoderin çapraz dikkat katmanının dikkat ağırlıkları, dikkat softmax'ından sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

  • encoder_last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — Modelin kodlayıcısının son katmanının çıktısındaki gizli durumlar dizisi.

  • encoder_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 ve başlangıç gömme çıktılarında kodlayıcının gizli durumları.

  • encoder_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) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat yumuşatma (attention softmax) sonrasında, öz-dikkat (self-attention) kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılan kodlayıcının dikkat ağırlıkları.

Örnek:

>>> from transformers import AutoTokenizer, MarianMTModel

>>> src = "fr"  # source language
>>> trg = "en"  # target language

>>> model_name = f"Helsinki-NLP/opus-mt-{src}-{trg}"
>>> model = MarianMTModel.from_pretrained(model_name)
>>> tokenizer = AutoTokenizer.from_pretrained(model_name)

>>> sample_text = "où est l'arrêt de bus ?"
>>> batch = tokenizer([sample_text], return_tensors="pt")

>>> generated_ids = model.generate(**batch)
>>> tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
"Where's the bus stop?"

MarianForCausalLM

sınıf transformers.MarianForCausalLM

< >

( config: MarianConfig )

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithCrossAttentions or tuple(torch.Tensor)

Parametreler

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

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

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.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?

  • encoder_hidden_states (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — Encoder'ın son katmanının çıktısındaki gizli durumlar dizisi. Model bir decoder olarak yapılandırılmışsa çapraz dikkat (cross-attention) için kullanılır.
  • encoder_attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Giriş verisindeki dolgu (padding) jetonlarının indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Model bir decoder olarak yapılandırılmışsa bu maske çapraz dikkat (cross-attention) işleminde kullanılır. Maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.
  • past_key_values (~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [0, ..., config.vocab_size] aralığında olmalı ya da -100 olmalı (input_ids docstring'ine bakın). Endeksleri -100 olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan tokenlar için hesaplanır.
  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).
  • 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

CausalLMOutputWithCrossAttentions veya tuple(torch.Tensor)

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

MarianForCausalLM 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) — Dil modelleme kaybı (sonraki token tahmini için).

  • logits (torch.Tensor, ş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.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) — torch.Tensor (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.

  • cross_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ı çapraz dikkat ağırlıkları, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

  • past_key_values (Cache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir Cache örneğidir. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (dikkat bloklarındaki anahtar ve değerler) içerir.

Örnek:

>>> from transformers import AutoTokenizer, MarianForCausalLM

>>> tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-fr-en")
>>> model = MarianForCausalLM.from_pretrained("Helsinki-NLP/opus-mt-fr-en")
>>> assert model.config.is_decoder, f"{model.__class__} has to be configured as a decoder."
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs)

>>> logits = outputs.logits
>>> expected_shape = [1, inputs.input_ids.shape[-1], model.config.vocab_size]
>>> list(logits.shape) == expected_shape
True
Update on GitHub