# Gemma4 Birleşik

## Genel Bakış

Gemma 4 12B Unified, ön eğitilmiş ve talimatla ayarlanmış varyantlara sahip, **encoder'suz** bir çok modlu modeldir. [standart Gemma 4](./gemma4)'ün aksine, ayrı encoder kuleleri kullanan bu model, ham girdileri dil modelinin gömme (embedding) uzayına doğrudan, hafif doğrusal iş akışları aracılığıyla yansıtır. Bu durum, güçlü çok modlu performansı korurken daha basit bir mimariye yol açar.

Standart Gemma 4'ten temel farklar:
- **Görme Kulesi Yok**: Ham piksel yamaları, faktörize 2D konumsal gömmelemeler içeren bir `Dense + LayerNorm` hattı aracılığıyla doğrudan LM uzayına yansıtılır ve bu sayede görme kodlayıcısının yerini alır.
- **Ses Kulesi Yok**: Ham 16 kHz dalga formu örnekleri, sabit uzunlukta çerçevelere bölünür ve mel spektrogram + Conformer kodlayıcısının yerini alan basit bir `RMSNorm → Linear` hattından geçirilir.
- **Paylaşılan Çok Modlu Boru Hattı**: Hem görüntü hem de ses, metin gizli uzayına son projeksiyon için aynı `Gemma4UnifiedMultimodalEmbedder`'i (RMSNorm → Linear) kullanır.

Orijinal Gemma 4 12B Unified checkpoint'lerini [Gemma 4](https://huggingface.co/collections/google/gemma-4) sürümünde bulabilirsiniz.

### Kodlayıcısız Görüntü İşleme Hattı

Standart Gemma 4'ten temel mimari fark, görme kodlayıcı kulesinin kaldırılmasıdır. Bunun yerine, Gemma 4 12B Unified, görüntüleri hafif bir boru hattı üzerinden işler:

1. **Patchification**: Görseller `16×16` piksellik yamalar halinde bölünür
2. **Patch Birleştirme**: Bitişik `3×3` yamalar, her biri `48² × 3 = 6,912` ham piksel kanalına sahip `48×48` model yamaları olarak birleştirilir
3. **Yansıtma**: `LayerNorm → Dense → LayerNorm`, birleştirilen her yamayı LM gömme boyutuna yansıtır
4. **Konumsal Gömme**: Faktörize 2B konumsal gömmeler eklenir (x ve y eksenleri için ayrı öğrenilen gömmeler, birlikte toplanır)
5. **Son Norm**: Son olarak `LayerNorm` uygulanır
6. **Çok Modlu Gömme Üretici**: `RMSNorm → Linear` metin gizli boyutuna yansıtır

Standart Gemma 4 gibi, model **farklı boyutlardaki görüntüleri** **sabit bütçeli bir token sayısı** kullanarak işler. Aynı kısıtlamalar geçerlidir:
- Toplam piksel sayısı, bir yama bütçesi içinde sığmalıdır
- Yükseklik ve genişlik her ikisi de **48**'e (= yama boyutu 16 × havuzlama çekirdeği 3) tam bölünmelidir

> [!IMPORTANT]
> Gemma 4 12B Unified, ortalama/standart sapma normalizasyonu **uygulamaz**. Modelin kendi yama gömme katmanı, son ölçeklendirmeyi dahili olarak ele alır.

Görsel başına yumuşak token sayısı yapılandırılabilir. Desteklenen seçenekler ve varsayılan değer (**280 yumuşak token**) şunlardır:

| Yumuşak Jetonlar | Yamalar (havuzlamadan önce) | Yaklaşık Görüntü Alanı |
|:-----------:|:------------------------:|:-------------------:|
| 70          | 630                      | ~161K piksel        |
| 140         | 1,260                    | ~323K piksel        |
| **280**     | **2,520**                | **~645K piksel**    |
| 560         | 5,040                    | ~1,3M piksel        |
| 1,120       | 10,080                   | ~2,6 M piksel        |

### Kodlayıcısız Ses Hattı

Ses hattı da benzer şekilde basitleştirilmiştir. Mel spektrogramları hesaplayıp bunları bir Conformer kodlayıcıdan geçirmek yerine, ham 16 kHz dalga formu örnekleri:

