Diffusers documentation

Cosmos3OmniTransformer

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

< >

( 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

< >

( 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_indexes na 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.

Update on GitHub