Transformers documentation
EmbeddingGemma2
تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-10-06.
EmbeddingGemma2
نظرة عامة
EmbeddingGemma 2 هو نموذج تضمين متعدد الوسائط من Google مبني على بنية Gemma 4. يقوم بتشفير النص والصور والصوت والفيديو—سواءً بشكل منفصل أو مجمعة ضمن نفس المدخل—إلى فضاء متجهي كثيف مشترك ذي 768 بُعدًا، من أجل الاسترجاع عبر الوسائط، والتشابه الدلالي، والتجميع، والتصنيف.
الميزات الرئيسية:
- فضاء متجهي متعدد الوسائط موحّد. تُسقط أبراج الرؤية (Gemma4VisionModel) والصوت (Gemma4AudioModel) إلى مُشفِّر نص ثنائي الاتجاه (EmbeddingGemma2TextModel) يمزج الانتباه الكامل مع انتباه النافذة المنزلقة باستخدام التضمينات لكل طبقة (PLE). أي نمط واحد (
text،image،audio،video) أو أي تركيبة من الأنماط (image + text،text + audio،image + audio، صور متعددة، نص ووسائط متبادلة) تُحوَّل إلى تضمين واحد قابل للمقارنة. - تعلّم التمثيل المتروشاكي (MRL). يُخرج EmbeddingGemma2Model تمثيلات الرموز المُساقطة إلى
embedding_dim(768) عبر رأس خطي. يمكن تقصير التضمينات إلى بادئة أصغر (512أو256أو128) وإعادة تطبيعها مع فقدان جودة ضئيل. - ميزانيات مرئية وفيديو قابلة للضبط. يتيح لك 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. تستخدم الأمثلة أدناه المعرّف google/embeddinggemma-2.
أمثلة على الاستخدام
يتم الحصول على تضمين جملة أو تضمين متعدد الوسائط في خطوتين: تجميع متوسط مع مراعاة الأقنعة على الرموز غير المحشوة في last_hidden_state، يليه تطبيع L2 في float32. يقوم Sentence Transformers (>=6.1.0) بتنفيذ المعالجة المسبقة، وتنسيق الموجهات، والتجميع المتوسط، والتطبيع تلقائيًا، وهو نقطة الدخول الموصى بها. عند استخدام AutoModel، استخدم processor.apply_chat_template (أو AutoTokenizer للنص العادي) وقم بتجميع last_hidden_state مباشرة.
استرجاع النصوص ( encode_query / encode_document )
pip install -U sentence-transformers
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))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، مرّر الأمر كرسالة system في apply_chat_template (أو أضفه إلى بداية النص العادي).
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 المخرجات المطبَّعة مسبقًا، لذا لم تعد البادئة بطول وحدة.
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))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، قم بتمرير قوائم رسائل بأسلوب المحادثة إلى processor.apply_chat_template(..., tokenize=True, return_dict=True, return_tensors="pt").
1. الأنماط الأحادية والاسترجاع بين الأنماط
يمكن تضمين كل نمط (text، image، audio، video) بشكل مستقل ومقارنته مباشرةً بأي نمط آخر عبر التشابه الجيبية:
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)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:
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)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|> مباشرةً في النص، حيث يتم تعطيل إدراج العلامات الموضعية تلقائيًا لهذا الإدخال، وتُوسَّع كل علامة موضعية بالترتيب مع عناصر الوسائط المُقدَّمة:
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",
)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. الدفعات غير المتجانسة (متعددة الوسائط)
يمكن لدفعة واحدة أن تخلط بين النص العادي، ووسائط أحادية النمط، ومدخلات متعددة الأنماط في تمريرة أمامية واحدة، مما ينتج التضمين نفسه لكل صف كما لو تم ترميز كل عنصر على حدة:
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)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:
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},
)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 بين مُجزّئ الرموز ومعالج الصور ومستخرج ميزات الصوت ومعالج الفيديو.
بالنسبة إلى المدخلات متعددة الوسائط المُجمَّعة، ننصح بتمرير قواميس لكل عينة عبر Sentence Transformers (
model.encode([{"image": ..., "text": ...}, ...])). للحصول على أقصى قدر من التحكم في ترتيب الوسائط وتناوبها بدقة، قم بإدراج العلامات الموضعية<|image|>و<|video|>و<|audio|>يدوياً فيtext.
التحكم في ميزانية الرموز البصرية (max_soft_tokens)
يتحكم ميزان الرموز الناعمة (max_soft_tokens، القيم المدعومة {70, 140, 280, 560, 1120}) في دقة وعدد الرموز البصرية المُنتَجة لكل صورة أو إطار فيديو (الافتراضي 280 لكل صورة و140 لكل إطار فيديو). تقلل القيم الأدنى من طول التسلسل وزمن الاستجابة:
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}},
)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 يعيّن الإطارات بمعدل 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): ما إذا كان يجب إضافة بادئة لكل كتلة رموز ناعمة (soft-token) في الإطار بوسمها الزمنيmm:ss. على عكسfps، لا يوجد هنا أي بديل احتياطي: فاستخدامadd_timestamps=Trueعلى فيديو لا يحتوي بياناته الوصفية علىfpsسيؤدي إلى رفع استثناء، لأن معدلًا مُقدَّمًا بشكل تخميني سيكتب تسمياتmm:ssخاطئة في الاستدعاء (prompt).
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"}},
)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|> تلقائيًا لكل عينة في الدفعة:
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
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 262144hidden_size: int = 512intermediate_size: int = 2048num_hidden_layers: int = 24num_attention_heads: int = 4num_key_value_heads: int = 2head_dim: int = 256hidden_activation: str = 'gelu_pytorch_tanh'max_position_embeddings: int = 262144initializer_range: float = 0.02rms_norm_eps: float = 1e-06pad_token_id: int | None = 0eos_token_id: int | list[int] | None = 1bos_token_id: int | None = 2rope_parameters: dict | None = Noneattention_bias: bool = Falseattention_dropout: int | float | None = 0.0sliding_window: int = 512layer_types: list[str] | None = Nonehidden_size_per_layer_input: int = 512embedding_dim: int = 768 )
المعاملات
- 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 جميع الرؤوس الأصلية داخل تلك المجموعة. لمزيد من التفاصيل، راجع هذا الورقة. إذا لم يتم تحديد القيمة، فستكون القيمة الافتراضية هي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، ومعاملات اختيارية تُستخدم للتصحيح (scaling) في حال رغبتَ في استخدام 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 frominputs_embedsalone, with no auxiliary token lookup table. - embedding_dim (
int، اختياري، القيمة الافتراضية 768) — أبعاد تمثيل الجملة الناتج عنembedding_projection.
هذه فئة الإعدادات المخزنة لإعدادات نموذج EmbeddingGemma2Model. تُستخدم لاستحداث نموذج Embedding Gemma2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيُنتج إعدادات مشابهة لتلك الخاصة بـ google/embeddinggemma-2
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
EmbeddingGemma2Config
فئة transformers.EmbeddingGemma2Config
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonetext_config: transformers.models.embedding_gemma2.configuration_embedding_gemma2.EmbeddingGemma2TextConfig | dict[str, typing.Any] | None = Nonevision_config: transformers.configuration_utils.PreTrainedConfig | dict[str, typing.Any] | None = Noneaudio_config: transformers.configuration_utils.PreTrainedConfig | dict[str, typing.Any] | None = Noneboi_token_id: int | None = 255999eoi_token_id: int | None = 258882image_token_id: int | None = 258880video_token_id: int | None = 258884boa_token_id: int | None = 256000eoa_token_index: int | None = 258883audio_token_id: int | None = 258881initializer_range: float | None = 0.02 )
المعاملات
- 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) المستخدم لتغليف موجه الصورة. - eoi_token_id (
int, اختياري، القيمة الافتراضية 258882) — مؤشر رمز نهاية الصورة (end-of-image) المستخدم لتغليف موجه الصورة. - image_token_id (
int، اختياري، القيمة الافتراضية258880) — مؤشر رمز الصورة المستخدم كعنصر نائب للصور المدخلة. - video_token_id (
int، اختياري، القيمة الافتراضية258884) — مؤشر رمز الفيديو المستخدم كعنصر نائب للفيديوهات المدخلة. - boa_token_id (
int، اختياري، القيمة الافتراضية 256000) — مؤشر رمز بداية الصوت (begin-of-audio) المستخدم لتغليف موجه الصوت. - eoa_token_index (
int، اختياري، القيمة الافتراضية 258883) — مؤشر رمز نهاية الصوت (end-of-audio token index) المستخدم لتغليف موجه الصوت. - audio_token_id (
int، اختياري، القيمة الافتراضية258881) — مؤشر رمز الصوت المستخدم كعنصر نائب للصوت المُدخل. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
هذه فئة الإعدادات المخزنة لإعدادات نموذج EmbeddingGemma2Model. تُستخدم لاستحداث نموذج Embedding Gemma2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيُنتج إعدادات مشابهة لتلك الخاصة بـ google/embeddinggemma-2
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
EmbeddingGemma2VideoProcessor
فئة transformers.EmbeddingGemma2VideoProcessor
< source >( **kwargs: *<class 'transformers.models.embedding_gemma2.video_processing_embedding_gemma2.EmbeddingGemma2VideoProcessorKwargs'> )
المعاملات
- 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) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية3) — مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enumPILImageResampling. لا يؤثر إلا إذا كانت قيمة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: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- 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) — ما إذا كان يجب إرجاع بيانات وصفية للفيديو أم لا. بيانات الوصفية للفيديو هي كائن يحتوي على معلومات حول مدة الفيديو، ومعدل الإطارات في الثانية (fps)، وخلفية فك الترميز، وما إلى ذلك. - 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، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.
ينشئ معالج فيديو EmbeddingGemma2VideoProcessor.
preprocess
< source >( 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'> ) → ~image_processing_base.BatchFeature
المعاملات
- 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) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعداد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: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- 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، اختياري) — ما إذا كان يجب إرجاع بيانات وصفية للفيديو أم لا. بيانات الوصفية للفيديو هي كائن يحتوي على معلومات حول مدة الفيديو، ومعدل الإطارات في الثانية (fps)، وخلفية فك الترميز، وما إلى ذلك. - 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
< source >( feature_extractorimage_processortokenizervideo_processorchat_template = Noneimage_seq_length: int = 280audio_seq_length: int = 750audio_ms_per_token: int = 40**kwargs )
المعاملات
- feature_extractor (Gemma4AudioFeatureExtractor) — مستخرج الميزات هو مدخل إلزامي.
- image_processor (Gemma4ImageProcessor) — معالج الصور هو مدخل إلزامي.
- tokenizer (tokenizer_class) — مُجزِّئ النصّ مدخل إلزامي.
- video_processor (EmbeddingGemma2VideoProcessor) — معالج الفيديو هو مدخل إلزامي.
- chat_template (str) — قالب Jinja لتحويل قوائم الرسائل في المحادثة إلى نص قابل للتجزئة.
- image_seq_length (int، اختياري، القيمة الافتراضية 280) — عدد الرموز الناعمة لكل صورة المستخدمة لتوسيع العنصر المخصص.
- audio_seq_length (int، اختياري، القيمة الافتراضية 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__
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonetext: str | list[str] | list[list[str]] | None = Nonevideos: 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] = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = Noneaudio_from_video_indices: list[int] | None = None**kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'> )
المعاملات
- 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, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.'np': إرجاع كائناتnp.ndarrayمن NumPy.
- **kwargs (ProcessingKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.
EmbeddingGemma2PreTrainedModel
فئة transformers.EmbeddingGemma2PreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
المعاملات
- config (PreTrainedConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
قيمة وهمية لمسار منقّط (مثل torch.float32): سلاسل الوصول إلى السمات، والاستدعاءات تتصرف كمُزيّنات (decorators) مرّرة، وrepr هو المسار المنقّط، وعند استخدامه كصنف أساسي يُستبدل بصنف أساسي من نوع type عادي (بموجب __mro_entries__ في PEP 560)، بحيث تحتفظ الصنوف الفرعية الحقيقية بفئة ميتا (metaclass) عادية، وتقرأ inspect.signature دالة __init__ الحقيقية الخاصة بها بدلاً من تلك الوهمية.
EmbeddingGemma2TextModel
فئة transformers.EmbeddingGemma2TextModel
< source >( config: EmbeddingGemma2TextConfig )
المعاملات
- config (EmbeddingGemma2TextConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
الهيكل النصي الأساسي لنموذج EmbeddingGemma 2. وهو المسؤول عن embedding_projection الذي يُخفّض الحالات المخفية النهائية إلى config.embedding_dim، بحيث لا يحتاج النموذج المركّب إلى تجاوز forward.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput or tuple(torch.Tensor)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.
يعيد
BaseModelOutput أو tuple(torch.Tensor)
BaseModelOutput أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (EmbeddingGemma2Config) والمدخلات.
تتجاوز طريقة EmbeddingGemma2TextModel الأمامية الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.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
< source >( config: EmbeddingGemma2Config )
المعاملات
- config (EmbeddingGemma2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج EmbeddingGemma 2: يتكوّن من هيكل أساسي للرؤية، وهيكل أساسي للصوت، وهيكل أساسي للنص، حيث تُسقط الحالات المخفية النهائية لهيكل النص إلى config.text_config.embedding_dim. يُصمَّم ليُغلَّف بواسطة عملية متوسط التجميع والتطبيع في SentenceTransformers.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Nonepixel_values_videos: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneimage_position_ids: typing.Optional[torch.LongTensor] = Nonevideo_position_ids: typing.Optional[torch.LongTensor] = Nonenum_frames_per_video: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → EmbeddingGemma2ModelOutput or tuple(torch.Tensor)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)، اختياري) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام Gemma4ImageProcessor. راجع Gemma4ImageProcessor.call() للتفاصيل (يستخدم EmbeddingGemma2Processor Gemma4ImageProcessor لمعالجة الصور). - pixel_values_videos (
torch.Tensorمن الشكل(batch_size, num_frames, num_channels, frame_size, frame_size)، اختياري) — المصفوفات المقابلة لفيديو الإدخال. يمكن الحصول على قيم البكسل للفيديوهات باستخدام EmbeddingGemma2VideoProcessor. راجع EmbeddingGemma2VideoProcessor.call() للتفاصيل (EmbeddingGemma2Processor يستخدم EmbeddingGemma2VideoProcessor لمعالجة الفيديوهات). - input_features (
torch.Tensorمن الشكل(batch_size, sequence_length, feature_dim)، اختياري) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام Gemma4AudioFeatureExtractor. راجع Gemma4AudioFeatureExtractor.call() للتفاصيل (EmbeddingGemma2Processor يستخدم Gemma4AudioFeatureExtractor لمعالجة الملفات الصوتية). - attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- input_features_mask (
torch.Tensorمن الشكل(num_images, seq_length)) — قناع الانتباه للصوت المدخل. - position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - 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.LongTensorof shape(num_videos,), اختياري) — عدد الإطارات التابعة لكل فيديو. مطلوب دائمًا عند تمريرpixel_values_videos، نظرًا لأن إطارات جميع الفيديوهات مدمجة على محور واحد.
يعيد
EmbeddingGemma2ModelOutput أو tuple(torch.Tensor)
EmbeddingGemma2ModelOutput أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (EmbeddingGemma2Config) والمدخلات.
تتجاوز طريقة EmbeddingGemma2Model الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.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
< source >( pixel_values: Tensorimage_position_ids: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام Gemma4ImageProcessor. راجع Gemma4ImageProcessor.call() للتفاصيل (يستخدم EmbeddingGemma2Processor Gemma4ImageProcessor لمعالجة الصور). - image_position_ids (
torch.LongTensorمن الشكل(batch_size, max_patches, 2)، اختياري) — مواضع البقع (patches) كنسقات (x, y) داخل الصورة. تُشار البقع المعبّأة (padding) بـ (-1, -1).
يعيد
BaseModelOutputWithPooling أو tuple(torch.Tensor)
BaseModelOutputWithPooling أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (EmbeddingGemma2Config) والمدخلات.
يُرجع الحالة المخفية الأخيرة من نموذج الرؤية إلى فضاء نموذج اللغة.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.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
< source >( pixel_values_videos: Tensorvideo_position_ids: typing.Optional[torch.LongTensor] = Nonenum_frames_per_video: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
المعاملات
- 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.LongTensorof shape(num_videos,)) — عدد الإطارات التابعة لكل فيديو، ويُستخدم لإعادة تقسيم تسلسل الإطارات المسطّح إلى مقاطع فيديو منفصلة.
يعيد
BaseModelOutputWithPooling أو tuple(torch.Tensor)
BaseModelOutputWithPooling أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (EmbeddingGemma2Config) والمدخلات.
يُرجع الحالة المخفية الأخيرة من مُشفِّر الرؤية إلى فضاء نموذج اللغة.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.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
< source >( input_features: Tensorinput_features_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → EmbeddingGemma2AudioModelOutput or tuple(torch.Tensor)
المعاملات
- 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) والمدخلات.
يُرجع الحالة المخفية الأخيرة من مُشفِّر الصوت إلى فضاء نموذج اللغة.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.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 للمواقع المعبّأة.