# NLLB-MOE

## Genel Bakış

NLLB modeli, Marta R. Costa-jussà, James Cross, Onur Çelebi, Maha Elbayad, Kenneth Heafield, Kevin Heffernan, Elahe Kalbassi, Janice Lam, Daniel Licht, Jean Maillard, Anna Sun, Skyler Wang, Guillaume Wenzek, Al Youngblood, Bapi Akula, Loic Barrault, Gabriel Mejia Gonzalez, Prangthip Hansanti, John Hoffman, Semarley Jarrett, Kaushik Ram Sadagopan, Dirk Rowe, Shannon Spruit, Chau Tran, Pierre Andrews, Necip Fazil Ayan, Shruti Bhosale, Sergey Edunov, Angela Fan, Cynthia Gao, Vedanuj Goswami, Francisco Guzmán, Philipp Koehn, Alexandre Mourachko, Christophe Ropers, Safiyyah Saleem, Holger Schwenk ve Jeff Wang tarafından [No Language Left Behind: Scaling Human-Centered Machine Translation](https://huggingface.co/papers/2207.04672) makalesinde tanıtılmıştır.

Makalenin özeti aşağıdaki gibidir:

*Dünya çapında dil engellerini ortadan kaldırma hedefiyle makine çevirisi, günümüz yapay zekâ araştırmalarının temel odak noktalarından biri haline gelmiştir. Ancak bu çabalar, ağırlıklı olarak düşük kaynaklı dillerin büyük çoğunluğunu geride bırakarak küçük bir dil alt kümesi etrafında şekillenmiştir. Etik hususları göz önünde bulundururken güvenli ve yüksek kaliteli sonuçları garanti altına alarak 200 dil sınırını aşmak için neler gerekir? No Language Left Behind çalışmasında bu zorluğa, önce yerel konuşmacılarla yapılan keşif görüşmeleri aracılığıyla düşük kaynaklı dil çeviri desteğinin gerekliliğini bağlamlandırarak, ardından düşük ve yüksek kaynaklı diller arasındaki performans farkını kapatmaya yönelik veri kümeleri ve modeller oluşturarak üstlendik. Daha spesifik olarak, düşük kaynaklı dillere özel olarak tasarlanmış yeni ve etkili veri madenciliği teknikleriyle elde edilen veriler üzerinde eğitilen, Sparsely Gated Mixture of Experts tabanlı koşullu bir hesaplama modeli geliştirdik. Binlerce görev üzerinde eğitim sırasında aşırı uyumu (overfitting) dengelemek için birden fazla mimari ve eğitim iyileştirmesi öneriyoruz. Kritik olarak, insan çevirisiyle hazırlanmış Flores-200 referans setini kullanarak 40.000'den fazla farklı çeviri yönünün performansını değerlendirdik ve Flores-200'deki tüm dilleri kapsayan yeni bir toksisite referans setiyle insan değerlendirmesini birleştirerek çeviri güvenliğini inceledik. Modelimiz, önceki en iyi sonuçlara kıyasla BLEU'da %44'lük bir iyileşme sağlayarak evrensel bir çeviri sistemini hayata geçirme yolunda önemli bir zemin hazırlıyor.*

Bu model [Arthur Zucker](https://huggingface.co/ArthurZ) tarafından katkıda bulunmuştur. Orijinal kod [burada](https://github.com/facebookresearch/fairseq) bulunabilir.

## Kullanım ipuçları

- M2M100ForConditionalGeneration, hem NLLB hem de NLLB MoE için temel modeldir
- NLLB-MoE, NLLB modeline çok benzer; ancak ileri besleme katmanı, SwitchTransformers uygulamasına dayanmaktadır.
- Tokenizör, NLLB modelleriyle aynıdır.

## SwitchTransformers ile uygulama farkları

En büyük fark, tokenlerin yönlendirilme biçimidir. NLLB-MoE, `top-2-gate` kullanır; bu da her giriş için, yönlendirme ağından gelen en yüksek tahmini olasılıklara göre yalnızca en üst iki uzmanın seçildiği ve kalan uzmanların yok sayıldığı anlamına gelir. `SwitchTransformers`'de yalnızca top-1 olasılıkları hesaplanır, bu da tokenlerin yönlendirilme olasılığının daha düşük olduğu anlamına gelir. Ayrıca, bir token hiçbir uzmana yönlendirilmezse, `SwitchTransformers` yine de değiştirilmemiş gizli durumlarını ekler (bir tür artımsal bağlantı gibi) oysa `NLLB`'ün top-2 yönlendirme mekanizmasında bunlar maskeleme uygulanır.

## NLLB-MoE ile Üretim

Kullanılabilir checkpoint'ler yaklaşık 350GB depolama alanı gerektirir. Makinenizde yeterli RAM yoksa `accelerate` kullanmayı unutmayın.

Hedef metni üretirken `forced_bos_token_id` değerini hedef dil kimliğine ayarlayın. Aşağıdaki örnek, *facebook/nllb-200-distilled-600M* modelini kullanarak İngilizceden Fransızcaya çeviri yapmanın nasıl yapıldığını göstermektedir.

Fransızca için BCP-47 kodu olan `fra_Latn`'ın kullanıldığını unutmayın. Flores 200 veri setindeki tüm BCP-47 kodlarının listesini [burada](https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200) bulabilirsiniz.

```python
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("facebook/nllb-moe-54b")
model = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-moe-54b", device_map="auto")

article = "Previously, Ring's CEO, Jamie Siminoff, remarked the company started when his doorbell wasn't audible from his shop in his garage."
inputs = tokenizer(article, return_tensors="pt").to(model.device)

translated_tokens = model.generate(
    **inputs, forced_bos_token_id=tokenizer.lang_code_to_id["fra_Latn"], max_length=50
)
tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0]
"Auparavant, le PDG de Ring, Jamie Siminoff, a fait remarquer que la société avait commencé lorsque sa sonnette n'était pas audible depuis son magasin dans son garage."
```

### İngilizce dışındaki herhangi bir dilden üretim

English (`eng_Latn`) çeviri kaynağı olarak varsayılan dil olarak ayarlanır. Farklı bir dilden çeviri yapmak istiyorsanız, tokenizer başlatma işlemi sırasında `src_lang` anahtar kelime argümanında BCP-47 kodunu belirtmelisiniz.

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

```python
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("facebook/nllb-moe-54b", src_lang="ron_Latn")
model = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-moe-54b", device_map="auto")

article = "Şeful ONU spune că nu există o soluţie militară în Siria"
inputs = tokenizer(article, return_tensors="pt").to(model.device)

translated_tokens = model.generate(
    **inputs, forced_bos_token_id=tokenizer.lang_code_to_id["deu_Latn"], max_length=30
)
tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0]
```

## Kaynaklar

- [Çeviri görevi kılavuzu](../tasks/translation)
- [Özetleme görevi kılavuzu](../tasks/summarization)

## NllbMoeConfig[[transformers.NllbMoeConfig]]

#### transformers.NllbMoeConfig[[transformers.NllbMoeConfig]]

```python
transformers.NllbMoeConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, is_encoder_decoder: bool = True, vocab_size: int = 128112, max_position_embeddings: int = 1024, encoder_layers: int = 12, encoder_ffn_dim: int = 4096, encoder_attention_heads: int = 16, decoder_layers: int = 12, decoder_ffn_dim: int = 4096, decoder_attention_heads: int = 16, encoder_layerdrop: float | int = 0.05, decoder_layerdrop: float | int = 0.05, use_cache: bool = True, activation_function: str = 'relu', d_model: int = 1024, dropout: float | int = 0.1, attention_dropout: float | int = 0.1, activation_dropout: float | int = 0.0, init_std: float = 0.02, decoder_start_token_id: int | None = 2, scale_embedding: bool = True, router_bias: bool = False, router_dtype: typing.Literal['float32', 'float16', 'bfloat16'] = 'float32', router_ignore_padding_tokens: bool = False, num_experts: int = 128, expert_capacity: int = 64, encoder_sparse_step: int = 4, decoder_sparse_step: int = 4, router_z_loss_coef: float = 0.001, router_aux_loss_coef: float = 0.001, second_expert_policy: str = 'all', normalize_router_prob_before_dropping: bool = False, batch_prioritized_routing: bool = False, moe_eval_capacity_token_fraction: float = 1.0, moe_token_dropout: float | int = 0.2, pad_token_id: int | None = 1, bos_token_id: int | None = 0, eos_token_id: int | list[int] | None = 2, tie_word_embeddings: bool = True, output_router_logits: bool = False)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nllb_moe/configuration_nllb_moe.py#L26)

**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 `128112`) : Modelin sözlük boyutu. `input_ids` tarafından temsil edilebilecek farklı token sayısını tanımlar.

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`, *opsiyonel*, varsayılan `4096`) : Kodlayıcıdaki "ara" (genellikle feed-forward olarak adlandırılan) katmanın boyutluluğ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ğer kullanılır.

decoder_ffn_dim (`int`, *opsiyonel*, varsayılan `4096`) : Dekoderdeki "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.05`) : Kodlayıcı için LayerDrop olasılığı. Daha fazla ayrıntı için [LayerDrop makalesine](see https://huggingface.co/papers/1909.11556) bakın.

decoder_layerdrop (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.05`) : Çözücü için LayerDrop olasılığı. Daha fazla ayrıntı için [LayerDrop makalesine](see https://huggingface.co/papers/1909.11556) bakın.

use_cache (`bool`, *isteğe bağlı*, varsayılan `True`) : Modelin son anahtar/değer dikkatlerini döndürüp döndürmeyeceğini belirtir (tüm modellerde kullanılmaz). 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 `relu`) : Dekoderdeki 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 havuzlayıcı 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.1`) : 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`, *opsiyonel*, 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`, *opsiyonel*, varsayılan `2`) : Bir kodlayıcı-çözücü modeli, `bos` ile farklı bir token ile çözümlemeye başlıyorsa, o token'ın kimliği.

