# EmbeddingGemma2

## نظرة عامة

EmbeddingGemma 2 هو نموذج تضمين متعدد الوسائط من Google مبني على بنية [Gemma 4](./gemma4). يقوم بتشفير **النص والصور والصوت والفيديو**—سواءً بشكل منفصل أو مجمعة ضمن نفس المدخل—إلى فضاء متجهي كثيف مشترك ذي 768 بُعدًا، من أجل الاسترجاع عبر الوسائط، والتشابه الدلالي، والتجميع، والتصنيف.

الميزات الرئيسية:

- **فضاء متجهي متعدد الوسائط موحّد.** تُسقط أبراج الرؤية ([Gemma4VisionModel](/docs/transformers/main/ar/model_doc/gemma4#transformers.Gemma4VisionModel)) والصوت ([Gemma4AudioModel](/docs/transformers/main/ar/model_doc/gemma4#transformers.Gemma4AudioModel)) إلى مُشفِّر نص ثنائي الاتجاه ([EmbeddingGemma2TextModel](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2TextModel)) يمزج الانتباه الكامل مع انتباه النافذة المنزلقة باستخدام التضمينات لكل طبقة (PLE). أي نمط واحد (`text`، `image`، `audio`، `video`) أو أي تركيبة من الأنماط (`image + text`، `text + audio`، `image + audio`، صور متعددة، نص ووسائط متبادلة) تُحوَّل إلى تضمين واحد قابل للمقارنة.
- **تعلّم التمثيل المتروشاكي (MRL).** يُخرج [EmbeddingGemma2Model](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Model) تمثيلات الرموز المُساقطة إلى `embedding_dim` (`768`) عبر رأس خطي. يمكن تقصير التضمينات إلى بادئة أصغر (`512` أو `256` أو `128`) وإعادة تطبيعها مع فقدان جودة ضئيل.
- **ميزانيات مرئية وفيديو قابلة للضبط.** يتيح لك [EmbeddingGemma2Processor](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Processor) ضبط ميزانية الرموز الناعمة لكل صورة أو إطار (`max_soft_tokens` ضمن `{70, 140, 280, 560, 1120}`) ومعدل أخذ العينات من الفيديو (`fps=1`، `max_frames=32`، `overflow_strategy="uniform"`، `add_timestamps=False` افتراضيًا).
- **تحميل أبراج الأنماط الانتقائي.** يمكن تعطيل أبراج الرؤية أو الصوت غير المستخدمة عند التحميل (`vision_config=None`، `audio_config=None`) لتقليل استهلاك الذاكرة في حالات النشر التي تعتمد على النص فقط أو نمط واحد.

يمكنك العثور على جميع نقاط التفتيش الأصلية لنموذج EmbeddingGemma ضمن مجموعة [EmbeddingGemma](https://huggingface.co/collections/google/embeddinggemma). تستخدم الأمثلة أدناه المعرّف `google/embeddinggemma-2`.

## أمثلة على الاستخدام

يتم الحصول على تضمين جملة أو تضمين متعدد الوسائط في خطوتين: تجميع متوسط مع مراعاة الأقنعة على الرموز غير المحشوة في `last_hidden_state`، يليه تطبيع L2 في `float32`. يقوم [Sentence Transformers](https://sbert.net) (`>=6.1.0`) بتنفيذ المعالجة المسبقة، وتنسيق الموجهات، والتجميع المتوسط، والتطبيع تلقائيًا، وهو نقطة الدخول الموصى بها. عند استخدام [AutoModel](/docs/transformers/main/ar/model_doc/auto#transformers.AutoModel)، استخدم `processor.apply_chat_template` (أو `AutoTokenizer` للنص العادي) وقم بتجميع `last_hidden_state` مباشرة.

### استرجاع النصوص (`encode_query` / `encode_document`)

```bash
pip install -U sentence-transformers
```

```python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("google/embeddinggemma-2")

queries = ["Which planet is known as the Red Planet?"]
documents = [
    "Venus is often called Earth's twin because of its similar size and proximity.",
    "Mars, known for its reddish appearance, is often referred to as the Red Planet.",
]

# encode_query and encode_document apply the "query" and "document" task prompts
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# (1, 768) (2, 768)

# (1, 2) matrix of cosine similarities
print(model.similarity(query_embeddings, document_embeddings))
```

```python
import torch
import torch.nn.functional as F
from transformers import AutoModel, AutoTokenizer

model = AutoModel.from_pretrained("google/embeddinggemma-2", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("google/embeddinggemma-2")

# Prepend the task prompt directly to plain text inputs (see Task prompts below)
sentences = [
    "task: search result | query: Which planet is known as the Red Planet?",
    "title: none | text: Venus is often called Earth's twin because of its similar size and proximity.",
    "title: none | text: Mars, known for its reddish appearance, is often referred to as the Red Planet.",
]
inputs = tokenizer(sentences, padding=True, return_tensors="pt").to(model.device)

with torch.no_grad():
    # (batch_size, sequence_length, config.text_config.embedding_dim)
    token_embeddings = model(**inputs).last_hidden_state

# Mask-aware mean pooling over non-padded tokens, then L2 normalization in float32
mask = inputs["attention_mask"].unsqueeze(-1).to(token_embeddings.dtype)
sentence_embeddings = (token_embeddings * mask).sum(dim=1) / mask.sum(dim=1).clamp(min=1e-9)
sentence_embeddings = F.normalize(sentence_embeddings.float(), p=2, dim=-1)

query_embedding, document_embeddings = sentence_embeddings[:1], sentence_embeddings[1:]
print(query_embedding @ document_embeddings.T)
```

### موجّهات المهام

يدعم النموذج أوامر مهام اختيارية تُضاف إلى بداية المدخلات (وتُدرج في متوسط التجميع)، على الرغم من أن الأوامر ليست إلزامية ويعمل النموذج أيضاً دونها. وبما أن الإعداد الأمثل يعتمد على المجال الفرعي ومزيج الوسائط، نوصي بتقييم كلا الخيارين (مع أوامر المهام وبدونها) على مهمتك المحددة. يوفّر Sentence Transformers الكتالوج أدناه في `config_sentence_transformers.json`، لذا مرّر `prompt_name` (أو استخدم `encode_query` / `encode_document`، والتي تُخاطب `query` و`document` على التوالي)؛ ومع [AutoModel](/docs/transformers/main/ar/model_doc/auto#transformers.AutoModel)، مرّر الأمر كرسالة `system` في `apply_chat_template` (أو أضفه إلى بداية النص العادي).

```python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("google/embeddinggemma-2")

embeddings = model.encode("How to train a neural network", prompt_name="Classification")
```

| `prompt_name` | موجّه |
|---|---|
| `query`, `Retrieval-query`, `Retrieval`, `Reranking`, `BitextMining`, `SearchQuery` | `task: search result \| query: ` |
| `document`, `Document`, `Retrieval-document` | `title: none \| text: ` |
| `Classification`, `MultilabelClassification` | `task: classification \| query: ` |
| `Clustering` | `task: clustering \| query: ` |
| `CodeRetrieval`, `InstructionRetrieval` | `task: code retrieval \| query: ` |
| `FactChecking` | `task: fact checking \| query: ` |
| `QuestionAnswering` | `task: question answering \| query: ` |
| `STS`, `SentenceSimilarity`, `PairClassification`, `Summarization` | `task: sentence similarity \| query: ` |

### تضمينات ماتريوشكا

يُدرَّب رأس التضمين باستخدام تعلم التمثيل المتروشاكي (Matryoshka Representation Learning)، لذا يمكن تقطيع تضمين ذي 768 بُعدًا إلى بادئة أقصر (`512` أو `256` أو `128`) ثم إعادة تطبيعها. يقلّص هذا حجم الفهرس ويسرّع الاسترجاع مع الحفاظ إلى حد كبير على جودة الترتيب. اقطع الاستعلامات والمستندات إلى *نفس* الأبعاد، واطبع دائمًا بعد التقطيع — في Sentence Transformers، تقطع `truncate_dim` المخرجات المطبَّعة مسبقًا، لذا لم تعد البادئة بطول وحدة.

```python
import torch.nn.functional as F
from sentence_transformers import SentenceTransformer

# truncate_dim can also be set once at load time: SentenceTransformer(..., truncate_dim=256)
model = SentenceTransformer("google/embeddinggemma-2")

queries = ["Which planet is known as the Red Planet?"]
documents = [
    "Venus is often called Earth's twin because of its similar size and proximity.",
    "Mars, known for its reddish appearance, is often referred to as the Red Planet.",
]

query_embeddings = model.encode_query(queries, truncate_dim=256, convert_to_tensor=True)
document_embeddings = model.encode_document(documents, truncate_dim=256, convert_to_tensor=True)

query_embeddings = F.normalize(query_embeddings.float(), p=2, dim=-1)
document_embeddings = F.normalize(document_embeddings.float(), p=2, dim=-1)

# (1, 256) and (2, 256): a 3x smaller index than the full 768 dimensions
print(query_embeddings.shape, document_embeddings.shape)

# the Mars document still ranks first
print(model.similarity(query_embeddings, document_embeddings))
```

```python
import torch
import torch.nn.functional as F
from transformers import AutoModel, AutoTokenizer

model = AutoModel.from_pretrained("google/embeddinggemma-2", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("google/embeddinggemma-2")

sentences = [
    "task: search result | query: Which planet is known as the Red Planet?",
    "title: none | text: Venus is often called Earth's twin because of its similar size and proximity.",
    "title: none | text: Mars, known for its reddish appearance, is often referred to as the Red Planet.",
]
inputs = tokenizer(sentences, padding=True, return_tensors="pt").to(model.device)

with torch.no_grad():
    token_embeddings = model(**inputs).last_hidden_state

mask = inputs["attention_mask"].unsqueeze(-1).to(token_embeddings.dtype)
sentence_embeddings = (token_embeddings * mask).sum(dim=1) / mask.sum(dim=1).clamp(min=1e-9)

# Slice to the first 256 dimensions, then normalize
sentence_embeddings = F.normalize(sentence_embeddings[:, :256].float(), p=2, dim=-1)
print(sentence_embeddings.shape)
# torch.Size([3, 256])

query_embedding, document_embeddings = sentence_embeddings[:1], sentence_embeddings[1:]

# the Mars document still ranks first
print(query_embedding @ document_embeddings.T)
```

## تضمينات متعددة الوسائط

تُرمَّز النصوص والصور والصوتيات والفيديوهات في فضاء متجهي ذي 768 بُعدًا واحدًا، مما يتيح **الاسترجاع عبر الوسائط** (مثل البحث في الصور أو الصوتيات أو الفيديوهات باستخدام استعلام نصي) فضلًا عن **الاسترجاع متعدد الوسائط المركّب** (دمج وسائط متعددة في ترميز واحد للاستعلام أو المستند).

في Sentence Transformers، تُمرَّر المدخلات متعددة الوسائط كقواميس مفاتيحها `"text"` و`"image"` و`"audio"` و`"video"` (حيث يمكن أن تكون كل قيمة عنصراً واحداً أو قائمة من العناصر). عند استخدام [AutoModel](/docs/transformers/main/ar/model_doc/auto#transformers.AutoModel)، قم بتمرير قوائم رسائل بأسلوب المحادثة إلى `processor.apply_chat_template(..., tokenize=True, return_dict=True, return_tensors="pt")`.

### 1. الأنماط الأحادية والاسترجاع بين الأنماط

يمكن تضمين كل نمط (`text`، `image`، `audio`، `video`) بشكل مستقل ومقارنته مباشرةً بأي نمط آخر عبر التشابه الجيبية:

```python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("google/embeddinggemma-2")
IMAGE = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"

# Embed each modality on its own into the shared (768,) space
candidates = model.encode(
    [
        {"text": "A photo of a cat"},
        {"image": IMAGE},
        {"audio": "path/to/audio.wav"},
        {"video": "path/to/video.mp4"},
    ]
)
print(candidates.shape)
# (4, 768)

# Cross-modal retrieval: rank text, image, audio, and video candidates against a text query
query = model.encode_query(["A fluffy cat outdoors"])
print(model.similarity(query, candidates))
# tensor([[...]]) of shape (1, 4)
```

```python
import torch
import torch.nn.functional as F
from transformers import AutoModel, AutoProcessor

model = AutoModel.from_pretrained("google/embeddinggemma-2", device_map="auto")
processor = AutoProcessor.from_pretrained("google/embeddinggemma-2")

IMAGE = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"

conversations = [
    [{"role": "user", "content": [{"type": "text", "text": "A photo of a cat"}]}],
    [{"role": "user", "content": [{"type": "image", "url": IMAGE}]}],
    [{"role": "user", "content": [{"type": "audio", "url": "path/to/audio.wav"}]}],
    [{"role": "user", "content": [{"type": "video", "url": "path/to/video.mp4"}]}],
]

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

with torch.no_grad():
    token_embeddings = model(**inputs).last_hidden_state

mask = inputs["attention_mask"].unsqueeze(-1).to(token_embeddings.dtype)
embeddings = (token_embeddings * mask).sum(dim=1) / mask.sum(dim=1).clamp(min=1e-9)
embeddings = F.normalize(embeddings.float(), p=2, dim=-1)
print(embeddings.shape)
# torch.Size([4, 768])
```

### 2. تضمينات متعددة الوسائط المركبة (عدة وسائط في مدخل واحد)

يمكن دمج عدة أوضاع إدراكية — أو عدة عناصر من نفس الوضع الإدراكي — في **تضمين مشترك واحد**، بما في ذلك التوليفات غير النصية البحتة مثل `image + audio`:

```python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("google/embeddinggemma-2")
IMAGE_1 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
IMAGE_2 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/coco_sample.png"

composed_embeddings = model.encode(
    [
        # text + image
        {"text": "A photo of a cat", "image": IMAGE_1},
        # text + audio
        {"text": "A song", "audio": "path/to/audio.wav"},
        # image + audio (no text required)
        {"image": IMAGE_1, "audio": "path/to/audio.wav"},
        # multiple images + audio + text in one embedding
        {"image": [IMAGE_1, IMAGE_2], "audio": "path/to/audio.wav", "text": "Compare both cats"},
    ]
)
print(composed_embeddings.shape)
# (4, 768)
```

```python
import torch
import torch.nn.functional as F
from transformers import AutoModel, AutoProcessor

model = AutoModel.from_pretrained("google/embeddinggemma-2", device_map="auto")
processor = AutoProcessor.from_pretrained("google/embeddinggemma-2")

IMAGE = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"

conversations = [
    # text + image
    [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "A photo of a cat"},
                {"type": "image", "url": IMAGE},
            ],
        }
    ],
    # text + audio
    [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "A song"},
                {"type": "audio", "url": "path/to/audio.wav"},
            ],
        }
    ],
    # image + audio (no text required)
    [
        {
            "role": "user",
            "content": [
                {"type": "image", "url": IMAGE},
                {"type": "audio", "url": "path/to/audio.wav"},
            ],
        }
    ],
]

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

with torch.no_grad():
    token_embeddings = model(**inputs).last_hidden_state

mask = inputs["attention_mask"].unsqueeze(-1).to(token_embeddings.dtype)
embeddings = (token_embeddings * mask).sum(dim=1) / mask.sum(dim=1).clamp(min=1e-9)
embeddings = F.normalize(embeddings.float(), p=2, dim=-1)
print(embeddings.shape)
# torch.Size([3, 768])
```

### 3. الترتيب التلقائي مقابل العلامات الموضعية اليدوية

عندما لا تظهر رموز محجوزة (`<|image|>`، `<|video|>`، `<|audio|>`) في النص، تُصدر الوسائط بالترتيب الدقيق الذي تظهر فيه مدخلاتها في القاموس أو في `content` لرسالة الدردشة (مباشرة بعد أي موجه مهمة `system`).

لتبديل النص والوسائط في مواضع محددة داخل الجملة، اكتب `<|image|>` أو `<|video|>` أو `<|audio|>` مباشرةً في النص، حيث يتم تعطيل إدراج العلامات الموضعية تلقائيًا لهذا الإدخال، وتُوسَّع كل علامة موضعية بالترتيب مع عناصر الوسائط المُقدَّمة:

```python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("google/embeddinggemma-2")
IMAGE_1 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
IMAGE_2 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/coco_sample.png"

# 1. Automatic ordering: follows the dictionary's key order
#    -> <bos> [prompt] <image_tokens> <text_tokens> <eos>
image_first = model.encode({"image": IMAGE_1, "text": "A photo of a cat"}, prompt_name="document")

#    -> <bos> [prompt] <text_tokens> <image_tokens> <eos>
text_first = model.encode({"text": "A photo of a cat", "image": IMAGE_1}, prompt_name="document")

# 2. Manual placeholders: interleave media at exact positions in the text
#    No extra placeholders are inserted; counts must match the passed media inputs.
interleaved = model.encode(
    {
        "text": "A jacket similar to <|image|> or <|image|> featured in <|audio|>",
        "image": [IMAGE_1, IMAGE_2],
        "audio": "path/to/audio.wav",
    },
    prompt_name="query",
)
```

```python
import torch
import torch.nn.functional as F
from transformers import AutoModel, AutoProcessor

model = AutoModel.from_pretrained("google/embeddinggemma-2", device_map="auto")
processor = AutoProcessor.from_pretrained("google/embeddinggemma-2")

IMAGE_1 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
IMAGE_2 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/coco_sample.png"

# 1. Automatic ordering: follows the content list order after any system prompt
image_first_messages = [
    {"role": "system", "content": "title: none | text: "},
    {
        "role": "user",
        "content": [
            {"type": "image", "url": IMAGE_1},
            {"type": "text", "text": "A photo of a cat"},
        ],
    },
]

# 2. Manual placeholders: interleave media at exact positions in the text
interleaved_messages = [
    {"role": "system", "content": "task: search result | query: "},
    {
        "role": "user",
        "content": [
            {"type": "image", "url": IMAGE_1},
            {"type": "image", "url": IMAGE_2},
            {"type": "audio", "url": "path/to/audio.wav"},
            {"type": "text", "text": "A jacket similar to <|image|> or <|image|> featured in <|audio|>"},
        ],
    },
]

inputs = processor.apply_chat_template(
    [image_first_messages, interleaved_messages],
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

with torch.no_grad():
    token_embeddings = model(**inputs).last_hidden_state

mask = inputs["attention_mask"].unsqueeze(-1).to(token_embeddings.dtype)
embeddings = (token_embeddings * mask).sum(dim=1) / mask.sum(dim=1).clamp(min=1e-9)
embeddings = F.normalize(embeddings.float(), p=2, dim=-1)
```

### 4. الدفعات غير المتجانسة (متعددة الوسائط)

يمكن لدفعة واحدة أن تخلط بين النص العادي، ووسائط أحادية النمط، ومدخلات متعددة الأنماط في تمريرة أمامية واحدة، مما ينتج التضمين نفسه لكل صف كما لو تم ترميز كل عنصر على حدة:

```python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("google/embeddinggemma-2")
IMAGE = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"

embeddings = model.encode(
    [
        "A photo of a cat",
        {"image": IMAGE},
        {"text": "A photo of a cat", "image": IMAGE},
        {"audio": "path/to/audio.wav"},
    ],
    prompt_name="document",
)
print(embeddings.shape)
# (4, 768)
```

```python
import torch
import torch.nn.functional as F
from transformers import AutoModel, AutoProcessor

model = AutoModel.from_pretrained("google/embeddinggemma-2", device_map="auto")
processor = AutoProcessor.from_pretrained("google/embeddinggemma-2")

IMAGE = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"

conversations = [
    [
        {"role": "system", "content": "title: none | text: "},
        {"role": "user", "content": [{"type": "text", "text": "A photo of a cat"}]},
    ],
    [
        {"role": "system", "content": "title: none | text: "},
        {"role": "user", "content": [{"type": "image", "url": IMAGE}]},
    ],
    [
        {"role": "system", "content": "title: none | text: "},
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "A photo of a cat"},
                {"type": "image", "url": IMAGE},
            ],
        },
    ],
    [
        {"role": "system", "content": "title: none | text: "},
        {"role": "user", "content": [{"type": "audio", "url": "path/to/audio.wav"}]},
    ],
]

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

with torch.no_grad():
    token_embeddings = model(**inputs).last_hidden_state

mask = inputs["attention_mask"].unsqueeze(-1).to(token_embeddings.dtype)
embeddings = (token_embeddings * mask).sum(dim=1) / mask.sum(dim=1).clamp(min=1e-9)
embeddings = F.normalize(embeddings.float(), p=2, dim=-1)
print(embeddings.shape)
# torch.Size([4, 768])
```

### 5. تعطيل أبراج الأنماط غير المستخدمة (تحسين الذاكرة)

إذا كانت مهمة العمل الخاصة بك تضمّن مجموعة فرعية فقط من الأنماط (على سبيل المثال، **نص فقط** أو **نص + صور** دون صوت)، يمكنك تجاوز إنشاء الأبراج البصرية أو الصوتية غير المستخدمة وتحميلها عن طريق تعيين `vision_config=None` و/أو `audio_config=None` على الإعدادات. يتم تجاهل أوزان البرج غير المستخدم في نقطة التفتيش بسلاسة دون تحذيرات، مما يُخفض حجم النموذج من 744 مليون إلى 439 مليون معامل دون برج الصوت، أو إلى 271 مليون معامل دون أي من البرجين.

مرّر هذه عبر `config_kwargs` (التي تصل إلى `AutoConfig.from_pretrained`)، وليس عبر `model_kwargs`:

```python
from sentence_transformers import SentenceTransformer

# Text-only deployment (skips both vision and audio towers)
text_model = SentenceTransformer(
    "google/embeddinggemma-2",
    config_kwargs={"vision_config": None, "audio_config": None},
)

# Vision + text deployment (skips audio tower)
vision_text_model = SentenceTransformer(
    "google/embeddinggemma-2",
    config_kwargs={"audio_config": None},
)
```

```python
from transformers import AutoModel

# Text-only deployment (skips both vision and audio towers)
text_model = AutoModel.from_pretrained(
    "google/embeddinggemma-2",
    vision_config=None,
    audio_config=None,
    device_map="auto",
)

# Vision + text deployment (skips audio tower)
vision_text_model = AutoModel.from_pretrained(
    "google/embeddinggemma-2",
    audio_config=None,
    device_map="auto",
)
```

## المعالج

يجمع [EmbeddingGemma2Processor](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Processor) بين مُجزّئ الرموز ومعالج الصور ومستخرج ميزات الصوت ومعالج الفيديو.

> [!TIP]
> بالنسبة إلى المدخلات متعددة الوسائط المُجمَّعة، ننصح بتمرير قواميس لكل عينة عبر **Sentence Transformers** (`model.encode([{"image": ..., "text": ...}, ...])`). للحصول على أقصى قدر من التحكم في ترتيب الوسائط وتناوبها بدقة، قم بإدراج العلامات الموضعية `<|image|>` و`<|video|>` و`<|audio|>` يدوياً في `text`.

### التحكم في ميزانية الرموز البصرية (`max_soft_tokens`)

يتحكم ميزان الرموز الناعمة (`max_soft_tokens`، القيم المدعومة `{70, 140, 280, 560, 1120}`) في دقة وعدد الرموز البصرية المُنتَجة لكل صورة أو إطار فيديو (الافتراضي `280` لكل صورة و`140` لكل إطار فيديو). تقلل القيم الأدنى من طول التسلسل وزمن الاستجابة:

```python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("google/embeddinggemma-2")
IMAGE = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"

image_embedding = model.encode(
    {"image": IMAGE},
    processing_kwargs={"image": {"max_soft_tokens": 70}},
)
```

```python
from transformers import AutoProcessor

processor = AutoProcessor.from_pretrained("google/embeddinggemma-2")
IMAGE = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"

inputs = processor(images=[IMAGE], max_soft_tokens=70, return_tensors="pt")
print(inputs["input_ids"].shape, inputs["pixel_values"].shape)
# torch.Size([1, 67]) torch.Size([1, 630, 768])
```

### التحكم في أخذ عينات من إطارات الفيديو

بشكل افتراضي، [EmbeddingGemma2VideoProcessor](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2VideoProcessor) يعيّن الإطارات بمعدل 1 إطار في الثانية (`fps=1`)، ويحدّ عدد الإطارات في كل مقطع بـ 32 إطاراً (`max_frames=32`، `overflow_strategy="uniform"`)، ويستثني طوابع زمنية للإطارات من الأمر (`add_timestamps=False`). يمكن تجاوز كل معامل في كل استدعاء:

- `fps` (`int | float | None`): معدل الاستهداف للعينة بالفيديو بالوحدات في الثانية. يتطلب `VideoMetadata` يحتوي على `fps` و`duration` صالحين (يتم تعبئتهما تلقائيًا عند فك الترميز من ملف فيديو/رابط). بالنسبة لمصفوفات الإطارات المفكوكة مسبقًا دون بيانات وصفية، يتم تخطي أخذ العينات حسب معدل الإطارات مع إصدار تحذير، ويُطبَّق `max_frames` مباشرة.
- `max_frames` (`int | None`): الحد الأقصى لعدد الإطارات المحفوظة لكل فيديو.
- `overflow_strategy` (`"uniform" | "truncate" | None`): كيفية تقليل الإطارات الزائدة عن `max_frames` (`"uniform"` يعيد أخذ العينات بشكل متساوٍ عبر المقطع؛ `"truncate"` يحتفظ بأول `max_frames` إطار).
- `add_timestamps` (`bool`): ما إذا كان يجب إضافة طابع الوقت `mm:ss` لكل إطار. على عكس `fps`، لا يوجد بديل هنا: إذا قمت بتعيين `add_timestamps=True` لفيديو لا يحتوي على `fps` في بياناته الوصفية، فسيتم رفع خطأ، لأن معدل التخمين سيكتب تسميات `mm:ss` خاطئة في الاستعلام.

```python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("google/embeddinggemma-2")

video_embedding = model.encode(
    {"video": "path/to/video.mp4"},
    processing_kwargs={"video": {"add_timestamps": True, "fps": 2, "max_frames": 16, "overflow_strategy": "truncate"}},
)
```

```python
from transformers import AutoProcessor

processor = AutoProcessor.from_pretrained("google/embeddinggemma-2")

inputs = processor(
    videos=["path/to/video.mp4"],
    add_timestamps=True,
    fps=2,
    max_frames=16,
    overflow_strategy="truncate",
    return_tensors="pt",
)
```

### استدعاءات `processor(...)` المباشرة دون قالب محادثة

في حين أن `processor.apply_chat_template` هو نقطة الدخول الأساسية للمحادثات متعددة الوسائط، يمكن أيضًا استدعاء `processor(...)` مباشرة. عند إهمال `text` (`text=None`)، يتم توليد العناوين الوهمية `<|image|>` و`<|video|>` و`<|audio|>` تلقائيًا لكل عينة في الدفعة:

```python
from transformers import AutoProcessor

processor = AutoProcessor.from_pretrained("google/embeddinggemma-2")

IMAGE = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
AUDIO = "path/to/audio.wav"  # a path, a URL, or a 1-D float array sampled at 16 kHz

# Text only
inputs = processor(text=["task: search result | query: Which planet is the Red Planet?"], return_tensors="pt")

# Media only (text=None): placeholders are synthesized per sample
inputs = processor(images=[IMAGE], return_tensors="pt")
inputs = processor(videos=["path/to/video.mp4"], return_tensors="pt")
inputs = processor(audio=[AUDIO], return_tensors="pt")

# Nested per-sample lists or combined modalities with text=None
inputs = processor(
    images=[[IMAGE, IMAGE], [IMAGE]],
    audio=[[AUDIO], [AUDIO, AUDIO]],
    return_tensors="pt",
)

# Manual placeholders in text for direct processor calls
inputs = processor(text=["<|image|> a photo of a cat"], images=[[IMAGE]], return_tensors="pt")
print(list(inputs.keys()))
# ['input_ids', 'attention_mask', 'pixel_values', 'image_position_ids']
```

## EmbeddingGemma2TextConfig[[transformers.EmbeddingGemma2TextConfig]]

#### transformers.EmbeddingGemma2TextConfig[[transformers.EmbeddingGemma2TextConfig]]

```python
transformers.EmbeddingGemma2TextConfig(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 = 512, intermediate_size: int = 2048, num_hidden_layers: int = 24, num_attention_heads: int = 4, num_key_value_heads: int = 2, 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, pad_token_id: int | None = 0, eos_token_id: int | list[int] | None = 1, bos_token_id: int | None = 2, rope_parameters: dict | None = None, attention_bias: bool = False, attention_dropout: int | float | None = 0.0, sliding_window: int = 512, layer_types: list[str] | None = None, hidden_size_per_layer_input: int = 512, embedding_dim: int = 768)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/configuration_embedding_gemma2.py#L37)

**المعاملات:**

vocab_size (`int`، *اختياري*، القيمة الافتراضية `262144`) : حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة `input_ids`.

hidden_size (`int`، *اختياري*، القيمة الافتراضية `512`) : بُعد التمثيلات المخفية.

intermediate_size (`int`، *اختياري*، القيمة الافتراضية `2048`) : بُعد تمثيلات MLP.

num_hidden_layers (`int`، *اختياري*، القيمة الافتراضية `24`) : عدد الطبقات المخفية في مُفكِّك Transformer.

num_attention_heads (`int`، *اختياري*، القيمة الافتراضية `4`) : عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.

num_key_value_heads (`int`، *اختياري*، القيمة الافتراضية `2`) : هذا هو عدد رؤوس key_value التي يجب استخدامها لتنفيذ Grouped Query Attention. إذا كان `num_key_value_heads=num_attention_heads`، فسيستخدم النموذج Multi Head Attention (MHA)، وإذا كان `num_key_value_heads=1` فسيستخدم النموذج Multi Query Attention (MQA)، وإلا فسيتم استخدام GQA. عند تحويل نقطة تحقق متعددة الرؤوس إلى نقطة تحقق GQA، يجب بناء كل مجموعة من رؤوس key و value عن طريق meanpooling جميع الرؤوس الأصلية داخل تلك المجموعة. لمزيد من التفاصيل، راجع [هذا الورق](https://huggingface.co/papers/2305.13245). إذا لم يتم تحديد القيمة، فستكون القيمة الافتراضية هي `num_attention_heads`.

head_dim (`int`، *اختياري*، القيمة الافتراضية `256`) : بُعد رأس الانتباه. إذا كانت القيمة None، فستكون القيمة الافتراضية هي hidden_size // num_attention_heads

hidden_activation (`str`، *اختياري*، القيمة الافتراضية `gelu_pytorch_tanh`) : دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، `"gelu"`، `"relu"`، `"silu"`، وما إلى ذلك.

max_position_embeddings (`int`، *اختياري*، الافتراضي هو `262144`) : أقصى طول تسلسل قد يُستخدم به هذا النموذج.

initializer_range (`float`، *اختياري*، القيمة الافتراضية `0.02`) : الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.

rms_norm_eps (`float`، *اختياري*، القيمة الافتراضية `1e-06`) : قيمة الإيبسلون المستخدمة في طبقات تطبيع rms.

pad_token_id (`int`، *اختياري*، القيمة الافتراضية `0`) : معرّف الرمز المستخدم للتعبئة في المفردات.

eos_token_id (`Union[int, list[int]]`، *اختياري*، الافتراضي هو `1`) : معرّف الرمز المستخدم لنهاية البث في المفردات.

bos_token_id (`int`، *اختياري*، القيمة الافتراضية `2`) : معرّف الرمز المستخدم لبدء البث في المفردات.

rope_parameters (`dict`, *اختياري*) : قاموس يحتوي على معاملات التهيئة لتضمينات RoPE. يجب أن يحتوي القاموس على قيمة لـ `rope_theta`، ومعاملات اختيارية تُستخدم للتصعيد في حال رغبتك في استخدام RoPE مع `max_position_embeddings` أطول.

attention_bias (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي.

attention_dropout (`Union[int, float]`، *اختياري*، القيمة الافتراضية `0.0`) : نسبة dropout لاحتمالات الانتباه.

sliding_window (`int`, *اختياري*, القيمة الافتراضية 512) : نصف القطر الشامل للنافذة المنزلقة ثنائية الاتجاه: يتعامل طبقة `sliding_attention` مع كل موضع يحقق الشرط `abs(q_idx - kv_idx) <= sliding_window`. وهو نصف قطر وليس عرضًا أحادي الجانب كما هو مُعدّل في نماذج Gemma السببية، لأن القناع هنا متماثل، لذا فإن القيمة الافتراضية هي نصف النافذة بعرض 1024 التي تحددها النسخة المرجعية.

layer_types (`list[str]`، *اختياري*) : قائمة تُقرن صراحةً كل فهرس طبقة بنوعها. إذا لم تُقدَّم، فسيتم توليدها تلقائيًا بناءً على قيم الإعداد.

hidden_size_per_layer_input (`int`, *optional*, defaults to 512) : Dimensionality of the per-layer (PLE) residual signal. EmbeddingGemma 2 uses *projection-only* PLE: the signal is derived from `inputs_embeds` alone, with no auxiliary token lookup table.

embedding_dim (`int`، *اختياري*، القيمة الافتراضية 768) : بُعد التضمين الجملي الذي تنتجه `embedding_projection`.

هذه فئة الإعدادات المخزنة لإعدادات نموذج EmbeddingGemma2Model. تُستخدم لاستحداث نموذج Embedding Gemma2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ [google/embeddinggemma-2](https://huggingface.co/google/embeddinggemma-2)

ترث كائنات الإعداد من [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) لمزيد من المعلومات.

## EmbeddingGemma2Config[[transformers.EmbeddingGemma2Config]]

#### transformers.EmbeddingGemma2Config[[transformers.EmbeddingGemma2Config]]

```python
transformers.EmbeddingGemma2Config(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.embedding_gemma2.configuration_embedding_gemma2.EmbeddingGemma2TextConfig | dict[str, typing.Any] | None = None, vision_config: transformers.configuration_utils.PreTrainedConfig | dict[str, typing.Any] | None = None, audio_config: transformers.configuration_utils.PreTrainedConfig | 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)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/configuration_embedding_gemma2.py#L139)

**المعاملات:**

text_config (`EmbeddingGemma2TextConfig`، *اختياري*) : إعدادات العمود الفقري للنص.

vision_config (`PreTrainedConfig` أو `dict`، *اختياري*) : إعدادات برج الرؤية. يُعاد استخدامها حرفيًا من Gemma 4؛ حيث يتم تحديد البرج نفسه وقت التشغيل عبر `AutoModel`.

audio_config (`PreTrainedConfig` أو `dict`، *اختياري*) : إعدادات برج الصوت. يُعاد استخدامه حرفيًا من Gemma 4؛ يتم حل البرج نفسه وقت التشغيل من خلال `AutoModel`.

boi_token_id (`int`، *اختياري*، القيمة الافتراضية 255999) : فهرس رمز بداية الصورة (begin-of-image token) المستخدم لتغليف موجه الصورة.

eoi_token_id (`int`، *اختياري*، القيمة الافتراضية 258882) : فهرس رمز نهاية الصورة (end-of-image token) المستخدم لتغليف موجه الصورة.

image_token_id (`int`، *اختياري*، القيمة الافتراضية `258880`) : فهرس رمز الصورة المستخدم كحقل محجوز للصور المدخلة.

video_token_id (`int`، *اختياري*، القيمة الافتراضية `258884`) : فهرس رمز الفيديو المستخدم كحقل محجوز للفيديوهات المدخلة.

boa_token_id (`int`، *اختياري*، القيمة الافتراضية 256000) : فهرس رمز بداية الصوت (begin-of-audio token) المستخدم لتغليف موجه الصوت.

eoa_token_index (`int`، *اختياري*، القيمة الافتراضية 258883) : فهرس رمز نهاية الصوت (end-of-audio token) المستخدم لتغليف موجه الصوت.

audio_token_id (`int`، *اختياري*، القيمة الافتراضية `258881`) : فهرس رمز الصوت المستخدم كحقل محجوز للصوت المُدخل.

initializer_range (`float`، *اختياري*، القيمة الافتراضية `0.02`) : الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.

هذه فئة الإعدادات المخزنة لإعدادات نموذج EmbeddingGemma2Model. تُستخدم لاستحداث نموذج Embedding Gemma2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ [google/embeddinggemma-2](https://huggingface.co/google/embeddinggemma-2)

ترث كائنات الإعداد من [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) لمزيد من المعلومات.

## EmbeddingGemma2VideoProcessor[[transformers.EmbeddingGemma2VideoProcessor]]

#### transformers.EmbeddingGemma2VideoProcessor[[transformers.EmbeddingGemma2VideoProcessor]]

```python
transformers.EmbeddingGemma2VideoProcessor(**kwargs: *<class 'transformers.models.embedding_gemma2.video_processing_embedding_gemma2.EmbeddingGemma2VideoProcessorKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/video_processing_embedding_gemma2.py#L176)

**المعاملات:**

do_convert_rgb (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب تحويل الصورة إلى RGB.

do_resize (`bool`، *kwargs*، *اختياري*، الافتراضي هو `True`) : ما إذا كان سيتم تغيير حجم الصورة.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*، القيمة الافتراضية `None`) : يصف الأبعاد القصوى للمدخلات إلى النموذج.

default_to_square (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كان الحجم من نوع عدد صحيح.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`، *kwargs*، القيمة الافتراضية `3`) : مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum `PILImageResampling`. لا يؤثر إلا إذا كانت قيمة `do_resize` هي `True`.

do_rescale (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إعادة تحجيم الصورة.

rescale_factor (`float`، *kwargs*، *اختياري*، القيمة الافتراضية هي `0.00392156862745098`) : عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كان `do_rescale` مضبوطاً على `True`.

do_normalize (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم تطبيع الصورة.

image_mean (`Union[float, list[float], tuple[float, ...]]`، *kwargs*، *اختياري*، القيمة الافتراضية `[0.0, 0.0, 0.0]`) : متوسط الصورة المستخدم للتطبيع. لا يكون له تأثير إلا إذا تم تعيين `do_normalize` إلى `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`، *kwargs*، *اختياري*، القيمة الافتراضية `[1.0, 1.0, 1.0]`) : الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين `do_normalize` إلى `True`.

do_center_crop (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب قص الصورة من المنتصف.

do_pad (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إضافة حشوة إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*) : حجم الصورة الناتجة بعد تطبيق `center_crop`.

data_format (`Union[str, ~image_utils.ChannelDimension]`، *kwargs*، *اختياري*) : يُدعم `ChannelDimension.FIRST` فقط. أُضيف من أجل التوافق مع المعالجات البطيئة.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`، *kwargs*، *اختياري*) : تنسيق بُعد القناة للصورة المدخلة. إذا لم يتم ضبطه، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي: - `"channels_first"` أو `ChannelDimension.FIRST`: صورة بتنسيق (num_channels, height, width). - `"channels_last"` أو `ChannelDimension.LAST`: صورة بتنسيق (height, width, num_channels). - `"none"` أو `ChannelDimension.NONE`: صورة بتنسيق (height, width).

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم ضبطه، يُستنتج الجهاز من مقاطع الفيديو المدخلة.

do_sample_frames (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب أخذ عينات من الإطارات من الفيديو قبل المعالجة أم معالجة الفيديو بالكامل.

video_metadata (`Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None]`, *kwargs*) : بيانات وصفية للفيديو تتضمن معلومات عن المدة الإجمالية، ومعدل الإطارات في الثانية (fps)، وإجمالي عدد الإطارات. تُستخدم هذه البيانات لاختيار إطارات من الفيديو أو لحساب الطوابع الزمنية. لا تقم بتمرير أي بيانات وصفية إلا إذا كنت تحاول فك ترميز الفيديو يدوياً قبل المعالجة.

fps (`Annotated[int | float | None, None]`، *kwargs*، القيمة الافتراضية `1`) : عدد الإطارات المستهدفة التي يجب أخذ عينات منها في الثانية الواحدة عندما يكون `do_sample_frames=True`.

num_frames (`Annotated[int | None, None]`، *kwargs*) : الحد الأقصى لعدد الإطارات التي يجب أخذها كعينة عند تعيين `do_sample_frames=True`.

return_metadata (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان يجب إرجاع بيانات وصفية للفيديو أم لا. بيانات الوصفية للفيديو هي كائن يحتوي على معلومات حول مدة الفيديو، ومعدل الإطارات، وخلفية فك الترميز، وما إلى ذلك.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : إذا تم ضبطه، فسيُرجع تينسورات من إطار عمل محدد. القيم المقبولة هي: - `'pt'`: يُرجع كائنات `torch.Tensor` من PyTorch. - `'np'`: يُرجع كائنات `np.ndarray` من NumPy.

patch_size (`int`، *kwargs*، *اختياري*) : حجم كل رقعة صورة بالبكسلات.

max_soft_tokens (`int`، *kwargs*، *اختياري*) : الحد الأقصى لعدد الرموز الناعمة (البصرية) لكل إطار فيديو. يجب أن يكون أحد القيم {70، 140، 280، 560، 1120}.

pooling_kernel_size (`int`، *kwargs*، *اختياري*) : حجم نواة التجميع المكاني المطبّق بعد تقطيع البقع.

add_timestamps (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إضافة بادئة لكل إطار في توسيع عنصر نائب الفيديو بطابعه الزمني `mm:ss`. يتطلب `VideoMetadata` مع `fps` صالح، حيث لا يمكن استنتاج الطوابع الزمنية من الإطارات المُفكَّكة مسبقًا.

max_frames (`int`، *kwargs*، *اختياري*) : الحد الأقصى لعدد الإطارات التي سيتم أخذ عينات منها. إذا تم ضبطه، فسيتم إعادة أخذ عينات الفهارس المُختارة بشكل موحد لتناسب الميزانية المحددة.

overflow_strategy (`str`، *kwargs*، *اختياري*) : الاستراتيجية المستخدمة لخفض العدد الإجمالي للأطارات المُستخرجة حتى تتناسب مع الميزانية. يمكن ضبطها فقط على "uniform" أو "truncate". تُطبَّق بعد الاستخراج القائم على معدل الإطارات في الثانية، وبشكل مستقل عندما يكون الاستخراج القائم على معدل الإطارات في الثانية معطلاً أو غير قابل للتطبيق.

load_audio_from_video (`bool`، *kwargs*، *اختياري*) : ما إذا كان سيتم تحميل المسار الصوتي لفيديو الإدخال أم لا.

- ****kwargs** ([ProcessingKwargs](/docs/transformers/main/ar/main_classes/processors#transformers.ProcessingKwargs)، *اختياري*) : خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

ينشئ معالج فيديو EmbeddingGemma2VideoProcessor.

#### preprocess[[transformers.EmbeddingGemma2VideoProcessor.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.embedding_gemma2.video_processing_embedding_gemma2.EmbeddingGemma2VideoProcessorKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/video_processing_embedding_gemma2.py#L240)

**المعاملات:**

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]]]`) : الفيديو الذي سيتم معالجته مسبقًا. يتوقع إدخال فيديو واحد أو دفعة من الفيديوهات بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر فيديوهات بقيم بكسل بين 0 و1، فاضبط `do_rescale=False`.

do_convert_rgb (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تحويل الصورة إلى RGB.

do_resize (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تغيير حجم الصورة.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : يصف الأبعاد القصوى للمدخلات إلى النموذج.

default_to_square (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كان الحجم عددًا صحيحًا.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum `PILImageResampling`. لا يؤثر إلا إذا كان `do_resize` مضبوطاً على `True`.

do_rescale (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إعادة تحجيم الصورة.

rescale_factor (`float`، *kwargs*، *اختياري*) : معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كان `do_rescale` مضبوطًا على `True`.

do_normalize (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تطبيع الصورة.

image_mean (`Union[float, list[float], tuple[float, ...]]`، *kwargs*، *اختياري*) : متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين `do_normalize` إلى `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`، *kwargs*، *اختياري*) : الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين `do_normalize` إلى `True`.

do_center_crop (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب قص الصورة من المنتصف.

do_pad (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إضافة حشوة إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*) : حجم الصورة الناتجة بعد تطبيق `center_crop`.

data_format (`Union[str, ~image_utils.ChannelDimension]`، *kwargs*، *اختياري*) : يُدعم `ChannelDimension.FIRST` فقط. أُضيف من أجل التوافق مع المعالجات البطيئة.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`، *kwargs*، *اختياري*) : تنسيق بُعد القناة للصورة المدخلة. إذا لم يتم ضبطه، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي: - `"channels_first"` أو `ChannelDimension.FIRST`: صورة بتنسيق (num_channels, height, width). - `"channels_last"` أو `ChannelDimension.LAST`: صورة بتنسيق (height, width, num_channels). - `"none"` أو `ChannelDimension.NONE`: صورة بتنسيق (height, width).

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم ضبطه، يُستنتج الجهاز من مقاطع الفيديو المدخلة.

do_sample_frames (`bool`، *kwargs*، *اختياري*) : ما إذا كان سيتم أخذ عينات من الإطارات من الفيديو قبل المعالجة أم معالجة الفيديو بالكامل.

video_metadata (`Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None]`, *kwargs*) : بيانات وصفية للفيديو تتضمن معلومات عن المدة الإجمالية، ومعدل الإطارات في الثانية (fps)، وإجمالي عدد الإطارات. تُستخدم هذه البيانات لاختيار إطارات من الفيديو أو لحساب الطوابع الزمنية. لا تقم بتمرير أي بيانات وصفية إلا إذا كنت تحاول فك ترميز الفيديو يدوياً قبل المعالجة.

fps (`Annotated[int | float | None, None]`، *kwargs*) : عدد الإطارات المستهدفة التي يجب أخذ عينات منها في الثانية الواحدة عندما يكون `do_sample_frames=True`.

num_frames (`Annotated[int | None, None]`، *kwargs*) : الحد الأقصى لعدد الإطارات التي يجب أخذها كعينة عند تعيين `do_sample_frames=True`.

return_metadata (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إرجاع بيانات وصفية للفيديو أم لا. بيانات الوصفية للفيديو هي كائن يحتوي على معلومات حول مدة الفيديو، ومعدل الإطارات، وخلفية فك الترميز، وما إلى ذلك.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : تُرجع توتنرات مكدّسة إذا كان الإعداد `'pt'`، وإلا تُرجع قائمة من التوتنرات.

patch_size (`int`، *kwargs*، *اختياري*) : حجم كل رقعة صورة بالبكسلات.

max_soft_tokens (`int`، *kwargs*، *اختياري*) : الحد الأقصى لعدد الرموز الناعمة (البصرية) لكل إطار فيديو. يجب أن يكون أحد القيم {70، 140، 280، 560، 1120}.

pooling_kernel_size (`int`، *kwargs*، *اختياري*) : حجم نواة التجميع المكاني المطبّق بعد تقطيع البقع.

add_timestamps (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إضافة بادئة لكل إطار في توسيع عنصر نائب الفيديو بطابعه الزمني `mm:ss`. يتطلب `VideoMetadata` مع `fps` صالح، حيث لا يمكن استنتاج الطوابع الزمنية من الإطارات المُفكَّكة مسبقًا.

max_frames (`int`، *kwargs*، *اختياري*) : الحد الأقصى لعدد الإطارات التي سيتم أخذ عينات منها. إذا تم ضبطه، فسيتم إعادة أخذ عينات الفهارس المُختارة بشكل موحد لتناسب الميزانية المحددة.

overflow_strategy (`str`، *kwargs*، *اختياري*) : الاستراتيجية المستخدمة لخفض العدد الإجمالي للأطارات المُستخرجة حتى تتناسب مع الميزانية. يمكن ضبطها فقط على "uniform" أو "truncate". تُطبَّق بعد الاستخراج القائم على معدل الإطارات في الثانية، وبشكل مستقل عندما يكون الاستخراج القائم على معدل الإطارات في الثانية معطلاً أو غير قابل للتطبيق.

load_audio_from_video (`bool`، *kwargs*، *اختياري*) : ما إذا كان سيتم تحميل المسار الصوتي لفيديو الإدخال أم لا.

**يعيد:** `~image_processing_base.BatchFeature`

- **data** (`dict`) -- قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب __call__ ('pixel_values'، وما إلى ذلك).
- **tensor_type** (`Union[None, str, TensorType]`، *اختياري*) -- يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.

## EmbeddingGemma2Processor[[transformers.EmbeddingGemma2Processor]]

#### transformers.EmbeddingGemma2Processor[[transformers.EmbeddingGemma2Processor]]

```python
transformers.EmbeddingGemma2Processor(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)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/processing_embedding_gemma2.py#L106)

**المعاملات:**

feature_extractor (*Gemma4AudioFeatureExtractor*) : مُستخرج الميزات هو مدخل مطلوب.

image_processor (*Gemma4ImageProcessor*) : مُعالج الصور هو مدخل مطلوب.

tokenizer (*tokenizer_class*) : مُجزِّئ النص (tokenizer) هو مدخل مطلوب.

video_processor (*EmbeddingGemma2VideoProcessor*) : مُعالج الفيديو هو مدخل مطلوب.

chat_template (*str*) : قالب جينجا لتحويل قوائم الرسائل في المحادثة إلى نص قابل للتحويم.

image_seq_length (*int*، *optional*، القيمة الافتراضية 280) : عدد الرموز الناعمة لكل صورة المستخدمة لتوسيع العنصر البديل.

audio_seq_length (*int*، *optional*، القيمة الافتراضية 750) : الحد الأقصى لعدد رموز الصوت الناعمة لكل مقطع صوتي. يعمل كحد أقصى عند حساب أعداد رموز الصوت الديناميكية.

audio_ms_per_token (*int*، *اختياري*، القيمة الافتراضية 40) : عدد مللي ثانية من الصوت لكل رمز ناعم في المخرجات. يُستخدم لحساب عدد رموز موضع الصوت ديناميكيًا على النحو التالي `ceil(duration_ms / audio_ms_per_token)`. القيمة الافتراضية 40 مستمدة من اختزال الزمن بنسبة 4× في عملية الالتفاف SSCP على إطارات مدتها 10 مللي ثانية.

ينشئ EmbeddingGemma2Processor الذي يجمع مستخرج الميزات ومعالج الصور ومجزّئ الرموز ومعالج الفيديو في معالج واحد.

يوفر [*EmbeddingGemma2Processor*] جميع وظائف [*Gemma4AudioFeatureExtractor*] و[*Gemma4ImageProcessor*] و[*tokenizer_class*] و[*EmbeddingGemma2VideoProcessor*]. راجع [*~Gemma4AudioFeatureExtractor*] و[*~Gemma4ImageProcessor*] و[*~tokenizer_class*] و[*~EmbeddingGemma2VideoProcessor*] لمزيد من المعلومات.

#### __call__[[transformers.EmbeddingGemma2Processor.__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, audio_from_video_indices: list[int] | None = None, **kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L2439)

**المعاملات:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`, *اختياري*) : الصورة التي سيتم معالجتها مسبقًا. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صورًا بقيم بكسل بين 0 و1، فاضبط `do_rescale=False`.

text (`Union[str, list[str], list[list[str]]]`، *اختياري*) : التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصًا أو قائمة من النصوص (نص مُجزَّأ مسبقًا). إذا مررت مدخلات مُجزَّأة مسبقًا، فاضبط `is_split_into_words=True` لتجنب الغموض مع المدخلات المُجمَّعة في دفعات.

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]]]`، *اختياري*) : الفيديو المراد معالجته مسبقًا. يتوقع إدخال فيديو واحد أو دفعة من الفيديوهات بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر فيديوهات بقيم بكسل بين 0 و1، فاضبط `do_rescale=False`.

audio (`Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]`، *اختياري*) : الصوت أو مجموعة الأصوات التي يجب تجهيزها. يمكن أن يكون كل صوت مصفوفة NumPy أو متجه PyTorch. في حالة استخدام مصفوفة NumPy/متجه PyTorch، يجب أن يكون شكل كل صوت (C, T)، حيث C هو عدد القنوات، وT هو طول العينة للصوت.

audio_from_video_indices (`list[int]`، *اختياري*) : قائمة تصف مصدر كل خانة صوت حيث - `None` -> صوت مستقل غير مرتبط بأي مسار فيديو - `i`    -> صوت مستخرج من videos[i]

return_tensors (`str` أو [TensorType](/docs/transformers/main/ar/internal/file_utils#transformers.TensorType)، *اختياري*) : إذا تم تعيينه، فسيُرجع تينسورات من إطار عمل محدد. القيم المقبولة هي:  - `'pt'`: يُرجع كائنات `torch.Tensor` من PyTorch. - `'np'`: يُرجع كائنات `np.ndarray` من NumPy.

- ****kwargs** ([ProcessingKwargs](/docs/transformers/main/ar/main_classes/processors#transformers.ProcessingKwargs)، *اختياري*) : خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

## EmbeddingGemma2PreTrainedModel[[transformers.EmbeddingGemma2PreTrainedModel]]

#### transformers.EmbeddingGemma2PreTrainedModel[[transformers.EmbeddingGemma2PreTrainedModel]]

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

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/modeling_embedding_gemma2.py#L442)

**المعاملات:**

config ([PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.EmbeddingGemma2PreTrainedModel.forward]]

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

قيمة وهمية لمسار منقّط (مثل `torch.float32`): سلاسل الوصول إلى السمات، والاستدعاءات تتصرف كمُزيّنات مُمرِّرة، و`repr` هو المسار المنقّط، وعند استخدامه كصنف أساسي يُستبدل بصنف أساسي من نوع `type` عادي (بموجب `__mro_entries__` في PEP 560)، بحيث تحتفظ الأصناف الفرعية الحقيقية بفئة ميتا عادية، وتقرأ `inspect.signature` دالة `__init__` الحقيقية الخاصة بها بدلاً من تلك الموجودة في القيمة الوهمية.

## EmbeddingGemma2TextModel[[transformers.EmbeddingGemma2TextModel]]

#### transformers.EmbeddingGemma2TextModel[[transformers.EmbeddingGemma2TextModel]]

```python
transformers.EmbeddingGemma2TextModel(config: EmbeddingGemma2TextConfig)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/modeling_embedding_gemma2.py#L477)

**المعاملات:**

config ([EmbeddingGemma2TextConfig](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2TextConfig)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

الهيكل النصي الأساسي لنموذج EmbeddingGemma 2. يتولى هذا الهيكل `embedding_projection` الذي يُحوّل الحالات المخفية النهائية إلى `config.embedding_dim`، بحيث لا يحتاج النموذج المركّب إلى تجاوز `forward`.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.EmbeddingGemma2TextModel.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/modeling_embedding_gemma2.py#L510)

**المعاملات:**

input_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

attention_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. قيم القناع المختارة من `[0, 1]`: - 1 للرموز التي **ليست مقنّعة**، - 0 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

position_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها من النطاق `[0, config.n_positions - 1]`.  [ما هي معرّفات المواضع؟](../glossary#position-ids)

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير `input_ids`، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس `input_ids` إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.

**يعيد:** [BaseModelOutput](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutput) أو `tuple(torch.Tensor)`

[BaseModelOutput](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutput) أو مجموعة مرتبة من `torch.Tensor` (في حال تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([EmbeddingGemma2Config](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Config)) والمدخلات.

تتجاوز طريقة [EmbeddingGemma2TextModel](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2TextModel) الأمامية الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

## EmbeddingGemma2Model[[transformers.EmbeddingGemma2Model]]

#### transformers.EmbeddingGemma2Model[[transformers.EmbeddingGemma2Model]]

```python
transformers.EmbeddingGemma2Model(config: EmbeddingGemma2Config)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/modeling_embedding_gemma2.py#L633)

**المعاملات:**

config ([EmbeddingGemma2Config](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Config)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج EmbeddingGemma 2: عمود فقري للرؤية، وعمود فقري للصوت، وعمود فقري للنص، تُسقط حالاتها المخفية النهائية إلى `config.text_config.embedding_dim`. يُصمَّم ليُغلَّف بواسطة تجميع المتوسط والتطبيع الخاص بـ SentenceTransformers.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.EmbeddingGemma2Model.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, inputs_embeds: typing.Optional[torch.Tensor] = 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, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/modeling_embedding_gemma2.py#L739)

**المعاملات:**

input_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`، *اختياري*) : المصفوفات المتناظرة مع الصور المدخلة. يمكن الحصول على قيم البكسل باستخدام [Gemma4ImageProcessor](/docs/transformers/main/ar/model_doc/gemma4#transformers.Gemma4ImageProcessor). راجع [Gemma4ImageProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل ([EmbeddingGemma2Processor](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Processor) يستخدم [Gemma4ImageProcessor](/docs/transformers/main/ar/model_doc/gemma4#transformers.Gemma4ImageProcessor) لمعالجة الصور).

pixel_values_videos (`torch.Tensor` من الشكل `(batch_size, num_frames, num_channels, frame_size, frame_size)`، *اختياري*) : المصفوفات المقابلة لفيديو الإدخال. يمكن الحصول على قيم البكسل للفيديوهات باستخدام [EmbeddingGemma2VideoProcessor](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2VideoProcessor). راجع [EmbeddingGemma2VideoProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2VideoProcessor.__call__) للتفاصيل ([EmbeddingGemma2Processor](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Processor) يستخدم [EmbeddingGemma2VideoProcessor](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2VideoProcessor) لمعالجة الفيديوهات).

input_features (`torch.Tensor` من الشكل `(batch_size, sequence_length, feature_dim)`، *اختياري*) : المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام [Gemma4AudioFeatureExtractor](/docs/transformers/main/ar/model_doc/gemma4#transformers.Gemma4AudioFeatureExtractor). راجع [Gemma4AudioFeatureExtractor.__call__()](/docs/transformers/main/ar/model_doc/gemma4#transformers.Gemma4AudioFeatureExtractor.__call__) للتفاصيل ([EmbeddingGemma2Processor](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Processor) يستخدم [Gemma4AudioFeatureExtractor](/docs/transformers/main/ar/model_doc/gemma4#transformers.Gemma4AudioFeatureExtractor) لمعالجة الأصوات).

attention_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. قيم القناع المختارة من `[0, 1]`: - 1 للرموز التي **ليست مقنّعة**، - 0 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

input_features_mask (`torch.Tensor` من الشكل `(num_images, seq_length)`) : قناع الانتباه للصوت المدخل.

position_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها من النطاق `[0, config.n_positions - 1]`.  [ما هي معرّفات المواضع؟](../glossary#position-ids)

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير `input_ids`، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس `input_ids` إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.

image_position_ids (`torch.LongTensor` من الشكل `(batch_size, max_patches, 2)`، *اختياري*) : إحداثيات مواضع البقع ثنائية الأبعاد من معالج الصور، حيث يشير `(-1, -1)` إلى الحشو. يُمرَّر إلى مُشفِّر الرؤية لحساب تضمين الموضع.

video_position_ids (`torch.LongTensor` من الشكل `(total_num_frames, max_patches, 2)`، *اختياري*) : إحداثيات مواضع البقع ثنائية الأبعاد من معالج الفيديو، حيث يشير `(-1, -1)` إلى الحشو. يُمرَّر إلى مُشفِّر الرؤية لحساب تضمين الموضع.

num_frames_per_video (`torch.LongTensor` من الشكل `(num_videos,)`، *اختياري*) : عدد الإطارات التابعة لكل فيديو. مطلوب دائمًا عند تمرير `pixel_values_videos`، نظرًا لأن إطارات جميع الفيديوهات مدمجة على محور واحد.

**يعيد:** `EmbeddingGemma2ModelOutput` أو `tuple(torch.Tensor)`

`EmbeddingGemma2ModelOutput` أو مجموعة مرتبة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) وتتضمن عناصر مختلفة اعتماداً على الإعداد ([EmbeddingGemma2Config](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Config)) والمدخلات.

تتجاوز طريقة [EmbeddingGemma2Model](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Model) الخاصة بالتقديم (forward) الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
- **image_hidden_states** (`torch.Tensor`، *اختياري*) -- `torch.Tensor` بحجم `(batch_size, num_images, sequence_length, hidden_size)`. image_hidden_states الناتجة عن النموذج من قِبل مُشفِّر الرؤية بعد إسقاط حالة الإخفاء الأخيرة.
- **audio_hidden_states** (`torch.Tensor`، *اختياري*) -- `torch.Tensor` بحجم `(batch_size, num_images, sequence_length, hidden_size)`. audio_hidden_states الناتجة عن النموذج من خلال مُشفِّر الصوت وبعد إسقاط الحالة المخفية الأخيرة.

#### get_image_features[[transformers.EmbeddingGemma2Model.get_image_features]]

```python
get_image_features(pixel_values: Tensor, image_position_ids: typing.Optional[torch.LongTensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/modeling_embedding_gemma2.py#L662)

**المعاملات:**

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المتناظرة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [Gemma4ImageProcessor](/docs/transformers/main/ar/model_doc/gemma4#transformers.Gemma4ImageProcessor). راجع [Gemma4ImageProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل ([EmbeddingGemma2Processor](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Processor) يستخدم [Gemma4ImageProcessor](/docs/transformers/main/ar/model_doc/gemma4#transformers.Gemma4ImageProcessor) لمعالجة الصور).

image_position_ids (`torch.LongTensor` من الشكل `(batch_size, max_patches, 2)`، *اختياري*) : مواقع البقع كإحداثيات (x, y) في الصورة. تُشار البقع المعبّأة بـ (-1, -1).

**يعيد:** [BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو `tuple(torch.Tensor)`

[BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([EmbeddingGemma2Config](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Config)) والمدخلات.

يُرجع الحالة المخفية الأخيرة من نموذج الرؤية إلى فضاء نموذج اللغة.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **pooler_output** (`torch.Tensor` من الشكل `(batch_size, hidden_size)`) -- حالة الطبقة المخفية الأخيرة للرمز الأول في التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. يتم تدريب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

#### get_video_features[[transformers.EmbeddingGemma2Model.get_video_features]]

```python
get_video_features(pixel_values_videos: Tensor, video_position_ids: typing.Optional[torch.LongTensor] = None, num_frames_per_video: typing.Optional[torch.LongTensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/modeling_embedding_gemma2.py#L880)

**المعاملات:**

pixel_values_videos (`torch.Tensor` من الشكل `(total_num_frames, max_patches, patch_pixels)`) : إطارات كل فيديو في الدفعة، مدمجة على محور الإطار بدلاً من تجميعها على محور فيديو منفصل، بحيث يمكن تجميع فيديوهات بطول مختلف معاً في دفعة واحدة.

video_position_ids (`torch.LongTensor` من الشكل `(total_num_frames, max_patches, 2)`، *اختياري*) : إحداثيات مواضع البقع ثنائية الأبعاد من معالج الفيديو، حيث يشير `(-1, -1)` إلى الحشو. يُمرَّر إلى مُشفِّر الرؤية لحساب تضمين الموضع.

num_frames_per_video (`torch.LongTensor` من الشكل `(num_videos,)`) : عدد الإطارات التابعة لكل فيديو، ويُستخدم لإعادة تقسيم تسلسل الإطارات المسطّح لكل فيديو على حدة.

**يعيد:** [BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو `tuple(torch.Tensor)`

[BaseModelOutputWithPooling](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([EmbeddingGemma2Config](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Config)) والمدخلات.

يُرجع الحالة المخفية الأخيرة من مُشفِّر الرؤية إلى فضاء نموذج اللغة.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **pooler_output** (`torch.Tensor` من الشكل `(batch_size, hidden_size)`) -- حالة الطبقة المخفية الأخيرة للرمز الأول في التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. يتم تدريب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

#### get_audio_features[[transformers.EmbeddingGemma2Model.get_audio_features]]

```python
get_audio_features(input_features: Tensor, input_features_mask: Tensor, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/embedding_gemma2/modeling_embedding_gemma2.py#L855)

**المعاملات:**

input_features (`torch.Tensor` من الشكل `(num_images, seq_length, num_features)`) : المصفوفات المقابلة للصوت المدخل.

input_features_mask (`torch.Tensor` من الشكل `(num_images, seq_length)`) : قناع الانتباه للصوت المدخل.

**يعيد:** `EmbeddingGemma2AudioModelOutput` أو `tuple(torch.Tensor)`

`EmbeddingGemma2AudioModelOutput` أو مجموعة مرتبة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) وتتضمن عناصر مختلفة اعتمادًا على الإعداد ([EmbeddingGemma2Config](/docs/transformers/main/ar/model_doc/embedding_gemma2#transformers.EmbeddingGemma2Config)) والمدخلات.

يُرجع الحالة المخفية الأخيرة من مُشفِّر الصوت إلى فضاء نموذج اللغة.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **pooler_output** (`torch.Tensor` من الشكل `(batch_size, hidden_size)`) -- حالة الطبقة المخفية الأخيرة للرمز الأول في التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. يتم تدريب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
- **attention_mask** (`torch.BoolTensor`، *اختياري*) -- متغير من نوع torch.BoolTensor بأبعاد `(batch_size, num_frames)`. القيمة True للمواقع الصالحة، وFalse للمواقع المعبأة.

