Transformers documentation
NemotronH Omni
Este modelo fue aportado a Hugging Face Transformers el 2026-09-23.
NemotronH Omni
NemotronH Omni es un modelo de razonamiento multimodal de NVIDIA que combina el modelo de lenguaje híbrido Mamba-Transformer NemotronH con un codificador de visión RADIO y un codificador de sonido opcional basado en Parakeet. Las parches de imagen (y vídeo) se proyectan a través de una torre RADIO y un MLP de pixel-shuffle hacia el espacio de incrustaciones del modelo de lenguaje en las posiciones de tokens de contexto <image> / <video>; los fragmentos de audio se proyectan de la misma manera en las posiciones <audio>. El resultado es un único modelo autoregresivo que razona de forma conjunta sobre texto, imágenes, vídeo y sonido.
El siguiente ejemplo demuestra cómo razonar sobre una imagen y un prompt de texto con 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
clase 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 )
Parámetros
- vision_config (
dictoRadioConfig, opcional) — Configuración para el codificador de visión de RADIO. Por defecto, es una RadioConfig predeterminada. - text_config (
dictoNemotronHConfig, opcional) — Configuración para el modelo de lenguaje NemotronH. Por defecto, se usa una NemotronHConfig predeterminada. - audio_config (
dictoParakeetEncoderConfig, opcional) — Configuración para el codificador de sonido Parakeet opcional.Nonedeshabilita la rama de audio. - force_image_size (
int, opcional) — Resolución de imagen de entrada fija (en píxeles) que espera la torre visual. - downsample_ratio (
float, opcional, valor predeterminado 0.5) — Proporción de reducción espacial mediante pixel-shuffle aplicada a las características visuales. - projector_hidden_size (
int, opcional, valor predeterminado 4096) — Tamaño oculto del proyector MLP de visión a LLM. - vision_hidden_size (
int, opcional, valor predeterminado 1280) — Tamaño oculto de las características visuales de RADIO. - video_pruning_rate (
float, opcional, valor predeterminado 0.0) — Tasa de poda de tokens de Efficient-Video-Sampling;0.0desactiva la poda. - video_temporal_patch_size (
int, opcional, valor predeterminado 2) — Número de fotogramas que se agrupan en un único parche temporal por el incrustador de video. - image_token_id (
int, opcional) — Id del token utilizado como marcador de posición de contexto de imagen eninput_ids. - video_token_id (
int, opcional) — Id del token utilizado como marcador de posición del contexto de video eninput_ids. - audio_token_id (
int, opcional) — Id del token utilizado como marcador de posición del contexto de audio eninput_ids.
Esta es la clase de configuración para almacenar la configuración de un Nemotron H OmniModel. Se utiliza para instanciar un modelo Nemotron H Omni según los argumentos especificados, definiendo la arquitectura del modelo. Instanciar una configuración con los valores predeterminados producirá una configuración similar a la de nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16
Los objetos de configuración heredan de PreTrainedConfig y se pueden usar para controlar las salidas del modelo. Lea la documentación de PreTrainedConfig para obtener más información.
NemotronH_Omni_Reasoning_V3ImageProcessor
clase transformers.NemotronH_Omni_Reasoning_V3ImageProcessor
< source >( **kwargs: *<class 'transformers.models.nemotron_h_omni.image_processing_nemotron_h_omni.NemotronH_Omni_Reasoning_V3ImageProcessorKwargs'> )
Parámetros
- do_convert_rgb (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe convertir la imagen a RGB. - do_resize (
bool, kwargs, opcional) — Si se debe redimensionar la imagen. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Describe las dimensiones de entrada máximas del modelo. - default_to_square (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe usar una imagen cuadrada por defecto al redimensionar, si size es un int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamaño de la imagen de salida tras aplicarcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, por defecto3) — Filtro de remuestreo a utilizar si se redimensiona la imagen. Puede ser uno de los valores de la enumeraciónPILImageResampling. Solo tiene efecto sido_resizeestá establecido enTrue. - do_rescale (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe reescalar la imagen. - rescale_factor (
float, kwargs, opcional, valor predeterminado0.00392156862745098) — Factor de reescalado para reescalar la imagen sido_rescaleestá establecido enTrue. - do_normalize (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe normalizar la imagen. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opcional, valor predeterminado[0.48145466, 0.4578275, 0.40821073]) — Media de la imagen a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opcional, valor predeterminado[0.26862954, 0.26130258, 0.27577711]) — Desviación estándar de la imagen a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - do_pad (
bool, kwargs, opcional) — Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el tamaño más grande del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — El tamaño en{"height": int, "width" int}al que se rellenan las imágenes. Debe ser mayor que cualquier tamaño de imagen proporcionado para el preprocesamiento. Si no se proporcionapad_size, las imágenes se rellenarán hasta la mayor altura y anchura del lote. Se aplica solo cuandodo_pad=True. - do_center_crop (
bool, kwargs, opcional) — Si se debe recortar la imagen centrada. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — Solo se admiteChannelDimension.FIRST. Se añadió para garantizar la compatibilidad con los procesadores lentos. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — El formato de la dimensión de canales para la imagen de entrada. Si no se establece, el formato de la dimensión de canales se infiere a partir de la imagen de entrada. Puede ser uno de:"channels_first"oChannelDimension.FIRST: imagen en formato (num_channels, height, width)."channels_last"oChannelDimension.LAST: imagen en formato (altura, ancho, num_canales)."none"oChannelDimension.NONE: imagen en formato (altura, ancho).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — El dispositivo en el que se procesarán los videos. Si no se establece, el dispositivo se infiere a partir de los videos de entrada. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Devuelve tensores apilados si se establece en'pt'; en caso contrario, devuelve una lista de tensores. - disable_grouping (
bool, kwargs, opcional) — Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opcional) — El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Añadido por compatibilidad con versiones anteriores, pero en futuros modelos debería establecerse como un atributo del procesador. - patch_size (
int, kwargs, opcional, valor predeterminado 16) — Lado, en píxeles, de un parche de la torre visual. - downsample_ratio (
float, kwargs, opcional, valor predeterminado 0.5) — Relación de reducción espacial mediante pixel-shuffle aplicada por el modelo; cada lado de la cuadrícula de parches es un múltiplo de su recíproco. - min_num_patches (
int, kwargs, opcional, valor predeterminado 1024) — Número mínimo de parches depatch_sizea los que se redimensiona una imagen. - max_num_patches (
int, kwargs, opcional, valor predeterminado 13312) — Número máximo de parches depatch_sizea los que se redimensiona una imagen;0desactiva el límite. - max_model_len (
int, kwargs, opcional, valor predeterminado 16384) — Longitud de contexto del modelo de lenguaje, que limita el presupuesto de parches de las imágenes en una sola llamada.
Construye un procesador de imágenes NemotronH_Omni_Reasoning_V3ImageProcessor.
preprocesar
< source >( images**kwargs: *<class 'transformers.models.nemotron_h_omni.image_processing_nemotron_h_omni.NemotronH_Omni_Reasoning_V3ImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Parámetros
- 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, opcional) — Si se debe convertir la imagen a RGB. - do_resize (
bool, kwargs, opcional) — Si se debe redimensionar la imagen. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Describe las dimensiones de entrada máximas del modelo. - default_to_square (
bool, kwargs, opcional) — Si se debe usar una imagen cuadrada por defecto al redimensionar, si size es un int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamaño de la imagen de salida tras aplicarcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filtro de remuestreo a utilizar si se redimensiona la imagen. Puede ser uno de los enumPILImageResampling. Solo tiene efecto sido_resizeestá establecido enTrue. - do_rescale (
bool, kwargs, opcional) — Si se debe reescalar la imagen. - rescale_factor (
float, kwargs, opcional) — Factor de reescalado para reescalar la imagen sido_rescaleestá establecido enTrue. - do_normalize (
bool, kwargs, opcional) — Si se debe normalizar la imagen. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Media de la imagen a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Desviación estándar de la imagen a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - do_pad (
bool, kwargs, opcional) — Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el tamaño más grande del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — El tamaño en{"height": int, "width" int}al que se rellenan las imágenes. Debe ser mayor que cualquier tamaño de imagen proporcionado para el preprocesamiento. Si no se proporcionapad_size, las imágenes se rellenarán hasta la mayor altura y anchura del lote. Se aplica solo cuandodo_pad=True. - do_center_crop (
bool, kwargs, opcional) — Si se debe recortar la imagen centrada. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — Solo se admiteChannelDimension.FIRST. Se añadió para garantizar la compatibilidad con los procesadores lentos. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — El formato de la dimensión de canales para la imagen de entrada. Si no se establece, el formato de la dimensión de canales se infiere a partir de la imagen de entrada. Puede ser uno de:"channels_first"oChannelDimension.FIRST: imagen en formato (num_channels, height, width)."channels_last"oChannelDimension.LAST: imagen en formato (altura, ancho, num_canales)."none"oChannelDimension.NONE: imagen en formato (altura, ancho).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — El dispositivo en el que se procesarán los videos. Si no se establece, el dispositivo se infiere a partir de los videos de entrada. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Devuelve tensores apilados si se establece en'pt'; en caso contrario, devuelve una lista de tensores. - disable_grouping (
bool, kwargs, opcional) — Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opcional) — El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Añadido por compatibilidad con versiones anteriores, pero en futuros modelos debería establecerse como un atributo del procesador. - patch_size (
int, kwargs, opcional, valor predeterminado 16) — Lado, en píxeles, de un parche de la torre visual. - downsample_ratio (
float, kwargs, opcional, valor predeterminado 0.5) — Relación de reducción espacial mediante pixel-shuffle aplicada por el modelo; cada lado de la cuadrícula de parches es un múltiplo de su recíproco. - min_num_patches (
int, kwargs, opcional, valor predeterminado 1024) — Número mínimo de parches depatch_sizea los que se redimensiona una imagen. - max_num_patches (
int, kwargs, opcional, valor predeterminado 13312) — Número máximo de parches depatch_sizea los que se redimensiona una imagen;0desactiva el límite. - max_model_len (
int, kwargs, opcional, valor predeterminado 16384) — Longitud de contexto del modelo de lenguaje, que limita el presupuesto de parches de las imágenes en una sola llamada.
Devuelve
~image_processing_base.BatchFeature
- data (
dict) — Diccionario de listas/arrays/tensores devueltos por el método call (‘pixel_values’, etc.). - tensor_type (
Union[None, str, TensorType], opcional) — Puede especificar un tensor_type aquí para convertir las listas de enteros en Tensors de PyTorch/Numpy durante la inicialización.
NemotronH_Omni_Reasoning_V3VideoProcessor
clase transformers.NemotronH_Omni_Reasoning_V3VideoProcessor
< source >( **kwargs: *<class 'transformers.models.nemotron_h_omni.video_processing_nemotron_h_omni.NemotronH_Omni_Reasoning_V3VideoProcessorInitKwargs'> )
Parámetros
- **kwargs (
NemotronH_Omni_Reasoning_V3VideoProcessorInitKwargs, opcional) — Opciones de procesamiento adicionales para cada modalidad (texto, imágenes, videos, audio). Los parámetros específicos del modelo se enumeran arriba; consulte la clase TypedDict para obtener la lista completa de argumentos admitidos.
Construye un procesador de video NemotronH_Omni_Reasoning_V3VideoProcessor.
NemotronH_Omni_Reasoning_V3Processor
clase 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 )
Parámetros
- image_processor (
NemotronH_Omni_Reasoning_V3ImageProcessor) — El procesador de imágenes es una entrada obligatoria. - video_processor (
NemotronH_Omni_Reasoning_V3VideoProcessor) — El procesador de video es una entrada obligatoria. - tokenizer (
tokenizer_class) — El tokenizador es una entrada obligatoria. - feature_extractor (
feature_extractor_class) — El extractor de características es una entrada obligatoria. - chat_template (
str) — Plantilla de Jinja para convertir listas de mensajes de un chat en una cadena tokenizable. - audio_sampling_rate (
int, opcional, valor predeterminado 16000) — Tasa de muestreo, en Hz, a la que se espera que estén las formas de onda de audio. - audio_subsampling_factor (
int, opcional, valor predeterminado 8) — Factor por el cual el codificador de sonido realiza el submuestreo de los cuadros mel, utilizado para dimensionar la secuencia de marcadores de posición de audio. - audio_hop_length (
int, opcional, valor predeterminado 160) — Longitud de salto, en muestras, entre los fotogramas mel consecutivos. - video_temporal_patch_dim (
int, opcional, valor predeterminado 2) — Número de fotogramas que el incrustador de video del modelo agrupa en un único parche temporal.
Construye un NemotronH_Omni_Reasoning_V3Processor que encapsula un procesador de imágenes, un procesador de video, un tokenizador y un extractor de características en un único procesador.
NemotronH_Omni_Reasoning_V3Processor ofrece todas las funcionalidades de NemotronH_Omni_Reasoning_V3ImageProcessor, NemotronH_Omni_Reasoning_V3VideoProcessor, tokenizer_class y feature_extractor_class. Consulte ~NemotronH_Omni_Reasoning_V3ImageProcessor, ~NemotronH_Omni_Reasoning_V3VideoProcessor, ~tokenizer_class y ~feature_extractor_class para obtener más información.
Reenviar al batch_decode() del tokenizador.
Reenviar al decode() del tokenizador.
post_process_image_text_to_text
< source >( generated_outputsskip_special_tokens = Trueclean_up_tokenization_spaces = False**kwargs )
Decodifica los ids de tokens generados por el modelo en texto.
Expanda <video> en un fragmento <img>...</img> por parche temporal (tubelet).
Cada fragmento se etiqueta con las marcas de tiempo de los fotogramas que contiene, unidas por ” y ” (“Frame” para el primer fotograma del tubelet, “frame” para el resto). El tokenizador no tiene un token real de <video>, por lo que los fragmentos utilizan el token de imagen; el modelo distingue entre imagen y vídeo según el argumento pixel_values_* que se haya pasado.
NemotronH_Omni_Reasoning_V3
clase 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.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)
Parámetros
- input_ids (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Índices de los tokens de la secuencia de entrada en el vocabulario. El relleno se ignorará de forma predeterminada.Los índices se pueden obtener usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() y PreTrainedTokenizer.call() para más detalles.
- pixel_values (
torch.Tensorde forma(total_patches, num_channels * patch_size**2), opcional) — Parches aplanados de todas las imágenes, concatenados, tal como los devuelve el procesador de imágenes. - image_grid_hw (
torch.LongTensorde forma(num_images, 2), opcional) — Cuadrícula de parches(height, width)de cada imagen enpixel_values. - pixel_values_videos (
torch.Tensorde forma(batch_size, num_frames, num_channels, frame_size, frame_size), opcional) — Los tensores correspondientes al video de entrada. Los valores de píxel para los videos se pueden obtener utilizando NemotronH_Omni_Reasoning_V3VideoProcessor. Consulte NemotronH_Omni_Reasoning_V3VideoProcessor.call() para más detalles (NemotronH_Omni_Reasoning_V3Processor utiliza NemotronH_Omni_Reasoning_V3VideoProcessor para procesar videos). - input_features (
torch.Tensorde forma(batch_size, num_frames, num_mel_bins), opcional) — Características Mel generadas por el procesador, codificadas y distribuidas sobre los tokens de marcador de posición de audio. - input_features_mask (
torch.Tensorde forma(batch_size, num_frames), opcional) — Máscara que marca los cuadros mel reales de cada clip relleno. - attention_mask (
torch.Tensorde forma(batch_size, sequence_length), opcional) — Máscara para evitar realizar atención en los índices de tokens de relleno. Valores de máscara seleccionados en[0, 1]:- 1 para los tokens que no están enmascarados,
- 0 para los tokens que están enmascarados.
- position_ids (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Índices de las posiciones de los tokens de cada secuencia de entrada en los embeddings de posición. Seleccionados en el rango[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, opcional) — Estados ocultos precalculados (claves y valores en los bloques de autoatención y en los bloques de atención cruzada) que se pueden usar para acelerar la decodificación secuencial. Esto generalmente consiste en lapast_key_valuesdevuelta por el modelo en una etapa anterior de la decodificación, cuandouse_cache=Trueoconfig.use_cache=True.Solo se permite una instancia de Cache como entrada, consulte nuestra guía de caché kv. Si no se pasan
past_key_values, DynamicCache se inicializará de forma predeterminada.El modelo generará el mismo formato de caché que se proporciona como entrada.
Si se utilizan
past_key_values, se espera que el usuario introduzca únicamente losinput_idsno procesados (aquellos que no tienen sus estados de clave y valor pasados proporcionados a este modelo) con forma(batch_size, unprocessed_length)en lugar de todos losinput_idscon forma(batch_size, sequence_length). - labels (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Etiquetas para calcular la pérdida de modelado de lenguaje enmascarado. Los índices deben estar en[0, ..., config.vocab_size]o ser -100 (ver la docstring deinput_ids). Los tokens con índices establecidos en-100se ignoran (enmascarados); la pérdida solo se calcula para los tokens con etiquetas en[0, ..., config.vocab_size]. - inputs_embeds (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Opcionalmente, en lugar de pasarinput_ids, puedes elegir pasar directamente una representación incrustada. Esto es útil si deseas tener más control sobre cómo convertir los índices deinput_idsen los vectores asociados que en la matriz de búsqueda de incrustaciones interna del modelo. - use_cache (
bool, opcional) — Si se establece enTrue, se devuelven los estados de clave-valor depast_key_valuesy pueden usarse para acelerar la decodificación (verpast_key_values). - mm_encoder_outputs (
dict[str, ~modeling_outputs.BaseModelOutputWithPooling], opcional) — Diccionario donde las claves son las modalidades admitidas y los valores son las salidas codificadas para esa modalidad. Cada salida codificada es una tupla que consiste en (pooler_output, opcional:last_hidden_states, opcional:hidden_states, opcional:attentions)pooler_outputde forma(batch_size, sequence_length, hidden_size), opcional) es una secuencia de características multimodales del codificador fusionadas en las incrustaciones de texto.
Devuelve
CausalLMOutputWithPast o tuple(torch.Tensor)
Un CausalLMOutputWithPast o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (NemotronH_Omni_Reasoning_V3_Config) y las entradas.
El método forward de NemotronH_Omni_Reasoning_V3 sobrescribe el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
loss (
torch.Tensorde forma(1,), opcional, se devuelve cuando se proporcionalabels) — Pérdida de modelado de lenguaje (para la predicción del siguiente token).logits (
torch.Tensorde forma(batch_size, sequence_length, config.vocab_size)) — Puntuaciones de predicción de la cabeza de modelado de lenguaje (puntuaciones para cada token del vocabulario antes de SoftMax).past_key_values (
Cache, opcional, se devuelve cuando se pasause_cache=Trueo cuandoconfig.use_cache=True) — Es una instancia de Cache. Para más detalles, consulta nuestra guía de caché kv.Contiene estados ocultos precalculados (claves y valores en los bloques de autoatención) que pueden utilizarse (véase la entrada
past_key_values) para acelerar la decodificación secuencial.hidden_states (
tuple(torch.Tensor), opcional, devuelto cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del modelo en la salida de cada capa más las salidas opcionales de la incrustación inicial.
attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
Ejemplo:
>>> 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
Parámetros
- inputs (
torch.Tensorde forma variable según la modalidad, opcional) — La secuencia utilizada como indicación para la generación o como entrada del modelo para el codificador. Si esNone, el método la inicializa conbos_token_idy un tamaño de lote de 1. Para modelos solo de decodificador,inputsdebe estar en el formato deinput_ids. Para modelos codificador-decodificador, inputs puede representar cualquiera deinput_ids,input_values,input_featuresopixel_values. - generation_config (GenerationConfig, opcional) —
La configuración de generación que se utilizará como parametrización base para la llamada de generación. Los
**kwargspasados a generate que coincidan con los atributos degeneration_configlos sobrescribirán. Si no se proporcionageneration_config, se utilizará el valor predeterminado, que tiene la siguiente prioridad de carga: 1) desde el archivo de modelogeneration_config.json, si existe; 2) desde la configuración del modelo. Tenga en cuenta que los parámetros no especificados heredarán los valores predeterminados de GenerationConfig, cuya documentación debe consultarse para parametrizar la generación. - logits_processor (
LogitsProcessorList, opcional) — Procesadores de logits personalizados que complementan los procesadores de logits predeterminados creados a partir de los argumentos y la configuración de generación. Si se pasa un procesador de logits que ya fue creado con los argumentos o una configuración de generación, se lanza un error. Esta función está destinada a usuarios avanzados. - stopping_criteria (
StoppingCriteriaList, opcional) — Criterios de parada personalizados que complementan los criterios de parada predeterminados creados a partir de los argumentos y una configuración de generación. Si se pasa un criterio de parada que ya fue creado con los argumentos o una configuración de generación, se lanza un error. Si su criterio de parada depende de la entradascores, asegúrese de pasarreturn_dict_in_generate=True, output_scores=Trueagenerate. Esta función está destinada a usuarios avanzados. - prefix_allowed_tokens_fn (
Callable[[int, torch.Tensor], list[int]], opcional) — Si se proporciona, esta función restringe la búsqueda por haz a los tokens permitidos en cada paso. Si no se proporciona, no se aplica ninguna restricción. Esta función toma 2 argumentos: el ID del lotebatch_idyinput_ids. Debe devolver una lista con los tokens permitidos para el siguiente paso de generación condicionado al ID del lotebatch_idy a los tokens generados previamenteinputs_ids. Este argumento es útil para la generación condicionada al prefijo, tal como se describe en Autoregressive Entity Retrieval. - synced_gpus (
bool, opcional) — Si se debe continuar ejecutando el bucle while hasta max_length. A menos que se sobrescriba, esta bandera se establecerá enTruesi se usaFullyShardedDataParallelo DeepSpeed ZeRO Stage 3 con varias GPUs para evitar bloqueos si una GPU termina de generar antes que las demás. De lo contrario, el valor predeterminado esFalse. - assistant_model (
PreTrainedModel, opcional) — Un modelo asistente que se puede usar para acelerar la generación. El modelo asistente debe tener exactamente el mismo tokenizer. La aceleración se logra cuando la predicción de tokens candidatos con el modelo asistente es mucho más rápida que ejecutar la generación con el modelo desde el que se llama a generate. Por lo tanto, el modelo asistente debe ser mucho más pequeño. - streamer (
BaseStreamer, opcional) — Objeto que se utilizará para transmitir las secuencias generadas. Los tokens generados se pasan a través destreamer.put(token_ids)y el objeto responsable de cualquier procesamiento adicional. - negative_prompt_ids (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — El prompt negativo necesario para algunos procesadores, como CFG. El tamaño del lote debe coincidir con el tamaño del lote de entrada. Esta es una función experimental, sujeta a cambios que rompan la API en versiones futuras. - negative_prompt_attention_mask (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Attention_mask paranegative_prompt_ids. - custom_generate (
stroCallable, opcional) — Una de las siguientes opciones:str(nombre del repositorio de Hugging Face Hub): ejecuta la función personalizadageneratedefinida encustom_generate/generate.pyde ese repositorio en lugar del método estándargenerate. El repositorio reemplaza por completo la lógica de generación, y el tipo de retorno puede diferir.str(ruta del repositorio local): igual que lo anterior, pero desde una ruta local. Los directorios locales también requierentrust_remote_code=Trueporque se ejecuta elcustom_generate/generate.pylocal.Callable:generateejecutará los pasos habituales de preparación de la entrada y, a continuación, llamará al callable proporcionado para ejecutar el bucle de decodificación. Para obtener más información, consulte la documentación.
- kwargs (
dict[str, Any], opcional) — Parametrización ad hoc degeneration_configy/o kwargs adicionales específicos del modelo que se reenviarán a la funciónforwarddel modelo. Si el modelo es un modelo encoder-decoder, los kwargs específicos del encoder no deben tener prefijo y los kwargs específicos del decoder deben tener el prefijo decoder_.
Devuelve
ModelOutput o torch.LongTensor
Un ModelOutput (si return_dict_in_generate=True
o cuando config.return_dict_in_generate=True) o un torch.LongTensor.
Si el modelo no es un modelo encoder-decoder (model.config.is_encoder_decoder=False), los tipos
ModelOutput posibles son:
Si el modelo es un modelo encoder-decoder (model.config.is_encoder_decoder=True), los tipos
ModelOutput posibles son:
Genera secuencias de ids de tokens para modelos con una cabeza de modelado de lenguaje.
La mayoría de los parámetros de control de generación se configuran en
generation_config, que, si no se pasa, se establecerá en la configuración de generación predeterminada del modelo. Puede invalidar cualquiergeneration_configpasando los parámetros correspondientes a generate(), por ejemplo,.generate(inputs, num_beams=4, do_sample=True).Para obtener una visión general de las estrategias de generación y ejemplos de código, consulte la siguiente guía.