Transformers documentation
Gemma4
تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-04-02.
Gemma4
نظرة عامة
نموذج Gemma 4 هو نموذج متعدد الوسائط يتوفر بنسخ مُدرَّبة مسبقًا ونسخ مُهيَّأة عبر التعليمات، بأحجام معلمات E2B وE4B و31B و26B-A4B (MoE). توفر نماذج Gemma 4 القدرات التالية:
- الاستدلال: جميع النماذج في هذه العائلة مصممة لتكون مستدلّةً عالية القدرات، مع أوضاع تفكير قابلة للضبط.
- الأنماط متعددة الوسائط الموسّعة: يعالج النص، والصورة مع دعم نسب أبعاد ودقة متغيرة (جميع النماذج)، والفيديو، والصوت (مدمج أصليًا في نموذجي E2B وE4B).
- نافذة سياق موسّعة: تتميز النماذج الصغيرة بنافذة سياق بحجم 128K، بينما تدعم النماذج الأخرى حجم 256K.
- قدرات البرمجة والوكلاء المحسّنة: يحقق تحسينات ملحوظة في اختبارات البرمجة المعيارية إلى جانب دعم مدمج لاستدعاء الدوال، مما يمكّن وكلاء مستقلين ذوي قدرات عالية.
- دعم أصلي لموجّه النظام: تقدّم Gemma 4 دعماً مدمجاً لدور النظام، مما يتيح محادثات أكثر تنظيماً وقابلية للتحكم.
يمكنك العثور على جميع نقاط التفتيش الأصلية لنموذج Gemma 4 ضمن إصدار Gemma 4.
نموذج Gemma4 Vision
الفرق الرئيسي عن إصدارات Gemma السابقة الخاصة بالرؤية هو التصميم الجديد لمعالجة الصور ذات الأحجام المختلفة باستخدام عدد ثابت من الرموز ضمن ميزانية محددة. على عكس العديد من النماذج التي تضغط كل صورة في مربع ثابت (مثل 224×224)، يحافظ Gemma 4 على نسبة الأبعاد الطبيعية للصورة مع ضبط حجمها بشكل مناسب. هناك قيود قليلة يجب الالتزام بها:
- يجب أن يتناسب إجمالي عدد البكسلات ضمن ميزانية الباتش
- يجب أن يكون كل من الارتفاع والعرض قابلين للقسمة على 48 (= حجم البقعة 16 × نواة التجميع 3)
لا يطبّق Gemma 4 عملية تطبيع المتوسط/الانحراف المعياري القياسية الخاصة بـ ImageNet التي تستخدمها العديد من نماذج الرؤية الأخرى. يتولى طبقة تضمين الباتش الخاصة بالنموذج نفسها معالجة المقياس النهائي داخلياً (عن طريق إزاحة القيم إلى النطاق [-1, 1]).
يمكن ضبط عدد "الرموز الناعمة" (المعروفة أيضاً برموز الرؤية) التي يمكن لمعالج الصور إنتاجها. الخيارات المدعومة موضحة أدناه، والافتراضي هو 280 رمزاً ناعماً لكل صورة.
| رموز ناعمة | التعديلات (قبل التجميع) | المساحة التقريبية للصورة |
|---|---|---|
| 70 | 630 | ~161 ألف بكسل |
| 140 | 1,260 | ~323 ألف بكسل |
| 280 | 2,520 | ~645K بكسل |
| 560 | 5,040 | ~1.3 مليون بكسل |
| 1,120 | 10,080 | ~2.6 مليون بكسل |
لتشفير المعلومات المكانية لكل رقعة في الصورة، يستخدم Gemma 4 جدول تضمينات موضعية ثنائي الأبعاد متعلّم. يخزّن جدول المواضع ما يصل إلى 10,240 موضعًا لكل محور، مما يتيح للنموذج التعامل مع صور كبيرة جدًا. كل موضع هو متجه متعلّم بأبعاد مطابقة لأبعاد تضمين الرقعة. يقوم RoPE ثنائي الأبعاد الذي يستخدمه Gemma 4 بتدوير نصف أبعاد رأس الانتباه بشكل مستقل للمحور السيني (x)، والنصف الآخر للمحور الصادي (y). وهذا يتيح للنموذج فهم العلاقات المكانية مثل "فوق"، "تحت"، "يسار"، و"يمين".
تضمينات لكل طبقة (PLE)
يُقدّم Gemma 4 نظام التضمينات لكل طبقة (PLE) الذي يُدخل إشارة متبقية مساعدة إلى كل طبقة من طبقات المُفكّك، بدلاً من الاعتماد حصرياً على تضمين مشترك واحد عند المدخل.
تجمع PLE بين مكوّنين يُجمَعان ويُضربان في 1/√2 قبل إمداد كل طبقة من طبقات المُفكِّك بهما:
- هوية الرموز (
get_per_layer_inputs): يبحث عنinput_idsفيembed_tokens_per_layer، وهوGemma4TextScaledWordEmbeddingيضرب الناتج في√(hidden_size_per_layer_input). يُعاد تشكيل المخرجات المعبأة من[batch, seq, num_hidden_layers * hidden_size_per_layer_input]إلى[batch, seq, num_hidden_layers, hidden_size_per_layer_input]. - الواعي بالسياق (
project_per_layer_inputs): يُسقطinputs_embedsعبرper_layer_model_projection(طبقة خطية)، ثم يضربها في1/√(hidden_size)، ويعيد تشكيلها إلى[batch, seq, num_layers, ple_dim]، ويقيّسها باستخدامper_layer_projection_norm(RMSNorm).
عند توفر المكوّنين معًا، يكون المدخل النهائي لكل طبقة هو (token_identity + context_aware) * (1/√2). أما في المدخلات متعددة الوسائط التي لا يتوفر فيها input_ids، فيُستخدم الإسقاط الواعي بالسياق فقط.
أمثلة على الاستخدام
يُظهر المثال أدناه كيفية توليد النص بناءً على صورة باستخدام Pipeline أو فئة AutoModel.
<hfoptions id="usage"> <hfoption id="Pipeline">from transformers import pipeline
pipeline = pipeline(
task="image-text-to-text",
model="google/gemma-4-E2B-it",
)
pipeline(
images="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg",
text="<|image|>\n\nWhat is shown in this image?"
)from transformers import AutoModelForImageTextToText, AutoProcessor
model = AutoModelForImageTextToText.from_pretrained(
"google/gemma-4-E2B-it",
device_map="auto",
attn_implementation="sdpa"
)
processor = AutoProcessor.from_pretrained(
"google/gemma-4-E2B-it",
padding_side="left"
)
messages = [
{
"role": "user", "content": [
{"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
{"type": "text", "text": "What is shown in this image?"},
]
},
]
inputs = processor.apply_chat_template(
messages,
tokenize=True,
return_dict=True,
return_tensors="pt",
add_generation_prompt=True,
).to(model.device)
input_len = inputs["input_ids"].shape[-1]
output = model.generate(**inputs, max_new_tokens=50, cache_implementation="static")
print(processor.decode(output[0][input_len:], skip_special_tokens=True))استدعاء الدوال
from transformers import AutoModelForCausalLM, AutoProcessor
WEATHER_TOOL = {
"type": "function",
"function": {
"name": "get_n_day_weather_forecast",
"description": "Get an N-day weather forecast",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The temperature unit to use",
},
"num_days": {
"type": "integer",
"description": "The number of days to forecast",
},
},
"required": ["location", "format", "num_days"],
},
},
}
messages = [
{
"role": "user",
"content": "What's the weather like the next 3 days in San Francisco, CA (using F)?",
},
]
model = AutoModelForCausalLM.from_pretrained(
"google/gemma-4-E2B-it",
device_map="auto",
attn_implementation="sdpa"
)
processor = AutoProcessor.from_pretrained(
"google/gemma-4-E2B-it",
padding_side="left"
)
text = processor.apply_chat_template(
messages,
tools=[WEATHER_TOOL],
tokenize=False,
add_generation_prompt=True,
)
inputs = processor(text=text, return_tensors="pt").to(model.device)
input_len = inputs["input_ids"].shape[-1]
outputs = model.generate(**inputs, max_new_tokens=200)
print(processor.decode(outputs[0][input_len:], skip_special_tokens=False))الصوت (E2B و E4B فقط)
from transformers import AutoModelForMultimodalLM, AutoProcessor
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "Please transcribe the following audio:"},
{
"type": "audio",
"url": "https://huggingface.co/datasets/eustlb/audio-samples/resolve/main/dude_where_is_my_car.wav",
},
],
}
]
model = AutoModelForMultimodalLM.from_pretrained(
"google/gemma-4-E2B-it",
device_map="auto",
attn_implementation="sdpa"
)
processor = AutoProcessor.from_pretrained(
"google/gemma-4-E2B-it",
padding_side="left"
)
inputs = processor.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt"
).to(model.device, dtype=model.dtype)
input_len = inputs["input_ids"].shape[-1]
outputs = model.generate(**inputs, max_new_tokens=200)
print(processor.decode(outputs[0][input_len:], skip_special_tokens=False))Gemma4AudioConfig
فئة transformers.Gemma4AudioConfig
< 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 = Nonehidden_size: int = 1024num_hidden_layers: int = 12num_attention_heads: int = 8hidden_act: str = 'silu'subsampling_conv_channels: list[int] | tuple[int, int] = (128, 32)conv_kernel_size: int = 5residual_weight: float = 0.5attention_chunk_size: int = 12attention_context_left: int = 13attention_context_right: int = 0attention_logit_cap: float = 50.0attention_invalid_logits_value: float = -1000000000.0use_clipped_linears: bool = Truerms_norm_eps: float = 1e-06gradient_clipping: float = 10000000000.0output_proj_dims: int = 1536initializer_range: float = 0.02 )
المعاملات
- hidden_size (
int، اختياري، القيمة الافتراضية1024) — أبعاد التمثيلات المخفية. - num_hidden_layers (
int، اختياري، القيمة الافتراضية12) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - hidden_act (
str، اختياري، القيمة الافتراضيةsilu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - subsampling_conv_channels (
list[int]، القيمة الافتراضية[128, 32]) — حجم القنوات للطبقات التلافيفية في إسقاط الالتفاف الجزئي. - conv_kernel_size (
int، اختياري، القيمة الافتراضية5) — حجم نواة الالتفاف. - residual_weight (
float، القيمة الافتراضية0.5) — المعامل المُطبَّق على hidden_states قبل الدمج مع المتبقي في الشبكة العصبية الأمامية. - attention_chunk_size (
int، القيمة الافتراضية12) — حجم التسلسل الفرعي لمعالجة الانتباه. - attention_context_left (
int، القيمة الافتراضية13) — حجم السياق الأيسر لقطعة الانتباه. - attention_context_right (
int، القيمة الافتراضية0) — حجم السياق اليميني لقسم الانتباه. - attention_logit_cap (
float، القيمة الافتراضية50.0) — الحد الأقصى المطبَّق على أوزان الانتباه. - attention_invalid_logits_value (
float، القيمة الافتراضية1e-9) — القيمة المستخدمة للقيم غير الصالحة في الانتباه. - use_clipped_linears (
bool، القيمة الافتراضيةTrue) — إذا كانت القيمة صحيحة، يتم تطبيق القص على طبقات Linear، مع استخلاص الحدود من نقطة التفتيش الخاصة بالنموذج. - rms_norm_eps (
float، اختياري، القيمة الافتراضية1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms. - gradient_clipping (
float، القيمة الافتراضية1e10) — القيمة المستخدمة لقصّ قيم التدرّجات الكبيرة جداً بغرض استقرارها. - output_proj_dims (
int، القيمة الافتراضية1536) — بعد الإسقاط الخطي النهائي منhidden_sizeإلى مخرج النموذج. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Gemma4Model. تُستخدم لتوليد نموذج Gemma4 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/gemma-4-e2b-it
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
Gemma4VisionConfig
فئة transformers.Gemma4VisionConfig
< 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 = Nonehidden_size: int = 768intermediate_size: int = 3072num_hidden_layers: int = 16num_attention_heads: int = 12num_key_value_heads: int = 12head_dim: int = 64hidden_activation: str = 'gelu_pytorch_tanh'rms_norm_eps: float = 1e-06max_position_embeddings: int = 131072attention_bias: bool | None = Falseattention_dropout: float | None = 0.0rope_parameters: dict | None = Nonepooling_kernel_size: int = 3patch_size: int = 16position_embedding_size: int = 10240use_clipped_linears: bool = Falsestandardize: bool = Falseinitializer_range: float = 0.02 )
المعاملات
- hidden_size (
int، اختياري، القيمة الافتراضية768) — أبعاد التمثيلات المخفية. - intermediate_size (
int، اختياري، القيمة الافتراضية3072) — أبعاد تمثيلات MLP. - num_hidden_layers (
int، اختياري، القيمة الافتراضية16) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية12) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - num_key_value_heads (
int، اختياري، القيمة الافتراضية12) — هذا هو عدد رؤوس 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، اختياري، القيمة الافتراضية64) — بعد رأس الانتباه. إذا كانت القيمة None، فستكون القيمة الافتراضية هي hidden_size // num_attention_heads - hidden_activation (
str, اختياري، القيمة الافتراضيةgelu_pytorch_tanh) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - rms_norm_eps (
float، اختياري، القيمة الافتراضية1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms. - max_position_embeddings (
int، اختياري، القيمة الافتراضية131072) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق. - attention_bias (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي. - attention_dropout (
float، اختياري، القيمة الافتراضية0.0) — نسبة الإسقاط (dropout) لاحتمالات الانتباه. - rope_parameters (
dict, اختياري) — قاموس يحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن يحتوي القاموس على قيمة لـrope_theta، ومعاملات اختيارية تُستخدم للتصحيح (scaling) في حال رغبتَ في استخدام RoPE معmax_position_embeddingsأطول. - pooling_kernel_size (
int, اختياري) — حجم نواة التجميع المكاني المطبّق بعد تقطيع البقع. - patch_size (
int، اختياري، القيمة الافتراضية16) — حجم (دقة) كل رقعة. - position_embedding_size (
int، القيمة الافتراضية 10240) — الحد الأقصى لعدد تضمينات المواقع لمُشفِّر الرؤية. يتحكم في حجم جدول تضمين المواقع ثنائي الأبعاد المُتعلَّم الذي يستخدمه مُضمِّن البُقع. - use_clipped_linears (
bool، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام طبقات خطية مقصوصة الأوزان. عند التفعيل، تُثبَّت أوزان الطبقات الخطية ضمن نطاق ثابت أثناء المرور الأمامي لتحسين الاستقرار العددي. - standardize (
bool، القيمة الافتراضيةFalse) — إذا كانت القيمة صحيحة، يُطبَّق انحراف ومقياس على الرموز الناعمة المُعادَة من المُجمِّع (pooler). - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Gemma4Model. تُستخدم لتوليد نموذج Gemma4 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/gemma-4-e2b-it
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
Gemma4TextConfig
فئة transformers.Gemma4TextConfig
< 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 = 2304intermediate_size: int = 9216num_hidden_layers: int = 30num_attention_heads: int = 8num_key_value_heads: int = 4head_dim: int = 256hidden_activation: str = 'gelu_pytorch_tanh'max_position_embeddings: int = 131072initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truepad_token_id: int | None = 0eos_token_id: int | list[int] | None = 1bos_token_id: int | None = 2tie_word_embeddings: bool = Truerope_parameters: dict | None = Noneattention_bias: bool = Falseattention_dropout: int | float | None = 0.0sliding_window: int = 512layer_types: list[str] | None = Nonefinal_logit_softcapping: float | None = Noneuse_bidirectional_attention: typing.Optional[typing.Literal['all', 'vision']] = Nonevocab_size_per_layer_input: int = 262144hidden_size_per_layer_input: int = 256attention_k_eq_v: bool = Falsenum_kv_shared_layers: int = 0enable_moe_block: bool = Falseuse_double_wide_mlp: bool = Falsenum_experts: int | None = Nonetop_k_experts: int | None = Nonemoe_intermediate_size: int | None = None )
المعاملات
- vocab_size (
int، اختياري، القيمة الافتراضية262144) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطةinput_ids. - hidden_size (
int، اختياري، القيمة الافتراضية2304) — أبعاد التمثيلات المخفية. - intermediate_size (
int، اختياري، القيمة الافتراضية9216) — أبعاد تمثيلات MLP. - num_hidden_layers (
int, اختياري، القيمة الافتراضية30) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - num_key_value_heads (
int، اختياري، القيمة الافتراضية4) — هذا هو عدد رؤوس 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، اختياري، القيمة الافتراضية131072) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - rms_norm_eps (
float، اختياري، القيمة الافتراضية1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms. - use_cache (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كانconfig.is_decoder=Trueأو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط. - pad_token_id (
int، اختياري، القيمة الافتراضية0) — معرّف الرمز المستخدم للتعبئة في المفردات. - eos_token_id (
Union[int, list[int]]، اختياري، القيمة الافتراضية1) — معرّف الرمز المستخدم لنهاية التدفق في المفردات. - bos_token_id (
int، اختياري، القيمة الافتراضية2) — معرّف الرمز المستخدم لبدء البث في المفردات. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطةtied_weights_keysالخاصة بالنموذج. - 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) — حجم نافذة الانتباه المنزلقة. إذا كانتNone، فلا تُطبَّق نافذة منزلقة. - layer_types (
list[str], اختياري) — قائمة تُقرن بشكل صريح كل فهرس طبقة بنوعها. إذا لم تُقدَّم، فسيتم توليدها تلقائيًا بناءً على قيم الإعداد. - final_logit_softcapping (
float, اختياري) — قيمة التقييد الناعم المطبقة على القيم النهائية (logits) قبل حساب توزيع الاحتمالات. يتم تحجيم القيم النهائية (logits) باستخدامtanh(logit / cap) * cap. - use_bidirectional_attention (
str, اختياري) — يتحكم في سلوك الانتباه ثنائي الاتجاه. عند ضبطه على"vision"، تتفاعل رموز الرؤية بشكل ثنائي الاتجاه بينما تستخدم رموز النص الانتباه السببي. عند ضبطه على"all"، تستخدم جميع الرموز الانتباه ثنائي الاتجاه. - vocab_size_per_layer_input (
int، القيمة الافتراضية 262144) — حجم المفردات لتضمينات الإدخال لكل طبقة (PLE). يُستخدم في النماذج التي تعتمد على تدفقات متبقية لكل طبقة، حيث يُضاف تضمين أصغر في كل طبقة من طبقات فك الترميز. - hidden_size_per_layer_input (
int، القيمة الافتراضية 256) — البُعد المخفي لكل طبقة في نظام PLE. الشكل الفعلي لوزن التضمين هو[vocab_size_per_layer_input, num_hidden_layers * hidden_size_per_layer_input]لأن جميع الطبقات مدمجة في جدول واحد. راجع وثائق Gemma4 للحصول على وصف كامل لخط أنابيب PLE. - attention_k_eq_v (
bool، القيمة الافتراضيةFalse) — ما إذا كانت المفاتيح والقيم تشارك نفس أوزان الإسقاط. عند تعيينTrue، يُعاد استخدام ناتج إسقاط المفاتيح كإسقاط للقيم. - num_kv_shared_layers (
int، القيمة الافتراضية 0) — عدد طبقات المُفكِّك المتتالية التي تتشارك نفس إسقاطات المفتاح-القيمة. قيمة تساوي 0 تعني عدم وجود مشاركة (كل طبقة لها إسقاطات مفتاح-قيمة مستقلة). - enable_moe_block (
bool، القيمة الافتراضيةFalse) — ما إذا كان سيتم تفعيل كتل Mixture-of-Experts (MoE) في طبقات المُفكِّك. عند تعيينTrue، ستستخدم الطبقات المؤهلة شبكة تقدُّمية (feed-forward) من النوع MoE المتناثر. - use_double_wide_mlp (
bool، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام MLP بعرض مضاعف مع دمج إسقاطي البوابة والرفع. - num_experts (
int, اختياري) — عدد الخبراء الموجَّهين في طبقات MoE. - top_k_experts (
int، اختياري) — عدد الخبراء المُفعّلين لكل رمز في طبقات MoE. يُستخدم فقط عند تعيينenable_moe_block=True. - moe_intermediate_size (
int، اختياري) — الحجم الوسيط (المخفي) لشبكة التغذية الأمامية لكل خبير في طبقات MoE. يُستخدم فقط عندما يكونenable_moe_block=True.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Gemma4Model. تُستخدم لتوليد نموذج Gemma4 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/gemma-4-e2b-it
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
Gemma4Config
فئة transformers.Gemma4Config
< 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.gemma4.configuration_gemma4.Gemma4TextConfig | dict[str, typing.Any] | None = Nonevision_config: transformers.models.gemma4.configuration_gemma4.Gemma4VisionConfig | dict[str, typing.Any] | None = Noneaudio_config: transformers.models.gemma4.configuration_gemma4.Gemma4AudioConfig | 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.02tie_word_embeddings: bool = True )
المعاملات
- text_config (
Union[~models.gemma4.configuration_gemma4.Gemma4TextConfig, dict[str, Any]]، اختياري) — كائن الإعدادات أو قاموس العمود الفقري النصي. - vision_config (
Union[~models.gemma4.configuration_gemma4.Gemma4VisionConfig, dict[str, Any]], اختياري) — كائن الإعدادات أو قاموس العمود الفقري البصري. - audio_config (
Union[~models.gemma4.configuration_gemma4.Gemma4AudioConfig, dict[str, Any]], اختياري) — كائن الإعدادات أو قاموس العمود الفقري الصوتي. - 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 المستخدم في تهيئة جميع مصفوفات الأوزان. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطةtied_weights_keysالخاصة بالنموذج.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Gemma4Model. تُستخدم لتوليد نموذج Gemma4 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/gemma-4-e2b-it
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
مثال:
>>> from transformers import (
>>> Gemma4AudioConfig,
>>> Gemma4Config,
>>> Gemma4ForConditionalGeneration,
>>> Gemma4TextConfig,
>>> Gemma4VisionConfig,
>>> )
>>> # Initializing a Gemma 4 Audio config.
>>> audio_config = Gemma4AudioConfig()
>>> # Initializing a Gemma 4 Text config.
>>> text_config = Gemma4TextConfig()
>>> # Initializing a Gemma 4 vision config.
>>> vision_config = Gemma4VisionConfig()
>>> # Initializing a Gemma 4 config similar to google/gemma-4-e2b-it
>>> configuration = Gemma4Config(text_config, vision_config, audio_config)
>>> # Initializing a model from the google/gemma-4-e2b-it configuration
>>> model = Gemma4ForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configGemma4AudioFeatureExtractor
فئة transformers.Gemma4AudioFeatureExtractor
< source >( feature_size: int = 128sampling_rate: int = 16000padding_value: float = 0.0return_attention_mask: bool = Trueframe_length_ms: float = 20.0hop_length_ms: float = 10.0min_frequency: float = 0.0max_frequency: float = 8000.0preemphasis: float = 0.0preemphasis_htk_flavor: bool = Truefft_overdrive: bool = Falsedither: float = 0.0input_scale_factor: float = 1.0mel_floor: float = 0.001per_bin_mean: collections.abc.Sequence[float] | None = Noneper_bin_stddev: collections.abc.Sequence[float] | None = None**kwargs )
المعاملات
- feature_size (
int، اختياري، القيمة الافتراضية 128) — أبعاد الميزات للميزات المستخرجة. - sampling_rate (
int, اختياري، القيمة الافتراضية 16000) — معدل أخذ العينات الذي يجب أن تُرقَم به ملفات الصوت، ويُعبَّر عنه بالهرتز (Hz). - padding_value (
float، اختياري، القيمة الافتراضية 0.0) — قيمة الحشو المستخدمة لحشو الصوت. يجب أن تتوافق مع الصمت. - return_attention_mask (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع قناع الانتباه (attention mask) الخاص بالطييفات الطيفية (MEL spectrograms) المولّدة. - frame_length_ms (
float، اختياري، القيمة الافتراضية 20.0) — طول الإطار بالمللي ثانية. - hop_length_ms (
float، اختياري، القيمة الافتراضية 10.0) — طول النوافذ المتداخلة المستخدمة في تحويل فورييه القصير (STFT) للحصول على معاملات ترددات ميل. - min_frequency (
float، اختياري، القيمة الافتراضية 0.0) — الحد الأدنى للتردد (بالهرتز) لبنك مرشحات ميل. - max_frequency (
float، اختياري، القيمة الافتراضية 8000.0) — التردد الأقصى (بالهرتز) لبنك مرشحات Mel. - preemphasis (
float، اختياري، القيمة الافتراضية 0.0) — معامل التمهيد المسبق. - preemphasis_htk_flavor (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم استخدام التمهيد المسبق بنمط HTK. - fft_overdrive (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام FFT overdrive. - dither (
float، اختياري، القيمة الافتراضية 0.0) — يضيف تشويشًا (Dithering). بمعنى آخر، يضيف ضوضاء غاوسية صغيرة إلى كل إطار. على سبيل المثال، استخدم 0.0001 لإضافة تشويش بتوزيع طبيعي متمركز حول 0.0 مع انحراف معياري قدره 0.0001 (بافتراض أن نطاق raw_speech هو [-1,+1]). القيمة 0.0 تعني عدم وجود تشويش. للتشويش تأثير مشابه لتأثيرspectrogram(mel_floor=...). فهو يقلل من قيم log_mel_fbank العالية للإشارات التي تحتوي على مقاطع صفرية صارمة، عندما يكون هناك قطع VAD في الإشارة. - input_scale_factor (
float، اختياري، القيمة الافتراضية 1.0) — معامل التوسيع المطبَّق على الموجة المدخلة. - mel_floor (
float، اختياري، القيمة الافتراضية 0.001) — القيمة الدنيا لطييفات Mel لتجنب log(0). - per_bin_mean (
Optional[Sequence[float]]، اختياري) — القيم المتوسطة لتطبيع كل شريحة. - per_bin_stddev (
Optional[Sequence[float]]، اختياري) — قيم الانحراف المعياري لتطبيع كل دلو على حدة.
مستخرج ميزات صوتية لنماذج الكلام الشاملة https://huggingface.co/papers/2303.01037.
__call__
< source >( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]padding: bool | str | transformers.utils.generic.PaddingStrategy = 'longest'max_length: int | None = 480000truncation: bool = Truepad_to_multiple_of: int | None = 128return_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_attention_mask: bool | None = True**kwargs )
المعاملات
- raw_speech — الصوت الذي تُنشأ منه مطيافية MEL.
- padding (
Union[bool, str, PaddingStrategy]، اختياري، القيمة الافتراضية"longest") — استراتيجية الحشو المستخدمة لمجموعات من مقاطع الصوت ذات الأطوال المختلفة. - max_length (
int، اختياري، القيمة الافتراضية 480000) — إذا تم تقديمه، يحدد الحد الأقصى لطول الصوت المسموح به. سيتم اقتطاع الأصوات الأطول من هذا الطول إذا كانtruncation=True. - truncation (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم اقتطاع الصوت الذي يتجاوزmax_lengthأم لا. - pad_to_multiple_of (
int، اختياري، القيمة الافتراضية 128) — عند إضافة الحشو، يتم الحشو إلى مضاعف لهذه القيمة. القيمة الافتراضية معرّفة لدعم TPU بشكل مثالي. - return_tensors (
Union[str, TensorType]، اختياري، القيمة الافتراضيةNone) — نوع المصفوفات (tensors) التي سيتم إرجاعها (مثل NumPy أو Torch). - return_attention_mask (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع قناع الانتباه (attention mask) الخاص بالطييفات الطيفية (MEL spectrograms) المولّدة.
يُنشئ دفعة من مطيافات MEL من الكلام الخام المُقدَّم.
تستخدم هذه المنفّذة خوارزمية مختلفة للتقسيم النافذ والتوكيد المسبق مقارنةً بالدالة المدمجة transformers.audio_utils.spectrogram() التي ستنتج مخرجات مختلفة. يُرجى مراعاة ذلك بعناية عند اختيار مستخرج ميزات الصوت، لا سيما عند استخدام النماذج المُدرَّبة مسبقاً.
Gemma4ImageProcessorPil
فئة transformers.Gemma4ImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.gemma4.image_processing_pil_gemma4.Gemma4ImageProcessorKwargs'> )
المعاملات
- 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) — يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - 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، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب تطبيع الصورة. - 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_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - 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) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - patch_size (
int، kwargs، اختياري) — حجم كل رقعة من الصورة بالبكسل. - max_soft_tokens (
int، kwargs، اختياري) — الحد الأقصى لعدد الرموز الناعمة (البصرية) لكل صورة. يجب أن يكون أحد القيم {70, 140, 280, 560, 1120}. - pooling_kernel_size (
int، kwargs، اختياري) — حجم نواة التجميع المكاني المطبَّق بعد تقطيع البقع.
ينشئ معالج صور Gemma4.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.gemma4.image_processing_pil_gemma4.Gemma4ImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
المعاملات
- 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. - 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، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - 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_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - 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) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - patch_size (
int، kwargs، اختياري) — حجم كل رقعة من الصورة بالبكسل. - max_soft_tokens (
int، kwargs، اختياري) — الحد الأقصى لعدد الرموز الناعمة (البصرية) لكل صورة. يجب أن يكون أحد القيم {70, 140, 280, 560, 1120}. - pooling_kernel_size (
int، kwargs، اختياري) — حجم نواة التجميع المكاني المطبَّق بعد تقطيع البقع.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
Gemma4ImageProcessor
فئة transformers.Gemma4ImageProcessor
< source >( **kwargs: *<class 'transformers.models.gemma4.image_processing_gemma4.Gemma4ImageProcessorKwargs'> )
المعاملات
- 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. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - 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، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب تطبيع الصورة. - 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_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - 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) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - patch_size (
int، kwargs، اختياري) — حجم كل رقعة من الصورة بالبكسل. - max_soft_tokens (
int، kwargs، اختياري) — الحد الأقصى لعدد الرموز الناعمة (البصرية) لكل صورة. يجب أن يكون أحد القيم {70, 140, 280, 560, 1120}. - pooling_kernel_size (
int، kwargs، اختياري) — حجم نواة التجميع المكاني المطبَّق بعد تقطيع البقع.
ينشئ معالج صور Gemma4.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.gemma4.image_processing_gemma4.Gemma4ImageProcessorKwargs'> )
Gemma4VideoProcessor
فئة transformers.Gemma4VideoProcessor
< source >( **kwargs: *<class 'transformers.models.gemma4.video_processing_gemma4.Gemma4VideoProcessorKwargs'> )
المعاملات
- 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) — عدد الإطارات المستهدفة التي يجب أخذها كل ثانية عند تعيينdo_sample_frames=True. - num_frames (
Annotated[int | None, None]، kwargs، القيمة الافتراضية32) — الحد الأقصى لعدد الإطارات التي يجب أخذها عينة عند تعيين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، اختياري) — حجم نواة التجميع المكاني المطبَّق بعد تقطيع البقع. - **kwargs (ProcessingKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.
ينشئ معالج فيديو Gemma4VideoProcessor.
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.gemma4.video_processing_gemma4.Gemma4VideoProcessorKwargs'> ) → ~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، اختياري) — حجم نواة التجميع المكاني المطبَّق بعد تقطيع البقع.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
Gemma4Processor
فئة transformers.Gemma4Processor
< 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 (Gemma4VideoProcessor) — معالج الفيديو هو مدخل إلزامي.
- 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 مللي ثانية.
ينشئ Gemma4Processor الذي يجمع مستخرج الميزات ومعالج الصور ومُرمّز الرموز ومعالج الفيديو في معالج واحد.
يوفر [Gemma4Processor] جميع وظائف [Gemma4AudioFeatureExtractor] و[Gemma4ImageProcessor] و[tokenizer_class] و[Gemma4VideoProcessor]. راجع [~Gemma4AudioFeatureExtractor] و[~Gemma4ImageProcessor] و[~tokenizer_class] و[~Gemma4VideoProcessor] لمزيد من المعلومات.
__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] = 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 هو طول العينة للصوت. - return_tensors (
strأو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.'np': إرجاع كائناتnp.ndarrayمن NumPy.
- **kwargs (ProcessingKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.
Gemma4PreTrainedModel
فئة transformers.Gemma4PreTrainedModel
< 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__ الحقيقية الخاصة بها بدلاً من تلك الوهمية.
Gemma4AudioModel
مشفر صوتي مبني على بنية Universal Speech Model.
forward
< source >( input_features: Tensorattention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
المعاملات
- input_features (
torch.Tensorمن الشكل(batch_size, sequence_length, feature_dim)) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام Gemma4AudioFeatureExtractor. راجع Gemma4AudioFeatureExtractor.call() للتفاصيل (Gemma4Processor يستخدم Gemma4AudioFeatureExtractor لمعالجة ملفات الصوت). - attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
يقوم بتشفير ميزات الصوت إلى رموز ناعمة.
Gemma4VisionModel
مُشفِّر الرؤية في Gemma 4.
forward
< source >( pixel_values: Tensorpixel_position_ids: LongTensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorأوlist[torch.Tensor]) — الصور المراد ترميزها. إما متجه واحد[batch, channels, height, width](جميع الصور بنفس الحجم) أو قائمة من متجهات[1, channels, height, width](أحجام مختلفة). - pixel_position_ids (
torch.LongTensorمن الشكل(batch_size, max_patches, 2)) — مواضع البقع كإحداثيات (x, y) في الصورة. تُشار البقع المعبّأة بـ (-1, -1).
يعيد
BaseModelOutputWithPast أو tuple(torch.Tensor)
BaseModelOutputWithPast أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (Gemma4Config) والمدخلات.
يقوم بتشفير بكسلات الصورة إلى رموز ناعمة من البقع.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.إذا تم استخدام
past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل(batch_size, 1, hidden_size)هي التي تُخرج.past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان
config.is_encoder_decoder=True) يمكن استخدامها (انظر مدخلpast_key_values) لتسريع فك الترميز التسلسلي.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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
Gemma4TextModel
فئة transformers.Gemma4TextModel
< source >( config: Gemma4TextConfig )
المعاملات
- config (Gemma4TextConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Gemma 4 اللغوي الأساسي دون رأس نمذجة اللغة.
يرث هذا النموذج من 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] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneper_layer_inputs: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Gemma4TextModelOutputWithPast 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]. - past_key_values (
~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - per_layer_inputs (
torch.Tensor، اختياري) — تضمينات نصية مُسبقة الحساب لكل طبقة، بأبعاد(batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input). عند توفيرها، تُستخدم مباشرةً بدلاً من حسابها منinput_idsعبرget_per_layer_inputs()في نموذج النص. إذا كنت تستدعيforwardباستخدامinputs_embedsبدلاً منinput_ids، فيجب عليك على الأرجح حسابها مسبقاً وتحويلها معinputs_embeds، وإلا فإن إعادة حسابها تتطلب عكس التضمين الرئيسي، وهو أمر مكلف. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values).
يعيد
Gemma4TextModelOutputWithPast أو tuple(torch.Tensor)
Gemma4TextModelOutputWithPast أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (Gemma4Config) والمدخلات.
تتجاوز طريقة Gemma4TextModel الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
- shared_kv_states (
KVSharingDict، اختياري) — حاوية تشبه القاموس (dict) تُخزّن سلاسل نصية لنوع الطبقة كمفاتيح، وتربطها بمجموعات (tuples) من تينسورات (key_states, value_states). يُستخدم لتبادل حالات KV المشتركة بين الطبقات أثناء مشاركة KV. - router_logits (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_router_logits=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة MoE) بشكل(batch_size * sequence_length, num_experts).
Gemma4ForCausalLM
فئة transformers.Gemma4ForCausalLM
< source >( config: Gemma4TextConfig )
المعاملات
- config (Gemma4TextConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Gemma 4 اللغوي الأساسي مع رأس لنمذجة اللغة.
يرث هذا النموذج من 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] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0per_layer_inputs: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Gemma4CausalLMOutputWithPast 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]. - past_key_values (
~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - labels (
torch.LongTensorمن الشكل(batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن[0, ..., config.vocab_size]أو -100 (انظرinput_idsdocstring). يتم تجاهل الرموز التي فهارسها مضبوطة على-100(مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن[0, ..., config.vocab_size]. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values). - logits_to_keep (
Union[int, torch.Tensor]، اختياري، القيمة الافتراضية0) — إذا كانint، يتم حساب logits لآخرlogits_to_keepرموز. إذا كانت القيمة0، يتم حساب logits لجميعinput_ids(حالة خاصة). لا يُحتاج إلى logits إلا للرمز الأخير في عملية التوليد، ويمكن أن يوفر حسابها لذلك الرمز وحده ذاكرة كبيرة، وهو أمر مهم بشكل ملحوظ للتسلسلات الطويلة أو حجم المفردات الكبير. إذا كانtorch.Tensor، يجب أن يكون بعدًا واحدًا (1D) ويتوافق مع الفهارس التي يجب الاحتفاظ بها في بُعد طول التسلسل. يكون هذا مفيدًا عند استخدام تنسيق المصفوفات المعبأة (packed tensor format) (بعد واحد لكل من الدفعة وطول التسلسل). - per_layer_inputs (
torch.Tensor، اختياري) — تضمينات نصية مُسبقة الحساب لكل طبقة، بأبعاد(batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input). عند توفيرها، تُستخدم مباشرةً بدلاً من حسابها منinput_idsعبرget_per_layer_inputs()في نموذج النص. إذا كنت تستدعيforwardباستخدامinputs_embedsبدلاً منinput_ids، فيجب عليك على الأرجح حسابها مسبقاً وتحويلها معinputs_embeds، وإلا فإن إعادة حسابها تتطلب عكس التضمين الرئيسي، وهو أمر مكلف.
يعيد
Gemma4CausalLMOutputWithPast أو tuple(torch.Tensor)
Gemma4CausalLMOutputWithPast أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (Gemma4Config) والمدخلات.
تُعيد طريقة Gemma4ForCausalLM الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorof shape(1,), اختياري, يُعاد عند توفيرlabels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).logits (
torch.Tensorمن الشكل(batch_size, sequence_length, config.text_config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها (انظر مدخل
past_key_values) لتسريع فك الترميز التسلسلي.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 الناتجة عن النموذج بواسطة مُشفِّر الصوت وبعد إسقاط الحالة المخفية الأخيرة.shared_kv_states (
KVSharingDict، اختياري) — حاوية تشبه القاموس (dict) تُخزّن سلاسل نصية لنوع الطبقة كمفاتيح، وتربطها بمجموعات (tuples) من تينسورات (key_states, value_states). يُستخدم لتبادل حالات KV المشتركة بين الطبقات أثناء مشاركة KV.router_logits (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_router_logits=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة MoE) بشكل(batch_size * sequence_length, num_experts).
مثال:
>>> from transformers import AutoTokenizer, Gemma4ForCausalLM
>>> model = Gemma4ForCausalLM.from_pretrained("google/gemma-4-E2B-it")
>>> tokenizer = AutoTokenizer.from_pretrained("google/gemma-4-E2B-it")
>>> prompt = "What is your favorite condiment?"
>>> inputs = tokenizer(prompt, return_tensors="pt")
>>> # Generate
>>> generate_ids = model.generate(inputs.input_ids, max_length=30)
>>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"What is your favorite condiment?"Gemma4Model
فئة transformers.Gemma4Model
< source >( config: Gemma4Config )
المعاملات
- config (Gemma4Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Gemma 4 الأساسي الذي يتكون من هيكل بصري، وهيكل صوتي، ونموذج لغوي بدون رأس لنمذجة اللغة.
يرث هذا النموذج من 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] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonemm_token_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Noneimage_position_ids: typing.Optional[torch.LongTensor] = Nonevideo_position_ids: typing.Optional[torch.LongTensor] = Nonenum_frames_per_video: typing.Optional[torch.LongTensor] = Noneper_layer_inputs: typing.Optional[torch.Tensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Gemma4ModelOutputWithPast 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() للتفاصيل (يستخدم Gemma4Processor Gemma4ImageProcessor لمعالجة الصور). - pixel_values_videos (
torch.Tensorمن الشكل(batch_size, num_frames, num_channels, frame_size, frame_size)، اختياري) — المصفوفات المقابلة لفيديو الإدخال. يمكن الحصول على قيم البكسل للفيديوهات باستخدام Gemma4VideoProcessor. راجع Gemma4VideoProcessor.call() للتفاصيل (Gemma4Processor يستخدم Gemma4VideoProcessor لمعالجة الفيديوهات). - input_features (
torch.Tensorمن الشكل(batch_size, sequence_length, feature_dim)، اختياري) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام Gemma4AudioFeatureExtractor. راجع Gemma4AudioFeatureExtractor.call() للتفاصيل (Gemma4Processor يستخدم 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]. - past_key_values (
~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - mm_token_type_ids (
torch.LongTensorمن الشكل(batch_size, sequence_length)، اختياري) — فهارس رموز تسلسل الإدخال المطابقة لكل نمط. على سبيل المثال النص (0)، الصورة (1)، الفيديو (2). يمكن الحصول على معرّفات أنواع الرموز متعددة الوسائط باستخدام AutoProcessor. راجع ProcessorMixin.call() للتفاصيل. - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values). - 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، نظرًا لأن إطارات جميع الفيديوهات مدمجة على محور واحد. - per_layer_inputs (
torch.Tensor، اختياري) — تضمينات نصية مُسبقة الحساب لكل طبقة، بأبعاد(batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input). عند توفيرها، تُستخدم مباشرةً بدلاً من حسابها منinput_idsعبرget_per_layer_inputs()في نموذج النص. إذا كنت تستدعيforwardباستخدامinputs_embedsبدلاً منinput_ids، فيجب عليك على الأرجح حسابها مسبقاً وتحويلها معinputs_embeds، وإلا فإن إعادة حسابها تتطلب عكس التضمين الرئيسي، وهو أمر مكلف. - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], اختياري) — قاموس تكون مفاتيحه الأنماط المدعومة وقيمها المخرجات المُرمّزة لكل نمط. كل مخرَج مُرمَّز هو مجموعة (tuple) تتكون من (pooler_output، اختياري:last_hidden_states، اختياري:hidden_states، اختياري:attentions)pooler_outputذو الشكل(batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من الميزات متعددة الوسائط للمُشفِّر المُدمجة مع تضمينات النص.
يعيد
Gemma4ModelOutputWithPast أو tuple(torch.Tensor)
Gemma4ModelOutputWithPast أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (Gemma4Config) والمدخلات.
تُعيد طريقة Gemma4Model الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.إذا تم استخدام
past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل(batch_size, 1, hidden_size)هي التي تُخرج.past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها (انظر مدخل
past_key_values) لتسريع فك الترميز التسلسلي.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 الناتجة عن النموذج بواسطة مُشفِّر الصوت وبعد إسقاط الحالة المخفية الأخيرة.shared_kv_states (
KVSharingDict، اختياري) — حاوية تشبه القاموس (dict) تُخزّن سلاسل نصية لنوع الطبقة كمفاتيح، وتربطها بمجموعات (tuples) من تينسورات (key_states, value_states). يُستخدم لتبادل حالات KV المشتركة بين الطبقات أثناء مشاركة KV.router_logits (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_router_logits=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة MoE) بشكل(batch_size * sequence_length, num_experts).
Gemma4ForConditionalGeneration
فئة transformers.Gemma4ForConditionalGeneration
< source >( config: Gemma4Config )
المعاملات
- config (Gemma4Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Gemma 4 الأساسي الذي يتكون من هيكل بصري، وهيكل صوتي، ونموذج لغوي، ورأس لنمذجة اللغة.
يرث هذا النموذج من 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] = Noneimage_position_ids: typing.Optional[torch.LongTensor] = Nonevideo_position_ids: typing.Optional[torch.LongTensor] = Nonenum_frames_per_video: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonemm_token_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0per_layer_inputs: typing.Optional[torch.Tensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Gemma4CausalLMOutputWithPast 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() للتفاصيل (يستخدم Gemma4Processor Gemma4ImageProcessor لمعالجة الصور). - pixel_values_videos (
torch.Tensorمن الشكل(batch_size, num_frames, num_channels, frame_size, frame_size)، اختياري) — المصفوفات المقابلة لفيديو الإدخال. يمكن الحصول على قيم البكسل للفيديوهات باستخدام Gemma4VideoProcessor. راجع Gemma4VideoProcessor.call() للتفاصيل (Gemma4Processor يستخدم Gemma4VideoProcessor لمعالجة الفيديوهات). - input_features (
torch.Tensorمن الشكل(batch_size, sequence_length, feature_dim)، اختياري) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام Gemma4AudioFeatureExtractor. راجع Gemma4AudioFeatureExtractor.call() للتفاصيل (Gemma4Processor يستخدم 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]. - 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، نظرًا لأن إطارات جميع الفيديوهات مدمجة على محور واحد. - past_key_values (
~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - mm_token_type_ids (
torch.LongTensorمن الشكل(batch_size, sequence_length)، اختياري) — فهارس رموز تسلسل الإدخال المطابقة لكل نمط. على سبيل المثال النص (0)، الصورة (1)، الفيديو (2). يمكن الحصول على معرّفات أنواع الرموز متعددة الوسائط باستخدام AutoProcessor. راجع ProcessorMixin.call() للتفاصيل. - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - labels (
torch.LongTensorمن الشكل(batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن[0, ..., config.vocab_size]أو -100 (انظرinput_idsdocstring). يتم تجاهل الرموز التي فهارسها مضبوطة على-100(مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن[0, ..., config.vocab_size]. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values). - logits_to_keep (
Union[int, torch.Tensor]، اختياري، القيمة الافتراضية0) — إذا كانint، يتم حساب logits لآخرlogits_to_keepرموز. إذا كانت القيمة0، يتم حساب logits لجميعinput_ids(حالة خاصة). لا يُحتاج إلى logits إلا للرمز الأخير في عملية التوليد، ويمكن أن يوفر حسابها لذلك الرمز وحده ذاكرة كبيرة، وهو أمر مهم بشكل ملحوظ للتسلسلات الطويلة أو حجم المفردات الكبير. إذا كانtorch.Tensor، يجب أن يكون بعدًا واحدًا (1D) ويتوافق مع الفهارس التي يجب الاحتفاظ بها في بُعد طول التسلسل. يكون هذا مفيدًا عند استخدام تنسيق المصفوفات المعبأة (packed tensor format) (بعد واحد لكل من الدفعة وطول التسلسل). - per_layer_inputs (
torch.Tensor، اختياري) — تضمينات نصية مُسبقة الحساب لكل طبقة، بأبعاد(batch_size, sequence_length, num_hidden_layers, hidden_size_per_layer_input). عند توفيرها، تُستخدم مباشرةً بدلاً من حسابها منinput_idsعبرget_per_layer_inputs()في نموذج النص. إذا كنت تستدعيforwardباستخدامinputs_embedsبدلاً منinput_ids، فيجب عليك على الأرجح حسابها مسبقاً وتحويلها معinputs_embeds، وإلا فإن إعادة حسابها تتطلب عكس التضمين الرئيسي، وهو أمر مكلف. - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], اختياري) — قاموس تكون مفاتيحه الأنماط المدعومة وقيمها المخرجات المُرمّزة لكل نمط. كل مخرَج مُرمَّز هو مجموعة (tuple) تتكون من (pooler_output، اختياري:last_hidden_states، اختياري:hidden_states، اختياري:attentions)pooler_outputذو الشكل(batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من الميزات متعددة الوسائط للمُشفِّر المُدمجة مع تضمينات النص.
يعيد
Gemma4CausalLMOutputWithPast أو tuple(torch.Tensor)
Gemma4CausalLMOutputWithPast أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (Gemma4Config) والمدخلات.
تتجاوز طريقة Gemma4ForConditionalGeneration الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorof shape(1,), اختياري, يُعاد عند توفيرlabels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).logits (
torch.Tensorمن الشكل(batch_size, sequence_length, config.text_config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها (انظر مدخل
past_key_values) لتسريع فك الترميز التسلسلي.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 الناتجة عن النموذج بواسطة مُشفِّر الصوت وبعد إسقاط الحالة المخفية الأخيرة.shared_kv_states (
KVSharingDict، اختياري) — حاوية تشبه القاموس (dict) تُخزّن سلاسل نصية لنوع الطبقة كمفاتيح، وتربطها بمجموعات (tuples) من تينسورات (key_states, value_states). يُستخدم لتبادل حالات KV المشتركة بين الطبقات أثناء مشاركة KV.router_logits (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_router_logits=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة MoE) بشكل(batch_size * sequence_length, num_experts).
مثال:
>>> from PIL import Image
>>> from transformers import AutoProcessor, Gemma4ForConditionalGeneration
>>> model = Gemma4ForConditionalGeneration.from_pretrained("google/gemma-4-e2b-it")
>>> processor = AutoProcessor.from_pretrained("google/gemma-4-e2b-it")
>>> messages = [
... {
... "role": "user", "content": [
... {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
... {"type": "text", "text": "Where is the cat standing?"},
... ]
... },
... ]
>>> inputs = processor.apply_chat_template(
... messages,
... tokenize=True,
... return_dict=True,
... return_tensors="pt",
... add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]