1. Her biri 640 örnekten oluşan (16 kHz'de çerçe başına 40 ms) sabit uzunluklu çerçevelere **parçalara ayrılır**
2. **Tahmini** olarak, paylaşılan `Gemma4UnifiedMultimodalEmbedder` üzerinden doğrudan `RMSNorm → Linear` yoluyla

**Örnekleme azaltma** yapılmadığından, çıktı yumuşak jeton sayısı giriş kare sayısına eşittir: `ceil(num_samples / 640)`.

## Kullanım örnekleri

Aşağıdaki örnek, [Pipeline](/docs/transformers/main/tr/main_classes/pipelines#transformers.Pipeline) veya [AutoModel](/docs/transformers/main/tr/model_doc/auto#transformers.AutoModel) sınıfı kullanılarak bir görüntü ve ses örneğine dayalı metin üretiminin nasıl yapılacağını göstermektedir.

```python
from transformers import pipeline

pipe = pipeline(
    task="any-to-any",
    model="google/gemma-4-12B-it",
)

image_messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
            },
            {
                "type": "text",
                "text": "What is shown in this image?"
            }
        ]
    }
]

image_output = pipe(image_messages, return_full_text=False)
print(image_output[0]["generated_text"])

audio_messages = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Please transcribe the following audio:"},
            {
                "type": "audio",
                "url": "https://huggingface.co/datasets/eustlb/audio-samples/resolve/main/bcn_weather.mp3",
            },
        ],
    }
]

audio_output = pipe(audio_messages, return_full_text=False)
print(audio_output[0]["generated_text"])
```

### Görsel

```python
from transformers import AutoModelForMultimodalLM, AutoProcessor

model = AutoModelForMultimodalLM.from_pretrained(
    "google/gemma-4-12B-it",
    device_map="auto"
)
processor = AutoProcessor.from_pretrained(
    "google/gemma-4-12B-it"
)

messages = [
    {
        "role": "user", "content": [
            {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
            {"type": "text", "text": "What is shown in this image?"},
        ]
    },
]
inputs = processor.apply_chat_template(
    messages,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
    add_generation_prompt=True,
).to(model.device)
input_len = inputs["input_ids"].shape[-1]

output = model.generate(**inputs, max_new_tokens=50, cache_implementation="static")
print(processor.decode(output[0][input_len:], skip_special_tokens=True))
```

### Ses

```python
from transformers import AutoModelForMultimodalLM, AutoProcessor

messages = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Please transcribe the following audio:"},
            {
                "type": "audio",
                "url": "https://huggingface.co/datasets/eustlb/audio-samples/resolve/main/bcn_weather.mp3",
            },
        ],
    }
]

model = AutoModelForMultimodalLM.from_pretrained(
    "google/gemma-4-12B-it",
    device_map="auto"
)
processor = AutoProcessor.from_pretrained(
    "google/gemma-4-12B-it"
)

inputs = processor.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt"
).to(model.device, dtype=model.dtype)

input_len = inputs["input_ids"].shape[-1]

outputs = model.generate(**inputs, max_new_tokens=200)
print(processor.decode(outputs[0][input_len:], skip_special_tokens=False))
```

## Gemma4UnifiedAudioConfig[[transformers.Gemma4UnifiedAudioConfig]]

#### transformers.Gemma4UnifiedAudioConfig[[transformers.Gemma4UnifiedAudioConfig]]

```python
transformers.Gemma4UnifiedAudioConfig(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, is_encoder_decoder: bool = False, 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, audio_embed_dim: int = 640, rms_norm_eps: float = 1e-06, initializer_range: float = 0.02)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/configuration_gemma4_unified.py#L36)

**Parametreler:**

audio_embed_dim (`int`, varsayılan 640) : Çok modlu gömme birimine giden ses özelliklerinin boyutu. Her ses yumuşak jetonu, `audio_samples_per_token` örnekten oluşan ham bir dalga formu çerçevesidir, bu nedenle `audio_embed_dim == audio_samples_per_token`'dir.

rms_norm_eps (`float`, *opsiyonel*, varsayılan `1e-06`) : rms normalizasyon katmanları tarafından kullanılan epsilon.

initializer_range (`float`, *opsiyonel*, varsayılan `0.02`) : Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.

Bu, bir Gemma4UnifiedModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Gemma4 Unified modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneği oluşturmak, [google/gemma-4-12B-it](https://huggingface.co/google/gemma-4-12B-it) modelinin yapılandırmasına benzer bir yapılandırma elde edilmesini sağlar.

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

## Gemma4UnifiedConfig[[transformers.Gemma4UnifiedConfig]]

#### transformers.Gemma4UnifiedConfig[[transformers.Gemma4UnifiedConfig]]

```python
transformers.Gemma4UnifiedConfig(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, is_encoder_decoder: bool = False, 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, text_config: transformers.models.gemma4_unified.configuration_gemma4_unified.Gemma4UnifiedTextConfig | dict[str, typing.Any] | None = None, vision_config: transformers.models.gemma4_unified.configuration_gemma4_unified.Gemma4UnifiedVisionConfig | dict[str, typing.Any] | None = None, audio_config: transformers.models.gemma4_unified.configuration_gemma4_unified.Gemma4UnifiedAudioConfig | dict[str, typing.Any] | None = None, boi_token_id: int | None = 255999, eoi_token_id: int | None = 258882, image_token_id: int | None = 258880, video_token_id: int | None = 258884, boa_token_id: int | None = 256000, eoa_token_index: int | None = 258883, audio_token_id: int | None = 258881, initializer_range: float | None = 0.02, tie_word_embeddings: bool = True)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/configuration_gemma4_unified.py#L283)

**Parametreler:**

text_config (`Union[~models.gemma4_unified.configuration_gemma4_unified.Gemma4UnifiedTextConfig, dict[str, Any]]`, *isteğe bağlı*) : Metin omurgasının yapılandırma nesnesi veya sözlüğü.

vision_config (`Union[~models.gemma4_unified.configuration_gemma4_unified.Gemma4UnifiedVisionConfig, dict[str, Any]]`, *isteğe bağlı*) : Görüntü iskeletinin yapılandırma nesnesi veya sözlüğü.

audio_config (`Union[~models.gemma4_unified.configuration_gemma4_unified.Gemma4UnifiedAudioConfig, dict[str, Any]]`, *isteğe bağlı*) : Ses omurgasının yapılandırma nesnesi veya sözlüğü.

boi_token_id (`int`, *opsiyonel*, varsayılan 255999) : Görsel istemi sarmak için kullanılan başlangıç görsel (begin-of-image) jeton indeksi.

eoi_token_id (`int`, *opsiyonel*, varsayılan 258882) : Görsel istemi sarmak için kullanılan görsel sonu (end-of-image) belirteç dizini.

image_token_id (`int`, *isteğe bağlı*, varsayılan `258880`) : Girdi görselleri için yer tutucu olarak kullanılan görsel jeton indeksi.

video_token_id (`int`, *isteğe bağlı*, varsayılan `258884`) : Girdi videoları için yer tutucu olarak kullanılan video jeton indeksi.

boa_token_id (`int`, *opsiyonel*, varsayılan 256000) : Ses prompt'unu sarmak için kullanılan ses başlangıcı token indeksi.

eoa_token_index (`int`, *opsiyonel*, varsayılan 258883) : Ses prompt'unu sarmak için kullanılan ses sonu token indeksi.

audio_token_id (`int`, *isteğe bağlı*, varsayılan `258881`) : Girdi sesinin yer tutucusu olarak kullanılan ses jetonu indeksi.

initializer_range (`float`, *opsiyonel*, varsayılan `0.02`) : Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.

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

Bu, bir Gemma4UnifiedModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Gemma4 Unified modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneği oluşturmak, [google/gemma-4-12B-it](https://huggingface.co/google/gemma-4-12B-it) modelinin yapılandırmasına benzer bir yapılandırma elde edilmesini sağlar.

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

Örnek:

```python
>>> from transformers import (
>>>     Gemma4UnifiedAudioConfig,
>>>     Gemma4UnifiedConfig,
>>>     Gemma4UnifiedForConditionalGeneration,
>>>     Gemma4UnifiedTextConfig,
>>>     Gemma4UnifiedVisionConfig,
>>> )

>>> # Initializing a Gemma 4 Audio config.
>>> audio_config = Gemma4UnifiedAudioConfig()

>>> # Initializing a Gemma 4 Text config.
>>> text_config = Gemma4UnifiedTextConfig()

>>> # Initializing a Gemma 4 vision config.
>>> vision_config = Gemma4UnifiedVisionConfig()

>>> # Initializing a Gemma 4 config similar to google/gemma-4-e2b-it
>>> configuration = Gemma4UnifiedConfig(text_config, vision_config, audio_config)

>>> # Initializing a model from the google/gemma-4-e2b-it configuration
>>> model = Gemma4UnifiedForConditionalGeneration(configuration)

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

## Gemma4UnifiedTextConfig[[transformers.Gemma4UnifiedTextConfig]]

#### transformers.Gemma4UnifiedTextConfig[[transformers.Gemma4UnifiedTextConfig]]

```python
transformers.Gemma4UnifiedTextConfig(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, is_encoder_decoder: bool = False, 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, vocab_size: int = 262144, hidden_size: int = 2304, intermediate_size: int = 9216, num_hidden_layers: int = 30, num_attention_heads: int = 8, num_key_value_heads: int = 4, head_dim: int = 256, hidden_activation: str = 'gelu_pytorch_tanh', max_position_embeddings: int = 262144, initializer_range: float = 0.02, rms_norm_eps: float = 1e-06, use_cache: bool = True, pad_token_id: int | None = 0, eos_token_id: int | list[int] | None = 1, bos_token_id: int | None = 2, tie_word_embeddings: bool = True, rope_parameters: dict | None = None, attention_bias: bool = False, attention_dropout: int | float | None = 0.0, sliding_window: int = 1024, layer_types: list[str] | None = None, final_logit_softcapping: float | None = None, use_bidirectional_attention: typing.Optional[typing.Literal['all', 'vision']] = 'vision', attention_k_eq_v: bool = False, num_kv_shared_layers: int = 0, use_double_wide_mlp: bool = False)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/configuration_gemma4_unified.py#L88)

**Parametreler:**

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

hidden_size (`int`, *isteğe bağlı*, varsayılan `2304`) : Gizli temsillerin boyutu.

intermediate_size (`int`, *isteğe bağlı*, varsayılan `9216`) : MLP temsil boyutu.

num_hidden_layers (`int`, *isteğe bağlı*, varsayılan `30`) : Transformer decoder'ındaki gizli katman sayısı.

num_attention_heads (`int`, *isteğe bağlı*, varsayılan `8`) : Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.

num_key_value_heads (`int`, *opsiyonel*, varsayılan `4`) : Grouped Query Attention'ı uygulamak için kullanılması gereken key_value başlarının sayısıdır. `num_key_value_heads=num_attention_heads` ise model Multi Head Attention (MHA) kullanır, `num_key_value_heads=1` ise model Multi Query Attention (MQA) kullanır, aksi halde GQA kullanılır. Çok başlı bir checkpoint'i GQA checkpoint'ine dönüştürürken, her grup key ve value başı, o gruptaki tüm orijinal başların ortalama havuzlanması (meanpooling) ile oluşturulmalıdır. Daha fazla ayrıntı için [bu makaleye](https://huggingface.co/papers/2305.13245) göz atın. Belirtilmezse, varsayılan olarak `num_attention_heads` kullanılır.

head_dim (`int`, *isteğe bağlı*, varsayılan `256`) : Dikkat başı boyutu. None ise, hidden_size // num_attention_heads değerine ayarlanır.

hidden_activation (`str`, *isteğe bağlı*, varsayılan `gelu_pytorch_tanh`) : Dekoderdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, `"gelu"`, `"relu"`, `"silu"` vb.

max_position_embeddings (`int`, *isteğe bağlı*, varsayılan `262144`) : Bu modelin kullanılabileceği en büyük dizi uzunluğu.

initializer_range (`float`, *opsiyonel*, varsayılan `0.02`) : Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.

rms_norm_eps (`float`, *opsiyonel*, varsayılan `1e-06`) : rms normalizasyon katmanları tarafından kullanılan epsilon.

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.

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

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

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

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

rope_parameters (`dict`, *isteğe bağlı*) : RoPE gömme yapılandırma parametrelerini içeren sözlük. Sözlük, `rope_theta` için bir değer içermeli ve daha uzun `max_position_embeddings` ile RoPE kullanmak istiyorsanız ölçekleme için kullanılan parametreleri isteğe bağlı olarak içermelidir.

attention_bias (`bool`, *isteğe bağlı*, varsayılan `False`) : Kendi kendine dikkat (self-attention) sırasında sorgu, anahtar, değer ve çıktı projeksiyon katmanlarında sapma (bias) kullanılıp kullanılmayacağı.

attention_dropout (`Union[int, float]`, *isteğe bağlı*, varsayılan `0.0`) : Dikkat olasılıkları için dropout oranı.

sliding_window (`int`, *isteğe bağlı*, varsayılan `1024`) : Kayan pencere dikkat penceresi boyutu. `None` ise kayan pencere uygulanmaz.

layer_types (`list[str]`, *isteğe bağlı*) : Her katman indeksini katman türüyle açıkça eşleyen bir liste. Sağlanmazsa, yapılandırma değerlerine göre otomatik olarak oluşturulur.

final_logit_softcapping (`float`, *isteğe bağlı*) : Olasılık dağılımı hesaplanmadan önce nihai logit'lere uygulanan yumuşak sınırlama değeri. Logit'ler `tanh(logit / cap) * cap` ile ölçeklenir.

use_bidirectional_attention (`str`, *isteğe bağlı*) : Çift yönlü dikkat davranışını kontrol eder. `"vision"` olarak ayarlandığında, görsel jetonlar çift yönlü dikkat kullanırken metin jetonları nedensel dikkat kullanır. `"all"` olarak ayarlandığında, tüm jetonlar çift yönlü dikkat kullanır.

attention_k_eq_v (`bool`, varsayılan `False`) : Anahtarların ve değerlerin aynı projeksiyon ağırlıklarını paylaşması. `True` olduğunda, anahtar projeksiyonu çıktısı, değer projeksiyonu olarak yeniden kullanılır.

num_kv_shared_layers (`int`, varsayılan 0) : Aynı anahtar-değer projeksiyonlarını paylaşan ardışık decoder katmanlarının sayısı. 0 değeri, paylaşımın olmadığını (her katmanın bağımsız KV projeksiyonlarına sahip olduğunu) ifade eder.

use_double_wide_mlp (`bool`, varsayılan `False`) : Birleşik gate ve up projeksiyonlarına sahip çift genişlikte bir MLP kullanılıp kullanılmayacağı.

Bu, bir Gemma4UnifiedModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Gemma4 Unified modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneği oluşturmak, [google/gemma-4-12B-it](https://huggingface.co/google/gemma-4-12B-it) modelinin yapılandırmasına benzer bir yapılandırma elde edilmesini sağlar.

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

## Gemma4UnifiedVisionConfig[[transformers.Gemma4UnifiedVisionConfig]]

#### transformers.Gemma4UnifiedVisionConfig[[transformers.Gemma4UnifiedVisionConfig]]

```python
transformers.Gemma4UnifiedVisionConfig(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, is_encoder_decoder: bool = False, 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, patch_size: int = 16, pooling_kernel_size: int = 3, mm_embed_dim: int = 3840, mm_posemb_size: int = 1120, rms_norm_eps: float = 1e-06, output_proj_dims: int = 3840, initializer_range: float = 0.02)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/configuration_gemma4_unified.py#L238)

**Parametreler:**

patch_size (`int`, varsayılan 16) : Piksel cinsinden görüntü yama boyutu. Görüntüler önce bu çözünürlükte yamalara ayrılır.

pooling_kernel_size (`int`, varsayılan 3) : Model yamalarına birleştirmek için yama çekirdek boyutu. 3×3 birleştirme, `patch_size * pooling_kernel_size = 48` piksel boyutunda model yamaları üretir.

mm_embed_dim (`int`, varsayılan 3840) : Yama gömme Yoğun projeksiyonu için gizli boyut (metin modelinin `hidden_size` değeriyle eşleşir).

mm_posemb_size (`int`, varsayılan 1120) : Faktörize edilmiş 2D konumsal gömme tablosunun boyutu. Tablonun şekli `(mm_posemb_size, 2, mm_embed_dim)` şeklindedir ve eksen başına sorgulanır.

rms_norm_eps (`float`, *opsiyonel*, varsayılan `1e-06`) : rms normalizasyon katmanları tarafından kullanılan epsilon.

output_proj_dims (`int`, varsayılan 3840) : Çok modlu gömme projeksiyonunun çıktı boyutu (metin gizli boyutuna eşlenir). Bu, çalışma zamanında bileşik yapılandırmanın text_config.hidden_size değeri tarafından ayarlanır.

initializer_range (`float`, *opsiyonel*, varsayılan `0.02`) : Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.

Bu, bir Gemma4UnifiedModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Gemma4 Unified modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneği oluşturmak, [google/gemma-4-12B-it](https://huggingface.co/google/gemma-4-12B-it) modelinin yapılandırmasına benzer bir yapılandırma elde edilmesini sağlar.

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

## Gemma4UnifiedAudioFeatureExtractor[[transformers.Gemma4UnifiedAudioFeatureExtractor]]

#### transformers.Gemma4UnifiedAudioFeatureExtractor[[transformers.Gemma4UnifiedAudioFeatureExtractor]]

```python
transformers.Gemma4UnifiedAudioFeatureExtractor(feature_size: int = 640, sampling_rate: int = 16000, padding_value: float = 0.0, audio_samples_per_token: int = 640, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/feature_extraction_gemma4_unified.py#L30)

**Parametreler:**

feature_size (`int`, *isteğe bağlı*, varsayılan 640) : Çıkarılan özelliklerin boyutu (token başına örnek).

sampling_rate (`int`, *opsiyonel*, varsayılan 16000) : Ses dosyalarının dijitalleştirileceği örneklem hızı, hertz (Hz) cinsinden ifade edilir.

padding_value (`float`, *isteğe bağlı*, varsayılan 0.0) : Sesin doldurulmasında kullanılan dolgu değeri.

audio_samples_per_token (`int`, *isteğe bağlı*, varsayılan 640) : Çıktı başına token için ham ses örnek sayısı. 16 kHz'de 640 örnek = 40 ms.

Ham dalga formunu çerçevelere bölen, kodlayıcısız (encoder-free) ses özellik çıkarıcısı.

Standart Gemma4 ses özellik çıkarıcısının mel spektrogramları hesaplamasının aksine, bu birleşik sürüm ham 16 kHz sesleri, her biri `audio_samples_per_token` örnek içeren sabit uzunlukta çerçevelere böler. Her çerçeve, özellikleri olarak ham dalga formu örneklerini içeren tek bir ses yumuşak jetonu (soft token) haline gelir.

#### __call__[[transformers.Gemma4UnifiedAudioFeatureExtractor.__call__]]

```python
__call__(raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]], padding: bool | str = 'longest', max_length: int | None = None, truncation: bool = True, return_tensors: str | transformers.utils.generic.TensorType | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/feature_extraction_gemma4_unified.py#L95)

**Parametreler:**

raw_speech : İşlenecek ham ses dalga formu(ları).

padding (`str`, *isteğe bağlı*, varsayılan `"longest"`) : Farklı uzunluklara sahip toplamlar için dolgu stratejisi.

max_length (`int`, *isteğe bağlı*) : Ses başına üretilecek maksimum token sayısı.

truncation (`bool`, *isteğe bağlı*, varsayılan `True`) : `max_length` belirtecinin üzerindeki sesin kırpılıp kırpılmayacağını belirtir.

return_tensors (`str`, *isteğe bağlı*) : Dönülecek tensörlerin türü.

Ham ses dalgalarını birleşik model için sabit uzunlukta çerçevelere bölün.

## Gemma4UnifiedImageProcessor[[transformers.Gemma4UnifiedImageProcessor]]

#### transformers.Gemma4UnifiedImageProcessor[[transformers.Gemma4UnifiedImageProcessor]]

```python
transformers.Gemma4UnifiedImageProcessor(**kwargs: *<class 'transformers.models.gemma4_unified.image_processing_gemma4_unified.Gemma4UnifiedImageProcessorKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/image_processing_gemma4_unified.py#L214)

**Parametreler:**

do_convert_rgb (`bool`, *kwargs*, *opsiyonel*, varsayılan `True`) : Görselin RGB'ye dönüştürülüp dönüştürülmeyeceği.

do_resize (`bool`, *kwargs*, *opsiyonel*, varsayılan `True`) : Görselin yeniden boyutlandırılıp boyutlandırılmayacağı.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*, varsayılan `None`) : Modelin kabul ettiği maksimum giriş boyutlarını açıklar.

default_to_square (`bool`, *kwargs*, *opsiyonel*, varsayılan `True`) : Boyut bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntü kullanılıp kullanılmayacağını belirtir.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : `center_crop` uygulandıktan sonra çıktı görüntüsünün boyutu.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*, varsayılan `3`) : Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu, `PILImageResampling` enum değerlerinden biri olabilir. Yalnızca `do_resize` `True` olarak ayarlanırsa etkilidir.

do_rescale (`bool`, *kwargs*, *opsiyonel*, varsayılan `True`) : Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceğini belirtir.

rescale_factor (`float`, *kwargs*, *opsiyonel*, varsayılan `0.00392156862745098`) : `do_rescale` `True` olarak ayarlandığında görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü.

do_normalize (`bool`, *kwargs*, *opsiyonel*, varsayılan `False`) : Görselin normalize edilip edilmeyeceğini belirtir.

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opsiyonel*, varsayılan `[0.0, 0.0, 0.0]`) : Normalizasyon için kullanılacak görüntü ortalaması. Yalnızca `do_normalize` `True` olarak ayarlanırsa etkilidir.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opsiyonel*, varsayılan `[1.0, 1.0, 1.0]`) : Normalizasyon için kullanılacak görüntü standart sapması. Yalnızca `do_normalize` `True` olarak ayarlanırsa etkilidir.

do_pad (`bool`, *kwargs*, *isteğe bağlı*) : Görselin dolgu (padding) uygulanıp uygulanmayacağını belirtir. Dolgu, ya batch içindeki en büyük boyuta ya da görsel başına sabit bir kare boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Görsellerin doldurulacağı boyut, `{"height": int, "width" int}` biçiminde. Ön işleme için sağlanan herhangi bir görsel boyutundan büyük olmalıdır. `pad_size` sağlanmazsa, görseller partideki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızca `do_pad=True.` olduğunda uygulanır.

do_center_crop (`bool`, *kwargs*, *opsiyonel*) : Görselin merkezden kırpılıp kırpılmayacağını belirtir.

data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *isteğe bağlı*) : Yalnızca `ChannelDimension.FIRST` desteklenir. Yavaş işleyicilerle uyumluluk için eklendi.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *isteğe bağlı*) : Girdi görüntüsünün kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir: - `"channels_first"` veya `ChannelDimension.FIRST`: (num_channels, height, width) biçiminde görüntü. - `"channels_last"` veya `ChannelDimension.LAST`: (height, width, num_channels) biçiminde görüntü. - `"none"` veya `ChannelDimension.NONE`: (height, width) biçiminde görüntü.

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : `'pt'` olarak ayarlanırsa yığılmış tensörleri, aksi halde tensör listesi döndürür.

