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

이 모델은 2026-09-23에 Hugging Face Transformers에 기여되었습니다.

FlashAttention

NemotronH Omni

NemotronH Omni는 NVIDIA의 멀티모달 추론 모델로, NemotronH 하이브리드 Mamba-Transformer 언어 모델에 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, 선택 사항) — Vision tower가 기대하는 고정 입력 이미지 해상도(픽셀 단위).
  • downsample_ratio (float, 선택 사항, 기본값 0.5) — 비전 특징에 적용되는 픽셀 셔플 공간 다운샘플 비율입니다.
  • projector_hidden_size (int, 선택 사항, 기본값 4096) — 비전-LLM MLP projector의 hidden size입니다.
  • vision_hidden_size (int, 선택 사항, 기본값 1280) — RADIO 시각 기능의 hidden size입니다.
  • video_pruning_rate (float, 선택 사항, 기본값 0.0) — Efficient-Video-Sampling 토큰 프루닝 비율입니다. 0.0이면 프루닝이 비활성화됩니다.
  • video_temporal_patch_size (int, 선택 사항, 기본값 2) — video embedder가 단일 temporal patch로 통합하는 프레임 수입니다.
  • image_token_id (int, 선택 사항) — input_ids에서 이미지 컨텍스트 플레이스홀더로 사용되는 토큰 ID입니다.
  • video_token_id (int, 선택 사항) — input_ids에서 비디오 컨텍스트 플레이스홀더로 사용되는 토큰 ID입니다.
  • audio_token_id (int, 선택 사항) — input_ids에서 오디오 컨텍스트 플레이스홀더로 사용되는 토큰 ID입니다.

이것은 Nemotron H OmniModel의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Nemotron H Omni 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 인스턴스화하면 nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16의 구성과 유사한 구성이 생성됩니다.

Configuration 객체는 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) — 이미지를 리사이즈할 때 사용할 리샘플링 필터입니다. PILImageResampling enum 중 하나를 사용할 수 있습니다. do_resize가 True로 설정된 경우에만 효과가 있습니다.
  • do_rescale (bool, kwargs, 선택, 기본값 True) — 이미지를 다시 스케일링할지 여부.
  • rescale_factor (float, kwargs, 선택 사항, 기본값 0.00392156862745098) — do_rescale이 True로 설정된 경우 이미지를 재조정(rescale)하는 데 사용할 재조정 계수입니다.
  • 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, 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, 선택) — 이미지를 중앙으로 크롭할지 여부.
  • 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: (height, width, num_channels) 형식의 이미지.
    • "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, 선택 사항) — 이미지를 크기에 따라 그룹화하는 것을 비활성화하여 배치 대신 개별적으로 처리할지 여부입니다. None인 경우, 이미지가 CPU에 있으면 True, 그렇지 않으면 False로 설정됩니다. 이 선택은 https://github.com/huggingface/transformers/pull/38157에 자세히 설명된 경험적 관찰에 기반합니다.
  • image_seq_length (int, kwargs, 선택 사항) — 입력에서 각 이미지에 사용할 이미지 토큰의 수입니다. 하위 호환성을 위해 추가되었지만, 향후 모델에서는 프로세서 속성으로 설정해야 합니다.
  • patch_size (int, kwargs, 선택 사항, 기본값 16) — 비전 타워 패치의 한 변 길이(픽셀 단위).
  • downsample_ratio (float, kwargs, 선택 사항, 기본값 0.5) — 모델이 적용하는 픽셀 셔플 공간 다운샘플링 비율입니다. 패치 그리드의 각 변은 해당 비율의 역수의 배수여야 합니다.
  • 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, 선택 사항) — 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) — 이미지를 리사이즈할 경우 사용할 리샘플링 필터입니다. 이는 PILImageResampling enum 중 하나일 수 있습니다. do_resize가 True로 설정된 경우에만 효과가 있습니다.
  • do_rescale (bool, kwargs, 선택 사항) — 이미지를 다시 스케일링할지 여부입니다.
  • rescale_factor (float, kwargs, optional) — do_rescale이 True로 설정된 경우 이미지를 리스케일하기 위한 리스케일 팩터입니다.
  • do_normalize (bool, kwargs, optional) — 이미지를 정규화할지 여부.
  • 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, 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, 선택) — 이미지를 중앙으로 크롭할지 여부.
  • 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: (height, width, num_channels) 형식의 이미지.
    • "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, 선택 사항) — 이미지를 크기에 따라 그룹화하는 것을 비활성화하여 배치 대신 개별적으로 처리할지 여부입니다. None인 경우, 이미지가 CPU에 있으면 True, 그렇지 않으면 False로 설정됩니다. 이 선택은 https://github.com/huggingface/transformers/pull/38157에 자세히 설명된 경험적 관찰에 기반합니다.
  • image_seq_length (int, kwargs, 선택 사항) — 입력에서 각 이미지에 사용할 이미지 토큰의 수입니다. 하위 호환성을 위해 추가되었지만, 향후 모델에서는 프로세서 속성으로 설정해야 합니다.
  • patch_size (int, kwargs, 선택 사항, 기본값 16) — 비전 타워 패치의 한 변 길이(픽셀 단위).
  • downsample_ratio (float, kwargs, 선택 사항, 기본값 0.5) — 모델이 적용하는 픽셀 셔플 공간 다운샘플링 비율입니다. 패치 그리드의 각 변은 해당 비율의 역수의 배수여야 합니다.
  • 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], 선택 사항) — 초기화 시 PyTorch/Numpy 텐서에서 정수 목록을 변환하려면 여기에 tensor_type를 지정할 수 있습니다.