scale_embedding (`bool`, *isteğe bağlı*, varsayılan `True`) : Gömme değerlerinin sqrt(d_model) değerine bölünerek ölçeklendirilip ölçeklendirilmeyeceğini belirtir.

router_bias (`bool`, *isteğe bağlı*, varsayılan `False`) : Router'ın sınıflandırıcısının bir sapma (bias) içermesi gerekip gerekmediğini belirtir.

router_dtype (`str`, *isteğe bağlı*, varsayılan `"float32"`) : Router'lar için kullanılan `dtype`. [makalede](https://huggingface.co/papers/2101.03961)ki *seçici hassasiyet* tartışmasında belirtildiği üzere, `dtype`'in `"float32"` olarak tutulması tercih edilir.

router_ignore_padding_tokens (`bool`, *isteğe bağlı*, varsayılan `False`) : Yönlendirme sırasında dolgu (padding) jetonlarını yok sayıp saymayacağı. `False` ise, dolgu jetonları hiçbir uzmana yönlendirilmez.

num_experts (`int`, *isteğe bağlı*, varsayılan `128`) : MoE katmanlarındaki yönlendirilmiş uzman sayısı.

expert_capacity (`int`, *isteğe bağlı*, varsayılan 64) : Her uzman içinde saklanabilecek jeton sayısı.