disable_grouping (`bool`, *kwargs*, *opsiyonel*) : Görsellerin boyuta göre gruplandırılmasını devre dışı bırakarak bunların toplu olarak değil, tek tek işlenmesini sağlar. None ise, görseller CPU üzerindeyse True, aksi halde False olarak ayarlanır. Bu seçim, buradaki ayrıntılı açıklamalara dayalı ampirik gözlemlere dayanmaktadır: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *isteğe bağlı*) : Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak bu, gelecekteki modellerde bir işlemci özniteliği olarak ayarlanmalıdır.

patch_size (`int`, *kwargs*, *opsiyonel*) : Birleştirme öncesi her öğretmen görüntü yamasının piksel cinsinden boyutu.

max_soft_tokens (`int`, *kwargs*, *opsiyonel*) : Yama birleştirme sonrası görüntü başına en fazla yumuşak (görüntü) jeton sayısı. {70, 140, 280, 560, 1120} kümesinden biri olmalıdır.

pooling_kernel_size (`int`, *kwargs*, *opsiyonel*) : Öğretmen yamalarını model yamalarına birleştirmek için çekirdek boyutu.

Gemma4 birleşik görüntü işleyicisi oluşturur.

## Gemma4UnifiedVideoProcessor[[transformers.Gemma4UnifiedVideoProcessor]]

