# Cosmos3OmniTransformer

Un transformer de visión-lenguaje conjunto Mixture-of-Transformer (MoT) introducido como parte de la familia de modelos de mundo base Cosmos3 de NVIDIA. El modelo ejecuta dos vías de cómputo paralelas sobre una secuencia conjunta empaquetada:

- una **vía de "comprensión" causal** que realiza autoatención sobre tokens de texto con enmascarado causal, y
- una **vía de "generación" bidireccional** que realiza una atención cruzada desde los tokens de generación (latentes de visión + sonido opcionales) sobre el conjunto completo de claves/valores de comprensión más generación.

Los dos caminos comparten el mismo tamaño oculto y número de capas, pero mantienen **proyecciones Q/K/V/O, MLPs y parámetros RMSNorm separados**, lo que hace que la arquitectura sea una Mixture-of-Transformer en lugar de una Mixture-of-Experts estándar. La información de posición se proporciona a través de un RoPE multimodal 3D (mRoPE) que intercala frecuencias temporales / de altura / de ancho para los latentes de video y reutiliza el eje temporal para el texto y el audio.

El modelo se puede cargar de la siguiente manera.

```python
import torch
from diffusers import Cosmos3OmniTransformer

transformer = Cosmos3OmniTransformer.from_pretrained(
    "nvidia/Cosmos3-Nano", subfolder="transformer", dtype=torch.bfloat16
)
```

## Cosmos3OmniTransformer[[diffusers.Cosmos3OmniTransformer]]

#### diffusers.Cosmos3OmniTransformer[[diffusers.Cosmos3OmniTransformer]]

```python
diffusers.Cosmos3OmniTransformer(attention_bias: bool = False, attention_dropout: float = 0.0, dtype: str = 'bfloat16', head_dim: int = 128, hidden_size: int = 4096, intermediate_size: int = 12288, base_fps: int = 24, enable_fps_modulation: bool = True, latent_channel: int = 48, unified_3d_mrope_reset_spatial_ids: bool = True, unified_3d_mrope_temporal_modality_margin: int = 15000, latent_patch_size: int = 2, num_attention_heads: int = 32, num_hidden_layers: int = 36, num_key_value_heads: int = 8, patch_latent_dim: int = 192, rms_norm_eps: float = 1e-06, rope_scaling: dict | None = None, rope_theta: float = 5000000.0, action_dim: int | None = None, action_gen: bool = False, num_embodiment_domains: int = 32, sound_dim: int | None = None, sound_gen: bool = False, sound_latent_fps: float = 25.0, timestep_scale: float = 0.001, vocab_size: int = 151936, hidden_act: str = 'silu', qk_norm_for_text: bool = True, use_und_k_norm_for_gen: bool = False, rope_axes_dim: tuple[int, int, int] | list[int] | None = None)
```

[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_cosmos3.py#L374)

#### forward[[diffusers.Cosmos3OmniTransformer.forward]]

```python
forward(input_ids: Tensor, text_indexes: Tensor, position_ids: Tensor, und_len: int, sequence_length: int, vision_tokens: list[torch.Tensor], vision_token_shapes: list[tuple[int, int, int]], vision_sequence_indexes: Tensor, vision_mse_loss_indexes: Tensor, vision_timesteps: Tensor, vision_noisy_frame_indexes: list[torch.Tensor], sound_tokens: list[torch.Tensor] | None = None, sound_token_shapes: list[tuple[int, int, int]] | None = None, sound_sequence_indexes: typing.Optional[torch.Tensor] = None, sound_mse_loss_indexes: typing.Optional[torch.Tensor] = None, sound_timesteps: typing.Optional[torch.Tensor] = None, sound_noisy_frame_indexes: list[torch.Tensor] | None = None, action_tokens: list[torch.Tensor] | None = None, action_token_shapes: list[tuple[int, int, int]] | None = None, action_sequence_indexes: typing.Optional[torch.Tensor] = None, action_mse_loss_indexes: typing.Optional[torch.Tensor] = None, action_timesteps: typing.Optional[torch.Tensor] = None, action_noisy_frame_indexes: list[torch.Tensor] | None = None, action_domain_ids: list[torch.Tensor] | None = None, return_dict: bool = True)
```

[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_cosmos3.py#L671)

**Parámetros:**

input_ids : IDs de tokens de texto colocados en `text_indexes` en la secuencia conjunta.

text_indexes : Índices de los tokens de texto en la secuencia conjunta.

position_ids : `[3, sequence_length]` IDs de posición mRoPE para la secuencia conjunta completa.

und_len : Longitud del prefijo de texto causal (comprensión); los tokens de generación siguen.

sequence_length : Longitud total de la secuencia empaquetada conjunta.

vision_tokens : Tensores latentes de visión por elemento antes de patchify.

vision_token_shapes : Formas de cuadrícula de parches `(T, H, W)` por elemento de visión.

vision_sequence_indexes : Índices de los tokens de visión en la secuencia conjunta.

vision_mse_loss_indexes : Índices utilizados para leer las predicciones visuales después del backbone.

vision_timesteps : Pasos de difusión por parche para los tokens de visión.

vision_noisy_frame_indexes : Índices de fotogramas ruidosos por elemento visual.

sound_tokens : Tensores latentes de sonido opcionales antes del empaquetado.

sound_token_shapes : Formas de cuadrícula de parche opcionales para elementos de sonido.

sound_sequence_indexes : Índices opcionales de tokens de sonido en la secuencia conjunta.

sound_mse_loss_indexes : Índices opcionales utilizados para leer predicciones de sonido.

sound_timesteps : Pasos de difusión por token opcionales para el sonido.

sound_noisy_frame_indexes : Índices de fotogramas ruidosos opcionales por elemento de sonido.

action_tokens : Tensores latentes de acción opcionales antes del empaquetado.

action_token_shapes : Formas de cuadrícula de parche opcionales `(T, H, W)` por elemento de acción.

action_sequence_indexes : Índices opcionales de los tokens de acción en la secuencia conjunta.

action_mse_loss_indexes : Índices opcionales utilizados para leer las predicciones de acciones después del backbone.

action_timesteps : Pasos de difusión por token opcionales para los tokens de acción.

action_noisy_frame_indexes : Índices de fotogramas ruidosos opcionales por elemento de acción.

action_domain_ids : IDs de dominio opcionales por elemento para seleccionar los pesos de la cabeza de acción.

return_dict : Si se debe devolver un *Cosmos3OmniTransformerOutput* en lugar de una tupla.

**Devuelve:**

Un objeto de tipo *Cosmos3OmniTransformerOutput* o una tupla de listas de predicciones por modalidad. Las modalidades opcionales devuelven `None` cuando se omiten sus entradas.

Ejecuta una pasada de propagación hacia adelante completa de un paso de desruido.