encoder_sparse_step (`int`, *isteğe bağlı*, varsayılan 4) : Kodlayıcıdaki seyrek katmanların sıklığı. 4, 4 katmandan birinin seyrek olacağı anlamına gelir.

decoder_sparse_step (`int`, *isteğe bağlı*, varsayılan 4) : Dekoderdeki seyrek katmanların sıklığı. 4, 4 katmandan birinin seyrek olacağı anlamına gelir.

router_z_loss_coef (`float`, *isteğe bağlı*, varsayılan `0.001`) : Eğitim kararlılığını artırmak için büyük router logit'lerini cezalandıran router z-loss katsayısı.

router_aux_loss_coef (`float`, *isteğe bağlı*, varsayılan `0.001`) : Yardımcı yük dengeleme kaybı katsayısı. MoE modellerinde dengesiz uzman yönlendirmesini cezalandırmak için kullanılır.

second_expert_policy (`str`, *isteğe bağlı*, varsayılan `"all"`) : Her token için ikinci bir uzmana örneklenme olasılığının örneklenmesinde kullanılan politika.

normalize_router_prob_before_dropping (`bool`, *isteğe bağlı*, varsayılan `True`) : Uzman kapasitesine dayalı bir maske uygulamadan (kapasite düşürme) önce yönlendirici olasılıklarının normalize edilecek olup olmayacağı.

