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.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Эта модель была добавлена в Hugging Face Transformers 23.09.2026.

FlashAttention

NemotronH Omni

NemotronH Omni — это мультимодальная модель рассуждений от NVIDIA, которая сочетает гибридную языковую модель Mamba-Transformer NemotronH с визуальным энкодером RADIO и необязательным звуковым энкодером на базе Parakeet. Патчи изображений (и видео) проецируются через RADIO tower и 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, optional, по умолчанию True) — Следует ли преобразовать изображение в RGB.
  • do_resize (bool, kwargs, optional) — Указывает, нужно ли изменить размер изображения.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Описывает максимальные размеры входных данных для модели.
  • default_to_square (bool, kwargs, optional, по умолчанию 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) — Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисления PILImageResampling. Влияет только в том случае, если do_resize установлено в True.
  • do_rescale (bool, kwargs, optional, по умолчанию True) — Указывает, следует ли выполнять рескейлинг изображения.
  • rescale_factor (float, kwargs, optional, по умолчанию 0.00392156862745098) — Коэффициент масштабирования, применяемый к изображению, если do_rescale установлен в True.
  • do_normalize (bool, kwargs, optional, по умолчанию True) — Указывает, следует ли нормализовать изображение.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию [0.48145466, 0.4578275, 0.40821073]) — Среднее значение изображения, используемое для нормализации. Влияет только в том случае, если do_normalize установлено в True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию [0.26862954, 0.26130258, 0.27577711]) — Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, если do_normalize установлено в True.
  • do_pad (bool, kwargs, optional) — Определяет, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Точная стратегия выравнивания зависит от модели.
  • 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, optional) — Выполнять ли центрированную обрезку изображения.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Поддерживается только 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: изображение в формате (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Устройство, на котором будут обрабатываться видео. Если не задано, устройство определяется на основе входных видео.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Возвращает стопку тензоров, если установлено значение 'pt', иначе возвращает список тензоров.
  • disable_grouping (bool, kwargs, optional) — Определяет, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, описанных здесь: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, optional) — Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора.
  • patch_size (int, kwargs, optional, по умолчанию 16) — Длина стороны, в пикселях, одного патча башни зрения.
  • downsample_ratio (float, kwargs, optional, по умолчанию 0.5) — Пространственный коэффициент downsampling, применяемый моделью через pixel-shuffle; каждая сторона сетки патчей является кратной его обратному значению.
  • min_num_patches (int, kwargs, optional, по умолчанию 1024) — Минимальное количество патчей размера patch_size, до которого изображение масштабируется.
  • max_num_patches (int, kwargs, optional, по умолчанию 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, optional) — Следует ли преобразовать изображение в RGB.
  • do_resize (bool, kwargs, optional) — Указывает, нужно ли изменить размер изображения.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Описывает максимальные размеры входных данных для модели.
  • default_to_square (bool, kwargs, optional) — Определяет, следует ли по умолчанию использовать квадратное изображение при изменении размера, если size является целым числом.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Размер выходного изображения после применения center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисления PILImageResampling. Влияет только в том случае, если do_resize установлено в True.
  • do_rescale (bool, kwargs, optional) — Нужно ли перемасштабировать изображение.
  • rescale_factor (float, kwargs, optional) — Коэффициент масштабирования, применяемый к изображению, если do_rescale установлен в True.
  • do_normalize (bool, kwargs, optional) — Нужно ли нормализовать изображение.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, optional) — Среднее значение изображения, используемое для нормализации. Влияет только в том случае, если do_normalize установлено в True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, optional) — Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, если do_normalize установлено в True.
  • do_pad (bool, kwargs, optional) — Определяет, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Точная стратегия выравнивания зависит от модели.
  • 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, optional) — Выполнять ли центрированную обрезку изображения.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Поддерживается только 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: изображение в формате (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Устройство, на котором будут обрабатываться видео. Если не задано, устройство определяется на основе входных видео.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Возвращает стопку тензоров, если установлено значение 'pt', иначе возвращает список тензоров.
  • disable_grouping (bool, kwargs, optional) — Определяет, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, описанных здесь: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, optional) — Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора.
  • patch_size (int, kwargs, optional, по умолчанию 16) — Длина стороны, в пикселях, одного патча башни зрения.
  • downsample_ratio (float, kwargs, optional, по умолчанию 0.5) — Пространственный коэффициент downsampling, применяемый моделью через pixel-shuffle; каждая сторона сетки патчей является кратной его обратному значению.
  • min_num_patches (int, kwargs, optional, по умолчанию 1024) — Минимальное количество патчей размера patch_size, до которого изображение масштабируется.
  • max_num_patches (int, kwargs, optional, по умолчанию 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, optional) — Дополнительные параметры обработки для каждой модальности (текст, изображения, видео, аудио). Специфичные для модели параметры перечислены выше; полный список поддерживаемых аргументов см. в классе 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) — Токенизатор является обязательным входным параметром.
  • 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, который объединяет image processor, video processor, tokenizer и feature extractor в единый процессор.

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() токенизатора.

