Transformers documentation

Gemma3n

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

نُشر هذا النموذج في أوراق HF في 12-11-2024، وأُضيف إلى Hugging Face Transformers في 26-06-2025.

SDPA

Gemma3n

نظرة عامة

Gemma3n هو نموذج متعدد الوسائط يتوفر بنسخ مُسبقة التدريب ونسخ مُهيّأة بالتعليمات، بحجمي E4B وE2B. وعلى الرغم من أن أجزاء كبيرة من بنية نموذج اللغة مشتركة مع إصدارات Gemma السابقة، إلا أن هذا النموذج يتضمن العديد من الإضافات الجديدة، بما في ذلك Alternating Updates (AltUp)، وLearned Augmented Residual Layer (LAuReL)، وMatFormer، وPer-Layer Embeddings (PLE)، وActivation Sparsity with Statistical Top-k، ومشاركة ذاكرة KV. يستخدم نموذج اللغة نمط انتباه مشابهًا لنمط Gemma 3، حيث يتناوب كل 4 طبقات ذاتية الانتباه النافذة المنزلقة المحلية مع كل طبقة ذاتية الانتباه العالمية، بحد أقصى لطول السياق يبلغ 32k رمزًا. ويقدّم Gemma 3n مُشفّر الرؤية MobileNet v5، باستخدام دقة افتراضية تبلغ 768x768 بكسل، ويضيف مُشفّر صوتي جديدًا تم تدريبه بناءً على بنية Universal Speech Model (USM).

خضع المتغير المُعدّل بالتعليمات لتدريب لاحق باستخدام تقنيتي تقطير المعرفة والتعلم المعزز.

يمكنك العثور على جميع نقاط التفتيش الأصلية لنموذج Gemma 3n ضمن إصدار Gemma 3n.

انقر على نماذج Gemma 3n في الشريط الجانبي الأيمن لمزيد من الأمثلة حول كيفية تطبيق Gemma على مهام مختلفة في الرؤية والصوت واللغة.

اضبط use_kernels=True في from_pretrained() لاستبدال الطبقات المدعومة بنوى مُحسَّنة من Hub. راجع تحميل النوى لمعرفة المزيد.

يُظهر المثال أدناه كيفية توليد النص بناءً على صورة باستخدام Pipeline أو فئة AutoModel.

خط أنابيب
AutoModel
from transformers import pipeline


pipeline = pipeline(
    task="image-text-to-text",
    model="google/gemma-3n-e4b",
    device=0,
)
pipeline(
    "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg",
    text="<start_of_image> What is shown in this image?"
)

ملاحظات

  • استخدم Gemma3nForConditionalGeneration للمدخلات التي تجمع بين الصورة والصوت والنص، والصورة والنص، والصورة والصوت، والصوت والنص، والصورة فقط، والصوت فقط.

  • يدعم Gemma 3n إدخال صور متعددة لكل مدخل، لكن تأكد من تجميع الصور بشكل صحيح قبل تمريرها إلى المعالج. يجب أن يكون كل دفعة قائمة تحتوي على صورة واحدة أو أكثر.

    url_cow = "https://media.istockphoto.com/id/1192867753/photo/cow-in-berchida-beach-siniscola.jpg?s=612x612&w=0&k=20&c=v0hjjniwsMNfJSuKWZuIn8pssmD5h5bSN1peBd1CmH4="
    url_cat = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
    
    messages =[
        {
            "role": "system",
            "content": [
                {"type": "text", "text": "You are a helpful assistant."}
            ]
        },
        {
            "role": "user",
            "content": [
                {"type": "image", "url": url_cow},
                {"type": "image", "url": url_cat},
                {"type": "text", "text": "Which image is cuter?"},
            ]
        },
    ]
  • يجب أن يحتوي النص المُمرَّر إلى المعالج على رمز <image_soft_token> في أي موضع يُفترض فيه إدراج صورة.

  • يقبل Gemma 3n مقطعًا صوتيًا واحدًا كحد أقصى لكل إدخال، على الرغم من أنه يمكن تقديم مقاطع صوتية متعددة في موجهات few-shot، على سبيل المثال.

  • يجب أن يحتوي النص المُمرَّر إلى المعالج على رمز <audio_soft_token> في أي موضع يُفترض فيه إدراج مقطع صوتي.

  • يتميز المعالج بطريقته الخاصة apply_chat_template() لتحويل رسائل الدردشة إلى مدخلات النموذج.

Gemma3nAudioFeatureExtractor