batch_prioritized_routing (`bool`, *isteğe bağlı*, varsayılan `True`) : Kapasite düşürme işleminden önce jetonların yönlendirici olasılıklarına göre sıralanıp sıralanmayacağını belirtir. Bu, en yüksek olasılıklara sahip jetonların, dizide daha uzakta olabilecek diğer jetonlardan önce yönlendirileceği anlamına gelir.

moe_eval_capacity_token_fraction (`float`, *opsiyonel*, varsayılan 1.0) : Doğrulama sırasında kapasite olarak kullanılacak token oranı; negatif bir değere ayarlanırsa, eğitimle aynı değer kullanılır. Aralıkta olmalıdır: (0.0, 1.0].

moe_token_dropout (`float`, *opsiyonel*, varsayılan 0.2) : MoE uzmanı çıktı maskeleme (EOM) için maskeleme oranı, bu uzman çıktılarında Dropout2d kullanılarak uygulanır.

pad_token_id (`int`, *isteğe bağlı*, varsayılan `1`) : Sözlükte dolgu için kullanılan token kimliği.

bos_token_id (`int`, *isteğe bağlı*, varsayılan `0`) : Sözlükte akış başlangıcı için kullanılan token kimliği.

eos_token_id (`Union[int, list[int]]`, *isteğe bağlı*, varsayılan `2`) : Sözlükte akış sonu için kullanılan token kimliği.

tie_word_embeddings (`bool`, *isteğe bağlı*, varsayılan `True`) : Ağırlık gömme bağlamalarının, modelin `tied_weights_keys` eşlemesine göre yapılıp yapılmayacağını belirtir.

output_router_logits (`bool`, *isteğe bağlı*, varsayılan `False`) : Modelin router logit'lerini döndürüp döndürmeyeceğini belirtir. Bu özellik etkinleştirildiğinde, modelin yük dengeleme kaybı ve router z-kaybı dahil olmak üzere yardımcı kaybı (auxiliary loss) da çıkarmasına olanak tanınır.