post_process_image_text_to_text

< >

( generated_outputsskip_special_tokens = Trueclean_up_tokenization_spaces = False**kwargs )

Декодировать сгенерированные моделью идентификаторы токенов в текст.

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), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.

    Индексы можно получить с помощью 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), необязательный) — Мел-фичи, сгенерированные процессором, закодированные и распределённые по токенам-заполнителям аудио.
  • 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 (см. docstring input_ids). Токены с индексами, установленными в -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], необязательный) — Словарь, где ключами являются поддерживаемые модальности, а значениями — закодированные результаты для соответствующей модальности. Каждый закодированный результат представляет собой кортеж вида (pooler_output, необязательный: last_hidden_states, необязательный: hidden_states, необязательный: attentions) pooler_output формы (batch_size, sequence_length, hidden_size), необязательный) — последовательность мультимодальных признаков энкодера, объединённых с текстовыми эмбеддингами.

Возвращает

CausalLMOutputWithPast или tuple(torch.Tensor)

Объект CausalLMOutputWithPast или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (NemotronH_Omni_Reasoning_V3_Config) и входных данных.

Метод NemotronH_Omni_Reasoning_V3 forward переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • loss (torch.Tensor формы (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), optional, возвращается, если передано 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, optional) — Конфигурация генерации, используемая в качестве базовой параметризации для вызова генерации. **kwargs, передаваемые в generate и совпадающие с атрибутами generation_config, будут переопределять их. Если generation_config не указан, будет использован вариант по умолчанию, который имеет следующий приоритет загрузки: 1) из файла модели generation_config.json, если он существует; 2) из конфигурации модели. Обратите внимание, что не указанные параметры наследуют значения по умолчанию GenerationConfig, документация по которым должна быть проверена для параметризации генерации.
  • logits_processor (LogitsProcessorList, необязательный) — Пользовательские обработчики logits, дополняющие стандартные обработчики 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 с несколькими GPU, чтобы избежать блокировки, если один GPU завершает генерацию раньше других. В противном случае по умолчанию устанавливается False.
  • assistant_model (PreTrainedModel, необязательный) — Модель ассистента, которая может использоваться для ускорения генерации. Модель ассистента должна использовать точно такой же токенизатор. Ускорение достигается, когда прогнозирование кандидатных токенов с помощью модели ассистента выполняется значительно быстрее, чем запуск генерации с моделью, от которой вы вызываете generate. В связи с этим модель ассистента должна быть значительно меньше.
  • streamer (BaseStreamer, необязательный) — Объект, который будет использоваться для потоковой передачи сгенерированных последовательностей. Сгенерированные токены передаются через streamer.put(token_ids), а streamer отвечает за дальнейшую обработку.
  • negative_prompt_ids (torch.LongTensor формы (batch_size, sequence_length), необязательный) — Негативный промпт, необходимый для некоторых процессоров, например CFG. Размер батча должен совпадать с размером входного батча. Это экспериментальная функция, которая может претерпеть несовместимые изменения API в будущих версиях.
  • negative_prompt_attention_mask (torch.LongTensor формы (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 выполнит стандартные шаги подготовки входных данных, а затем вызовет переданную callable для запуска цикла декодирования. Подробнее см. документацию.
  • kwargs (dict[str, Any], необязательный) — Служебная параметризация generation_config и/или дополнительные специфичные для модели kwargs, которые будут переданы в функцию forward модели. Если модель является моделью с кодировщиком-декодировщиком, kwargs, специфичные для кодировщика, не должны иметь префикса, а kwargs, специфичные для декодера, должны иметь префикс 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:

Если модель является моделью с кодировщиком-декодировщиком (model.config.is_encoder_decoder=True), возможные типы ModelOutput:

Генерирует последовательности идентификаторов токенов для моделей с заголовком языкового моделирования.

Большинство параметров, управляющих генерацией, задаются в generation_config, который, если не передан явно, принимает значения конфигурации генерации по умолчанию для модели. Вы можете переопределить любые параметры generation_config, передав соответствующие аргументы в generate(), например, .generate(inputs, num_beams=4, do_sample=True).

Обзор стратегий генерации и примеры кода приведены в следующем руководстве.

Update on GitHub