Transformers documentation

NemotronH Omni

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

تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-09-23.

FlashAttention

NemotronH Omni

NemotronH Omni هو نموذج استدلال متعدد الوسائط من NVIDIA يجمع بين نموذج اللغة الهجين Mamba-Transformer الخاص بـ NemotronH ومشفّر الرؤية RADIO ومشفّر صوت اختياري مبني على Parakeet. تُسقط رقاقات الصور (والفيديو) عبر برج RADIO وشبكة MLP لإعادة ترتيب البكسلات إلى فضاء التضمين الخاص بنموذج اللغة عند مواضع رموز السياق <image> / <video>؛ بينما تُسقط مقاطع الصوت بالطريقة نفسها عند مواضع <audio>. النتيجة هي نموذج ذاتي التراجع واحد يستدل بشكل مشترك على النص والصور والفيديو والصوت.

يُبيّن المثال أدناه كيفية الاستدلال على صورة وموجّه نصي باستخدام AutoModelForImageTextToText.

AutoModel
from transformers import AutoModelForImageTextToText, AutoProcessor


model_id = "nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16"

processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
    model_id,
    device_map="auto",
    # the Parakeet audio encoder has no flash-attention kernel, so pin that tower to sdpa
    attn_implementation={"": "flash_attention_2", "audio_config": "sdpa"},
)

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

output = model.generate(**inputs, max_new_tokens=128, do_sample=False)
print(processor.decode(output[0, inputs["input_ids"].shape[-1] :], skip_special_tokens=True))

NemotronH_Omni_Reasoning_V3_Config

فئة transformers.NemotronH_Omni_Reasoning_V3_Config

< >

( 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 = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneforce_image_size: int | None = Nonedownsample_ratio: float = 0.5projector_hidden_size: int = 4096vision_hidden_size: int = 1280video_pruning_rate: float = 0.0video_temporal_patch_size: int = 2image_token_id: int | None = Nonevideo_token_id: int | None = Noneaudio_token_id: int | None = None )

المعاملات

  • vision_config (dict أو RadioConfig، اختياري) — إعدادات لمشفّر الرؤية الخاص بـ RADIO. القيمة الافتراضية هي RadioConfig افتراضي.
  • text_config (dict أو NemotronHConfig، اختياري) — إعدادات نموذج اللغة NemotronH. القيمة الافتراضية هي NemotronHConfig افتراضي.
  • audio_config (dict أو ParakeetEncoderConfig، اختياري) — إعدادات لمُشفِّر Parakeet الصوتي الاختياري. تعطيل فرع الصوت عند تعيين None.
  • force_image_size (int, اختياري) — دقة صورة الإدخال الثابتة (بالبكسل) التي يتوقعها برج الرؤية.
  • downsample_ratio (float، اختياري، القيمة الافتراضية 0.5) — نسبة التقليل المكاني عبر Pixel-shuffle المطبقة على ميزات الرؤية.
  • projector_hidden_size (int, اختياري، القيمة الافتراضية 4096) — حجم الطبقة المخفية لمشروع MLP من الرؤية إلى LLM.
  • vision_hidden_size (int, اختياري، القيمة الافتراضية 1280) — حجم الميزات المخفية الخاصة بمكوّن الرؤية في RADIO.
  • video_pruning_rate (float، اختياري، القيمة الافتراضية 0.0) — معدل تقليم الرموز في Efficient-Video-Sampling؛ 0.0 يعطّل التقليم.
  • video_temporal_patch_size (int, اختياري، القيمة الافتراضية 2) — عدد الإطارات التي تُدمج في رقعة زمنية واحدة بواسطة مُضمِّن الفيديو.
  • image_token_id (int، اختياري) — معرّف الرمز المستخدم كحامل لسياق الصورة في input_ids.
  • video_token_id (int, اختياري) — معرّف الرمز المستخدم كموضع احتياطي لسياق الفيديو في input_ids.
  • audio_token_id (int، اختياري) — معرّف الرمز المستخدم كموضع احتياطي لسياق الصوت في input_ids.

هذه فئة الإعدادات المخزنة لإعدادات نموذج Nemotron H OmniModel. تُستخدم لاستحداث نموذج Nemotron H Omni وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16

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

NemotronH_Omni_Reasoning_V3ImageProcessor

فئة transformers.NemotronH_Omni_Reasoning_V3ImageProcessor

< >

( **kwargs: *<class 'transformers.models.nemotron_h_omni.image_processing_nemotron_h_omni.NemotronH_Omni_Reasoning_V3ImageProcessorKwargs'> )