Bu, bir Nllb MoeModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Nllb Moe modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneği oluşturmak, [facebook/nllb-moe-54b](https://huggingface.co/facebook/nllb-moe-54b) ile benzer bir yapılandırmaya yol açar.

Yapılandırma nesneleri [PreTrainedConfig](/docs/transformers/main/tr/main_classes/configuration#transformers.PreTrainedConfig) sınıfından türetilir ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için [PreTrainedConfig](/docs/transformers/main/tr/main_classes/configuration#transformers.PreTrainedConfig) belgesini okuyun.

Örnek:

```python
>>> from transformers import NllbMoeModel, NllbMoeConfig

>>> # Initializing a NllbMoe facebook/nllb-moe-54b style configuration
>>> configuration = NllbMoeConfig()

>>> # Initializing a model from the facebook/nllb-moe-54b style configuration
>>> model = NllbMoeModel(configuration)

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

## NllbMoeTop2Router[[transformers.NllbMoeTop2Router]]

#### transformers.NllbMoeTop2Router[[transformers.NllbMoeTop2Router]]

```python
transformers.NllbMoeTop2Router(config: NllbMoeConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nllb_moe/modeling_nllb_moe.py#L168)

Token'ler kullanan Router, en iyi 2 uzman atamasını seçer.

Bu yönlendirici, fairseq deposundaki NLLB-MoE'de kullanılan mekanizmayla aynıdır. Öğeler, router_probs'a göre sıralanır ve ardından uzmanların expert_capacity değerine ulaşana kadar seçtikleri uzmana yönlendirilir. **Her token'ın bir uzman tarafından işlendiğinin garantisi yoktur**, aynı şekilde her uzmanın en az bir token aldığı da garanti edilmemektedir.

Ağırlıkları birleştiren yönlendiricinin (router) ağırlıkları da, güncellenmeyen durumların maskelenmesini sağlamak için geri döndürülür.

#### route_tokens[[transformers.NllbMoeTop2Router.route_tokens]]

```python
route_tokens(router_logits: Tensor, input_dtype: dtype = torch.float32, padding_mask: typing.Optional[torch.LongTensor] = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nllb_moe/modeling_nllb_moe.py#L209)

Her uzman için `dispatch_mask` ve `dispatch_weights` değerlerini hesaplar. Maskeler, uzman kapasitesine göre uyarlanır.

#### forward[[transformers.NllbMoeTop2Router.forward]]

```python
forward(hidden_states: Tensor, padding_mask: typing.Optional[torch.LongTensor] = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nllb_moe/modeling_nllb_moe.py#L294)

**Parametreler:**

hidden_states (`torch.Tensor`) : (batch_size, sequence_length, hidden_dim) boyutunda, router olasılıklarının hesaplandığı girdi.

**Dönüş:** top_1_mask (`torch.Tensor`, şekli (batch_size, sequence_length))

[t0]batch_size, sequence_length biçiminde, router'ın top1 olasılıkları kullanılarak her token için seçilen uzmana karşılık gelen indeks tensörü. router_probabilities (`torch.Tensor` of shape (batch_size, sequence_length, nump_experts)): (batch_size, sequence_length, num_experts) biçiminde, her token ve uzman için olasılıklara karşılık gelen tensör. Tokenları uzmanlara yönlendirmek için kullanılır. router_logits (`torch.Tensor` of shape (batch_size, sequence_length))): (batch_size, sequence_length, num_experts) biçiminde, ham router logit'lerine karşılık gelen logit tensörü. Bu, daha sonra router z-loss'unun hesaplanması için kullanılır.

Gizli durumlar, router olasılıklarının hesaplanmasını basitleştirmek için yeniden şekillendirilir (her uzman için ağırlıklar birleştirilir.)

## NllbMoeSparseMLP[[transformers.NllbMoeSparseMLP]]

#### transformers.NllbMoeSparseMLP[[transformers.NllbMoeSparseMLP]]

```python
transformers.NllbMoeSparseMLP(config: NllbMoeConfig, ffn_dim: int)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nllb_moe/modeling_nllb_moe.py#L370)

NLLB-MoE seyrek MLP modülünün uygulaması.

#### forward[[transformers.NllbMoeSparseMLP.forward]]

```python
forward(hidden_states: Tensor, padding_mask: typing.Optional[torch.Tensor] = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nllb_moe/modeling_nllb_moe.py#L381)

## NllbMoeModel[[transformers.NllbMoeModel]]

#### transformers.NllbMoeModel[[transformers.NllbMoeModel]]

```python
transformers.NllbMoeModel(config: NllbMoeConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nllb_moe/modeling_nllb_moe.py#L863)

**Parametreler:**

config ([NllbMoeConfig](/docs/transformers/main/tr/model_doc/nllb-moe#transformers.NllbMoeConfig)) : 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()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

Üzerinde herhangi bir özel head bulunmayan, ham hidden-state çıktısı üreten çıplak Nllb Moe Model.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.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 ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#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[[transformers.NllbMoeModel.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, use_cache: bool | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nllb_moe/modeling_nllb_moe.py#L890)

**Parametreler:**

input_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yoksayılır. İndeksler [AutoTokenizer](/docs/transformers/main/tr/model_doc/auto#transformers.AutoTokenizer) kullanılarak elde edilebilir. Ayrıntılar için [PreTrainedTokenizer.encode()](/docs/transformers/main/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) ve [PreTrainedTokenizer.__call__()](/docs/transformers/main/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) yöntemlerine bakın. [Girdi kimlikları (input IDs) nedir?](../glossary#input-ids)

attention_mask (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Dolgu (padding) token indekslerinde dikkat (attention) işleminin uygulanmamasını sağlayan maske. `[0, 1]` aralığında seçilen maske değerleri:  - **maske uygulanmayan** tokenlar için 1, - **maske uygulanan** tokenlar için 0.  [Dikkat maskeleri nelerdir?](../glossary#attention-mask)

decoder_input_ids (`torch.LongTensor`, şekli `(batch_size, target_sequence_length)`, *isteğe bağlı*) : Sözlükte decoder giriş dizisi tokenlarının indeksleri. İndeksler [AutoTokenizer](/docs/transformers/main/tr/model_doc/auto#transformers.AutoTokenizer) kullanılarak elde edilebilir. Ayrıntılar için [PreTrainedTokenizer.encode()](/docs/transformers/main/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) ve [PreTrainedTokenizer.__call__()](/docs/transformers/main/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__)'a bakın. [Decoder giriş kimlikleri nelerdir?](../glossary#decoder-input-ids)

decoder_attention_mask (`torch.LongTensor`, şekli `(batch_size, target_sequence_length)`, *isteğe bağlı*) : Belirli token indekslerinde dikkat işleminin uygulanmaması için maske. Varsayılan olarak, modelin geleceği tahmin ederken yalnızca önceki girdilere bakabilmesini sağlamak için nedensel bir maske kullanılır.

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *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. Çözücüde (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 bloklarındaki ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle, `use_cache=True` veya `config.use_cache=True` olduğunda, çözümlemenin önceki bir aşamasında modelin döndürdüğü `past_key_values` değerlerinden oluşur. Girdi olarak yalnızca [Cache](/docs/transformers/main/tr/internal/generation_utils#transformers.Cache) örneği kabul edilir, bkz. [kv cache kılavuzu](https://huggingface.co/docs/transformers/en/kv_cache). `past_key_values` geçirilmezse, varsayılan olarak [DynamicCache](/docs/transformers/main/tr/internal/generation_utils#transformers.DynamicCache) başlatılır. Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak verecektir. `past_key_values` kullanılıyorsa, kullanıcının, bu modele geçmiş anahtar-değer durumları verilmemiş olan, yalnızca işlenmemiş `input_ids` değerlerini (şekli `(batch_size, unprocessed_length)` olan) girmesi beklenir; bunun yerine, şekli `(batch_size, sequence_length)` olan tüm `input_ids` değerleri girilmez.

inputs_embeds (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) : `input_ids` parametresini iletmek yerine, gömülü bir temsil doğrudan iletmeyi tercih edebilirsiniz. Bu, `input_ids` indekslerini 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.

decoder_inputs_embeds (`torch.Tensor`, şekli `(batch_size, target_sequence_length, hidden_size)`, *isteğe bağlı*) : `decoder_input_ids` parametresini iletmek yerine, gömülü bir temsil doğrudan iletmeyi seçebilirsiniz. `past_key_values` kullanılıyorsa, isteğe bağlı olarak yalnızca son `decoder_inputs_embeds` değerlerinin girdi olarak verilmesi yeterlidir (bkz. `past_key_values`). Bu, `decoder_input_ids` indekslerini 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. `decoder_input_ids` ve `decoder_inputs_embeds` parametrelerinin ikisi de ayarlanmamışsa, `decoder_inputs_embeds` parametresi `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üş:** `Seq2SeqMoEModelOutput` veya `tuple(torch.Tensor)`

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

[NllbMoeModel](/docs/transformers/main/tr/model_doc/nllb-moe#transformers.NllbMoeModel) 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ü ilki ö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](/docs/transformers/main/tr/internal/generation_utils#transformers.EncoderDecoderCache) örneğidir. Daha fazla ayrıntı için [kv önbellek kılavuzumuza](https://huggingface.co/docs/transformers/en/kv_cache) 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 bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`.

  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` (her katman için 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 çözücü (decoder) dikkat ağırlıkları.
- **decoder_router_logits** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_router_logits=True` geçirildiğinde veya `config.add_router_probs=True` olduğunda döndürülür) -- Her katman için bir adet içeren, `(batch_size, sequence_length, num_experts)` biçiminde `torch.Tensor` içeren bir demet.

  Decoder model'unun router logits'i, Mixture of Experts modelleri için yardımcı kaybı hesaplamakta kullanışlıdı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.

  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` (her katman için 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ı.
- **encoder_router_logits** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_router_logits=True` geçirildiğinde veya `config.add_router_probs=True` olduğunda döndürülür) -- `torch.Tensor` (katman başına bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, num_experts)`.

  Kodlayıcı modelin yönlendirici logitleri, seyrek modüller için yardımcı kaybı ve z_loss'ü hesaplamak için kullanışlıdır.

## NllbMoeForConditionalGeneration[[transformers.NllbMoeForConditionalGeneration]]

#### transformers.NllbMoeForConditionalGeneration[[transformers.NllbMoeForConditionalGeneration]]

```python
transformers.NllbMoeForConditionalGeneration(config: NllbMoeConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nllb_moe/modeling_nllb_moe.py#L1042)

**Parametreler:**

config ([NllbMoeConfig](/docs/transformers/main/tr/model_doc/nllb-moe#transformers.NllbMoeConfig)) : 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()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

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

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.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 ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#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[[transformers.NllbMoeForConditionalGeneration.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.LongTensor] = None, use_cache: bool | None = None, output_router_logits: bool | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/nllb_moe/modeling_nllb_moe.py#L1058)

**Parametreler:**

input_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yoksayılır. İndeksler [AutoTokenizer](/docs/transformers/main/tr/model_doc/auto#transformers.AutoTokenizer) kullanılarak elde edilebilir. Ayrıntılar için [PreTrainedTokenizer.encode()](/docs/transformers/main/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) ve [PreTrainedTokenizer.__call__()](/docs/transformers/main/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) yöntemlerine bakın. [Girdi kimlikları (input IDs) nedir?](../glossary#input-ids)

attention_mask (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Dolgu (padding) token indekslerinde dikkat (attention) işleminin uygulanmamasını sağlayan maske. `[0, 1]` aralığında seçilen maske değerleri:  - **maske uygulanmayan** tokenlar için 1, - **maske uygulanan** tokenlar için 0.  [Dikkat maskeleri nelerdir?](../glossary#attention-mask)

decoder_input_ids (`torch.LongTensor`, şekli `(batch_size, target_sequence_length)`, *isteğe bağlı*) : Sözlükte decoder giriş dizisi tokenlarının indeksleri. İndeksler [AutoTokenizer](/docs/transformers/main/tr/model_doc/auto#transformers.AutoTokenizer) kullanılarak elde edilebilir. Ayrıntılar için [PreTrainedTokenizer.encode()](/docs/transformers/main/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) ve [PreTrainedTokenizer.__call__()](/docs/transformers/main/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__)'a bakın. [Decoder giriş kimlikleri nelerdir?](../glossary#decoder-input-ids)

decoder_attention_mask (`torch.LongTensor`, şekli `(batch_size, target_sequence_length)`, *isteğe bağlı*) : Belirli token indekslerinde dikkat işleminin uygulanmaması için maske. Varsayılan olarak, modelin geleceği tahmin ederken yalnızca önceki girdilere bakabilmesini sağlamak için nedensel bir maske kullanılır.

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *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. Çözücüde (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 bloklarındaki ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle, `use_cache=True` veya `config.use_cache=True` olduğunda, çözümlemenin önceki bir aşamasında modelin döndürdüğü `past_key_values` değerlerinden oluşur. Girdi olarak yalnızca [Cache](/docs/transformers/main/tr/internal/generation_utils#transformers.Cache) örneği kabul edilir, bkz. [kv cache kılavuzu](https://huggingface.co/docs/transformers/en/kv_cache). `past_key_values` geçirilmezse, varsayılan olarak [DynamicCache](/docs/transformers/main/tr/internal/generation_utils#transformers.DynamicCache) başlatılır. Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak verecektir. `past_key_values` kullanılıyorsa, kullanıcının, bu modele geçmiş anahtar-değer durumları verilmemiş olan, yalnızca işlenmemiş `input_ids` değerlerini (şekli `(batch_size, unprocessed_length)` olan) girmesi beklenir; bunun yerine, şekli `(batch_size, sequence_length)` olan tüm `input_ids` değerleri girilmez.

inputs_embeds (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) : `input_ids` parametresini iletmek yerine, gömülü bir temsil doğrudan iletmeyi tercih edebilirsiniz. Bu, `input_ids` indekslerini 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.

decoder_inputs_embeds (`torch.Tensor`, şekli `(batch_size, target_sequence_length, hidden_size)`, *isteğe bağlı*) : `decoder_input_ids` parametresini iletmek yerine, gömülü bir temsil doğrudan iletmeyi seçebilirsiniz. `past_key_values` kullanılıyorsa, isteğe bağlı olarak yalnızca son `decoder_inputs_embeds` değerlerinin girdi olarak verilmesi yeterlidir (bkz. `past_key_values`). Bu, `decoder_input_ids` indekslerini 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. `decoder_input_ids` ve `decoder_inputs_embeds` parametrelerinin ikisi de ayarlanmamışsa, `decoder_inputs_embeds` parametresi `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 `[0, ..., config.vocab_size]` aralığında etiketlere sahip 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`).

output_router_logits (`bool`, *isteğe bağlı*) : Tüm yönlendiricilerin (router) logit değerlerinin döndürülüp döndürülmeyeceğini belirtir. Bunlar yönlendirici kaybını (router loss) hesaplamak için kullanışlıdır ve çıkarım sırasında döndürülmemelidir.

**Dönüş:** `Seq2SeqMoEOutput` veya `tuple(torch.Tensor)`

Çeşitli öğelerden oluşan bir `Seq2SeqMoEOutput` veya bir `torch.Tensor` demeti (`return_dict=False` geçirildiğinde veya `config.return_dict=False` olduğunda), yapılandırma ([NllbMoeConfig](/docs/transformers/main/tr/model_doc/nllb-moe#transformers.NllbMoeConfig)) ve girdilere bağlı olarak.

[NllbMoeForConditionalGeneration](/docs/transformers/main/tr/model_doc/nllb-moe#transformers.NllbMoeForConditionalGeneration) 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ü ilki ö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](/docs/transformers/main/tr/internal/generation_utils#transformers.EncoderDecoderCache) örneğidir. Daha fazla ayrıntı için [kv önbellek kılavuzumuza](https://huggingface.co/docs/transformers/en/kv_cache) 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 bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`.

  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` (her katman için 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 çözücü (decoder) dikkat ağırlıkları.
- **decoder_router_logits** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_router_logits=True` geçirildiğinde veya `config.add_router_probs=True` olduğunda döndürülür) -- Her katman için bir adet içeren, `(batch_size, sequence_length, num_experts)` biçiminde `torch.Tensor` içeren bir demet.

  Decoder model'unun router logits'i, Mixture of Experts modelleri için yardımcı kaybı hesaplamakta kullanışlıdı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.

  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` (her katman için 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ı.
- **encoder_router_logits** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_router_logits=True` geçirildiğinde veya `config.add_router_probs=True` olduğunda döndürülür) -- `torch.Tensor` (katman başına bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, num_experts)`.

  Uzmanlar Karışımı (Mixture of Experts) modelleri için yardımcı kayıp ve z_loss hesaplamalarında kullanışlı olan, kodlayıcı modelin yönlendirici (router) logit değerleri.

Örnek:

```python
```