#### transformers.Gemma4UnifiedVideoProcessor[[transformers.Gemma4UnifiedVideoProcessor]]

```python
transformers.Gemma4UnifiedVideoProcessor(**kwargs: *<class 'transformers.models.gemma4_unified.video_processing_gemma4_unified.Gemma4UnifiedVideoProcessorKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/video_processing_gemma4_unified.py#L216)

**Parametreler:**

do_convert_rgb (`bool`, *kwargs*, *opsiyonel*, varsayılan `True`) : Görselin RGB'ye dönüştürülüp dönüştürülmeyeceği.

do_resize (`bool`, *kwargs*, *opsiyonel*, varsayılan `True`) : Görselin yeniden boyutlandırılıp boyutlandırılmayacağı.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*, varsayılan `None`) : Modelin kabul ettiği maksimum giriş boyutlarını açıklar.

default_to_square (`bool`, *kwargs*, *opsiyonel*, varsayılan `True`) : Boyut bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntü kullanılıp kullanılmayacağını belirtir.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*, varsayılan `3`) : Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu, `PILImageResampling` enum değerlerinden biri olabilir. Yalnızca `do_resize` `True` olarak ayarlanırsa etkilidir.

do_rescale (`bool`, *kwargs*, *opsiyonel*, varsayılan `True`) : Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceğini belirtir.

rescale_factor (`float`, *kwargs*, *opsiyonel*, varsayılan `0.00392156862745098`) : `do_rescale` `True` olarak ayarlandığında görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü.

do_normalize (`bool`, *kwargs*, *opsiyonel*, varsayılan `True`) : Görselin normalize edilip edilmeyeceğini belirtir.

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opsiyonel*, varsayılan `[0.0, 0.0, 0.0]`) : Normalizasyon için kullanılacak görüntü ortalaması. Yalnızca `do_normalize` `True` olarak ayarlanırsa etkilidir.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opsiyonel*, varsayılan `[1.0, 1.0, 1.0]`) : Normalizasyon için kullanılacak görüntü standart sapması. Yalnızca `do_normalize` `True` olarak ayarlanırsa etkilidir.

do_center_crop (`bool`, *kwargs*, *opsiyonel*) : Görselin merkezden kırpılıp kırpılmayacağını belirtir.

do_pad (`bool`, *kwargs*, *isteğe bağlı*) : Görselin dolgu (padding) uygulanıp uygulanmayacağını belirtir. Dolgu, ya batch içindeki en büyük boyuta ya da görsel başına sabit bir kare boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : `center_crop` uygulandıktan sonra çıktı görüntüsünün boyutu.

data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *isteğe bağlı*) : Yalnızca `ChannelDimension.FIRST` desteklenir. Yavaş işleyicilerle uyumluluk için eklendi.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *isteğe bağlı*) : Girdi görüntüsünün kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir: - `"channels_first"` veya `ChannelDimension.FIRST`: (num_channels, height, width) biçiminde görüntü. - `"channels_last"` veya `ChannelDimension.LAST`: (height, width, num_channels) biçiminde görüntü. - `"none"` veya `ChannelDimension.NONE`: (height, width) biçiminde görüntü.

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır.

do_sample_frames (`bool`, *kwargs*, *isteğe bağlı*, varsayılan `True`) : İşleme başlamadan önce videodan kare örneklenip örneklenmeyeceği veya videonun tamamının işleneceği.

video_metadata (`Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None]`, *kwargs*) : Toplam süre, fps ve toplam kare sayısı hakkında bilgi içeren videonun metadata'sı. Videodan kare örneklemek veya zaman damgalarını hesaplamak için kullanılacaktır. Videoyu işlemden önce manuel olarak çözmeye çalışmıyorsanız herhangi bir metadata geçirmeyin

fps (`Annotated[int | float | None, None]`, *kwargs*) : `do_sample_frames=True` olduğunda saniyede örneklenmesi hedeflenen kareler.

num_frames (`Annotated[int | None, None]`, *kwargs*, varsayılan `32`) : `do_sample_frames=True` olduğunda örneklenmesi gereken maksimum kare sayısı.

return_metadata (`bool`, *kwargs*, *opsiyonel*, varsayılan `False`) : Video meta verilerinin döndürülüp döndürülmemesi. Video meta verileri, video süresi, fps, çözümleme arka ucu gibi bilgileri içeren bir nesnedir.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : Ayarlanırsa, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler:  - `'pt'`: PyTorch `torch.Tensor` nesnelerini döndürür. - `'np'`: NumPy `np.ndarray` nesnelerini döndürür.

patch_size (`int`, *kwargs*, *isteğe bağlı*) : Her görüntü yamasının piksel cinsinden boyutu.

max_soft_tokens (`int`, *kwargs*, *isteğe bağlı*) : Video karesi başına maksimum yumuşak (görüntü) jeton sayısı. {70, 140, 280, 560, 1120} değerlerinden biri olmalıdır.

pooling_kernel_size (`int`, *kwargs*, *opsiyonel*) : Patchification sonrasında uygulanan uzamsal havuzlama çekirdeği boyutu.

- ****kwargs** ([ProcessingKwargs](/docs/transformers/main/tr/main_classes/processors#transformers.ProcessingKwargs), *opsiyonel*) : Her modalite (metin, görüntüler, videolar, ses) için ek işleme seçenekleri. Modelle ilgili parametreler yukarıda listelenmiştir; desteklenen argümanların tam listesi için TypedDict sınıfına bakın.

Gemma4UnifiedVideoProcessor video işleyicisi oluşturur.

#### preprocess[[transformers.Gemma4UnifiedVideoProcessor.preprocess]]

```python
preprocess(videos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]]], **kwargs: *<class 'transformers.models.gemma4_unified.video_processing_gemma4_unified.Gemma4UnifiedVideoProcessorKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/video_processing_gemma4_unified.py#L275)

