Diffusers documentation
Cosmos3OmniTransformer
Cosmos3OmniTransformer
Um transformer de visão-linguagem conjunto Mixture-of-Transformer (MoT) introduzido como parte da família de modelos de fundação de mundo Cosmos3 da NVIDIA. O modelo executa dois caminhos de computação paralelos sobre uma sequência conjunta empacotada:
- um caminho de “compreensão” causal que realiza autoatenção sobre tokens de texto com mascaramento causal, e
- um caminho de “geração” bidirecional que faz cross-attention dos tokens de geração (latentes de visão + som opcional) sobre o conjunto completo de chaves/valores de compreensão mais geração.
Os dois caminhos compartilham o mesmo tamanho oculto e número de camadas, mas mantêm projeções Q/K/V/O, MLPs e parâmetros RMSNorm separados, o que torna a arquitetura uma Mixture-of-Transformer em vez de uma Mixture-of-Experts padrão. A informação de posição é fornecida por um RoPE multimodal 3D (mRoPE) que intercala frequências de tempo / altura / largura para latentes de vídeo e reutiliza o eixo temporal para texto e áudio.
O modelo pode ser carregado da seguinte forma.
import torch
from diffusers import Cosmos3OmniTransformer
transformer = Cosmos3OmniTransformer.from_pretrained(
"nvidia/Cosmos3-Nano", subfolder="transformer", dtype=torch.bfloat16
)Cosmos3OmniTransformer
classe diffusers.Cosmos3OmniTransformer
< source >( attention_bias: bool = Falseattention_dropout: float = 0.0dtype: str = 'bfloat16'head_dim: int = 128hidden_size: int = 4096intermediate_size: int = 12288base_fps: int = 24enable_fps_modulation: bool = Truelatent_channel: int = 48unified_3d_mrope_reset_spatial_ids: bool = Trueunified_3d_mrope_temporal_modality_margin: int = 15000latent_patch_size: int = 2num_attention_heads: int = 32num_hidden_layers: int = 36num_key_value_heads: int = 8patch_latent_dim: int = 192rms_norm_eps: float = 1e-06rope_scaling: dict | None = Nonerope_theta: float = 5000000.0action_dim: int | None = Noneaction_gen: bool = Falsenum_embodiment_domains: int = 32sound_dim: int | None = Nonesound_gen: bool = Falsesound_latent_fps: float = 25.0timestep_scale: float = 0.001vocab_size: int = 151936hidden_act: str = 'silu'qk_norm_for_text: bool = Trueuse_und_k_norm_for_gen: bool = Falserope_axes_dim: tuple[int, int, int] | list[int] | None = None )
forward
< source >( input_ids: Tensortext_indexes: Tensorposition_ids: Tensorund_len: intsequence_length: intvision_tokens: listvision_token_shapes: listvision_sequence_indexes: Tensorvision_mse_loss_indexes: Tensorvision_timesteps: Tensorvision_noisy_frame_indexes: listsound_tokens: list[torch.Tensor] | None = Nonesound_token_shapes: list[tuple[int, int, int]] | None = Nonesound_sequence_indexes: typing.Optional[torch.Tensor] = Nonesound_mse_loss_indexes: typing.Optional[torch.Tensor] = Nonesound_timesteps: typing.Optional[torch.Tensor] = Nonesound_noisy_frame_indexes: list[torch.Tensor] | None = Noneaction_tokens: list[torch.Tensor] | None = Noneaction_token_shapes: list[tuple[int, int, int]] | None = Noneaction_sequence_indexes: typing.Optional[torch.Tensor] = Noneaction_mse_loss_indexes: typing.Optional[torch.Tensor] = Noneaction_timesteps: typing.Optional[torch.Tensor] = Noneaction_noisy_frame_indexes: list[torch.Tensor] | None = Noneaction_domain_ids: list[torch.Tensor] | None = Nonereturn_dict: bool = True )
Parâmetros
- input_ids — IDs dos tokens de texto posicionados em
text_indexesna sequência conjunta. - text_indexes — Índices dos tokens de texto na sequência conjunta.
- position_ids — IDs de posição mRoPE para a sequência conjunta completa,
[3, sequence_length]. - und_len — Comprimento do prefixo de texto causal (compreensão); os tokens de geração seguem.
- sequence_length — Comprimento total da sequência empacotada conjunta.
- vision_tokens — Tensores latentes de visão por item antes do patchify.
- vision_token_shapes — Formas da grade de patches
(T, H, W)por item de visão. - vision_sequence_indexes — Índices dos tokens de visão na sequência conjunta.
- vision_mse_loss_indexes — Índices usados para ler as previsões de visão após o backbone.
- vision_timesteps — Timesteps de difusão por patch para tokens de visão.
- vision_noisy_frame_indexes — Índices dos quadros com ruído por item de visão.
- sound_tokens — Tensores latentes de som opcionais antes do empacotamento.
- sound_token_shapes — Formas opcionais da grade de patches para itens de som.
- sound_sequence_indexes — Índices opcionais dos tokens de som na sequência conjunta.
- sound_mse_loss_indexes — Índices opcionais usados para ler as previsões de som.
- sound_timesteps — Timesteps de difusão por token opcionais para som.
- sound_noisy_frame_indexes — Índices opcionais de quadros com ruído por item de som.
- action_tokens — Tensores latentes de ação opcionais antes do empacotamento.
- action_token_shapes — Formas opcionais da grade de patches
(T, H, W)por item de ação. - action_sequence_indexes — Índices opcionais dos tokens de ação na sequência conjunta.
- action_mse_loss_indexes — Índices opcionais usados para ler as previsões de ação após o backbone.
- action_timesteps — Timesteps de difusão por token opcionais para tokens de ação.
- action_noisy_frame_indexes — Índices opcionais de quadros ruidosos por item de ação.
- action_domain_ids — IDs de domínio opcionais por item que selecionam os pesos da cabeça de ação.
- return_dict — Se deve retornar um [Cosmos3OmniTransformerOutput] em vez de uma tupla.
Execute uma passagem de propagação direta completa de um passo de desruidamento.