Transformers documentation
NemotronH Omni
このモデルは2026年9月23日に Hugging Face Transformers に貢献されました。
NemotronH Omni
NemotronH Omni は、NVIDIA によるマルチモーダル推論モデルです。NemotronH のハイブリッド Mamba-Transformer 言語モデルに、RADIO ビジョンエンコーダーと、任意の Parakeet ベースのサウンドエンコーダーを組み合わせます。画像(および動画)のパッチは、RADIO タワーとピクセルシャッフル MLP を介して、<image> / <video> コンテキストトークンの位置で言語モデルの埋め込み空間に射影されます。音声クリップも同様に、<audio> の位置で射影されます。その結果、テキスト、画像、動画、音声を統合的に推論する単一の自己回帰モデルが得られます。
以下の例では、AutoModelForImageTextToText を使用して画像とテキストプロンプトを推論する方法を示しています。
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
class transformers.NemotronH_Omni_Reasoning_V3_Config
< source >( 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) — ビジョン特徴量に適用される、ピクセルシャッフルによる空間的下位サンプリング比率。 - projector_hidden_size (
int、任意、デフォルトは 4096) — ビジョンから LLM への MLP プロジェクターの隠れ層サイズです。 - vision_hidden_size (
int、任意、デフォルトは 1280) — RADIO のビジュアル特徴の隠れ層サイズです。 - video_pruning_rate (
float、任意、デフォルト値は 0.0)— Efficient-Video-Sampling のトークンプルーニング率。0.0を指定するとプルーニングが無効になります。 - video_temporal_patch_size (
int、省略可、デフォルトは 2) — video embedder によって 1 つの 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 と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
NemotronH_Omni_Reasoning_V3ImageProcessor
class transformers.NemotronH_Omni_Reasoning_V3ImageProcessor
< source >( **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、任意、デフォルトは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、任意、デフォルトはTrue) — 画像をリスケールするかどうかを指定します。 - rescale_factor (
float、kwargs、任意、デフォルト値は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、任意) — サポートされているのはChannelDimension.FIRSTのみです。slow processors との互換性のために追加されました。 - 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、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている経験則に基づいています。 - image_seq_length (
int、kwargs、任意) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。 - patch_size (
int、kwargs、任意、デフォルト値は 16)— ビジョン・タワーの 1 つのパッチの辺の長さ(ピクセル単位)。 - 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) — 言語モデルのコンテキスト長です。1 回の呼び出しにおける画像のパッチ予算の上限を決定します。
NemotronH_Omni_Reasoning_V3ImageProcessor 画像プロセッサを構築します。
preprocess
< source >( 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, setdo_rescale=False`. - do_convert_rgb (
bool、kwargs、任意) — 画像を RGB に変換するかどうかを指定します。 - do_resize (
bool、kwargs、optional) — 画像をリサイズするかどうか。 - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — モデルへの最大入力次元を記述します。 - default_to_square (
bool、kwargs、任意) — サイズが整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。 - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropを適用した後の出力画像のサイズ。 - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — 画像のリサイズ時に使用するリサンプリングフィルタ。PILImageResamplingの列挙型のいずれかを使用できます。do_resizeがTrueに設定されている場合のみ有効です。 - do_rescale (
bool、kwargs、optional) — 画像をリスケールするかどうかを指定します。 - rescale_factor (
float、kwargs、任意) —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、任意) — サポートされているのはChannelDimension.FIRSTのみです。slow processors との互換性のために追加されました。 - 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、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている経験則に基づいています。 - image_seq_length (
int、kwargs、任意) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。 - patch_size (
int、kwargs、任意、デフォルト値は 16)— ビジョン・タワーの 1 つのパッチの辺の長さ(ピクセル単位)。 - 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) — 言語モデルのコンテキスト長です。1 回の呼び出しにおける画像のパッチ予算の上限を決定します。
戻り値
~image_processing_base.BatchFeature
- data (
dict) — call メソッド(‘pixel_values’ など)によって返される、リスト/配列/テンソルの辞書。 - tensor_type (
Union[None, str, TensorType]、省略可) — 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。
NemotronH_Omni_Reasoning_V3VideoProcessor
class transformers.NemotronH_Omni_Reasoning_V3VideoProcessor
< source >( **kwargs: *<class 'transformers.models.nemotron_h_omni.video_processing_nemotron_h_omni.NemotronH_Omni_Reasoning_V3VideoProcessorInitKwargs'> )
NemotronH_Omni_Reasoning_V3VideoProcessor ビデオプロセッサを構築します。
NemotronH_Omni_Reasoning_V3Processor
class transformers.NemotronH_Omni_Reasoning_V3Processor
< source >( 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)— オーディオ波形が想定されるサンプリングレート (Hz)。 - audio_subsampling_factor (
int、任意、デフォルトは 8) — サウンドエンコーダーがメルフレームをサブサンプリングする倍率。オーディオプレースホルダーの長さの決定に使用されます。 - audio_hop_length (
int、任意、デフォルト値は 160) — 連続する mel フレーム間のホップ長(サンプル数)。 - video_temporal_patch_dim (
int、任意、デフォルト値は 2)— モデルのビデオエンベッダーによって 1 つの時間的パッチにまとめられるフレーム数。
画像プロセッサ、動画プロセッサ、トークナイザ、特徴抽出器を単一のプロセッサにラップする 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()にフォワードします。
トークナイザーのdecode()にフォワードします。
post_process_image_text_to_text
< source >( generated_outputsskip_special_tokens = Trueclean_up_tokenization_spaces = False**kwargs )
モデルが生成したトークンIDをテキストにデコードします。
<video>を、temporal patch(tubelet)ごとに1つの<img>...</img>チャンクに展開します。
各チャンクには、そのチャンクに格納されているフレームのタイムスタンプがラベルとして付与され、”と”で連結されます(チューレット内の最初のフレームは“Frame”、それ以降は“frame”)。トークナイザーには実際の<video>トークンは存在しないため、チャンクでは画像トークンが使用されます。モデルは、どのpixel_values_*引数が渡されたかによって、画像と動画を区別します。
NemotronH_Omni_Reasoning_V3
class transformers.NemotronH_Omni_Reasoning_V3
< source >( config: NemotronH_Omni_Reasoning_V3_Config )
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.FloatTensor] = Noneimage_grid_hw: typing.Optional[torch.LongTensor] = Nonepixel_values_videos: typing.Optional[torch.FloatTensor] = Noneinput_features: typing.Optional[torch.FloatTensor] = 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.FloatTensor] = 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.FloatTensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- pixel_values (
torch.FloatTensor、shape(total_patches, num_channels * patch_size**2)、任意) — 画像プロセッサによって返される、すべての画像のフラット化されたパッチを連結したもの。 - image_grid_hw (
torch.LongTensor、形状(num_images, 2)、任意) —pixel_values内の各画像のパッチグリッド(height, width)。 - pixel_values_videos (
torch.FloatTensor、形状(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.FloatTensor、shape(batch_size, num_frames, num_mel_bins)、任意) — プロセッサによって生成され、音声プレースホルダトークンにエンコードおよび配置された Mel 特徴量。 - input_features_mask (
torch.Tensor、shape(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 cache ガイドを参照してください。
past_key_valuesが渡されない場合、デフォルトで DynamicCache が初期化されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
past_key_valuesを使用する場合、すべてのinput_ids(形状(batch_size, sequence_length))ではなく、このモデルに過去のキー・バリュー状態が与えられていない未処理のinput_ids(形状(batch_size, unprocessed_length))のみを入力することになります。 - labels (
torch.LongTensor、shape(batch_size, sequence_length)、任意) — マスク言語モデリング損失を計算するためのラベルです。インデックスは[0, ..., config.vocab_size]の範囲内であるか、-100 である必要があります(input_idsの docstring を参照)。インデックスが-100に設定されたトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲内のラベルを持つトークンに対してのみ計算されます。 - inputs_embeds (
torch.FloatTensor、形状(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), 省略可) からなるタプルです。pooler_outputは、エンコーダーのマルチモーダル特徴量をテキスト埋め込みにマージしたシーケンスです。
戻り値
CausalLMOutputWithPast または tuple(torch.FloatTensor)
torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または CausalLMOutputWithPast。設定(NemotronH_Omni_Reasoning_V3_Config)や入力に応じて、さまざまな要素で構成されます。
NemotronH_Omni_Reasoning_V3のforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.FloatTensor、shape(1,)、optional、labelsが指定された場合に返されます) — 言語モデリングの損失(次のトークン予測用)。logits (
torch.FloatTensor、shape(batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。past_key_values (
Cache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。逐次デコーディングを高速化するために使用できる(
past_key_values入力参照)、事前計算済みの隠れ状態(自己注意ブロックのキーとバリュー)が含まれます。hidden_states (
tuple(torch.FloatTensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます)—torch.FloatTensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple(torch.FloatTensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます)—torch.FloatTensorのタプル(各レイヤーごとに1つ)、形状は(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
< source >( inputs: typing.Optional[torch.Tensor] = Nonegeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = Nonelogits_processor: transformers.generation.logits_process.LogitsProcessorList | None = Nonestopping_criteria: transformers.generation.stopping_criteria.StoppingCriteriaList | None = Noneprefix_allowed_tokens_fn: collections.abc.Callable[[int, torch.Tensor], list[int]] | None = Nonesynced_gpus: bool | None = Noneassistant_model: typing.Optional[ForwardRef('PreTrainedModel')] = Nonestreamer: typing.Optional[ForwardRef('BaseStreamer')] = Nonenegative_prompt_ids: typing.Optional[torch.Tensor] = Nonenegative_prompt_attention_mask: typing.Optional[torch.Tensor] = Nonecustom_generate: str | collections.abc.Callable | None = None**kwargs ) → ModelOutput or torch.LongTensor
パラメータ
- inputs(
torch.Tensor、モダリティによって形状が異なり、省略可) — 生成のプロンプトとして使用されるシーケンス、またはエンコーダーへのモデル入力です。Noneの場合、bos_token_idとバッチサイズ 1 で初期化されます。デコーダー専用モデルでは、inputsはinput_idsの形式である必要があります。エンコーダーデコーダーモデルでは、inputs はinput_ids、input_values、input_features、またはpixel_valuesのいずれかを表すことができます。 - generation_config (GenerationConfig、任意) —
生成呼び出しのベースパラメータ化として使用される生成設定です。
**kwargsで generate に渡され、generation_configの属性と一致するものは、それらをオーバーライドします。generation_configが指定されない場合、デフォルトが使用されます。その読み込み優先順位は以下の通りです: 1) 存在する場合、generation_config.jsonモデルファイルから; 2) モデル設定から。未指定のパラメータは GenerationConfig のデフォルト値を継承することに注意してください。生成をパラメータ化するには、そのドキュメントを確認する必要があります。 - logits_processor (
LogitsProcessorList、省略可) — 引数や生成設定から構築されるデフォルトの logits プロセッサを補完する、カスタムの logits プロセッサです。引数や生成設定によってすでに作成済みの logits プロセッサが渡された場合、エラーが発生します。この機能は上級ユーザー向けに設計されています。 - stopping_criteria (
StoppingCriteriaList、省略可) — 引数と生成設定から構築されるデフォルトの停止条件を補完する、カスタムの停止条件です。引数や生成設定からすでに作成された停止条件が渡された場合、エラーが発生します。停止条件がscores入力を参照する場合、generateにreturn_dict_in_generate=True, output_scores=Trueを渡すことを確認してください。この機能は上級ユーザー向けです。 - prefix_allowed_tokens_fn (
Callable[[int, torch.Tensor], list[int]], 省略可) — 指定された場合、この関数は各ステップにおいてビームサーチを許可されたトークンのみに制限します。指定されない場合、制限は適用されません。この関数は 2 つの引数を受け取ります: バッチ IDbatch_idとinput_idsです。バッチ IDbatch_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, 任意) — 生成を高速化するために使用できるアシスタントモデルです。アシスタントモデルは、呼び出し元のモデルと完全に同一のトークナイザーを持つ必要があります。アシスタントモデルによる候補トークンの予測が、呼び出し元のモデルで generate を実行するよりもはるかに高速な場合に、高速化が実現されます。そのため、アシスタントモデルは呼び出し元のモデルよりもはるかに小さいものである必要があります。 - streamer (
BaseStreamer、任意) — 生成されたシーケンスをストリーミングするために使用される Streamer オブジェクトです。生成されたトークンは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)、任意) —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の型は以下の通りです:
言語モデリングヘッドを持つモデルに対して、トークンIDのシーケンスを生成します。
生成を制御するほとんどのパラメータは
generation_configで設定されます。この引数が渡されない場合、モデルのデフォルトの生成設定が使用されます。generation_configの任意の値は、generate() に対応するパラメータを渡すことで上書きできます。例えば、.generate(inputs, num_beams=4, do_sample=True)のように指定します。生成戦略の概要とコード例については、次のガイドを参照してください。