**Parametreler:**

videos (`Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]]`) : Ön işleme yapılacak video. Piksel değerleri 0 ile 255 arasında değişen tek bir video veya video partisi beklenir. Piksel değerleri 0 ile 1 arasında olan videolar geçiriliyorsa `do_rescale=False` olarak ayarlayın.

do_convert_rgb (`bool`, *kwargs*, *isteğe bağlı*) : Görselin RGB'ye dönüştürülüp dönüştürülmeyeceği.

do_resize (`bool`, *kwargs*, *isteğe bağlı*) : Görselin yeniden boyutlandırılıp boyutlandırılmayacağı.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Modelin kabul ettiği maksimum giriş boyutlarını açıklar.

default_to_square (`bool`, *kwargs*, *opsiyonel*) : Boyut bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görsel kullanılıp kullanılmayacağı.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu, `PILImageResampling` enum değerlerinden biri olabilir. Yalnızca `do_resize` `True` olarak ayarlanırsa etkilidir.

do_rescale (`bool`, *kwargs*, *opsiyonel*) : Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceğini belirtir.

rescale_factor (`float`, *kwargs*, *opsiyonel*) : `do_rescale` `True` olarak ayarlanırsa görüntüyü yeniden ölçeklemek için yeniden ölçekleme çarpanı.

do_normalize (`bool`, *kwargs*, *isteğe bağlı*) : Görüntünün normalize edilip edilmeyeceğini belirtir.

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opsiyonel*) : Normalizasyon için kullanılacak görüntü ortalaması. Yalnızca `do_normalize` `True` olarak ayarlanırsa etkilidir.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opsiyonel*) : Normalizasyon için kullanılacak görüntü standart sapması. Yalnızca `do_normalize` `True` olarak ayarlanırsa etkilidir.

do_center_crop (`bool`, *kwargs*, *opsiyonel*) : Görselin merkezden kırpılıp kırpılmayacağını belirtir.

do_pad (`bool`, *kwargs*, *isteğe bağlı*) : Görselin dolgu (padding) uygulanıp uygulanmayacağını belirtir. Dolgu, ya batch içindeki en büyük boyuta ya da görsel başına sabit bir kare boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : `center_crop` uygulandıktan sonra çıktı görüntüsünün boyutu.

data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *isteğe bağlı*) : Yalnızca `ChannelDimension.FIRST` desteklenir. Yavaş işleyicilerle uyumluluk için eklendi.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *isteğe bağlı*) : Girdi görüntüsünün kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir: - `"channels_first"` veya `ChannelDimension.FIRST`: (num_channels, height, width) biçiminde görüntü. - `"channels_last"` veya `ChannelDimension.LAST`: (height, width, num_channels) biçiminde görüntü. - `"none"` veya `ChannelDimension.NONE`: (height, width) biçiminde görüntü.

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır.

do_sample_frames (`bool`, *kwargs*, *isteğe bağlı*) : İşleme başlamadan önce videodan kare örneklenip örneklenmeyeceği veya videonun tamamının işleneceği.

video_metadata (`Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None]`, *kwargs*) : Toplam süre, fps ve toplam kare sayısı hakkında bilgi içeren videonun metadata'sı. Videodan kare örneklemek veya zaman damgalarını hesaplamak için kullanılacaktır. Videoyu işlemden önce manuel olarak çözmeye çalışmıyorsanız herhangi bir metadata geçirmeyin

fps (`Annotated[int | float | None, None]`, *kwargs*) : `do_sample_frames=True` olduğunda saniyede örneklenmesi hedeflenen kareler.

num_frames (`Annotated[int | None, None]`, *kwargs*) : `do_sample_frames=True` olduğunda örneklenmesi gereken maksimum kare sayısı.

return_metadata (`bool`, *kwargs*, *isteğe bağlı*) : Video meta verilerinin döndürülüp döndürülmemesi. Video meta verileri, video süresi, fps, çözümleme arka ucu gibi bilgileri içeren bir nesnedir.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : `'pt'` olarak ayarlanırsa yığılmış tensörleri, aksi halde tensör listesi döndürür.

patch_size (`int`, *kwargs*, *isteğe bağlı*) : Her görüntü yamasının piksel cinsinden boyutu.

max_soft_tokens (`int`, *kwargs*, *isteğe bağlı*) : Video karesi başına maksimum yumuşak (görüntü) jeton sayısı. {70, 140, 280, 560, 1120} değerlerinden biri olmalıdır.

pooling_kernel_size (`int`, *kwargs*, *opsiyonel*) : Patchification sonrasında uygulanan uzamsal havuzlama çekirdeği boyutu.

**Dönüş:** `~image_processing_base.BatchFeature`

- **data** (`dict`) -- __call__ yönteminin döndürdüğü listeler/diziler/tensörler sözlüğü ('pixel_values' vb.).
- **tensor_type** (`Union[None, str, TensorType]`, *isteğe bağlı*) -- Başlatma sırasında PyTorch/Numpy Tensörlerindeki tamsayı listelerini dönüştürmek için burada bir tensor_type verebilirsiniz.

## Gemma4UnifiedProcessor[[transformers.Gemma4UnifiedProcessor]]

#### transformers.Gemma4UnifiedProcessor[[transformers.Gemma4UnifiedProcessor]]

```python
transformers.Gemma4UnifiedProcessor(feature_extractor, image_processor, tokenizer, video_processor, chat_template = None, image_seq_length: int = 280, audio_seq_length: int = 750, audio_ms_per_token: int = 40, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/processing_gemma4_unified.py#L107)

**Parametreler:**

feature_extractor (*Gemma4UnifiedAudioFeatureExtractor*) : Özellik çıkarıcı zorunlu bir girdidir.

image_processor (*Gemma4UnifiedImageProcessor*) : Görüntü işleyici zorunlu bir girdidir.

tokenizer (*tokenizer_class*) : Tokenizer zorunlu bir girdidir.

video_processor (*Gemma4UnifiedVideoProcessor*) : Video işleyici zorunlu bir girdidir.

chat_template (*str*) : Bir sohbet içindeki mesaj listelerini tokenize edilebilir bir metne dönüştürmek için kullanılan bir Jinja şablonu.

image_seq_length (*int*, *optional*, varsayılan 280) : Yer tutucu genişletme için görüntü başına kullanılan yumuşak token sayısı.

audio_seq_length (*int*, *optional*, varsayılan 750) : Ses segmenti başına maksimum ses yumuşak jeton sayısı. Dinamik ses jeton sayıları hesaplanırken üst sınır olarak görev yapar.

audio_ms_per_token (*int*, *opsiyonel*, varsayılan 40) : Çıktı yumuşak başına ses milisaniyesi. `ceil(duration_ms / audio_ms_per_token)` olarak dinamik biçimde hesaplanan ses yer tutucu belirteç sayısını kullanır. 40 varsayılan değeri, 10 ms'lik çerçevelerdeki SSCP konvolüsyonunun 4× zaman indirgemesinden kaynaklanır.

Bir özellik çıkarıcıyı, bir görüntü işleyiciyi, bir belirteçleştiriciyi ve bir video işleyiciyi tek bir işleyicide birleştiren bir Gemma4UnifiedProcessor oluşturur.

[*Gemma4UnifiedProcessor*], [*Gemma4UnifiedAudioFeatureExtractor*], [*Gemma4UnifiedImageProcessor*], [*tokenizer_class*] ve [*Gemma4UnifiedVideoProcessor*] sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için [*~Gemma4UnifiedAudioFeatureExtractor*], [*~Gemma4UnifiedImageProcessor*], [*~tokenizer_class*] ve [*~Gemma4UnifiedVideoProcessor*] belgelerini inceleyin.

#### __call__[[transformers.Gemma4UnifiedProcessor.__call__]]

```python
__call__(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, text: str | list[str] | list[list[str]] | None = None, videos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = None, audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None, **kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L659)