NemotronH_Omni_Reasoning_V3VideoProcessor

class 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) — video processor는 필수 입력값입니다.
  • tokenizer (tokenizer_class) — 토크나이저는 필수 입력값입니다.
  • feature_extractor (feature_extractor_class) — feature extractor는 필수 입력입니다.
  • chat_template (str) — 채팅의 메시지 목록을 토큰화 가능한 문자열로 변환하는 Jinja 템플릿입니다.
  • audio_sampling_rate (int, 선택 사항, 기본값 16000) — 오디오 웨이브폼이 갖춰져야 하는 샘플링 레이트(Hz).
  • audio_subsampling_factor (int, 선택 사항, 기본값 8) — 소리 인코더가 mel 프레임을 서브샘플링하는 배율로, 오디오 플레이스홀더 실행 크기를 결정하는 데 사용됩니다.
  • audio_hop_length (int, 선택 사항, 기본값 160) — 연속적인 mel 프레임 사이의 샘플 단위 hop length입니다.
  • video_temporal_patch_dim (int, 선택 사항, 기본값 2) — 모델의 video embedder가 단일 temporal patch로 통합하는 프레임 수입니다.

이미지 프로세서, 비디오 프로세서, 토크나이저, 피처 추출기를 단일 프로세서로 묶는 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()로 전달합니다.

post_process_image_text_to_text

< >

( generated_outputsskip_special_tokens = Trueclean_up_tokenization_spaces = False**kwargs )

모델이 생성한 토큰 ID를 텍스트로 디코딩합니다.

replace_video_token

< >

( video_inputs: dictvideo_idx: int**kwargs )

<video>를 각 temporal patch(tubelet)마다 하나의 <img>...</img> chunk로 확장합니다.