فئة transformers.Gemma3nAudioFeatureExtractor

< >

( feature_size: int = 128sampling_rate: int = 16000padding_value: float = 0.0return_attention_mask: bool = Trueframe_length_ms: float = 32.0hop_length_ms: float = 10.0min_frequency: float = 125.0max_frequency: float = 7600.0preemphasis: float = 0.97preemphasis_htk_flavor: bool = Truefft_overdrive: bool = Truedither: float = 0.0input_scale_factor: float = 1.0mel_floor: float = 1e-05per_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، اختياري، القيمة الافتراضية 32.0) — طول الإطار بالمللي ثانية.
  • hop_length_ms (float، اختياري، القيمة الافتراضية 10.0) — طول النوافذ المتداخلة المستخدمة في تحويل فورييه القصير (STFT) للحصول على معاملات ترددات ميل.
  • min_frequency (float، اختياري، القيمة الافتراضية 125.0) — الحد الأدنى للتردد (بوحدة هرتز) لبنك مرشحات ميل.
  • max_frequency (float، اختياري، القيمة الافتراضية 7600.0) — التردد الأقصى (بالهرتز) لبنك مرشحات Mel.
  • preemphasis (float، اختياري، القيمة الافتراضية 0.97) — معامل التمهيد المسبق.
  • preemphasis_htk_flavor (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم استخدام التمهيد المسبق بنمط HTK.
  • fft_overdrive (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم استخدام 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، اختياري، القيمة الافتراضية 1e-05) — القيمة الدنيا لطييفات Mel لتجنب log(0).
  • per_bin_mean (Optional[Sequence[float]]، اختياري) — القيم المتوسطة لتطبيع كل شريحة.
  • per_bin_stddev (Optional[Sequence[float]]، اختياري) — قيم الانحراف المعياري لتطبيع كل دلو على حدة.

مستخرج ميزات صوتية لنماذج الكلام الشاملة https://huggingface.co/papers/2303.01037.

Gemma3nProcessor

فئة transformers.Gemma3nProcessor

< >

( feature_extractorimage_processortokenizerchat_template = Noneaudio_seq_length: int = 188image_seq_length: int = 256**kwargs )

المعاملات

  • feature_extractor (Gemma3nAudioFeatureExtractor) — مستخرج الميزات هو مدخل إلزامي.
  • image_processor (SiglipImageProcessor) — معالج الصور هو مدخل إلزامي.
  • tokenizer (GemmaTokenizer) — مُجزِّئ الرموز هو مدخل إلزامي.
  • chat_template (str) — قالب Jinja لتحويل قوائم الرسائل في المحادثة إلى نص قابل للتجزئة.
  • audio_seq_length (int، اختياري، القيمة الافتراضية 188) — عدد رموز الصوت الناعمة التي ستُضاف إلى موجه النص
  • image_seq_length (int، اختياري، القيمة الافتراضية 256) — عدد رموز الصورة الناعمة التي يجب إضافتها إلى

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

يوفر Gemma3nProcessor جميع وظائف Gemma3nAudioFeatureExtractor وSiglipImageProcessor وGemmaTokenizer. راجع ~Gemma3nAudioFeatureExtractor و~SiglipImageProcessor و~GemmaTokenizer لمزيد من المعلومات.

__call__

< >

( 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]] = Noneaudio: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]] | None = None**kwargs: *<class 'transformers.models.gemma3n.processing_gemma3n.Gemma3nProcessorKwargs'> ) → ~feature_extraction_utils.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.
  • text (Union[str, list[str], list[list[str]]]، اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصاً أو قائمة من النصوص (نص مُقسَّم مسبقاً إلى رموز). إذا مرّرت مدخلاً مُقسَّماً مسبقاً إلى رموز، فعيّن is_split_into_words=True لتجنّب الغموض مع المدخلات المُجمَّعة في دفعات.
  • audio (Union[numpy.ndarray, list[float], list[numpy.ndarray], list[list[float]]], اختياري) — الصوت أو مجموعة الأصوات التي يجب تجهيزها. يمكن أن يكون كل صوت مصفوفة NumPy أو متجه PyTorch. في حالة استخدام مصفوفة NumPy أو متجه PyTorch، يجب أن يكون شكل كل صوت (C, T)، حيث C هو عدد القنوات، وT هو طول العينة للصوت.
  • return_tensors (str أو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من NumPy.
  • **kwargs (ProcessingKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

يعيد

~feature_extraction_utils.BatchFeature

  • data (dict، اختياري) — قاموس من القوائم/المصفوفات/الموترات التي تُعاد بواسطة طريقتي call/pad (مثل ‘input_values’، ‘attention_mask’، وما إلى ذلك).
  • tensor_type (Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
  • skip_tensor_conversion (list[str] أو set[str]، اختياري) — قائمة أو مجموعة من المفاتيح التي يجب ألا تُحوَّل إلى متجهات، حتى لو تم تحديد tensor_type.

Gemma3nTextConfig

فئة transformers.Gemma3nTextConfig

< >

( 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 = 262400hidden_size: int = 2048intermediate_size: int | list[int] = 16384num_hidden_layers: int = 35num_attention_heads: int = 8num_key_value_heads: int = 2head_dim: int = 256hidden_activation: str = 'gelu_pytorch_tanh'max_position_embeddings: int = 32768initializer_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 = 30.0vocab_size_per_layer_input: int = 262144hidden_size_per_layer_input: int = 256altup_active_idx: int = 0altup_coef_clip: float = 120.0altup_correct_scale: bool = Truealtup_num_inputs: int = 4num_kv_shared_layers: int = 15laurel_rank: int = 64activation_sparsity_pattern: float | list[float] | None = None )

المعاملات

  • vocab_size (int, اختياري، القيمة الافتراضية 262400) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • hidden_size (int، اختياري، القيمة الافتراضية 2048) — بعد التمثيلات المخفية.
  • intermediate_size (Union[int, list[int]]، اختياري، القيمة الافتراضية 16384) — أبعاد تمثيلات MLP.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 35) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • num_key_value_heads (int, اختياري، القيمة الافتراضية 2) — هذا هو عدد رؤوس key_value التي يجب استخدامها لتنفيذ Grouped Query Attention. إذا كان num_key_value_heads=num_attention_heads، فسيستخدم النموذج Multi Head Attention (MHA)، وإذا كان num_key_value_heads=1 فسيستخدم النموذج Multi Query Attention (MQA)، وإلا فسيتم استخدام GQA. عند تحويل نقطة تفتيش متعددة الرؤوس إلى نقطة تفتيش GQA، يجب بناء كل مجموعة من رؤوس key و value عن طريق meanpooling جميع الرؤوس الأصلية داخل تلك المجموعة. لمزيد من التفاصيل، راجع هذا الورقة. إذا لم يتم تحديد القيمة، فستكون القيمة الافتراضية هي num_attention_heads.
  • head_dim (int، اختياري، القيمة الافتراضية 256) — بعد رأس الانتباه. إذا كانت القيمة None، فستكون القيمة الافتراضية هي hidden_size // num_attention_heads
  • hidden_activation (str, اختياري، القيمة الافتراضية gelu_pytorch_tanh) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • max_position_embeddings (int، اختياري، القيمة الافتراضية 32768) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق.
  • 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، اختياري، القيمة الافتراضية 30.0) — قيمة التقييد الناعم المطبقة على القيم النهائية (logits) قبل حساب توزيع الاحتمالات. يتم تحجيم القيم النهائية (logits) باستخدام tanh(logit / cap) * cap.
  • vocab_size_per_layer_input (int، اختياري، القيمة الافتراضية 262144) — حجم مفردات التضمينات النصية لكل طبقة التي تُكمّل التضمينات القياسية.
  • hidden_size_per_layer_input (int، اختياري، القيمة الافتراضية 256) — أبعاد التمثيلات المخفية للتضمينات الخاصة بكل طبقة.
  • altup_active_idx (int، اختياري، القيمة الافتراضية 0) — مؤشر التنبؤ الذي ستحسب منه AltUp تنبؤات إضافية أو تصحح التنبؤ النشط.
  • altup_coef_clip (float, اختياري، القيمة الافتراضية 120.0) — الحد الأقصى لسعة معامل التنبؤ أو التصحيح الخاص بـ AltUp.
  • altup_correct_scale (bool، اختياري، القيمة الافتراضية True) — إذا كانت القيمة True، فطبّق AltUp.correct_output_scale على التنبؤ المُصحَّح عند altup_active_idx.
  • altup_num_inputs (int، اختياري، القيمة الافتراضية 4) — عدد التنبؤات التي يجب أن يُجريها AltUp بناءً على تسلسل الإدخال.
  • num_kv_shared_layers (int, اختياري، القيمة الافتراضية 15) — عدد الطبقات التي تشارك قيم ذاكرة KV. أثناء المرور الأمامي، «تشارك» آخر num_kv_shared_layers طبقات في النموذج قيم KV بحيث تستخدم كل طبقة محلية وعالمية ضمن هذا النطاق قيم ذاكرة KV المحسوبة للطبقة المحلية أو العالمية الأخيرة، على التوالي، قبل الدخول إلى هذا النطاق. يجب أن تكون القيمة مضاعفاً لحجم نمط الانتباه (انظر معامل layer_types).
  • laurel_rank (int، اختياري، القيمة الافتراضية 64) — الحجم الوسيط للتحويلات الخطية في طبقة الباقي المُتعلَّم المُعزَّز.
  • activation_sparsity_pattern (Sequence[float], اختياري) — عامل التخلخل المستخدم لاستخراج أعلى k من التفعيلات لطبقة معينة. يجب أن يوفّر التسلسل المُدخل قيمة تخلخل صريحة لكل طبقة في النموذج. افتراضياً، تكون أول 10 طبقات متخلخلة بعامل تخلخل قدره 0.95، بينما تكون بقية الطبقات كثيفة.

هذه فئة الإعدادات المخزنة لإعدادات نموذج Gemma3nModel. تُستخدم لاستحداث نموذج Gemma3N وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/gemma-3n-E4B

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

>>> from transformers import Gemma3nTextModel, Gemma3nTextConfig

>>> # Initializing a Gemma3nText gemma3n_text-E4B style configuration
>>> configuration = Gemma3nTextConfig()

>>> # Initializing a model from the gemma3n_text-E4B style configuration
>>> model = Gemma3nTextModel(configuration)

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

Gemma3nVisionConfig

فئة transformers.Gemma3nVisionConfig

< >

( 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 = Nonearchitecture: str = 'mobilenetv5_300m_enc'initializer_range: float = 0.02do_pooling: bool = Falsemodel_args: dict | None = Nonehidden_size: int = 2048vocab_size: int = 128vocab_offset: int = 262144rms_norm_eps: float = 1e-06 )

المعاملات

  • architecture (str، اختياري، القيمة الافتراضية "resnet50") — بنية timm التي سيتم تحميلها.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • do_pooling (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم إجراء تجميع (pooling) لحالة TimmWrapperModel الأخيرة (last_hidden_state) أم لا.
  • model_args (dict[str, Any], اختياري) — حجج إضافية بالكلمات المفتاحية تُمرَّر إلى دالة timm.create_model. على سبيل المثال model_args={"depth": 3} لنموذج timm/vit_base_patch32_clip_448.laion2b_ft_in12k_in1k لإنشاء نموذج يحتوي على 3 كتل. القيمة الافتراضية هي None.
  • hidden_size (int، اختياري، القيمة الافتراضية 2048) — بعد التمثيلات المخفية.
  • vocab_size (int، اختياري، القيمة الافتراضية 128) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • vocab_offset (int، اختياري، القيمة الافتراضية 262144) — الإزاحة بين فهرس قاموس المُجزّئ لمعرّفات الرموز المُضمّنة بواسطة Gemma3nMultimodalEmbedder وجدول Gemma3nMultimodalEmbedder.embedding ذي الفهرسة الصفرية.
  • rms_norm_eps (float، اختياري، القيمة الافتراضية 1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms.

هذه فئة الإعدادات المخزنة لإعدادات نموذج Gemma3nModel. تُستخدم لاستحداث نموذج Gemma3N وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/gemma-3n-E4B

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

مثال:

>>> from transformers import Gemma3nVisionConfig, TimmWrapper

>>> # Initializing a TimmWrapper gemma3n_vision-E4B-style configuration
>>> configuration = Gemma3nVisionConfig()

>>> # Initializing a gemma3n_vision-E4B-style TimmWrapper from the configuration
>>> model = TimmWrapper(configuration)

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

Gemma3nAudioConfig

فئة transformers.Gemma3nAudioConfig

< >

( 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 = 128vocab_offset: int = 262272input_feat_size: int = 128hidden_size: int = 1536rms_norm_eps: float = 1e-06gradient_clipping: float = 10000000000.0conf_attention_chunk_size: int = 12conf_attention_context_left: int = 13conf_attention_context_right: int = 0conf_attention_logit_cap: float = 50.0conf_num_attention_heads: int = 8conf_num_hidden_layers: int = 12conf_conv_kernel_size: int = 5conf_reduction_factor: int = 4conf_residual_weight: float = 0.5sscp_conv_channel_size: list[int] | tuple[int, int] = (128, 32)sscp_conv_group_norm_eps: float = 0.001sscp_conv_kernel_size: list | tuple[tuple[int, int], tuple[int, int]] = ((3, 3), (3, 3))sscp_conv_stride_size: list | tuple[tuple[int, int], tuple[int, int]] = ((2, 2), (2, 2)) )

المعاملات

  • vocab_size (int، اختياري، القيمة الافتراضية 128) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • vocab_offset (int، اختياري، القيمة الافتراضية 262272) — الإزاحة بين فهرس قاموس المُجزّئ لمعرّفات الرموز المضمّنة بواسطة Gemma3nMultimodalEmbedder وجدول Gemma3nMultimodalEmbedder.embedding ذي الفهرسة الصفرية.
  • input_feat_size (int، اختياري، القيمة الافتراضية 128) — عدد القنوات في كل إطار من إطارات مطياف الميّل.
  • hidden_size (int، اختياري، القيمة الافتراضية 1536) — أبعاد التمثيلات المخفية.
  • rms_norm_eps (float، اختياري، القيمة الافتراضية 1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms.
  • gradient_clipping (float, اختياري، القيمة الافتراضية 10000000000.0) — قيمة القص المستخدمة لتثبيت قيم التدرجات الكبيرة جداً.
  • conf_attention_chunk_size (int, اختياري، القيمة الافتراضية 12) — حجم التسلسل الفرعي لمعالجة الانتباه المحلي داخل قسم Conformer ("conf") في نموذج الكلام الشامل.
  • conf_attention_context_left (int, اختياري، القيمة الافتراضية 13) — حجم السياق الأيسر للانتباه المحلي داخل قسم Conformer (“conf”) في نموذج الكلام الشامل (Universal Speech Model).
  • conf_attention_context_right (int, اختياري، القيمة الافتراضية 0) — حجم السياق الأيمن للانتباه المحلي داخل قسم Conformer (“conf”) في نموذج الكلام الشامل (Universal Speech Model).
  • conf_attention_logit_cap (float, اختياري، القيمة الافتراضية 50.0) — حدّ القيم اللوغاريتمية (Logit cap) المطبَّق أثناء الانتباه المحلي داخل قسم Conformer ("conf") في نموذج الكلام الشامل (Universal Speech Model).
  • conf_num_attention_heads (int, اختياري، القيمة الافتراضية 8) — عدد رؤوس الانتباه في الانتباه المحلي داخل قسم Conformer (“conf”) في نموذج الكلام الشامل.
  • conf_num_hidden_layers (int, اختياري، القيمة الافتراضية 12) — عدد الطبقات التي تستخدم الانتباه المحلي داخل قسم Conformer ("conf") في نموذج الكلام الشامل (Universal Speech Model).
  • conf_conv_kernel_size (int, اختياري، القيمة الافتراضية 5) — حجم نواة الالتفاف (Convolution kernel) الخاصة بوحدة Conformer داخل قسم Conformer (“conf”) في نموذج الكلام الشامل (Universal Speech Model).
  • conf_reduction_factor (int، اختياري، القيمة الافتراضية 4) — معامل الاختزال المستخدم في كتلة الكونفورمر داخل قسم Conformer (“conf”) في نموذج الكلام الشامل.
  • conf_residual_weight (float, اختياري، القيمة الافتراضية 0.5) — وزن اتصال المتبقي داخل قسم Conformer ("conf") في نموذج الكلام الشامل.
  • sscp_conv_channel_size (tuple(int, int)، اختياري، القيمة الافتراضية (128, 32)) — حجم القنوات للطبقتين التجميعيتين الأولى والثانية في قسم الإسقاط التجميعي الفرعي (“sscp”) من نموذج الكلام الشامل.
  • sscp_conv_group_norm_eps (float, اختياري، القيمة الافتراضية 0.001) — قيمة Epsilon المستخدمة في تطبيع المجموعات (group normalization) في إسقاط التمرير الفرعي (subsample convolution projection) في قسم إسقاط التمرير الفرعي (“sscp”) من نموذج الكلام الشامل (Universal Speech Model).
  • sscp_conv_kernel_size (tuple(tuple(int, int), tuple(int, int)), اختياري، القيمة الافتراضية ((3, 3), (3, 3))) — أحجام النواة للطبقتين التجميعيتين في الإسقاط التجميعي الفرعي في قسم الإسقاط التجميعي الفرعي (“sscp”) من نموذج الكلام الشامل. يتم تحديد أحجام النواة على شكل مجموعة من الارتفاع والعرض لكل طبقة، حيث يقابل الارتفاع بُعد الزمن ويقابل العرض بُعد التردد.
  • sscp_conv_stride_size (tuple(tuple(int, int), tuple(int, int)), اختياري، القيمة الافتراضية ((2, 2), (2, 2))) — حجم الخطوة للطبقتين التجميعيتين في الإسقاط التجميعي الفرعي في قسم الإسقاط التجميعي الفرعي (“sscp”) من نموذج الكلام الشامل. يتم تحديد أحجام الخطوة على شكل مجموعة من الارتفاع والعرض لكل طبقة، حيث يقابل الارتفاع بُعد الزمن ويقابل العرض بُعد التردد.

هذه فئة الإعدادات المخزنة لإعدادات نموذج Gemma3nModel. تُستخدم لاستحداث نموذج Gemma3N وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/gemma-3n-E4B

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

مثال:

>>> from transformers import Gemma3nAudioConfig, Gemma3nAudioEncoder

>>> # Initializing a Gemma3nAudioEncoder gemma3n_audio-E4B-style configuration
>>> configuration = Gemma3nAudioConfig()

>>> # Initializing a model from the gemma3n_audio-E4B style configuration
>>> model = Gemma3nAudioEncoder(configuration)

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

Gemma3nConfig

فئة transformers.Gemma3nConfig

< >

( 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.gemma3n.configuration_gemma3n.Gemma3nTextConfig | dict[str, typing.Any] | None = Nonevision_config: transformers.models.gemma3n.configuration_gemma3n.Gemma3nVisionConfig | dict[str, typing.Any] | None = Noneaudio_config: transformers.models.gemma3n.configuration_gemma3n.Gemma3nAudioConfig | dict[str, typing.Any] | None = Noneaudio_soft_tokens_per_image: int | None = 188vision_soft_tokens_per_image: int | None = 256boi_token_id: int | None = 255999eoi_token_id: int | None = 262144image_token_id: int | None = 262145boa_token_id: int | None = 256000eoa_token_id: int | None = 262272audio_token_id: int | None = 262273initializer_range: float | None = 0.02tie_word_embeddings: bool | None = Trueuse_cache: bool = True )

المعاملات

  • text_config (Union[~models.gemma3n.configuration_gemma3n.Gemma3nTextConfig, dict[str, Any]]، اختياري) — كائن الإعدادات أو قاموس العمود الفقري النصي.
  • vision_config (Union[~models.gemma3n.configuration_gemma3n.Gemma3nVisionConfig, dict[str, Any]], اختياري) — كائن الإعدادات أو قاموس العمود الفقري البصري.
  • audio_config (Union[~models.gemma3n.configuration_gemma3n.Gemma3nAudioConfig, dict[str, Any]], اختياري) — كائن الإعداد أو قاموس العمود الفقري الصوتي.
  • audio_soft_tokens_per_image (int، اختياري، القيمة الافتراضية 188) — عدد الرموز الناعمة لكل مقطع صوتي.
  • vision_soft_tokens_per_image (int, اختياري، القيمة الافتراضية 256) — عدد الرموز الناعمة لكل صورة.
  • boi_token_id (int، اختياري، القيمة الافتراضية 255999) — مؤشر رمز بداية الصورة (begin-of-image) المستخدم لتغليف موجه الصورة.
  • eoi_token_id (int, اختياري، القيمة الافتراضية 262144) — مؤشر رمز نهاية الصورة (end-of-image token) المستخدم لتغليف موجه الصورة.
  • image_token_id (int، اختياري، القيمة الافتراضية 262145) — مؤشر رمز الصورة المستخدم كعنصر نائب للصور المدخلة.
  • boa_token_id (int، اختياري، القيمة الافتراضية 256000) — مؤشر رمز بداية الصوت (begin-of-audio) المستخدم لتغليف موجه الصوت.
  • eoa_token_id (int، اختياري، القيمة الافتراضية 262272) — مؤشر رمز نهاية الصوت (end-of-audio) المستخدم لتغليف موجه الصوت.
  • audio_token_id (int، اختياري، القيمة الافتراضية 262273) — مؤشر رمز الصوت المستخدم كعنصر نائب للصوت المُدخل.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • tie_word_embeddings (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطة tied_weights_keys الخاصة بالنموذج.
  • use_cache (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كان config.is_decoder=True أو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط.

هذه فئة الإعدادات المخزنة لإعدادات نموذج Gemma3nModel. تُستخدم لاستحداث نموذج Gemma3N وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/gemma-3n-E4B

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

مثال:

>>> from transformers import Gemma3nForConditionalGeneration, Gemma3nConfig, Gemma3nTextConfig

>>> # Initializing a MobileNet vision config, which is loaded from TIMM
>>> vision_config = Gemma3nVisionConfig()

>>> # Initializing a Gemma3n Audio config
>>> audio_config = Gemma3nAudioConfig()

>>> # Initializing a Gemma3n Text config
>>> text_config = Gemma3nTextConfig()

>>> # Initializing a Gemma3n gemma-3-4b style configuration
>>> configuration = Gemma3nConfig(text_config, vision_config, audio_config)

>>> # Initializing a model from the gemma-3-4b style configuration
>>> model = Gemma3nTextConfig(configuration)

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

Gemma3nTextModel

فئة transformers.Gemma3nTextModel

< >

( config: Gemma3nTextConfig )

المعاملات

  • config (Gemma3nTextConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج Gemma 3n اللغوي الأساسي دون رأس نمذجة اللغة.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneper_layer_inputs: typing.Optional[torch.Tensor] = 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] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • per_layer_inputs (torch.Tensor، اختياري، القيمة الافتراضية هي None) — تمثيلات مُسبقة الحساب لكل طبقة. إذا كانت القيمة None، يتم اشتقاقها من input_ids إذا تم توفيرها.
  • 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 إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.
  • use_cache (bool، اختياري) — إذا تم تعيينه إلى True، تُعاد حالات المفاتيح والقيم past_key_values ويمكن استخدامها لتسريع فك الترميز (انظر past_key_values).

يعيد

BaseModelOutputWithPast أو tuple(torch.Tensor)

BaseModelOutputWithPast أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (Gemma3nConfig) والمدخلات.

تتجاوز طريقة Gemma3nTextModel الخاصة بالتقديم (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.

    تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

Gemma3nModel

فئة transformers.Gemma3nModel

< >

( config: Gemma3nConfig )

المعاملات

  • config (Gemma3nConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج Gemma 3n الأساسي الذي يتكون من هيكل بصري، وهيكل صوتي، ونموذج لغوي دون رأس لنمذجة اللغة.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: 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 = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneper_layer_inputs: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )

input_features_mask (torch.Tensor من الشكل (batch_size, sequence_length)، اختياري): قناع الانتباه لـ input_features حيث تشير القيم غير الصفرية إلى إطارات الصوت الصالحة. 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، وإلا فسيتم إهمال مكوّن هوية الرمز في التضمينات لكل طبقة.

مثال:

>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, Gemma3nForConditionalGeneration

>>> model = Gemma3nForConditionalGeneration.from_pretrained("google/gemma3n2-3b-mix-224")
>>> processor = AutoProcessor.from_pretrained("google/gemma3n2-3b-mix-224")

>>> prompt = "Where is the cat standing?"
>>> url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> inputs = processor(images=image, text=prompt,  return_tensors="pt")

>>> # Generate
>>> generate_ids = model.generate(**inputs,)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"Where is the cat standing?\nsnow"

get_image_features

< >

( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

المعاملات

يعيد

BaseModelOutputWithPooling أو tuple(torch.Tensor)

BaseModelOutputWithPooling أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على الإعداد (Gemma3nConfig) والمدخلات.

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

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.

  • pooler_output (torch.Tensor من الشكل (batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.

  • hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

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

get_audio_features

< >

( input_features: Tensorinput_features_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Gemma3nAudioEncoderModelOutput or tuple(torch.Tensor)

المعاملات

  • input_features (torch.Tensor من الشكل (num_images, seq_length, num_features)) — المصفوفات المقابلة للصوت المدخل.
  • input_features_mask (torch.Tensor من الشكل (num_images, seq_length)) — قناع الانتباه للصوت المدخل.

يعيد

Gemma3nAudioEncoderModelOutput أو tuple(torch.Tensor)

Gemma3nAudioEncoderModelOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على الإعداد (Gemma3nConfig) والمدخلات.

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

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.

  • pooler_output (torch.Tensor من الشكل (batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.

  • hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

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

  • audio_mel_mask (torch.BoolTensor، اختياري) — مصفوفة torch.BoolTensor بأبعاد (batch_size, num_frames)

Gemma3nForCausalLM

فئة transformers.Gemma3nForCausalLM

< >

( config: Gemma3nTextConfig )

المعاملات

  • config (Gemma3nTextConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج Gemma 3n اللغوي الأساسي مع رأس لنمذجة اللغة.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( 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] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithPast 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_ids docstring). يتم تجاهل الرموز التي فهارسها مضبوطة على -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) (بعد واحد لكل من الدفعة وطول التسلسل).

يعيد

CausalLMOutputWithPast أو tuple(torch.Tensor)

CausalLMOutputWithPast أو مجموعة (tuple) من torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على الإعداد (Gemma3nConfig) والمدخلات.

تُعيد طريقة Gemma3nForCausalLM الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.

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

  • loss (torch.Tensor of shape (1,), اختياري, يُعاد عند توفير labels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).

  • logits (torch.Tensor من الشكل (batch_size, sequence_length, 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

>>> from transformers import AutoTokenizer, Gemma3nForCausalLM

>>> model = Gemma3nForCausalLM.from_pretrained("google/gemma-2-9b")
>>> tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-9b")

>>> 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?"

Gemma3nForConditionalGeneration

فئة transformers.Gemma3nForConditionalGeneration

< >

( config: Gemma3nConfig )

المعاملات

  • config (Gemma3nConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج Gemma 3n الأساسي الذي يتكون من هيكل بصري، وهيكل صوتي، ونموذج لغوي، ورأس لنمذجة اللغة.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: 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 = Nonetoken_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'> ) → Gemma3nCausalLMOutputWithPast 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)، اختياري) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام SiglipImageProcessor. راجع SiglipImageProcessor.call() للتفاصيل (يستخدم Gemma3nProcessor SiglipImageProcessor لمعالجة الصور).
  • input_features (torch.Tensor من الشكل (batch_size, sequence_length, feature_dim)، اختياري) — المصفوفات المقابلة لميزات الصوت المدخلة. يمكن الحصول على ميزات الصوت باستخدام Gemma3nAudioFeatureExtractor. راجع Gemma3nAudioFeatureExtractor.__call__() للتفاصيل (Gemma3nProcessor يستخدم Gemma3nAudioFeatureExtractor لمعالجة الملفات الصوتية).
  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

  • input_features_mask (torch.Tensor، اختياري، القيمة الافتراضية هي None) — قناع الانتباه للصوت المدخل.
  • 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).

  • token_type_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

    ما هي معرّفات أنواع الرموز؟

  • inputs_embeds (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمرير input_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس input_ids إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.
  • labels (torch.LongTensor من الشكل (batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن [0, ..., config.text_config.vocab_size] أو -100 (انظر input_ids docstring). يتم تجاهل الرموز التي تكون فهارسها مضبوطة على -100 (مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن [0, ..., config.text_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، وإلا فسيتم إهمال مكوّن هوية الرمز (token-identity) من التمثيلات لكل طبقة.
  • 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)، اختياري) هو تسلسل من الميزات متعددة الوسائط للمُشفِّر المُدمجة مع تضمينات النص.

يعيد

Gemma3nCausalLMOutputWithPast أو tuple(torch.Tensor)

Gemma3nCausalLMOutputWithPast أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على الإعداد (Gemma3nConfig) والمدخلات.

تتجاوز طريقة Gemma3nForConditionalGeneration الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

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

  • loss (torch.Tensor of 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 الناتجة عن النموذج بواسطة مُشفِّر الصوت وبعد إسقاط الحالة المخفية الأخيرة.

مثال:

>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, Gemma3ForConditionalGeneration

>>> model = Gemma3ForConditionalGeneration.from_pretrained("google/gemma-3-4b-it")
>>> processor = AutoProcessor.from_pretrained("google/gemma-3-4b-it")

>>> messages = [
...     {
...         "role": "system",
...         "content": [
...             {"type": "text", "text": "You are a helpful assistant."}
...         ]
...     },
...     {
...         "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,
...     tokenizer=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, clean_up_tokenization_spaces=False)[0]
"user\nYou are a helpful assistant.\n\n\n\n\n\nWhere is the cat standing?\nmodel\nBased on the image, the cat is standing in a snowy area, likely outdoors. It appears to"

get_image_features

< >

( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )

المعاملات

مثال:

>>> from PIL import Image
>>> from transformers import AutoProcessor, Gemma3nForConditionalGeneration

>>> model = Gemma3nForConditionalGeneration.from_pretrained("google/gemma-3n-E4B")
>>> processor = AutoProcessor.from_pretrained("google/gemma-3n-E4B")

>>> 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]
Update on GitHub