# RAG

  
    
  

[Retrieval-Augmented Generation (RAG)](https://huggingface.co/papers/2005.11401), önceden eğitilmiş bir sinirsel arama motoru aracılığıyla, önceden eğitilmiş bir dil modelini (parametrik bellek) harici bir veri kaynağına (parametrik olmayan bellek) erişimle birleştirir. RAG, çıkarım sırasında ilgili pasajları getirir ve üretimini bu pasajlara koşullandırır. Bu, yanıtların genellikle daha gerçekçi olmasını sağlar ve tüm modeli yeniden eğitmek yerine indeksi değiştirerek bilgiyi güncellemenize olanak tanır.

Tüm orijinal RAG kontrol noktalarını [AI at Meta](https://huggingface.co/facebook/models?search=rag) kuruluşu altında bulabilirsiniz.

> [!TIP]
> Bu model [ola13](https://huggingface.co/ola13) tarafından katkıda bulunmuştur.
>
> Farklı dil görevlerine RAG uygulamaya dair daha fazla örnek için sağ kenar çubuğundaki RAG modellerine tıklayın.

Aşağıdaki örnekler, [AutoModel](/docs/transformers/v5.23.0/tr/model_doc/auto#transformers.AutoModel) ile metin üretmenin nasıl yapıldığını göstermektedir.

```python
from transformers import RagRetriever, RagSequenceForGeneration, RagTokenizer

tokenizer = RagTokenizer.from_pretrained("facebook/rag-sequence-nq")
retriever = RagRetriever.from_pretrained(
    "facebook/rag-sequence-nq", dataset="wiki_dpr", index_name="compressed"
)

model = RagSequenceForGeneration.from_pretrained(
    "facebook/rag-sequence-nq",
    retriever=retriever,
    attn_implementation="flash_attention_2",
    device_map="auto",
)
inputs = tokenizer("How many people live in Paris?", return_tensors="pt").to(model.device)
generated = model.generate(input_ids=inputs["input_ids"])
print(tokenizer.batch_decode(generated, skip_special_tokens=True)[0])
```

Quantization, ağırlıkları daha düşük hassasiyette saklayarak bellek kullanımını azaltır. Desteklenen arka uçlar için [Quantization](../quantization/overview) genel bakışına bakın. Aşağıdaki örnek, ağırlıkları 4-bite indirgemek için [bitsandbytes](../quantization/bitsandbytes) kullanır.

```python
import torch

from transformers import BitsAndBytesConfig, RagRetriever, RagSequenceForGeneration, RagTokenizer

bnb = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_compute_dtype=torch.bfloat16)

tokenizer = RagTokenizer.from_pretrained("facebook/rag-sequence-nq")
retriever = RagRetriever.from_pretrained(
    "facebook/rag-sequence-nq", dataset="wiki_dpr", index_name="compressed"
)

model = RagSequenceForGeneration.from_pretrained(
    "facebook/rag-sequence-nq",
    retriever=retriever,
    quantization_config=bnb,
    device_map="auto",
)
inputs = tokenizer("How many people live in Paris?", return_tensors="pt").to(model.device)
generated = model.generate(input_ids=inputs["input_ids"])
print(tokenizer.batch_decode(generated, skip_special_tokens=True)[0])
```

## RagConfig[[transformers.RagConfig]]

#### transformers.RagConfig[[transformers.RagConfig]]

```python
transformers.RagConfig(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, question_encoder: transformers.configuration_utils.PreTrainedConfig | dict | None = None, generator: transformers.configuration_utils.PreTrainedConfig | dict | None = None, vocab_size: int | None = None, prefix: str | None = None, bos_token_id: int | None = None, pad_token_id: int | None = None, eos_token_id: int | list[int] | None = None, decoder_start_token_id: int | None = None, title_sep: str = ' / ', doc_sep: str = ' // ', n_docs: int = 5, max_combined_length: int = 300, retrieval_vector_size: int = 768, retrieval_batch_size: int = 8, dataset: str = 'wiki_dpr', dataset_split: str = 'train', index_name: str = 'compressed', index_path: str | None = None, passages_path: str | None = None, use_dummy_dataset: bool = False, reduce_loss: bool = False, label_smoothing: float = 0.0, do_deduplication: bool = True, exclude_bos_score: bool = False, do_marginalize: bool = False, output_retrieved: bool = False, use_cache: bool = True, dataset_revision: str | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/configuration_rag.py#L25)

**Parametreler:**

is_encoder_decoder (`bool`, *isteğe bağlı*, varsayılan `True`) : Modelin bir kodlayıcı/çözücü olarak kullanılıp kullanılmadığı.

question_encoder (`PreTrainedConfig | dict`, *isteğe bağlı*) : Soru kodlayıcı iskeletinin yapılandırma nesnesi veya sözlüğü

generator (`PreTrainedConfig | dict`, *isteğe bağlı*) : Cevap oluşturucu omurgasının yapılandırma nesnesi veya sözlüğü

vocab_size (`int`, *isteğe bağlı*) : Modelin sözlük boyutu. `input_ids` tarafından temsil edilebilecek farklı token sayısını tanımlar.

prefix (`str`, *isteğe bağlı*) : Üretici modele iletilmeden önce her girdinin başına eklenen bir dize öneki.

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

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

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

decoder_start_token_id (`int`, *isteğe bağlı*) : Bir encoder-decoder modeli `bos` dışında farklı bir token ile çözümlemeye başlıyorsa, o token'ın kimliği.

title_sep (`str`, *isteğe bağlı*, varsayılan  `" / "`) : [RagRetriever](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagRetriever) çağrıldığında, alınan belgenin başlığı ile metni arasına eklenen ayraç.

doc_sep (`str`, *isteğe bağlı*, varsayılan  `" // "`) : [RagRetriever](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagRetriever) çağrıldığında, alınan belgenin metni ile orijinal girdi arasına eklenen ayraç.

n_docs (`int`, *isteğe bağlı*, varsayılan 5) : Alınacak belge sayısı.

max_combined_length (`int`, *isteğe bağlı*, varsayılan 300) : `__call__()` tarafından döndürülen bağlamsal girdinin maksimum uzunluğu.

retrieval_vector_size (`int`, *isteğe bağlı*, varsayılan 768) : [RagRetriever](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagRetriever) tarafından indekslenen belge gömme vektörlerinin boyutluluğu.

retrieval_batch_size (`int`, *isteğe bağlı*, varsayılan 8) : [RagRetriever](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagRetriever) içinde kapsanan faiss dizinine eşzamanlı olarak gönderilen sorgu sayısı olarak tanımlanan arama toplu işlem boyutu.

dataset (`str`, *isteğe bağlı*, varsayılan `"wiki_dpr"`) : HuggingFace Datasets'te indekslenmiş veri setinin bir veri seti tanımlayıcısı (kullanılabilir tüm veri setlerini ve kimliklerini `datasets.list_datasets()` kullanarak listeleyin).

dataset_split (`str`, *isteğe bağlı*, varsayılan `"train"`) : Yüklenmesi gereken `dataset` bölümü.

index_name (`str`, *isteğe bağlı*, varsayılan `"compressed"`) : `dataset` ile ilişkili indeksin adı. `"legacy"`, `"exact"` ve `"compressed"` arasında seçim yapılabilir.

index_path (`str`, *isteğe bağlı*) : Disk üzerindeki seri hale getirilmiş faiss dizininin yolu.

passages_path (`str`, *isteğe bağlı*) : faiss diziniyle uyumlu metin pasajlarına giden bir yol. `LegacyIndex` kullanılıyorsa zorunludur

use_dummy_dataset (`bool`, *isteğe bağlı*, varsayılan `False`) : `dataset` ile belirtilen veri setinin "dummy" varyantının yüklenip yüklenmeyeceğini belirtir.

reduce_loss (`bool`, *isteğe bağlı*, varsayılan `False`) : NLL kaybının `torch.Tensor.sum` işlemi kullanılarak azaltılıp azaltılmayacağı.

label_smoothing (`float`, *isteğe bağlı*, varsayılan 0.0) : Yalnızca `return_loss` `True` olarak ayarlandığında geçerlidir. Kayıp hesabında etiket yumuşatma için `epsilon` parametre değerini kontrol eder. 0 olarak ayarlanırsa etiket yumuşatması uygulanmaz.

do_deduplication (`bool`, *isteğe bağlı*, varsayılan `True`) : Belirli bir girdi için farklı bağlam belgelerinden gelen üretimi yinelenenleri kaldırmak için kullanılıp kullanılmayacağını belirtir. Dağıtık bir arka uç ile eğitim sırasında kullanılıyorsa `False` olarak ayarlanmalıdır.

exclude_bos_score (`bool`, *isteğe bağlı*, varsayılan `False`) : Kayıp hesaplanırken BOS token'ının göz ardı edilip edilmeyeceğini belirtir.

do_marginalize (`bool`, *isteğe bağlı*, varsayılan `False`) : `True` ise, `torch.nn.functional.log_softmax` kullanılarak logitler tüm belgeler üzerinde marjinalleştirilir.

output_retrieved (`bool`, *isteğe bağlı*, varsayılan `False`) : `True` olarak ayarlanırsa, `retrieved_doc_embeds`, `retrieved_doc_ids`, `context_input_ids` ve `context_attention_mask` döndürülür. Daha fazla ayrıntı için döndürülen tensörlere 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.

dataset_revision (`str`, *isteğe bağlı*,) : Arama için kullanılan Hugging Face veri setinin revizyonu (commit hash, etiket veya dal).

Bu, bir RagModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Rag modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneği oluşturmak, [](https://huggingface.co/) yapılandırmasına benzer bir yapılandırma verir.

Yapılandırma nesneleri [PreTrainedConfig](/docs/transformers/v5.23.0/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/v5.23.0/tr/main_classes/configuration#transformers.PreTrainedConfig) belgesini okuyun.

#### from_question_encoder_generator_configs[[transformers.RagConfig.from_question_encoder_generator_configs]]

```python
from_question_encoder_generator_configs(question_encoder_config: PreTrainedConfig, generator_config: PreTrainedConfig, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/configuration_rag.py#L129)

**Dönüş:** [EncoderDecoderConfig](/docs/transformers/v5.23.0/tr/model_doc/encoder-decoder#transformers.EncoderDecoderConfig)

Bir yapılandırma nesnesi örneği

Önceden eğitilmiş bir kodlayıcı model yapılandırması ve kodlayıcı model yapılandırmasından bir [EncoderDecoderConfig](/docs/transformers/v5.23.0/tr/model_doc/encoder-decoder#transformers.EncoderDecoderConfig) (veya türetilmiş bir sınıf) örnekleyin.

## RagTokenizer[[transformers.RagTokenizer]]

#### transformers.RagTokenizer[[transformers.RagTokenizer]]

```python
transformers.RagTokenizer(question_encoder, generator)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/tokenization_rag.py#L25)

## Rag'e özgü çıktılar[[transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput]]

#### transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput[[transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput]]

```python
transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput(loss: typing.Optional[torch.Tensor] = None, logits: typing.Optional[torch.Tensor] = None, doc_scores: typing.Optional[torch.Tensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, retrieved_doc_embeds: typing.Optional[torch.Tensor] = None, retrieved_doc_ids: typing.Optional[torch.LongTensor] = None, context_input_ids: typing.Optional[torch.LongTensor] = None, context_attention_mask: typing.Optional[torch.LongTensor] = None, question_encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, question_enc_hidden_states: tuple[torch.Tensor, ...] | None = None, question_enc_attentions: tuple[torch.Tensor, ...] | None = None, generator_enc_last_hidden_state: typing.Optional[torch.Tensor] = None, generator_enc_hidden_states: tuple[torch.Tensor, ...] | None = None, generator_enc_attentions: tuple[torch.Tensor, ...] | None = None, generator_dec_hidden_states: tuple[torch.Tensor, ...] | None = None, generator_dec_attentions: tuple[torch.Tensor, ...] | None = None, generator_cross_attentions: tuple[torch.Tensor, ...] | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/modeling_rag.py#L42)

**Parametreler:**

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ı. Puan, her sözlük jetonu için tüm belgeler üzerinde muhtemelen marjinalleştirilmiştir.

doc_scores (`torch.Tensor`, şekli `(batch_size, config.n_docs)`) : Her alınan belge gömme değerleri (bkz. `retrieved_doc_embeds`) ile `question_encoder_last_hidden_state` arasındaki puan.

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](/docs/transformers/v5.23.0/tr/internal/generation_utils#transformers.Cache) örneğidir. Daha fazla ayrıntı için [kv cache kılavuzumuza](https://huggingface.co/docs/transformers/en/kv_cache) bakın. Ardışık çözümlemeyi hızlandırmak için kullanılabilecek (bkz. `past_key_values` girdisi) decoder'ın önceden hesaplanmış gizli durumlarını (dikkat bloklarındaki anahtar ve değerleri) içerir.

retrieved_doc_embeds (`torch.Tensor`, şekli `(batch_size, config.n_docs, hidden_size)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Geri getirenin (retriever) getirdiği gömülü belgeler. `doc_scores` hesaplamak için `question_encoder_last_hidden_state` ile birlikte kullanılır.

retrieved_doc_ids (`torch.LongTensor`, şekli `(batch_size, config.n_docs)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Arayüzün (retriever) getirdiği gömülü belgelerin indeksleri.

context_input_ids (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *opsiyonel*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının input_ids'lerinden son işlemden geçirilmiş girdi kimlikleri.

context_attention_mask (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *opsiyonel*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının `input_ids`'inden işlenmiş dikkat maskesi (attention mask).

question_encoder_last_hidden_state (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) : Modelin son katmanının çıktısındaki gizli durumların, soru kodlayıcısının birleştirilmiş çıktısındaki dizisi.

question_enc_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`. Soru kodlayıcısının her katman çıktısındaki gizli durumları ve başlangıç gömme çıktıları.

question_enc_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 softmax'inden sonra soru kodlayıcısının dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

generator_enc_last_hidden_state (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) : Modelin üreteci kodlayıcısının son katmanının çıktısındaki gizli durumlar dizisi.

generator_enc_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`. Üretici kodlayıcısının her katman çıktısındaki gizli durumları ve başlangıç gömme çıktıları.

generator_enc_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 softmax'inden sonra, öz-dikkat kafalarında ağırlıklı ortalama hesaplamak için kullanılan üreteç kodlayıcısının dikkat ağırlıkları.

generator_dec_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`. Üretici çözücünün her katman çıktısındaki gizli durumları ve başlangıç gömme çıktıları.

generator_dec_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 softmax'inden sonra, öz-dikkat kafalarında ağırlıklı ortalama hesaplamak için kullanılan üreteç çözücüde dikkat ağırlıkları.

generator_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) : `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`. Üretici çözücüsünün çapraz dikkat ağırlıkları, dikkat softmax'inden sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Retriever destekli marjinalize edilmiş modellerin çıktıları için temel sınıf.

#### transformers.models.rag.modeling_rag.RetrievAugLMOutput[[transformers.models.rag.modeling_rag.RetrievAugLMOutput]]

```python
transformers.models.rag.modeling_rag.RetrievAugLMOutput(logits: typing.Optional[torch.Tensor] = None, doc_scores: typing.Optional[torch.Tensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, retrieved_doc_embeds: typing.Optional[torch.Tensor] = None, retrieved_doc_ids: typing.Optional[torch.LongTensor] = None, context_input_ids: typing.Optional[torch.LongTensor] = None, context_attention_mask: typing.Optional[torch.LongTensor] = None, question_encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, question_enc_hidden_states: tuple[torch.Tensor, ...] | None = None, question_enc_attentions: tuple[torch.Tensor, ...] | None = None, generator_enc_last_hidden_state: typing.Optional[torch.Tensor] = None, generator_enc_hidden_states: tuple[torch.Tensor, ...] | None = None, generator_enc_attentions: tuple[torch.Tensor, ...] | None = None, generator_dec_hidden_states: tuple[torch.Tensor, ...] | None = None, generator_dec_attentions: tuple[torch.Tensor, ...] | None = None, generator_cross_attentions: tuple[torch.Tensor, ...] | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/modeling_rag.py#L134)

**Parametreler:**

logits (`torch.Tensor`, şekli `(batch_size, sequence_length, config.vocab_size)`) : Dil modelleme başlığının tahmin puanları. Puan, her sözlük jetonu için tüm belgeler üzerinde muhtemelen marjinalleştirilmiştir.

doc_scores (`torch.Tensor`, şekli `(batch_size, config.n_docs)`) : Her alınan belge gömme değerleri (bkz. `retrieved_doc_embeds`) ile `question_encoder_last_hidden_state` arasındaki puan.

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](/docs/transformers/v5.23.0/tr/internal/generation_utils#transformers.Cache) örneğidir. Daha fazla ayrıntı için [kv cache kılavuzumuza](https://huggingface.co/docs/transformers/en/kv_cache) bakın. Ardışık çözümlemeyi hızlandırmak için kullanılabilecek (bkz. `past_key_values` girdisi) decoder'ın önceden hesaplanmış gizli durumlarını (dikkat bloklarındaki anahtar ve değerleri) içerir.

retrieved_doc_embeds (`torch.Tensor`, şekli `(batch_size, config.n_docs, hidden_size)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Geri getirenin (retriever) getirdiği gömülü belgeler. `doc_scores` hesaplamak için `question_encoder_last_hidden_state` ile birlikte kullanılır.

retrieved_doc_ids (`torch.LongTensor`, şekli `(batch_size, config.n_docs)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Arayüzün (retriever) getirdiği gömülü belgelerin indeksleri.

context_input_ids (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *opsiyonel*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının input_ids'lerinden son işlemden geçirilmiş girdi kimlikleri.

context_attention_mask (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *opsiyonel*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının `input_ids`'inden işlenmiş dikkat maskesi (attention mask).

question_encoder_last_hidden_state (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) : Modelin son katmanının çıktısındaki gizli durumların, soru kodlayıcısının birleştirilmiş çıktısındaki dizisi.

question_enc_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`. Soru kodlayıcısının her katman çıktısındaki gizli durumları ve başlangıç gömme çıktıları.

question_enc_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 softmax'inden sonra soru kodlayıcısının dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

generator_enc_last_hidden_state (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) : Modelin üreteci kodlayıcısının son katmanının çıktısındaki gizli durumlar dizisi.

generator_enc_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`. Üretici kodlayıcısının her katman çıktısındaki gizli durumları ve başlangıç gömme çıktıları.

generator_enc_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 softmax'inden sonra, öz-dikkat kafalarında ağırlıklı ortalama hesaplamak için kullanılan üreteç kodlayıcısının dikkat ağırlıkları.

generator_dec_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren bir tuple, şekli `(batch_size, sequence_length, hidden_size)`. Üretici çözücünün her katman çıktısındaki gizli durumları ve başlangıç gömme çıktıları.

generator_dec_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 softmax'inden sonra, öz-dikkat kafalarında ağırlıklı ortalama hesaplamak için kullanılan üreteç çözücüde dikkat ağırlıkları.

generator_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) : `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`. Üretici çözücüsünün çapraz dikkat ağırlıkları, dikkat softmax'inden sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

## RagRetriever[[transformers.RagRetriever]]

#### transformers.RagRetriever[[transformers.RagRetriever]]

```python
transformers.RagRetriever(config, question_encoder_tokenizer, generator_tokenizer, index = None, init_retrieval = True)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/retrieval_rag.py#L347)

**Parametreler:**

config ([RagConfig](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagConfig)) : Bu Retriever'in kullanıldığı RAG modelinin yapılandırması. Hangi `Index`'in oluşturulacağını gösteren parametreleri içerir. Kendi özel veri setinizi `config.index_name="custom"` ile yükleyebilir veya örneğin `config.index_name="wiki_dpr"` ile datasets kütüphanesinden standart bir tane (varsayılan) kullanabilirsiniz.

question_encoder_tokenizer ([PreTrainedTokenizer](/docs/transformers/v5.23.0/tr/main_classes/tokenizer#transformers.PythonBackend)) : Soruyu tokenleştirmek için kullanılan tokenizer. Soruyu çözmek ve ardından generator_tokenizer'ı kullanmak için kullanılır.

generator_tokenizer ([PreTrainedTokenizer](/docs/transformers/v5.23.0/tr/main_classes/tokenizer#transformers.PythonBackend)) : RagModel'ün üreteç (generator) kısmında kullanılan belirteçleştirici (tokenizer).

index (`Index`, isteğe bağlı, varsayılan olarak yapılandırma tarafından tanımlanan) : Belirtilirse, yapılandırma kullanılarak oluşturulandan bunun yerine bu indeksi kullanın

Vektör sorgularından belgeleri almak için kullanılan Retriever. Hem belgelerin gömme değerlerini hem de içeriklerini alır ve bunları bir RagModel ile kullanılmak üzere biçimlendirir.

Örnekler:

```python
>>> # To load the default "wiki_dpr" dataset with 21M passages from wikipedia (index name is 'compressed' or 'exact')
>>> from transformers import RagRetriever

>>> retriever = RagRetriever.from_pretrained(
...     "facebook/rag-sequence-nq", dataset="wiki_dpr", index_name="compressed"
... )

>>> # To load your own indexed dataset built with the datasets library.
>>> from transformers import RagRetriever

>>> dataset = (
...     ...
... )  # dataset must be a datasets.Datasets object with columns "title", "text" and "embeddings", and it must have a supported index (e.g., Faiss or other index types depending on your setup)
>>> retriever = RagRetriever.from_pretrained("facebook/rag-sequence-nq", indexed_dataset=dataset)

>>> # To load your own indexed dataset built with the datasets library that was saved on disk.
>>> from transformers import RagRetriever

>>> dataset_path = "path/to/my/dataset"  # dataset saved via *dataset.save_to_disk(...)*
>>> index_path = "path/to/my/index"  # index saved via *dataset.get_index("embeddings").save(...)*
>>> retriever = RagRetriever.from_pretrained(
...     "facebook/rag-sequence-nq",
...     index_name="custom",
...     passages_path=dataset_path,
...     index_path=index_path,
... )

>>> # To load the legacy index built originally for Rag's paper
>>> from transformers import RagRetriever

>>> retriever = RagRetriever.from_pretrained("facebook/rag-sequence-nq", index_name="legacy")
```

#### init_retrieval[[transformers.RagRetriever.init_retrieval]]

```python
init_retrieval()
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/retrieval_rag.py#L482)

Retriever başlatma işlevi. İndeksi belleğe yükler.

#### postprocess_docs[[transformers.RagRetriever.postprocess_docs]]

```python
postprocess_docs(docs, input_strings, prefix, n_docs, return_tensors = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/retrieval_rag.py#L490)

**Parametreler:**

docs  (`dict`) : Alınan belgeler.

input_strings (`str`) : `preprocess_query` tarafından çözülen girdi dizgeleri.

prefix (`str`) : Her girdinin başına eklenen önek, genellikle T5 tabanlı modellerle kullanılır.

**Dönüş:** `tuple(tensors)`

iki öğeden oluşan bir tuple: bağlamsallaştırılmış `input_ids` ve uyumlu bir `attention_mask`.

Alınan `docs` öğelerinin son işlenmesi ve `input_strings` ile birleştirilmesi.

#### getir[[transformers.RagRetriever.retrieve]]

```python
retrieve(question_hidden_states: ndarray, n_docs: int)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/retrieval_rag.py#L559)

**Parametreler:**

question_hidden_states (`np.ndarray`, şekli `(batch_size, vector_size)`) : Geri getirilecek sorgu vektörlerinden oluşan bir parti.

n_docs (`int`) : Her sorgu için alınan belge sayısı.

**Dönüş:** `tuple[np.ndarray, np.ndarray, list[dict]]`

Aşağıdaki nesneleri içeren bir demet:

- **retrieved_doc_embeds** (`np.ndarray`, şekli `(batch_size, n_docs, dim)`) -- Her sorgu için alınan belgelerin arama gömme değerleri.
- **doc_ids** (`np.ndarray`, şekli `(batch_size, n_docs)`) -- İndeksteki belgelerin kimlikleri
- **doc_dicts** (`list[dict]`): Her sorgu için `retrieved_doc_embeds` örnekleri.

Belirtilen `question_hidden_states` için belgeleri getirir.

## RagModel[[transformers.RagModel]]

#### transformers.RagModel[[transformers.RagModel]]

```python
transformers.RagModel(config: transformers.configuration_utils.PreTrainedConfig | None = None, question_encoder: transformers.modeling_utils.PreTrainedModel | None = None, generator: transformers.modeling_utils.PreTrainedModel | None = None, retriever: transformers.models.rag.retrieval_rag.RagRetriever | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/modeling_rag.py#L372)

**Parametreler:**

config ([PreTrainedConfig](/docs/transformers/v5.23.0/tr/main_classes/configuration#transformers.PreTrainedConfig), *opsiyonel*) : 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/v5.23.0/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

question_encoder (`PreTrainedModel`, *isteğe bağlı*) : Soruyu, geri getirme için gizli durumlara kodlamaktan sorumlu model.

generator (`PreTrainedModel`, *isteğe bağlı*) : Alınan belgelere dayalı olarak metin üretmekten sorumlu model.

retriever (`RagRetriever`, *isteğe bağlı*) : Kodlanmış soru verildiğinde bilgi tabanından belgeleri getirmekten sorumlu bileşen.

Üzerinde herhangi bir özel head olmadan ham hidden-states çıkaran çıplak Rag Model.

Bu model [PreTrainedModel](/docs/transformers/v5.23.0/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.RagModel.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.BoolTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, doc_scores: typing.Optional[torch.Tensor] = None, context_input_ids: typing.Optional[torch.LongTensor] = None, context_attention_mask: typing.Optional[torch.LongTensor] = None, use_cache: bool | None = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, output_retrieved: bool | None = None, n_docs: int | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/modeling_rag.py#L425)

**Parametreler:**

input_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`) : Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Modeli başlatmak için kullanılan [RagConfig](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagConfig), hangi üretecin (generator) kullanılacağını belirtir ve uyumlu bir üreteç belirteç ayrıştırıcısını (tokenizer) de tanımlar. İndeksleri elde etmek için o belirteç ayrıştırıcısı sınıfını kullanın.  [Girdi kimlikları (input IDs) nelerdir?](../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)

encoder_outputs (`tuple(tuple(torch.Tensor)`, *optional*) : Tuple, (`generator_enc_last_hidden_state`, *optional*: `generator_enc_hidden_states`, *optional*: `generator_enc_attentions`) bileşenlerinden oluşur. `generator_enc_last_hidden_state`, `(batch_size, n_docs * sequence_length, hidden_size)` boyutunda olup, üretecin (generator) kodlayıcısının (encoder) son katmanının çıktısındaki gizli durumlar (hidden-states) dizisidir. ([RagModel](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagModel)) modeli tarafından çözümleme (decoding) sırasında kullanılır.

decoder_input_ids (`torch.LongTensor`, şekli `(batch_size, target_sequence_length)`, *isteğe bağlı*) : Üretim görevleri için sağlanır. Varsayılan olarak `None`'dır; RAG örneğinizle kullandığınız üretici modelin talimatlarına göre oluşturulmalıdır.

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/v5.23.0/tr/model_doc/auto#transformers.AutoTokenizer) kullanılarak elde edilebilir. Ayrıntılar için [PreTrainedTokenizer.encode()](/docs/transformers/v5.23.0/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) ve [PreTrainedTokenizer.__call__()](/docs/transformers/v5.23.0/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__)'a bakın. [Decoder giriş kimlikleri nelerdir?](../glossary#decoder-input-ids)

decoder_attention_mask (`torch.BoolTensor`, şekli `(batch_size,  target_sequence_length)`, *isteğe bağlı*) : Varsayılan davranış: `decoder_input_ids` içindeki dolgu (pad) jetonlarını yok sayan bir tensör oluşturur. Varsayılan olarak nedensel maske (causal mask) de 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/v5.23.0/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/v5.23.0/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.

doc_scores (`torch.Tensor`, şekli `(batch_size, config.n_docs)`) : Her alınan belge gömme değerleri (bkz. `retrieved_doc_embeds`) ile `question_encoder_last_hidden_state` arasındaki puan. Model bir `retriever` ile başlatılmadıysa, ileri yönlü geçişe `doc_scores` sağlanmalıdır. `doc_scores`, `question_encoder_last_hidden_state` ve `retrieved_doc_embeds` kullanılarak hesaplanabilir; daha fazla bilgi için örnekleri inceleyin.

context_input_ids (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının `input_ids` girdisinden son işleme tabi tutulmuş girdi kimlikleri. Model bir `retriever` ile başlatılmadıysa, ileri yönlü geçişe ``context_input_ids`` sağlanmalıdır. `context_input_ids`, `__call__()` tarafından döndürülür.

context_attention_mask (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`,*isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının `input_ids`'inden işlenmiş dikkat maskesi. Model bir `retriever` ile başlatılmadıysa, ileri yönlü geçişe `context_attention_mask` sağlanmalıdır. `context_attention_mask`, `__call__()` tarafından döndürülü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_attentions (`bool`, *isteğe bağlı*) : Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmediğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `attentions` bölümüne bakın.

output_hidden_states (`bool`, *isteğe bağlı*) : Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `hidden_states` bölümüne bakın.

output_retrieved (`bool`, *isteğe bağlı*) : `retrieved_doc_embeds`, `retrieved_doc_ids`, `context_input_ids` ve `context_attention_mask` değerlerinin döndürülüp döndürülmemesini belirtir. Daha fazla ayrıntı için döndürülen tensörlere bakın.

n_docs (`int`, *isteğe bağlı*) : Geri getirilecek belge sayısı.

**Dönüş:** [RetrievAugLMOutput](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.models.rag.modeling_rag.RetrievAugLMOutput) veya `tuple(torch.Tensor)`

[RetrievAugLMOutput](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.models.rag.modeling_rag.RetrievAugLMOutput) veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırmaya ([RagConfig](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[RagModel](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagModel) 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.

- **logits** (`torch.Tensor`, şekli `(batch_size, sequence_length, config.vocab_size)`) -- Dil modelleme başlığının tahmin puanları. Her sözlük jetonu için puan, tüm belgeler üzerinde marjinalleştirilmiş olabilir.
- **doc_scores** (`torch.Tensor`, şekli `(batch_size, config.n_docs)`) -- Her alınan belge gömme vektörü (bkz. `retrieved_doc_embeds`) ile `question_encoder_last_hidden_state` arasındaki puan.
- **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](/docs/transformers/v5.23.0/tr/internal/generation_utils#transformers.Cache) örneğidir. Daha fazla ayrıntı için [kv cache kılavuzumuza](https://huggingface.co/docs/transformers/en/kv_cache) bakın.

  Dizisel çözümlendirmeyi hızlandırmak için kullanılabilen (bkz. `past_key_values` girdisi) çözücüde önceden hesaplanmış gizli durumları (dikkat bloklarındaki anahtar ve değerler) içerir.
- **retrieved_doc_embeds** (`torch.Tensor`, şekli `(batch_size, config.n_docs, hidden_size)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) -- Geri getirenin (retriever) getirdiği gömülü belgeler. `doc_scores` değerini hesaplamak için `question_encoder_last_hidden_state` ile birlikte kullanılır.
- **retrieved_doc_ids** (`torch.LongTensor`, şekli `(batch_size, config.n_docs)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) -- Geri getirenin (retriever) getirdiği gömülü belgelerin indeksleri.
- **context_input_ids** (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) -- Geri getiren tarafından, geri getirilen belgelerden ve soru kodlayıcısının input_ids'lerinden son işlemden geçirilmiş girdi kimlikleri.
- **context_attention_mask** (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) -- Geri getiren tarafından, geri getirilen belgelerden ve soru kodlayıcısının `input_ids` değerlerinden işlenmiş dikkat maskesi.
- **question_encoder_last_hidden_state** (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) -- Modelin soru kodlayıcısının son katmanından çıkan gizli durumlar dizisi.
- **question_enc_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Soru kodlayıcısının her katman çıkışındaki gizli durumlar ve başlangıç gömme çıktıları.
- **question_enc_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 soru kodlayıcısının dikkat ağırlıkları.
- **generator_enc_last_hidden_state** (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) -- Modelin üreteci kodlayıcısının son katmanının çıktısındaki gizli durumlar dizisi.
- **generator_enc_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Üretici kodlayıcısının her katmanının çıktısında gizli durumlar ve başlangıç gömme çıktıları.
- **generator_enc_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 üreteç kodlayıcısının (generator encoder) dikkat ağırlıkları.
- **generator_dec_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Üretici çözücüsünün her katmanının çıktısındaki gizli durumlar ve başlangıç gömme çıktıları.
- **generator_dec_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 üretici çözücü (generator decoder) dikkat ağırlıkları.
- **generator_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) -- `torch.Tensor` (katman başına bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'inden sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılan üreteç çözücüsünün çapraz dikkat ağırlıkları.

Örnek:

```python
>>> from transformers import AutoTokenizer, RagRetriever, RagModel
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/rag-token-base")
>>> retriever = RagRetriever.from_pretrained(
...     "facebook/rag-token-base", index_name="exact", use_dummy_dataset=True
... )
>>> # initialize with RagRetriever to do everything in one forward call
>>> model = RagModel.from_pretrained("facebook/rag-token-base", retriever=retriever)

>>> inputs = tokenizer("How many people live in Paris?", return_tensors="pt")
>>> outputs = model(input_ids=inputs["input_ids"])
```

## RagSequenceForGeneration[[transformers.RagSequenceForGeneration]]

#### transformers.RagSequenceForGeneration[[transformers.RagSequenceForGeneration]]

```python
transformers.RagSequenceForGeneration(config: transformers.configuration_utils.PreTrainedConfig | None = None, question_encoder: transformers.modeling_utils.PreTrainedModel | None = None, generator: transformers.modeling_utils.PreTrainedModel | None = None, retriever: transformers.models.rag.retrieval_rag.RagRetriever | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/modeling_rag.py#L663)

**Parametreler:**

config ([PreTrainedConfig](/docs/transformers/v5.23.0/tr/main_classes/configuration#transformers.PreTrainedConfig), *opsiyonel*) : 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/v5.23.0/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

question_encoder (`PreTrainedModel`, *isteğe bağlı*) : Soruyu, geri getirme için gizli durumlara kodlamaktan sorumlu model.

generator (`PreTrainedModel`, *isteğe bağlı*) : Alınan belgelere dayalı olarak metin üretmekten sorumlu model.

retriever (`RagRetriever`, *isteğe bağlı*) : Kodlanmış soru verildiğinde bilgi tabanından belgeleri getirmekten sorumlu bileşen.

Bir RAG-sequence model uygulaması. Forward geçişinde RAG-sequence'a özgü marjinalizasyon işlemini gerçekleştirir.

Bu model [PreTrainedModel](/docs/transformers/v5.23.0/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.RagSequenceForGeneration.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.BoolTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, context_input_ids: typing.Optional[torch.LongTensor] = None, context_attention_mask: typing.Optional[torch.LongTensor] = None, doc_scores: typing.Optional[torch.Tensor] = None, use_cache: bool | None = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, output_retrieved: bool | None = None, exclude_bos_score: bool | None = None, reduce_loss: bool | None = None, labels: typing.Optional[torch.LongTensor] = None, n_docs: int | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/modeling_rag.py#L702)

**Parametreler:**

input_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`) : Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Modeli başlatmak için kullanılan [RagConfig](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagConfig), hangi üretecin (generator) kullanılacağını belirtir ve uyumlu bir üreteç belirteç ayrıştırıcısını (tokenizer) de tanımlar. İndeksleri elde etmek için o belirteç ayrıştırıcısı sınıfını kullanın.  [Girdi kimlikları (input IDs) nelerdir?](../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)

encoder_outputs (`tuple(tuple(torch.Tensor)`, *optional*) : Tuple, (`generator_enc_last_hidden_state`, *optional*: `generator_enc_hidden_states`, *optional*: `generator_enc_attentions`) bileşenlerinden oluşur. `generator_enc_last_hidden_state`, `(batch_size, n_docs * sequence_length, hidden_size)` boyutunda olup, üretecin (generator) kodlayıcısının (encoder) son katmanının çıktısındaki gizli durumlar (hidden-states) dizisidir. ([RagModel](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagModel)) modeli tarafından çözümleme (decoding) sırasında kullanılır.

decoder_input_ids (`torch.LongTensor`, şekli `(batch_size, target_sequence_length)`, *isteğe bağlı*) : Üretim görevleri için sağlanır. Varsayılan olarak `None`'dır; RAG örneğinizle kullandığınız üretici modelin talimatlarına göre oluşturulmalıdır.

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/v5.23.0/tr/model_doc/auto#transformers.AutoTokenizer) kullanılarak elde edilebilir. Ayrıntılar için [PreTrainedTokenizer.encode()](/docs/transformers/v5.23.0/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) ve [PreTrainedTokenizer.__call__()](/docs/transformers/v5.23.0/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__)'a bakın. [Decoder giriş kimlikleri nelerdir?](../glossary#decoder-input-ids)

decoder_attention_mask (`torch.BoolTensor`, şekli `(batch_size,  target_sequence_length)`, *isteğe bağlı*) : Varsayılan davranış: `decoder_input_ids` içindeki dolgu (pad) jetonlarını yok sayan bir tensör oluşturur. Varsayılan olarak nedensel maske (causal mask) de 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/v5.23.0/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/v5.23.0/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.

context_input_ids (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının `input_ids` girdisinden son işleme tabi tutulmuş girdi kimlikleri. Model bir `retriever` ile başlatılmadıysa, ileri yönlü geçişe ``context_input_ids`` sağlanmalıdır. `context_input_ids`, `__call__()` tarafından döndürülür.

context_attention_mask (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`,*isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının `input_ids`'inden işlenmiş dikkat maskesi. Model bir `retriever` ile başlatılmadıysa, ileri yönlü geçişe `context_attention_mask` sağlanmalıdır. `context_attention_mask`, `__call__()` tarafından döndürülür.

doc_scores (`torch.Tensor`, şekli `(batch_size, config.n_docs)`) : Her alınan belge gömme değerleri (bkz. `retrieved_doc_embeds`) ile `question_encoder_last_hidden_state` arasındaki puan. Model bir `retriever` ile başlatılmadıysa, ileri yönlü geçişe `doc_scores` sağlanmalıdır. `doc_scores`, `question_encoder_last_hidden_state` ve `retrieved_doc_embeds` kullanılarak hesaplanabilir; daha fazla bilgi için örnekleri inceleyin.

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_attentions (`bool`, *isteğe bağlı*) : Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmediğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `attentions` bölümüne bakın.

output_hidden_states (`bool`, *isteğe bağlı*) : Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `hidden_states` bölümüne bakın.

output_retrieved (`bool`, *isteğe bağlı*) : `retrieved_doc_embeds`, `retrieved_doc_ids`, `context_input_ids` ve `context_attention_mask` değerlerinin döndürülüp döndürülmemesini belirtir. Daha fazla ayrıntı için döndürülen tensörlere bakın.

exclude_bos_score (`bool`, *isteğe bağlı*) : Yalnızca `labels` geçirildiyse geçerlidir. `True` ise, kayıp hesaplanırken BOS token'ının puanı göz ardı edilir.

reduce_loss (`bool`, *isteğe bağlı*) : Yalnızca `labels` geçirildiyse geçerlidir. `True` ise, NLL kaybı `torch.Tensor.sum` işlemi kullanılarak indirgenir.

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.

n_docs (`int`, *isteğe bağlı*) : Geri getirilecek belge sayısı.

**Dönüş:** [RetrievAugLMMarginOutput](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput) veya `tuple(torch.Tensor)`

[RetrievAugLMMarginOutput](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput) veya `torch.Tensor` bir demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırmaya ([RagConfig](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[RagSequenceForGeneration](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagSequenceForGeneration) 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ı. Her sözlük jetonu için puan, tüm belgeler üzerinde marjinalleştirilmiş olabilir.
- **doc_scores** (`torch.Tensor`, şekli `(batch_size, config.n_docs)`) -- Her alınan belge gömme vektörü (bkz. `retrieved_doc_embeds`) ile `question_encoder_last_hidden_state` arasındaki puan.
- **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](/docs/transformers/v5.23.0/tr/internal/generation_utils#transformers.Cache) örneğidir. Daha fazla ayrıntı için [kv cache kılavuzumuza](https://huggingface.co/docs/transformers/en/kv_cache) bakın.

  Dizisel çözümlendirmeyi hızlandırmak için kullanılabilen (bkz. `past_key_values` girdisi) çözücüde önceden hesaplanmış gizli durumları (dikkat bloklarındaki anahtar ve değerler) içerir.
- **retrieved_doc_embeds** (`torch.Tensor`, şekli `(batch_size, config.n_docs, hidden_size)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) -- Geri getirenin (retriever) getirdiği gömülü belgeler. `doc_scores` değerini hesaplamak için `question_encoder_last_hidden_state` ile birlikte kullanılır.
- **retrieved_doc_ids** (`torch.LongTensor`, şekli `(batch_size, config.n_docs)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) -- Geri getirenin (retriever) getirdiği gömülü belgelerin indeksleri.
- **context_input_ids** (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) -- Geri getiren tarafından, geri getirilen belgelerden ve soru kodlayıcısının input_ids'lerinden son işlemden geçirilmiş girdi kimlikleri.
- **context_attention_mask** (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) -- Geri getiren tarafından, geri getirilen belgelerden ve soru kodlayıcısının `input_ids` değerlerinden işlenmiş dikkat maskesi.
- **question_encoder_last_hidden_state** (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) -- Modelin soru kodlayıcısının son katmanından çıkan gizli durumlar dizisi.
- **question_enc_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Soru kodlayıcısının her katman çıkışındaki gizli durumlar ve başlangıç gömme çıktıları.
- **question_enc_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 soru kodlayıcısının dikkat ağırlıkları.
- **generator_enc_last_hidden_state** (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) -- Modelin üreteci kodlayıcısının son katmanının çıktısındaki gizli durumlar dizisi.
- **generator_enc_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Üretici kodlayıcısının her katmanının çıktısında gizli durumlar ve başlangıç gömme çıktıları.
- **generator_enc_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 üreteç kodlayıcısının (generator encoder) dikkat ağırlıkları.
- **generator_dec_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Üretici çözücüsünün her katmanının çıktısındaki gizli durumlar ve başlangıç gömme çıktıları.
- **generator_dec_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 üretici çözücü (generator decoder) dikkat ağırlıkları.
- **generator_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) -- `torch.Tensor` (katman başına bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'inden sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılan üreteç çözücüsünün çapraz dikkat ağırlıkları.

Örnek:

```python
>>> from transformers import AutoTokenizer, RagRetriever, RagSequenceForGeneration
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/rag-sequence-nq")
>>> retriever = RagRetriever.from_pretrained(
...     "facebook/rag-sequence-nq", index_name="exact", use_dummy_dataset=True
... )
>>> # initialize with RagRetriever to do everything in one forward call
>>> model = RagSequenceForGeneration.from_pretrained("facebook/rag-token-nq", retriever=retriever)

>>> inputs = tokenizer("How many people live in Paris?", return_tensors="pt")
>>> targets = tokenizer(text_target="In Paris, there are 10 million people.", return_tensors="pt")
>>> input_ids = inputs["input_ids"]
>>> labels = targets["input_ids"]
>>> outputs = model(input_ids=input_ids, labels=labels)

>>> # or use retriever separately
>>> model = RagSequenceForGeneration.from_pretrained("facebook/rag-sequence-nq", use_dummy_dataset=True)
>>> # 1. Encode
>>> question_hidden_states = model.question_encoder(input_ids)[0]
>>> # 2. Retrieve
>>> docs_dict = retriever(input_ids.numpy(), question_hidden_states.detach().numpy(), return_tensors="pt")
>>> doc_scores = torch.bmm(
...     question_hidden_states.unsqueeze(1), docs_dict["retrieved_doc_embeds"].float().transpose(1, 2)
... ).squeeze(1)
>>> # 3. Forward to generator
>>> outputs = model(
...     context_input_ids=docs_dict["context_input_ids"],
...     context_attention_mask=docs_dict["context_attention_mask"],
...     doc_scores=doc_scores,
...     decoder_input_ids=labels,
... )
```

#### generate[[transformers.RagSequenceForGeneration.generate]]

```python
generate(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.LongTensor] = None, context_input_ids: typing.Optional[torch.LongTensor] = None, context_attention_mask: typing.Optional[torch.LongTensor] = None, doc_scores: typing.Optional[torch.Tensor] = None, do_deduplication: bool | None = None, num_return_sequences: int | None = None, num_beams: int | None = None, n_docs: int | None = None, **model_kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/modeling_rag.py#L875)

**Parametreler:**

input_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Üretim için istem (prompt) olarak kullanılan dizi. `input_ids` geçirilmezse, `context_input_ids` sağlanmalıdır.

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)

context_input_ids (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *opsiyonel*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının input_ids'lerinden son işlemden geçirilmiş girdi kimlikleri.

context_attention_mask (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının `input_ids`'inden işlenmiş dikkat maskesi. Model bir `retriever` ile başlatılmadıysa veya `input_ids` verilmediyse, `context_input_ids` ve `context_attention_mask`'in ileri yönlü geçişe sağlanması gerekir. Bunlar `__call__()` tarafından döndürülür.

doc_scores (`torch.Tensor`, şekli `(batch_size, config.n_docs)`) : Her alınan belge gömme değerleri (bkz. `retrieved_doc_embeds`) ile `question_encoder_last_hidden_state` arasındaki puan. Model bir `retriever` ile başlatılmadıysa veya `input_ids` verilmediyse, `doc_scores`'ın ileri yönlü geçişe sağlanması gerekir. `doc_scores`, `__call__()` tarafından döndürülür.

do_deduplication (`bool`, *isteğe bağlı*) : Belirli bir girdi için farklı bağlam belgelerinden gelen üretimi eşsizleştirecek mi? Dağıtık arka uç ile eğitim sırasında kullanılıyorsa `False` olarak ayarlanmalıdır.

num_return_sequences(`int`, *isteğe bağlı*, varsayılan 1) : Her bir batch öğesi için bağımsız olarak hesaplanan ve döndürülen dizilerin sayısı. Bunun, `generator`'ın `[generate()](/docs/transformers/v5.23.0/tr/main_classes/text_generation#transformers.GenerationMixin.generate)` fonksiyonuna geçirdiğimiz değer olmadığını unutmayın; burada `num_return_sequences` değerini `num_beams` olarak ayarlıyoruz.

num_beams (`int`, *isteğe bağlı*, varsayılan 1) : Beam search için beam sayısı. 1, beam search kullanılmadığı anlamına gelir.

n_docs (`int`, *isteğe bağlı*, varsayılan `config.n_docs`) : Alınacak belge sayısı ve/veya cevap üretilecek belge sayısı.

kwargs (`dict[str, Any]`, *isteğe bağlı*) : Ek kwargs, [generate()](/docs/transformers/v5.23.0/tr/main_classes/text_generation#transformers.GenerationMixin.generate) fonksiyonuna aktarılır.

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

Oluşturulan diziler. İkinci boyut (dizi uzunluğu), `max_length`'a eşittir veya tüm topluluklar `eos_token_id` nedeniyle erken bittiyse daha kısadır.

RAG dizisi "thorough" çözümlemesini uygular. Diğer generate girdi parametrelerinin nasıl ayarlanacağına dair daha fazla bilgi için [generate()](/docs/transformers/v5.23.0/tr/main_classes/text_generation#transformers.GenerationMixin.generate)` belgelendirmesini okuyun.

## RagTokenForGeneration[[transformers.RagTokenForGeneration]]

#### transformers.RagTokenForGeneration[[transformers.RagTokenForGeneration]]

```python
transformers.RagTokenForGeneration(config: transformers.configuration_utils.PreTrainedConfig | None = None, question_encoder: transformers.modeling_utils.PreTrainedModel | None = None, generator: transformers.modeling_utils.PreTrainedModel | None = None, retriever: transformers.models.rag.retrieval_rag.RagRetriever | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/modeling_rag.py#L1102)

**Parametreler:**

config ([PreTrainedConfig](/docs/transformers/v5.23.0/tr/main_classes/configuration#transformers.PreTrainedConfig), *opsiyonel*) : 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/v5.23.0/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

question_encoder (`PreTrainedModel`, *isteğe bağlı*) : Soruyu, geri getirme için gizli durumlara kodlamaktan sorumlu model.

generator (`PreTrainedModel`, *isteğe bağlı*) : Alınan belgelere dayalı olarak metin üretmekten sorumlu model.

retriever (`RagRetriever`, *isteğe bağlı*) : Kodlanmış soru verildiğinde bilgi tabanından belgeleri getirmekten sorumlu bileşen.

Bir RAG-token model uygulaması. İleri geçişte RAG-token'a özgü marjinalizasyon işlemini gerçekleştirir.

Bu model [PreTrainedModel](/docs/transformers/v5.23.0/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.RagTokenForGeneration.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.BoolTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, context_input_ids: typing.Optional[torch.LongTensor] = None, context_attention_mask: typing.Optional[torch.LongTensor] = None, doc_scores: typing.Optional[torch.Tensor] = None, use_cache: bool | None = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, output_retrieved: bool | None = None, do_marginalize: bool | None = None, reduce_loss: bool | None = None, labels: typing.Optional[torch.LongTensor] = None, n_docs: int | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/modeling_rag.py#L1227)

**Parametreler:**

input_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`) : Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Modeli başlatmak için kullanılan [RagConfig](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagConfig), hangi üretecin (generator) kullanılacağını belirtir ve uyumlu bir üreteç belirteç ayrıştırıcısını (tokenizer) de tanımlar. İndeksleri elde etmek için o belirteç ayrıştırıcısı sınıfını kullanın.  [Girdi kimlikları (input IDs) nelerdir?](../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)

encoder_outputs (`tuple(tuple(torch.Tensor)`, *optional*) : Tuple, (`generator_enc_last_hidden_state`, *optional*: `generator_enc_hidden_states`, *optional*: `generator_enc_attentions`) bileşenlerinden oluşur. `generator_enc_last_hidden_state`, `(batch_size, n_docs * sequence_length, hidden_size)` boyutunda olup, üretecin (generator) kodlayıcısının (encoder) son katmanının çıktısındaki gizli durumlar (hidden-states) dizisidir. ([RagModel](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagModel)) modeli tarafından çözümleme (decoding) sırasında kullanılır.

decoder_input_ids (`torch.LongTensor`, şekli `(batch_size, target_sequence_length)`, *isteğe bağlı*) : Üretim görevleri için sağlanır. Varsayılan olarak `None`'dır; RAG örneğinizle kullandığınız üretici modelin talimatlarına göre oluşturulmalıdır.

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/v5.23.0/tr/model_doc/auto#transformers.AutoTokenizer) kullanılarak elde edilebilir. Ayrıntılar için [PreTrainedTokenizer.encode()](/docs/transformers/v5.23.0/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) ve [PreTrainedTokenizer.__call__()](/docs/transformers/v5.23.0/tr/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__)'a bakın. [Decoder giriş kimlikleri nelerdir?](../glossary#decoder-input-ids)

decoder_attention_mask (`torch.BoolTensor`, şekli `(batch_size,  target_sequence_length)`, *isteğe bağlı*) : Varsayılan davranış: `decoder_input_ids` içindeki dolgu (pad) jetonlarını yok sayan bir tensör oluşturur. Varsayılan olarak nedensel maske (causal mask) de 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/v5.23.0/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/v5.23.0/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.

context_input_ids (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının `input_ids` girdisinden son işleme tabi tutulmuş girdi kimlikleri. Model bir `retriever` ile başlatılmadıysa, ileri yönlü geçişe ``context_input_ids`` sağlanmalıdır. `context_input_ids`, `__call__()` tarafından döndürülür.

context_attention_mask (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`,*isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının `input_ids`'inden işlenmiş dikkat maskesi. Model bir `retriever` ile başlatılmadıysa, ileri yönlü geçişe `context_attention_mask` sağlanmalıdır. `context_attention_mask`, `__call__()` tarafından döndürülür.

doc_scores (`torch.Tensor`, şekli `(batch_size, config.n_docs)`) : Her alınan belge gömme değerleri (bkz. `retrieved_doc_embeds`) ile `question_encoder_last_hidden_state` arasındaki puan. Model bir `retriever` ile başlatılmadıysa, ileri yönlü geçişe `doc_scores` sağlanmalıdır. `doc_scores`, `question_encoder_last_hidden_state` ve `retrieved_doc_embeds` kullanılarak hesaplanabilir; daha fazla bilgi için örnekleri inceleyin.

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_attentions (`bool`, *isteğe bağlı*) : Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmediğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `attentions` bölümüne bakın.

output_hidden_states (`bool`, *isteğe bağlı*) : Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındaki `hidden_states` bölümüne bakın.

output_retrieved (`bool`, *isteğe bağlı*) : `retrieved_doc_embeds`, `retrieved_doc_ids`, `context_input_ids` ve `context_attention_mask` değerlerinin döndürülüp döndürülmemesini belirtir. Daha fazla ayrıntı için döndürülen tensörlere bakın.

do_marginalize (`bool`, *isteğe bağlı*) : `True` ise, `torch.nn.functional.log_softmax` kullanılarak logitler tüm belgeler üzerinde marjinalleştirilir.

reduce_loss (`bool`, *isteğe bağlı*) : Yalnızca `labels` geçirildiyse geçerlidir. `True` ise, NLL kaybı `torch.Tensor.sum` işlemi kullanılarak indirgenir.

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.

n_docs (`int`, *isteğe bağlı*) : Geri getirilecek belge sayısı.

**Dönüş:** [RetrievAugLMMarginOutput](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput) veya `tuple(torch.Tensor)`

[RetrievAugLMMarginOutput](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.models.rag.modeling_rag.RetrievAugLMMarginOutput) veya `torch.Tensor` bir demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırmaya ([RagConfig](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[RagTokenForGeneration](/docs/transformers/v5.23.0/tr/model_doc/rag#transformers.RagTokenForGeneration) 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ı. Her sözlük jetonu için puan, tüm belgeler üzerinde marjinalleştirilmiş olabilir.
- **doc_scores** (`torch.Tensor`, şekli `(batch_size, config.n_docs)`) -- Her alınan belge gömme vektörü (bkz. `retrieved_doc_embeds`) ile `question_encoder_last_hidden_state` arasındaki puan.
- **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](/docs/transformers/v5.23.0/tr/internal/generation_utils#transformers.Cache) örneğidir. Daha fazla ayrıntı için [kv cache kılavuzumuza](https://huggingface.co/docs/transformers/en/kv_cache) bakın.

  Dizisel çözümlendirmeyi hızlandırmak için kullanılabilen (bkz. `past_key_values` girdisi) çözücüde önceden hesaplanmış gizli durumları (dikkat bloklarındaki anahtar ve değerler) içerir.
- **retrieved_doc_embeds** (`torch.Tensor`, şekli `(batch_size, config.n_docs, hidden_size)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) -- Geri getirenin (retriever) getirdiği gömülü belgeler. `doc_scores` değerini hesaplamak için `question_encoder_last_hidden_state` ile birlikte kullanılır.
- **retrieved_doc_ids** (`torch.LongTensor`, şekli `(batch_size, config.n_docs)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) -- Geri getirenin (retriever) getirdiği gömülü belgelerin indeksleri.
- **context_input_ids** (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) -- Geri getiren tarafından, geri getirilen belgelerden ve soru kodlayıcısının input_ids'lerinden son işlemden geçirilmiş girdi kimlikleri.
- **context_attention_mask** (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) -- Geri getiren tarafından, geri getirilen belgelerden ve soru kodlayıcısının `input_ids` değerlerinden işlenmiş dikkat maskesi.
- **question_encoder_last_hidden_state** (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) -- Modelin soru kodlayıcısının son katmanından çıkan gizli durumlar dizisi.
- **question_enc_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Soru kodlayıcısının her katman çıkışındaki gizli durumlar ve başlangıç gömme çıktıları.
- **question_enc_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 soru kodlayıcısının dikkat ağırlıkları.
- **generator_enc_last_hidden_state** (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) -- Modelin üreteci kodlayıcısının son katmanının çıktısındaki gizli durumlar dizisi.
- **generator_enc_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Üretici kodlayıcısının her katmanının çıktısında gizli durumlar ve başlangıç gömme çıktıları.
- **generator_enc_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 üreteç kodlayıcısının (generator encoder) dikkat ağırlıkları.
- **generator_dec_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` (gömme çıktısı için bir tane ve her katman çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Üretici çözücüsünün her katmanının çıktısındaki gizli durumlar ve başlangıç gömme çıktıları.
- **generator_dec_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 üretici çözücü (generator decoder) dikkat ağırlıkları.
- **generator_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) -- `torch.Tensor` (katman başına bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'inden sonra, çapraz dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılan üreteç çözücüsünün çapraz dikkat ağırlıkları.

Örnek:

```python
>>> from transformers import AutoTokenizer, RagRetriever, RagTokenForGeneration
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/rag-token-nq")
>>> retriever = RagRetriever.from_pretrained(
...     "facebook/rag-token-nq", index_name="exact", use_dummy_dataset=True
... )
>>> # initialize with RagRetriever to do everything in one forward call
>>> model = RagTokenForGeneration.from_pretrained("facebook/rag-token-nq", retriever=retriever)

>>> inputs = tokenizer("How many people live in Paris?", return_tensors="pt")
>>> targets = tokenizer(text_target="In Paris, there are 10 million people.", return_tensors="pt")
>>> input_ids = inputs["input_ids"]
>>> labels = targets["input_ids"]
>>> outputs = model(input_ids=input_ids, labels=labels)

>>> # or use retriever separately
>>> model = RagTokenForGeneration.from_pretrained("facebook/rag-token-nq", use_dummy_dataset=True)
>>> # 1. Encode
>>> question_hidden_states = model.question_encoder(input_ids)[0]
>>> # 2. Retrieve
>>> docs_dict = retriever(input_ids.numpy(), question_hidden_states.detach().numpy(), return_tensors="pt")
>>> doc_scores = torch.bmm(
...     question_hidden_states.unsqueeze(1), docs_dict["retrieved_doc_embeds"].float().transpose(1, 2)
... ).squeeze(1)
>>> # 3. Forward to generator
>>> outputs = model(
...     context_input_ids=docs_dict["context_input_ids"],
...     context_attention_mask=docs_dict["context_attention_mask"],
...     doc_scores=doc_scores,
...     decoder_input_ids=labels,
... )

>>> # or directly generate
>>> generated = model.generate(
...     context_input_ids=docs_dict["context_input_ids"],
...     context_attention_mask=docs_dict["context_attention_mask"],
...     doc_scores=doc_scores,
... )
>>> generated_string = tokenizer.batch_decode(generated, skip_special_tokens=True)
```

#### generate[[transformers.RagTokenForGeneration.generate]]

```python
generate(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.LongTensor] = None, context_input_ids: typing.Optional[torch.LongTensor] = None, context_attention_mask: typing.Optional[torch.LongTensor] = None, doc_scores: typing.Optional[torch.Tensor] = None, n_docs: int | None = None, generation_config: transformers.generation.configuration_utils.GenerationConfig | None = None, prefix_allowed_tokens_fn: collections.abc.Callable[[int, torch.Tensor], list[int]] | None = None, logits_processor: transformers.generation.logits_process.LogitsProcessorList | None = [], stopping_criteria: transformers.generation.stopping_criteria.StoppingCriteriaList | None = [], **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/rag/modeling_rag.py#L1400)

**Parametreler:**

input_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Üretim için istem (prompt) olarak kullanılan dizi. `input_ids` geçirilmezse, `context_input_ids` sağlanmalıdır.

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)

context_input_ids (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının `input_ids`'inden işlenmiş girdi kimlikleri. Model bir `retriever` ile başlatılmadıysa, `context_input_ids`'in ileri yönlü geçişe sağlanması gerekir. `context_input_ids`, `__call__()` tarafından döndürülür.

context_attention_mask (`torch.LongTensor`, şekli `(batch_size * config.n_docs, config.max_combined_length)`, *isteğe bağlı*, *output_retrieved=True* olduğunda döndürülür) : Retriever tarafından, alınan belgelerden ve soru kodlayıcısının `input_ids`'inden işlenmiş dikkat maskesi. Model bir `retriever` ile başlatılmadıysa, ileri yönlü geçişe `context_input_ids` sağlanmalıdır. `context_input_ids`, `__call__()` tarafından döndürülür.

doc_scores (`torch.Tensor`, şekli `(batch_size, config.n_docs)`) : Her alınan belge gömme değerleri (bkz. `retrieved_doc_embeds`) ile `question_encoder_last_hidden_state` arasındaki puan. Model bir `retriever` ile başlatılmadıysa, ileri yönlü geçişe `context_input_ids` sağlanmalıdır. `context_input_ids`, `__call__()` tarafından döndürülür.

n_docs (`int`, *isteğe bağlı*, varsayılan `config.n_docs`) : Alınacak belge sayısı ve/veya cevap üretilecek belge sayısı.

generation_config (`~generation.GenerationConfig`, *isteğe bağlı*) : Üretim çağrısı için temel parametrelendirme olarak kullanılacak üretim yapılandırması. `generation_config` öznitelikleriyle eşleşen ve generate'e aktarılan `**kwargs` bunları geçersiz kılar. `generation_config` sağlanmazsa, varsayılan kullanılır; bunun yükleme önceliği şöyledir: 1) varsa `generation_config.json` model dosyasından; 2) model yapılandırmasından. Belirtilmeyen parametrelerin [GenerationConfig](/docs/transformers/v5.23.0/tr/main_classes/text_generation#transformers.GenerationConfig)'in varsayılan değerlerini devralacağını ve üretim parametrelendirmek için bu değerlerin belgelerinin kontrol edilmesi gerektiğini lütfen unutmayın.

prefix_allowed_tokens_fn (`Callable[[int, torch.Tensor], list[int]]`, *isteğe bağlı*) : Sağlanırsa, bu fonksiyon her adımda beam search'i yalnızca izin verilen token'lara kısıtlar. Sağlanmazsa hiçbir kısıtlama uygulanmaz. Bu fonksiyon `inputs_ids` ve batch kimliği `batch_id` olmak üzere 2 argüman alır. Önceki adımlarda üretilen token'lara `inputs_ids` ve batch kimliğine `batch_id` bağlı olarak bir sonraki üretim adımı için izin verilen token'ların listesini döndürmelidir. Bu argüman, [Autoregressive Entity Retrieval](https://huggingface.co/papers/2010.00904) başlıklı bölümde anlatıldığı gibi, önekle (prefix) koşullu kısıtlı üretim için faydalıdır.

logits_processor (`LogitsProcessorList`, *isteğe bağlı*) : Argümanlardan ve bir modelin yapılandırmasından oluşturulan varsayılan logits işleyicilerini tamamlayan özel logits işleyicileri. Argümanlarla veya bir modelin yapılandırmasıyla zaten oluşturulmuş bir logits işleyicisi geçirilirse bir hata fırlatılır.

stopping_criteria (`StoppingCriteriaList`, *isteğe bağlı*) : Argümanlardan ve bir modelin yapılandırmasından oluşturulan varsayılan durdurma kriterlerini tamamlayan özel durdurma kriterleri. Argümanlardan veya bir modelin yapılandırmasından zaten oluşturulmuş bir durdurma kriteri geçirilirse bir hata fırlatılır.

kwargs (`dict[str, Any]`, *isteğe bağlı*) : `generate_config` için ad hoc parametrelendirme ve/veya modelin `forward` fonksiyonuna iletilecek ek model-özel kwargs.

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

Oluşturulan diziler. İkinci boyut (sequence_length), `max_length`'a eşittir veya tüm topluluklar `eos_token_id` nedeniyle erken bittiyse daha kısadır.

RAG token çözümlemesini uygular.