각 청크에는 해당 청크에 포함된 프레임의 타임스탬프가 ”과 ”으로 연결되어 라벨링됩니다(튜브렛의 첫 번째 프레임은 “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), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.

    AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.

    입력 ID란 무엇인가요?

  • pixel_values (torch.Tensor, shape (total_patches, num_channels * patch_size**2), 선택 사항) — 이미지 프로세서가 반환하는 모든 이미지의 평탄화된 패치를 연결한 값입니다.
  • image_grid_hw (torch.LongTensor, shape (num_images, 2), 선택 사항) — pixel_values의 각 이미지에 대한 패치 그리드 (height, width).
  • pixel_values_videos (torch.Tensor, shape (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, shape (batch_size, num_frames, num_mel_bins), 선택 사항) — 프로세서가 생성한 Mel 특징으로, 오디오 플레이스홀더 토큰에 인코딩되어 배치됩니다.
  • input_features_mask (torch.Tensor, shape (batch_size, num_frames), 선택 사항) — 패딩된 클립의 실제 mel 프레임을 표시하는 마스크.
  • attention_mask (torch.Tensor 형상이 (batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요? [0, 1]:
    • 마스크되지 않은 토큰에 대해 1
    • 마스크된 토큰에 대해 0

    어텐션 마스크란 무엇인가요?

  • position_ids (torch.LongTensor 의 shape (batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위 [0, config.n_positions - 1].

    포지션 ID란 무엇인가요?

  • past_key_values (~cache_utils.Cache, 선택 사항) — 순차적 디코딩을 가속화할 수 있는 사전 계산된 hidden-states(self-attention 블록과 cross-attention 블록의 key 및 value). 일반적으로 이는 past_key_values 디코딩의 이전 단계에서 모델이 반환한 use_cache=True 또는 config.use_cache=True.

    입력으로 Cache 인스턴스만 허용되며, kv cache 가이드를 참고하세요. past_key_values가 전달되지 않으면 기본적으로 DynamicCache가 초기화됩니다.

    모델은 입력으로 제공된 것과 동일한 캐시 형식을 출력합니다.

    past_key_values를 사용하는 경우, 이 모델에 과거 키 값 상태가 제공되지 않은 input_ids만 입력해야 하며, 이때의 shape은 (batch_size, unprocessed_length)입니다. shape이 (batch_size, sequence_length)인 전체 input_ids를 입력하지 않습니다.

  • labels (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는 [0, ..., config.vocab_size] 범위 내의 값이거나 -100이어야 합니다(input_ids docstring 참조). 인덱스가 -100으로 설정된 토큰은 무시(마스크)되며, 손실은 [0, ..., config.vocab_size] 범위의 라벨을 가진 토큰에 대해서만 계산됩니다.
  • inputs_embeds (torch.Tensor, shape (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)

torch.Tensor의 튜플 또는 CausalLMOutputWithPast입니다. return_dict=False가 전달되었거나 config.return_dict=False인 경우에도 동일합니다. 구성(NemotronH_Omni_Reasoning_V3_Config)과 입력에 따라 다양한 요소를 포함합니다.

NemotronH_Omni_Reasoning_V3의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (torch.Tensor, shape (1,), 선택 사항, labels이 제공될 때 반환됨) — 언어 모델링 손실(다음 토큰 예측용).

  • logits (torch.Tensor, shape (batch_size, sequence_length, config.vocab_size)) — 언어 모델링 헤드에서 생성된 예측 점수(SoftMax 적용 전 각 어휘 토큰에 대한 점수).

  • past_key_values (Cache, 선택 사항, use_cache=True가 전달되었거나 config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.

    순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value)를 포함합니다(입력 past_key_values 참조).

  • hidden_states (tuple(torch.Tensor), 선택 사항, output_hidden_states=True가 전달되거나 config.output_hidden_states=True인 경우 반환됨) — torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은 (batch_size, sequence_length, hidden_size)입니다.

    각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.

  • attentions (tuple(torch.Tensor), 선택 사항, output_attentions=True가 전달되었거나 config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된 torch.Tensor의 튜플로, 모양은 (batch_size, num_heads, sequence_length, sequence_length)입니다.

    self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.

예:

>>> 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, 선택) — 인자와 generation config에서 기본으로 생성되는 logits processor를 보완하는 사용자 정의 logits processor입니다. 인자나 generation config로 이미 생성된 logit processor를 전달하면 오류가 발생합니다. 이 기능은 고급 사용자를 위해 제공됩니다.
  • stopping_criteria (StoppingCriteriaList, 선택) — 인자와 generation config에서 기본으로 생성되는 stopping criteria를 보완하는 사용자 정의 stopping criteria입니다. 인자 또는 generation config로 이미 생성된 stopping criteria를 전달하면 오류가 발생합니다. stopping criteria가 scores 입력에 의존하는 경우, generate에 return_dict_in_generate=True, output_scores=True를 전달하도록 하십시오. 이 기능은 고급 사용자를 위한 것입니다.
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], list[int]], 선택) — 지정된 경우, 이 함수는 각 단계에서 beam search를 허용된 토큰으로만 제한합니다. 지정되지 않으면 제약이 적용되지 않습니다. 이 함수는 두 개의 인수를 받습니다: 배치 ID batch_id와 input_ids. 배치 ID batch_id와 이전에 생성된 토큰 inputs_ids에 조건부인 다음 생성 단계에 허용되는 토큰의 목록을 반환해야 합니다. 이 인수는 Autoregressive Entity Retrieval에 설명된 바와 같이 접두사에 조건부인 제약 생성에 유용합니다.
  • synced_gpus (bool, 선택) — max_length까지 while 루프를 계속 실행할지 여부. FullyShardedDataParallel 또는 DeepSpeed ZeRO Stage 3을 여러 GPU에서 사용하는 경우, 한 GPU가 다른 GPU보다 먼저 생성을 완료할 때 데드락을 방지하기 위해 이 플래그는 기본적으로 True로 설정됩니다. 이 경우를 제외하면 기본값은 False입니다.
  • assistant_model (PreTrainedModel, 선택) — 생성을 가속하는 데 사용할 수 있는 어시스턴트 모델입니다. 어시스턴트 모델은 정확히 동일한 tokenizer를 가져야 합니다. 어시스턴트 모델로 후보 토큰을 예측하는 것이 generate를 호출하는 모델로 생성을 실행하는 것보다 훨씬 빠를 때 가속이 이루어집니다. 따라서 어시스턴트 모델은 훨씬 작아야 합니다.
  • streamer (BaseStreamer, 선택 사항) — 생성된 시퀀스를 스트리밍하는 데 사용되는 Streamer 객체입니다. 생성된 토큰은 streamer.put(token_ids)를 통해 전달되며, streamer는 추가적인 처리를 담당합니다.
  • negative_prompt_ids (torch.LongTensor, shape (batch_size, sequence_length), 선택) — CFG와 같은 일부 프로세서에 필요한 negative prompt입니다. 배치 크기는 입력 배치 크기와 일치해야 합니다. 이는 실험적 기능이며, 향후 버전에서 API가 변경될 수 있습니다.
  • negative_prompt_attention_mask (torch.LongTensor, shape (batch_size, sequence_length), 선택 사항) — negative_prompt_ids에 대한 attention_mask입니다.
  • custom_generate (str 또는 Callable, 선택 사항) — 다음 중 하나입니다:
    • str (Hugging Face Hub 저장소 이름): 표준 generate 메서드 대신 해당 저장소의 custom_generate/generate.py에 정의된 사용자 정의 generate 함수를 실행합니다. 이 저장소는 생성 로직을 완전히 대체하며, 반환 타입이 다를 수 있습니다.
    • str (로컬 저장소 경로): 위와 동일하지만 로컬 경로에서 가져옵니다. 로컬 디렉터리도 로컬 custom_generate/generate.py가 실행되므로 trust_remote_code=True가 필요합니다.
    • Callable: generate는 일반적인 입력 준비 단계를 수행한 후, 제공된 callable을 호출하여 디코딩 루프를 실행합니다. 자세한 내용은 문서를 참조하세요.
  • kwargs (dict[str, Any], 선택) — generation_config의 즉석 파라미터화 및/또는 모델의 forward 함수로 전달되는 모델 특정 추가 kwargs입니다. 모델이 인코더-디코더 모델인 경우, 인코더 특정 kwargs에는 접두사를 붙이지 않고 디코더 특정 kwargs에는 decoder_ 접두사를 붙여야 합니다.

반환값

ModelOutput 또는 torch.LongTensor

return_dict_in_generate=True인 경우 또는 config.return_dict_in_generate=True인 경우 ModelOutput, 아니면 torch.LongTensor입니다.

모델이 인코더-디코더 모델이 아니면 (model.config.is_encoder_decoder=False), 가능한 ModelOutput 유형은 다음과 같습니다:

모델이 인코더-디코더 모델(model.config.is_encoder_decoder=True)인 경우, 가능한 ModelOutput 유형은 다음과 같습니다:

language modeling 헤드가 있는 모델에 대해 토큰 ID 시퀀스를 생성합니다.

대부분의 생성 제어 매개변수는 generation_config에 설정되며, 전달되지 않으면 모델의 기본 생성 구성으로 설정됩니다. generation_config의 항목은 generate()에 해당 매개변수를 전달하여 오버라이드할 수 있습니다. 예를 들어 .generate(inputs, num_beams=4, do_sample=True)와 같이 사용할 수 있습니다.

생성 전략 개요와 코드 예제는 다음 가이드를 참고하세요.

Update on GitHub