المعاملات

  • do_convert_rgb (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب تحويل الصورة إلى RGB.
  • do_resize (bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة.
  • 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) — مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum PILImageResampling. لا يؤثر إلا إذا كانت قيمة do_resize هي True.
  • do_rescale (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إعادة تحجيم الصورة.
  • rescale_factor (float، kwargs، اختياري، القيمة الافتراضية 0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كان do_rescale مضبوطًا على True.
  • do_normalize (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تطبيع الصورة.
  • image_mean (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية [0.48145466, 0.4578275, 0.40821073]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم ضبط do_normalize على True.
  • image_std (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية [0.26862954, 0.26130258, 0.27577711]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له تأثير إلا إذا تم تعيين 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، اختياري، القيمة الافتراضية 16) — طول الضلع، بالبكسل، لبقعة واحدة في برج الرؤية.
  • downsample_ratio (float، kwargs، اختياري، القيمة الافتراضية 0.5) — نسبة تقليل الحجم المكاني باستخدام Pixel-shuffle التي يطبقها النموذج؛ كل جانب من شبكة البقع (patch grid) هو مضاعف لمقلوب هذه النسبة.
  • min_num_patches (int، kwargs، اختياري، القيمة الافتراضية 1024) — الحد الأدنى لعدد بقع patch_size التي يُعاد تحجيم الصورة إليها.
  • max_num_patches (int، kwargs، اختياري، القيمة الافتراضية 13312) — الحد الأقصى لعدد بقع patch_size التي يُعاد تحجيم الصورة إليها؛ 0 يعطّل هذا الحد.
  • max_model_len (int، kwargs، اختياري، القيمة الافتراضية 16384) — طول سياق نموذج اللغة، وهو يحدد الحد الأقصى لميزانية الباتشات للصور في كل استدعاء.

ينشئ معالج صور NemotronH_Omni_Reasoning_V3ImageProcessor.

preprocess

< >

( images**kwargs: *<class 'transformers.models.nemotron_h_omni.image_processing_nemotron_h_omni.NemotronH_Omni_Reasoning_V3ImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

المعاملات

  • images (`) -- Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If passing in images with pixel values between 0 and 1, set 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، اختياري، القيمة الافتراضية 16) — طول الضلع، بالبكسل، لبقعة واحدة في برج الرؤية.
  • downsample_ratio (float، kwargs، اختياري، القيمة الافتراضية 0.5) — نسبة تقليل الحجم المكاني باستخدام Pixel-shuffle التي يطبقها النموذج؛ كل جانب من شبكة البقع (patch grid) هو مضاعف لمقلوب هذه النسبة.
  • min_num_patches (int، kwargs، اختياري، القيمة الافتراضية 1024) — الحد الأدنى لعدد بقع patch_size التي يُعاد تحجيم الصورة إليها.
  • max_num_patches (int، kwargs، اختياري، القيمة الافتراضية 13312) — الحد الأقصى لعدد بقع patch_size التي يُعاد تحجيم الصورة إليها؛ 0 يعطّل هذا الحد.
  • max_model_len (int، kwargs، اختياري، القيمة الافتراضية 16384) — طول سياق نموذج اللغة، وهو يحدد الحد الأقصى لميزانية الباتشات للصور في كل استدعاء.

يعيد

~image_processing_base.BatchFeature

  • data (dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’).
  • tensor_type (Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.

NemotronH_Omni_Reasoning_V3VideoProcessor

فئة transformers.NemotronH_Omni_Reasoning_V3VideoProcessor

< >

( **kwargs: *<class 'transformers.models.nemotron_h_omni.video_processing_nemotron_h_omni.NemotronH_Omni_Reasoning_V3VideoProcessorInitKwargs'> )

المعاملات

  • **kwargs (NemotronH_Omni_Reasoning_V3VideoProcessorInitKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

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

NemotronH_Omni_Reasoning_V3Processor

فئة transformers.NemotronH_Omni_Reasoning_V3Processor

< >

( image_processor = Nonevideo_processor = Nonetokenizer = Nonefeature_extractor = Nonechat_template = Noneaudio_sampling_rate: int = 16000audio_subsampling_factor: int = 8audio_hop_length: int = 160video_temporal_patch_dim: int = 2**kwargs )

المعاملات

  • image_processor (NemotronH_Omni_Reasoning_V3ImageProcessor) — معالج الصور هو مدخل مطلوب.
  • video_processor (NemotronH_Omni_Reasoning_V3VideoProcessor) — معالج الفيديو هو مدخل مطلوب.
  • tokenizer (tokenizer_class) — مُجزِّئ النص (tokenizer) هو مدخل إلزامي.
  • feature_extractor (feature_extractor_class) — مستخرج الميزات هو مدخل مطلوب.
  • chat_template (str) — قالب Jinja لتحويل قوائم الرسائل في المحادثة إلى نص قابل للتجزئة.
  • audio_sampling_rate (int, اختياري، القيمة الافتراضية 16000) — معدل العينة، بالهرتز، الذي يُفترض أن تكون موجات الصوت عليه.
  • audio_subsampling_factor (int, اختياري، القيمة الافتراضية 8) — المعامل الذي يعيد به مُشفِّر الصوت أخذ عينات من إطارات الميّل، ويُستخدم لتحديد حجم سلسلة موضع الصوت.
  • audio_hop_length (int، اختياري، القيمة الافتراضية 160) — طول القفزة، بالعينات، بين إطارات الميّل المتتالية.
  • video_temporal_patch_dim (int, اختياري، القيمة الافتراضية 2) — عدد الإطارات التي تُدمج في رقعة زمنية واحدة بواسطة مُضمِّن الفيديو في النموذج.

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

يوفر NemotronH_Omni_Reasoning_V3Processor جميع وظائف NemotronH_Omni_Reasoning_V3ImageProcessor وNemotronH_Omni_Reasoning_V3VideoProcessor وtokenizer_class وfeature_extractor_class. راجع ~NemotronH_Omni_Reasoning_V3ImageProcessor و~NemotronH_Omni_Reasoning_V3VideoProcessor و~tokenizer_class و~feature_extractor_class لمزيد من المعلومات.

batch_decode

< >

( *args**kwargs )

تحويل إلى batch_decode() الخاص بمُرمِّز الرموز.

decode

< >

( *args**kwargs )

تحويل إلى decode() الخاص بـ tokenizer.

post_process_image_text_to_text

< >

( generated_outputsskip_special_tokens = Trueclean_up_tokenization_spaces = False**kwargs )

قم بفك ترميز معرّفات الرموز النصية (token ids) التي ولّدها النموذج إلى نص.

replace_video_token

< >

( video_inputs: dictvideo_idx: int**kwargs )

وسّع <video> إلى مقطع واحد <img>...</img> لكل رقعة زمنية (tubelet).

يُوسم كل مقطع بطوابع زمنية للإطارات التي يحتويها، مفصولة بـ ” و ” (“Frame” للإطار الأول في الأنبوبية، و“frame” لبقية الإطارات). لا يحتوي المرمّز على رمز <video> حقيقي، لذا تستخدم المقاطع رمز الصورة؛ ويُميّز النموذج بين الصورة والفيديو بناءً على حجة pixel_values_* التي تم تمريرها.

NemotronH_Omni_Reasoning_V3

فئة transformers.NemotronH_Omni_Reasoning_V3

< >

( config: NemotronH_Omni_Reasoning_V3_Config )

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Noneimage_grid_hw: typing.Optional[torch.LongTensor] = Nonepixel_values_videos: typing.Optional[torch.Tensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonelabels: typing.Optional[torch.LongTensor] = Noneinputs_embeds: 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'> ) → CausalLMOutputWithPast or tuple(torch.Tensor)

المعاملات

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

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

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

  • pixel_values (torch.Tensor من الشكل (total_patches, num_channels * patch_size**2)، اختياري) — بقع مسطحة لجميع الصور، مدمجة معًا، كما تُعاد من معالج الصور.
  • image_grid_hw (torch.LongTensor من الشكل (num_images, 2)، اختياري) — شبكة البقع (height, width) لكل صورة في pixel_values.
  • pixel_values_videos (torch.Tensor من الشكل (batch_size, num_frames, num_channels, frame_size, frame_size)، اختياري) — المصفوفات المقابلة لفيديو الإدخال. يمكن الحصول على قيم البكسل للفيديوهات باستخدام NemotronH_Omni_Reasoning_V3VideoProcessor. راجع NemotronH_Omni_Reasoning_V3VideoProcessor.call() للتفاصيل (NemotronH_Omni_Reasoning_V3Processor يستخدم NemotronH_Omni_Reasoning_V3VideoProcessor لمعالجة الفيديوهات).
  • input_features (torch.Tensor من الشكل (batch_size, num_frames, num_mel_bins)، اختياري) — ميزات Mel التي ينتجها المعالج، مشفّرة وموزّعة على رموز الوكيل الصوتي.
  • input_features_mask (torch.Tensor من الشكل (batch_size, num_frames)، اختياري) — قناع يحدد إطارات الميّل الحقيقية لكل مقطع مُملوء.
  • 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).

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

يعيد

CausalLMOutputWithPast أو tuple(torch.Tensor)

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

تتجاوز طريقة NemotronH_Omni_Reasoning_V3 الخاصة بالتقديم (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 PIL import Image
>>> from transformers import AutoProcessor, NemotronH_Omni_Reasoning_V3

>>> model = NemotronH_Omni_Reasoning_V3.from_pretrained("nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16")
>>> processor = AutoProcessor.from_pretrained("nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16")

>>> 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]

generate

< >

( inputs: typing.Optional[torch.Tensor] = Nonegeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = Nonelogits_processor: transformers.generation.logits_process.LogitsProcessorList | None = Nonestopping_criteria: transformers.generation.stopping_criteria.StoppingCriteriaList | None = Noneprefix_allowed_tokens_fn: collections.abc.Callable[[int, torch.Tensor], list[int]] | None = Nonesynced_gpus: bool | None = Noneassistant_model: typing.Optional[ForwardRef('PreTrainedModel')] = Nonestreamer: typing.Optional[ForwardRef('BaseStreamer')] = Nonenegative_prompt_ids: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Nonecustom_generate: str | collections.abc.Callable | None = None**kwargs ) → ModelOutput or torch.LongTensor

المعاملات

  • inputs (torch.Tensor بأشكال متغيرة حسب النمط، اختياري) — التسلسل المستخدم كموجّه للتوليد أو كمدخلات للنموذج إلى المُشفِّر. إذا كانت None فسيُهيّئ الدالة هذا التسلسل باستخدام bos_token_id وحجم دفعة يساوي 1. بالنسبة لنماذج المُفكِّك فقط، يجب أن تكون inputs بصيغة input_ids. أما بالنسبة لنماذج المُشفِّر-المُفكِّك، فيمكن أن يمثل inputs أيّاً من input_ids أو input_values أو input_features أو pixel_values.
  • generation_config (GenerationConfig, اختياري) — إعدادات التوليد التي تُستخدم كإعدادات أساسية لاستدعاء التوليد. أي **kwargs مرر إلى generate تطابق سمات generation_config ستُلغي قيمها. إذا لم يُقدَّم generation_config، فسيُستخدم الإعداد الافتراضي، الذي له أولوية تحميل كالتالي: 1) من ملف النموذج generation_config.json، إن وُجد؛ 2) من إعدادات النموذج. يُرجى ملاحظة أن المعاملات غير المحددة ستورث القيم الافتراضية لـ GenerationConfig، والتي يجب الرجوع إلى توثيقها لتهيئة التوليد.
  • logits_processor (LogitsProcessorList، اختياري) — معالجات logits مخصصة تكمل المعالجات الافتراضية المبنية من المعاملات وإعدادات التوليد. إذا تم تمرير معالج logits تم إنشاؤه مسبقًا باستخدام المعاملات أو إعدادات التوليد، فسيتم طرح خطأ. هذه الميزة مخصصة للمستخدمين المتقدمين.
  • stopping_criteria (StoppingCriteriaList، اختياري) — معايير إيقاف مخصصة تكمل معايير الإيقاف الافتراضية المبنية من الحجج وإعدادات التوليد. إذا تم تمرير معيار إيقاف تم إنشاؤه مسبقًا باستخدام الحجج أو إعدادات التوليد، فسيتم طرح خطأ. إذا كان معيار الإيقاف الخاص بك يعتمد على مدخل scores، فتأكد من تمرير return_dict_in_generate=True, output_scores=True إلى generate. هذه الميزة مخصصة للمستخدمين المتقدمين.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]]، اختياري) — إذا تم توفيره، فإن هذه الدالة تُقيّد بحث الحزمة (beam search) على الرموز المسموح بها فقط في كل خطوة. إذا لم يُوفَّر، فلا يُطبَّق أي قيد. تستقبل هذه الدالة حجتين: معرّف الدفعة batch_id و input_ids. يجب أن تُرجع قائمة بالرموز المسموح بها لخطوة التوليد التالية، مشروطةً بمعرّف الدفعة batch_id والرموز المولَّدة سابقًا inputs_ids. يُعدّ هذا الحُجّة مفيدًا للتوليد المقيد المشروط على البادئة، كما هو موصوف في Autoregressive Entity Retrieval.
  • synced_gpus (bool, اختياري) — ما إذا كان يجب مواصلة تشغيل حلقة while حتى max_length. ما لم يتم تجاوز هذا العلم، فسيتم تعيينه إلى True عند استخدام FullyShardedDataParallel أو DeepSpeed ZeRO Stage 3 مع عدة وحدات معالجة رسومية لتجنب التعطّل إذا انتهت وحدة معالجة رسومية واحدة من التوليد قبل وحدات المعالجة الرسومية الأخرى. وإلا، فالقيمة الافتراضية هي False.
  • assistant_model (PreTrainedModel، اختياري) — نموذج مساعد يمكن استخدامه لتسريع عملية التوليد. يجب أن يكون لدى النموذج المساعد نفس المرمّز (tokenizer) تمامًا. يتحقق التسريع عندما يكون التنبؤ بالرموز المرشحة باستخدام النموذج المساعد أسرع بكثير من تشغيل التوليد باستخدام النموذج الذي تستدعي منه generate. وعليه، يجب أن يكون النموذج المساعد أصغر بكثير.
  • streamer (BaseStreamer، اختياري) — كائن Streamer الذي سيُستخدم لبثّ التسلسلات المولّدة. يتم تمرير الرموز المولّدة عبر streamer.put(token_ids)، ويتحمّل الـ streamer مسؤولية أي معالجة إضافية.
  • negative_prompt_ids (torch.LongTensor من الشكل (batch_size, sequence_length)، اختياري) — الموجّه السلبي المطلوب لبعض المعالجات مثل CFG. يجب أن يتطابق حجم الدفعة مع حجم دفعة الإدخال. هذه ميزة تجريبية، وقد تخضع لتغييرات كاسرة في واجهة برمجة التطبيقات في الإصدارات المستقبلية.
  • negative_prompt_attention_mask (torch.LongTensor of shape (batch_size, sequence_length), اختياري) — Attention_mask الخاص بـ negative_prompt_ids.
  • custom_generate (str أو Callable, اختياري) — أحد ما يلي:
    • str (اسم مستودع Hugging Face Hub): يشغّل دالة generate المخصصة المعرّفة في custom_generate/generate.py داخل ذلك المستودع بدلاً من طريقة generate القياسية. يستبدل المستودع منطق التوليد بالكامل، وقد يختلف نوع الإرجاع.
    • str (مسار المستودع المحلي): نفس ما سبق لكن من مسار محلي. كما تتطلب المجلدات المحلية trust_remote_code=True لأن custom_generate/generate.py المحلي يُنفَّذ.
    • Callable: سيقوم generate بتنفيذ خطوات إعداد المدخلات المعتادة، ثم استدعاء الدالة القابلة للاستدعاء المُقدَّمة لتشغيل حلقة فك الترميز. لمزيد من المعلومات، راجع التوثيق.
  • kwargs (dict[str, Any], اختياري) — تحديد معلمات بشكل مؤقت لـ generation_config و/أو معلمات إضافية خاصة بالنموذج سيتم تحويلها إلى دالة forward الخاصة بالنموذج. إذا كان النموذج من نوع المُشفِّر-المُفكِّك (encoder-decoder)، فيجب عدم إضافة بادئة للمعلمات الخاصة بالمُشفِّر، بينما يجب إضافة بادئة decoder_ للمعلمات الخاصة بالمُفكِّك.

يعيد

ModelOutput أو torch.LongTensor

ModelOutput (إذا كان return_dict_in_generate=True أو عندما يكون config.return_dict_in_generate=True) أو torch.LongTensor.

إذا لم يكن النموذج نموذجاً من نوع المُشفِّر-المُفكِّك (model.config.is_encoder_decoder=False)، فإن أنواع ModelOutput الممكنة هي:

إذا كان النموذج من نوع مُشفِّر-مُفكِّك (encoder-decoder) (model.config.is_encoder_decoder=True)، فإن أنواع ModelOutput الممكنة هي:

يولّد تسلسلات من معرّفات الرموز (token ids) للنماذج التي تحتوي على رأس لنمذجة اللغة.

تُضبط معظم المعلمات التي تتحكم في التوليد في generation_config، والتي إذا لم تُمرَّر، فسيتم ضبطها على إعدادات التوليد الافتراضية للنموذج. يمكنك تجاوز أي generation_config عن طريق تمرير المعلمات المقابلة إلى generate()، على سبيل المثال .generate(inputs, num_beams=4, do_sample=True).

لمراجعة عامة لاستراتيجيات التوليد وأمثلة الأكواد، راجع الدليل التالي.

Update on GitHub