Transformers documentation

NemotronH Omni

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