**Parametreler:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`, *isteğe bağlı*) : Ön işleme tabi tutulacak görüntü. Piksel değerleri 0 ile 255 arasında değişen tek bir görüntü veya görüntü grubu beklenir. Piksel değerleri 0 ile 1 arasında olan görüntüler geçiriliyorsa `do_rescale=False` olarak ayarlayın.

text (`Union[str, list[str], list[list[str]]]`, *isteğe bağlı*) : Kodlanacak dizi veya dizi topluluğu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Önceden tokenize edilmiş bir girdi geçirirseniz, toplu girdilerle karışıklığı önlemek için `is_split_into_words=True` değerini ayarlayın.

videos (`Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]]`, *isteğe bağlı*) : Ön işleme tabi tutulacak video. Piksel değerleri 0 ile 255 arasında değişen tek bir video veya video grubu beklenir. Piksel değerleri 0 ile 1 arasında olan videoları geçiriyorsanız, `do_rescale=False` olarak ayarlayın.

audio (`Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]`, *isteğe bağlı*) : Hazırlanacak ses veya sesler grubu. Her ses, bir NumPy dizisi veya PyTorch tensörü olabilir. NumPy dizisi/PyTorch tensörü durumunda, her sesin şekli (C, T) olmalıdır; burada C kanal sayısı, T ise sesin örnek uzunluğudur.

return_tensors (`str` veya [TensorType](/docs/transformers/main/tr/internal/file_utils#transformers.TensorType), *opsiyonel*) : Ayarlanırsa, belirli bir çerçeveye ait tensörleri döndürür. Kabul edilen değerler:  - `'pt'`: PyTorch `torch.Tensor` nesnelerini döndürür. - `'np'`: NumPy `np.ndarray` nesnelerini döndürür.

- ****kwargs** ([ProcessingKwargs](/docs/transformers/main/tr/main_classes/processors#transformers.ProcessingKwargs), *opsiyonel*) : Her modalite (metin, görüntüler, videolar, ses) için ek işleme seçenekleri. Modelle ilgili parametreler yukarıda listelenmiştir; desteklenen argümanların tam listesi için TypedDict sınıfına bakın.

## Gemma4UnifiedPreTrainedModel[[transformers.Gemma4UnifiedPreTrainedModel]]

#### transformers.Gemma4UnifiedPreTrainedModel[[transformers.Gemma4UnifiedPreTrainedModel]]

```python
transformers.Gemma4UnifiedPreTrainedModel(config: PreTrainedConfig, *inputs, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py#L527)

**Parametreler:**

config ([PreTrainedConfig](/docs/transformers/main/tr/main_classes/configuration#transformers.PreTrainedConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.Gemma4UnifiedPreTrainedModel.forward]]

```python
forward(*args, **kwargs)
```

Noktalı bir yol için sahte bir değer (ör. `torch.float32`): öznitelik erişim zincirleri, çağrılar geçiş (pass-through) dekoratörleri gibi davranır, `repr` noktalı yoldur ve bir taban sınıf olarak kullanıldığında düz bir `type` tabanı yerleştirilir (PEP 560 `__mro_entries__`), böylece gerçek alt sınıflar normal bir metasınıfı korur ve `inspect.signature` sahtenin yerine gerçek `__init__` değerlerini okur.

## Gemma4UnifiedModel[[transformers.Gemma4UnifiedModel]]

#### transformers.Gemma4UnifiedModel[[transformers.Gemma4UnifiedModel]]

```python
transformers.Gemma4UnifiedModel(config: Gemma4UnifiedConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py#L931)

**Parametreler:**

config ([Gemma4UnifiedConfig](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

Dil modelleme kafası olmadan bir görme omurgası, bir ses omurgası ve bir dil modelinden oluşan temel Gemma 4 modeli.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.Gemma4UnifiedModel.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, pixel_values: typing.Optional[torch.Tensor] = None, pixel_values_videos: typing.Optional[torch.Tensor] = None, input_features: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, input_features_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, mm_token_type_ids: typing.Optional[torch.LongTensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, use_cache: bool | None = None, image_position_ids: typing.Optional[torch.LongTensor] = None, video_position_ids: typing.Optional[torch.LongTensor] = None, num_frames_per_video: typing.Optional[torch.LongTensor] = None, mm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py#L1032)

**Parametreler:**

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

pixel_values (`torch.Tensor`, şekli `(batch_size, num_channels, image_size, image_size)`, *isteğe bağlı*) : Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri [Gemma4UnifiedImageProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedImageProcessor) kullanılarak elde edilebilir. Ayrıntılar için [Gemma4UnifiedImageProcessor.__call__()](/docs/transformers/main/tr/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) bölümüne bakınız ([Gemma4UnifiedProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedProcessor), görüntü işleme için [Gemma4UnifiedImageProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedImageProcessor) kullanır).

pixel_values_videos (`torch.Tensor`, şekli `(batch_size, num_frames, num_channels, frame_size, frame_size)`, *isteğe bağlı*) : Girdi videosuna karşılık gelen tensörler. Videolar için piksel değerleri [Gemma4UnifiedVideoProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedVideoProcessor) kullanılarak elde edilebilir. Ayrıntılar için [Gemma4UnifiedVideoProcessor.__call__()](/docs/transformers/main/tr/model_doc/molmo2#transformers.Molmo2VideoProcessor.__call__) adresine bakın ([Gemma4UnifiedProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedProcessor), videoları işlemek için [Gemma4UnifiedVideoProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedVideoProcessor) kullanır).

input_features (`torch.Tensor`, şekli `(batch_size, sequence_length, feature_dim)`, *isteğe bağlı*) : Girdi ses özelliklerine karşılık gelen tensörler. Ses özellikleri [Gemma4UnifiedAudioFeatureExtractor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedAudioFeatureExtractor) kullanılarak elde edilebilir. Ayrıntılar için [Gemma4UnifiedAudioFeatureExtractor.__call__()](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedAudioFeatureExtractor.__call__) bölümüne bakın ([Gemma4UnifiedProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedProcessor), sesleri işlemek için [Gemma4UnifiedAudioFeatureExtractor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedAudioFeatureExtractor) kullanı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)

input_features_mask (`torch.Tensor`, şekli `(num_images, seq_length)`) : Girdi sesinin dikkat maskesi.

position_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Girdi dizisi token'larının konum gömme (position embeddings) içindeki konum indeksleri. `[0, config.n_positions - 1]` aralığında seçilir.  [Konum kimlikleri (position IDs) nedir?](../glossary#position-ids)

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

mm_token_type_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Her modalliteyle eşleşen girdi dizisi belirteçlerinin (token) indeksleri. Örneğin metin (0), görüntü (1), video (2). Çok modallı belirteç türü kimlikleri [AutoProcessor](/docs/transformers/main/tr/model_doc/auto#transformers.AutoProcessor) kullanılarak elde edilebilir. Ayrıntılar için [ProcessorMixin.__call__()](/docs/transformers/main/tr/main_classes/processors#transformers.ProcessorMixin.__call__) bölümüne bakın.

inputs_embeds (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) : `input_ids` parametresini iletmek yerine, gömülü bir temsil doğrudan iletmeyi tercih edebilirsiniz. Bu, `input_ids` indekslerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.

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

image_position_ids (`torch.LongTensor`, şekli `(batch_size, max_patches, 2)`, *isteğe bağlı*) : Görsel işleyiciden gelen 2B yama konum koordinatları; `(-1, -1)` dolguyu (padding) belirtir. Konumsal gömme (positional embedding) hesabı için görsel kodlayıcıya (vision encoder) iletilir.

video_position_ids (`torch.LongTensor`, şekli `(total_num_frames, max_patches, 2)`, *isteğe bağlı*) : Video işleyiciden gelen 2B yama konum koordinatları, `(-1, -1)` dolguyu (padding) belirtir. Konumsal gömme (positional embedding) hesabı için görme kodlayıcıya (vision encoder) iletilir.

num_frames_per_video (`torch.LongTensor`, şekli `(num_videos,)`, *isteğe bağlı*) : Her videoya ait kare sayısı. `pixel_values_videos` iletildiğinde zorunludur, çünkü tüm videoların kareleri tek bir eksende birleştirilir.

mm_encoder_outputs (`dict[str, ~modeling_outputs.BaseModelOutputWithPooling]`, *isteğe bağlı*) : Anahtarları desteklenen modaliteler, değerleri ise o modalite için kodlanmış çıktılar olan bir sözlük. Her kodlanmış çıktı, (`pooler_output`, *isteğe bağlı*: `last_hidden_states`, *isteğe bağlı*: `hidden_states`, *isteğe bağlı*: `attentions`) `pooler_output` `(batch_size, sequence_length, hidden_size)` boyutunda, *isteğe bağlı*) şeklindedir ve kodlayıcının çok modlu özelliklerinin metin gömme (embedding) değerleriyle birleştirilmiş bir dizisidir.

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

`Gemma4UnifiedModelOutputWithPast` veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırma ([Gemma4UnifiedConfig](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[Gemma4UnifiedModel](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedModel) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **last_hidden_state** (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`) -- Modelin son katmanının çıktısındaki gizli durumlar dizisi.

  `past_key_values` kullanılırsa, yalnızca `(batch_size, 1, hidden_size)` biçimindeki dizilerin son gizli durumu (hidden-state) çıktı olarak verilir.
- **past_key_values** (`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/main/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.

  Sıralı çözümlemeyi hızlandırmak için (bkz. `past_key_values` girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler) içerir.
- **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 katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
- **attentions** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
- **image_hidden_states** (`torch.Tensor`, *isteğe bağlı*) -- `(batch_size, num_images, sequence_length, hidden_size)` boyutunda bir `torch.Tensor`. Görüntü kodlayıcısı tarafından üretilen ve son gizli durum projeksiyonundan sonra modelin image_hidden_states'i.
- **audio_hidden_states** (`torch.Tensor`, *isteğe bağlı*) -- Boyutu `(batch_size, num_images, sequence_length, hidden_size)` olan bir `torch.Tensor`. Ses kodlayıcı tarafından üretilen ve son gizli durum projeksiyonundan sonra modelin ürettiği audio_hidden_states.
- **shared_kv_states** (`dict`, *isteğe bağlı*) -- Katman türü dizgilerini (key_states, value_states) tensörleri demetlerine eşleyen sözlük. KV paylaşımı sırasında katmanlar arasında ortak KV durumlarını iletmek için kullanılır.

## Gemma4UnifiedTextModel[[transformers.Gemma4UnifiedTextModel]]

#### transformers.Gemma4UnifiedTextModel[[transformers.Gemma4UnifiedTextModel]]

```python
transformers.Gemma4UnifiedTextModel(config: Gemma4UnifiedTextConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py#L560)

**Parametreler:**

config ([Gemma4UnifiedTextConfig](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedTextConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

Dil modelleme başlığı olmadan temel Gemma 4 birleşik dil modeli.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.Gemma4UnifiedTextModel.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, use_cache: bool | None = None, logits_to_keep: typing.Union[int, torch.Tensor] = 0, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py#L589)

**Parametreler:**

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

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

position_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Girdi dizisi token'larının konum gömme (position embeddings) içindeki konum indeksleri. `[0, config.n_positions - 1]` aralığında seçilir.  [Konum kimlikleri (position IDs) nedir?](../glossary#position-ids)

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

inputs_embeds (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) : `input_ids` parametresini iletmek yerine, gömülü bir temsil doğrudan iletmeyi tercih edebilirsiniz. Bu, `input_ids` indekslerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.

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

logits_to_keep (`Union[int, torch.Tensor]`, *isteğe bağlı*, varsayılan `0`) : `int` ise, son `logits_to_keep` token için logits hesaplanır. `0` ise, tüm `input_ids` için logits hesaplanır (özel durum). Üretim için yalnızca son token'ın logits'ine ihtiyaç duyulur ve bunların yalnızca o token için hesaplanması bellek tasarrufu sağlar; bu, uzun diziler veya büyük sözlük boyutu için oldukça önemli hale gelir. `torch.Tensor` ise, dizi uzunluğu boyutunda tutulacak indekslere karşılık gelen 1B olmalıdır. Bu, paketlenmiş tensor biçimini (batch ve dizi uzunluğu için tek boyut) kullanırken faydalıdır.

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

`Gemma4UnifiedTextModelOutputWithPast` veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırma ([Gemma4UnifiedConfig](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[Gemma4UnifiedTextModel](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedTextModel) 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.

- **shared_kv_states** (`dict`, *isteğe bağlı*) -- Katman türü dizgilerini (key_states, value_states) tensörleri demetlerine eşleyen sözlük. KV paylaşımı sırasında katmanlar arasında ortak KV durumlarını iletmek için kullanılır.

## Gemma4UnifiedForCausalLM[[transformers.Gemma4UnifiedForCausalLM]]

#### transformers.Gemma4UnifiedForCausalLM[[transformers.Gemma4UnifiedForCausalLM]]

```python
transformers.Gemma4UnifiedForCausalLM(config: Gemma4UnifiedTextConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py#L729)

**Parametreler:**

config ([Gemma4UnifiedTextConfig](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedTextConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

Dil modelleme başlığına sahip temel Gemma 4 dil modeli.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.Gemma4UnifiedForCausalLM.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.LongTensor] = None, use_cache: bool | None = None, logits_to_keep: typing.Union[int, torch.Tensor] = 0, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py#L746)

**Parametreler:**

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

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

position_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Girdi dizisi token'larının konum gömme (position embeddings) içindeki konum indeksleri. `[0, config.n_positions - 1]` aralığında seçilir.  [Konum kimlikleri (position IDs) nedir?](../glossary#position-ids)

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

inputs_embeds (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) : `input_ids` parametresini iletmek yerine, gömülü bir temsil doğrudan iletmeyi tercih edebilirsiniz. Bu, `input_ids` indekslerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.

labels (`torch.LongTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler `[0, ..., config.vocab_size]` aralığında olmalı ya da -100 olmalı (`input_ids` docstring'ine bakın). Endeksleri `-100` olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca `[0, ..., config.vocab_size]` aralığında etiketlere sahip tokenlar için hesaplanır.

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

logits_to_keep (`Union[int, torch.Tensor]`, *isteğe bağlı*, varsayılan `0`) : `int` ise, son `logits_to_keep` token için logits hesaplanır. `0` ise, tüm `input_ids` için logits hesaplanır (özel durum). Üretim için yalnızca son token'ın logits'ine ihtiyaç duyulur ve bunların yalnızca o token için hesaplanması bellek tasarrufu sağlar; bu, uzun diziler veya büyük sözlük boyutu için oldukça önemli hale gelir. `torch.Tensor` ise, dizi uzunluğu boyutunda tutulacak indekslere karşılık gelen 1B olmalıdır. Bu, paketlenmiş tensor biçimini (batch ve dizi uzunluğu için tek boyut) kullanırken faydalıdır.

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

`Gemma4UnifiedCausalLMOutputWithPast` veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırma ([Gemma4UnifiedConfig](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[Gemma4UnifiedForCausalLM](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedForCausalLM) 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ı (sonraki token tahmini için).
- **logits** (`torch.Tensor`, şekli `(batch_size, sequence_length, config.text_config.vocab_size)`) -- Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).
- **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/main/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.

  Sıralı çözümlemeyi hızlandırmak için (bkz. `past_key_values` girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler) içerir.
- **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 katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren ve `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
- **attentions** (`tuple[torch.Tensor]`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `(batch_size, num_heads, sequence_length, sequence_length)` biçiminde, her katman için bir adet içeren `torch.Tensor` demeti.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
- **image_hidden_states** (`torch.Tensor`, *isteğe bağlı*) -- Boyutu `(batch_size, num_images, sequence_length, hidden_size)` olan bir `torch.Tensor`. Görüntü kodlayıcısının son gizli durumu projekte ettikten sonra modelin ürettiği image_hidden_states.
- **audio_hidden_states** (`torch.Tensor`, *isteğe bağlı*) -- Boyutu `(batch_size, num_images, sequence_length, hidden_size)` olan bir `torch.Tensor`. Ses kodlayıcı tarafından üretilen ve son gizli durum projeksiyonundan sonra modelin ürettiği audio_hidden_states.
- **shared_kv_states** (`dict`, *isteğe bağlı*) -- Katman türü dizgilerini (key_states, value_states) tensörleri demetlerine eşleyen sözlük. KV paylaşımı sırasında katmanlar arasında ortak KV durumlarını iletmek için kullanılır.

Örnek:

```python
>>> from transformers import AutoTokenizer, Gemma4UnifiedForCausalLM

>>> model = Gemma4UnifiedForCausalLM.from_pretrained("google/gemma-4-12B-it")
>>> tokenizer = AutoTokenizer.from_pretrained("google/gemma-4-12B-it")

>>> prompt = "What is your favorite condiment?"
>>> inputs = tokenizer(prompt, return_tensors="pt")

>>> # Generate
>>> generate_ids = model.generate(inputs.input_ids, max_length=30)
>>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"What is your favorite condiment?"
```

## Gemma4UnifiedForConditionalGeneration[[transformers.Gemma4UnifiedForConditionalGeneration]]

#### transformers.Gemma4UnifiedForConditionalGeneration[[transformers.Gemma4UnifiedForConditionalGeneration]]

```python
transformers.Gemma4UnifiedForConditionalGeneration(config: Gemma4UnifiedConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py#L1342)

**Parametreler:**

config ([Gemma4UnifiedConfig](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

Görüntü omurgası, ses omurgası, bir dil modeli ve bir dil modelleme başlığından oluşan temel Gemma 4 modeli.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.Gemma4UnifiedForConditionalGeneration.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, pixel_values: typing.Optional[torch.Tensor] = None, pixel_values_videos: typing.Optional[torch.Tensor] = None, input_features: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, input_features_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, image_position_ids: typing.Optional[torch.LongTensor] = None, video_position_ids: typing.Optional[torch.LongTensor] = None, num_frames_per_video: typing.Optional[torch.LongTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, mm_token_type_ids: typing.Optional[torch.LongTensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.LongTensor] = None, use_cache: bool | None = None, logits_to_keep: typing.Union[int, torch.Tensor] = 0, mm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py#L1368)

**Parametreler:**

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

pixel_values (`torch.Tensor`, şekli `(batch_size, num_channels, image_size, image_size)`, *isteğe bağlı*) : Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri [Gemma4UnifiedImageProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedImageProcessor) kullanılarak elde edilebilir. Ayrıntılar için [Gemma4UnifiedImageProcessor.__call__()](/docs/transformers/main/tr/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) bölümüne bakınız ([Gemma4UnifiedProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedProcessor), görüntü işleme için [Gemma4UnifiedImageProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedImageProcessor) kullanır).

pixel_values_videos (`torch.Tensor`, şekli `(batch_size, num_frames, num_channels, frame_size, frame_size)`, *isteğe bağlı*) : Girdi videosuna karşılık gelen tensörler. Videolar için piksel değerleri [Gemma4UnifiedVideoProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedVideoProcessor) kullanılarak elde edilebilir. Ayrıntılar için [Gemma4UnifiedVideoProcessor.__call__()](/docs/transformers/main/tr/model_doc/molmo2#transformers.Molmo2VideoProcessor.__call__) adresine bakın ([Gemma4UnifiedProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedProcessor), videoları işlemek için [Gemma4UnifiedVideoProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedVideoProcessor) kullanır).

input_features (`torch.Tensor`, şekli `(batch_size, sequence_length, feature_dim)`, *isteğe bağlı*) : Girdi ses özelliklerine karşılık gelen tensörler. Ses özellikleri [Gemma4UnifiedAudioFeatureExtractor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedAudioFeatureExtractor) kullanılarak elde edilebilir. Ayrıntılar için [Gemma4UnifiedAudioFeatureExtractor.__call__()](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedAudioFeatureExtractor.__call__) bölümüne bakın ([Gemma4UnifiedProcessor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedProcessor), sesleri işlemek için [Gemma4UnifiedAudioFeatureExtractor](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedAudioFeatureExtractor) kullanı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)

input_features_mask (`torch.Tensor`, şekli `(num_images, seq_length)`) : Girdi sesinin dikkat maskesi.

position_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Girdi dizisi token'larının konum gömme (position embeddings) içindeki konum indeksleri. `[0, config.n_positions - 1]` aralığında seçilir.  [Konum kimlikleri (position IDs) nedir?](../glossary#position-ids)

image_position_ids (`torch.LongTensor`, şekli `(batch_size, max_patches, 2)`, *isteğe bağlı*) : Görsel işleyiciden gelen 2B yama konum koordinatları; `(-1, -1)` dolguyu (padding) belirtir. Konumsal gömme (positional embedding) hesabı için görsel kodlayıcıya (vision encoder) iletilir.

video_position_ids (`torch.LongTensor`, şekli `(total_num_frames, max_patches, 2)`, *isteğe bağlı*) : Video işleyiciden gelen 2B yama konum koordinatları, `(-1, -1)` dolguyu (padding) belirtir. Konumsal gömme (positional embedding) hesabı için görme kodlayıcıya (vision encoder) iletilir.

num_frames_per_video (`torch.LongTensor`, şekli `(num_videos,)`, *isteğe bağlı*) : Her videoya ait kare sayısı. `pixel_values_videos` iletildiğinde zorunludur, çünkü tüm videoların kareleri tek bir eksende birleştirilir.

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

mm_token_type_ids (`torch.LongTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Her modalliteyle eşleşen girdi dizisi belirteçlerinin (token) indeksleri. Örneğin metin (0), görüntü (1), video (2). Çok modallı belirteç türü kimlikleri [AutoProcessor](/docs/transformers/main/tr/model_doc/auto#transformers.AutoProcessor) kullanılarak elde edilebilir. Ayrıntılar için [ProcessorMixin.__call__()](/docs/transformers/main/tr/main_classes/processors#transformers.ProcessorMixin.__call__) bölümüne bakın.

inputs_embeds (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`, *isteğe bağlı*) : `input_ids` parametresini iletmek yerine, gömülü bir temsil doğrudan iletmeyi tercih edebilirsiniz. Bu, `input_ids` indekslerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisine kıyasla daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.

labels (`torch.LongTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler `[0, ..., config.vocab_size]` aralığında olmalı ya da -100 olmalı (`input_ids` docstring'ine bakın). Endeksleri `-100` olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca `[0, ..., config.vocab_size]` aralığında etiketlere sahip tokenlar için hesaplanır.

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

logits_to_keep (`Union[int, torch.Tensor]`, *isteğe bağlı*, varsayılan `0`) : `int` ise, son `logits_to_keep` token için logits hesaplanır. `0` ise, tüm `input_ids` için logits hesaplanır (özel durum). Üretim için yalnızca son token'ın logits'ine ihtiyaç duyulur ve bunların yalnızca o token için hesaplanması bellek tasarrufu sağlar; bu, uzun diziler veya büyük sözlük boyutu için oldukça önemli hale gelir. `torch.Tensor` ise, dizi uzunluğu boyutunda tutulacak indekslere karşılık gelen 1B olmalıdır. Bu, paketlenmiş tensor biçimini (batch ve dizi uzunluğu için tek boyut) kullanırken faydalıdır.

mm_encoder_outputs (`dict[str, ~modeling_outputs.BaseModelOutputWithPooling]`, *isteğe bağlı*) : Anahtarları desteklenen modaliteler, değerleri ise o modalite için kodlanmış çıktılar olan bir sözlük. Her kodlanmış çıktı, (`pooler_output`, *isteğe bağlı*: `last_hidden_states`, *isteğe bağlı*: `hidden_states`, *isteğe bağlı*: `attentions`) `pooler_output` `(batch_size, sequence_length, hidden_size)` boyutunda, *isteğe bağlı*) şeklindedir ve kodlayıcının çok modlu özelliklerinin metin gömme (embedding) değerleriyle birleştirilmiş bir dizisidir.

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

`Gemma4UnifiedCausalLMOutputWithPast` veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırma ([Gemma4UnifiedConfig](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[Gemma4UnifiedForConditionalGeneration](/docs/transformers/main/tr/model_doc/gemma4_unified#transformers.Gemma4UnifiedForConditionalGeneration) 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ı (sonraki token tahmini için).
- **logits** (`torch.Tensor`, şekli `(batch_size, sequence_length, config.text_config.vocab_size)`) -- Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).
- **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/main/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.

  Sıralı çözümlemeyi hızlandırmak için (bkz. `past_key_values` girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler) içerir.
- **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 katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren ve `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
- **attentions** (`tuple[torch.Tensor]`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `(batch_size, num_heads, sequence_length, sequence_length)` biçiminde, her katman için bir adet içeren `torch.Tensor` demeti.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
- **image_hidden_states** (`torch.Tensor`, *isteğe bağlı*) -- Boyutu `(batch_size, num_images, sequence_length, hidden_size)` olan bir `torch.Tensor`. Görüntü kodlayıcısının son gizli durumu projekte ettikten sonra modelin ürettiği image_hidden_states.
- **audio_hidden_states** (`torch.Tensor`, *isteğe bağlı*) -- Boyutu `(batch_size, num_images, sequence_length, hidden_size)` olan bir `torch.Tensor`. Ses kodlayıcı tarafından üretilen ve son gizli durum projeksiyonundan sonra modelin ürettiği audio_hidden_states.
- **shared_kv_states** (`dict`, *isteğe bağlı*) -- Katman türü dizgilerini (key_states, value_states) tensörleri demetlerine eşleyen sözlük. KV paylaşımı sırasında katmanlar arasında ortak KV durumlarını iletmek için kullanılır.

Örnek:

```python
>>> from PIL import Image
>>> from transformers import AutoProcessor, Gemma4UnifiedForConditionalGeneration

>>> model = Gemma4UnifiedForConditionalGeneration.from_pretrained("google/gemma-4-12B-it")
>>> processor = AutoProcessor.from_pretrained("google/gemma-4-12B-it")

>>> messages = [
...     {
...         "role": "user", "content": [
...             {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
...             {"type": "text", "text": "Where is the cat standing?"},
...         ]
...     },
... ]

>>> inputs = processor.apply_chat_template(
...     messages,
...     tokenize=True,
...     return_dict=True,
...     return_tensors="pt",
...     add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]
```

