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.43.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Cosmos3OmniTransformer

Совместный зрительно-языковой трансформер Mixture-of-Transformer (MoT), представленный в рамках семейства мировых фундаментальных моделей Cosmos3 от NVIDIA. Модель выполняет два параллельных вычислительных потока по упакованной совместной последовательности:

  • a каузальный «понимающий» путь, который выполняет само-внимание по текстовым токенам с каузальной маскировкой, и
  • a bi-directional “generation” pathway that cross-attends from generation tokens (vision + optional sound latents) over the full understanding-plus-generation key/value set.

Оба пути имеют одинаковый размер скрытого слоя и количество слоёв, но поддерживают отдельные проекции Q/K/V/O, MLP и параметры RMSNorm, что и делает архитектуру Mixture-of-Transformer, а не стандартной Mixture-of-Experts. Информация о позиции предоставляется через 3D мультимодальный RoPE (mRoPE), который чередует частоты по временной оси / высоте / ширине для латентов видео и повторно использует временную ось для текста и аудио.

Модель можно загрузить следующим образом.

import torch
from diffusers import Cosmos3OmniTransformer

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

Cosmos3OmniTransformer

класс 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: list[torch.Tensor]vision_token_shapes: list[tuple[int, int, int]]vision_sequence_indexes: Tensorvision_mse_loss_indexes: Tensorvision_timesteps: Tensorvision_noisy_frame_indexes: list[torch.Tensor]sound_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 )

Параметры

  • input_ids — идентификаторы токенов текста, размещённые в позициях text_indexes в объединённой последовательности.
  • text_indexes — Индексы текстовых токенов в объединённой последовательности.
  • position_ids — идентификаторы позиций mRoPE для полной объединённой последовательности, [3, sequence_length].
  • und_len — Длина префикса каузального текста (понимание); за ним следуют токены генерации.
  • sequence_length — Общая длина объединённой упакованной последовательности.
  • vision_tokens — тензоры визуальных латентов для каждого элемента до применения patchify.
  • vision_token_shapes — формы сетки патчей (T, H, W) для каждого визуального элемента.
  • vision_sequence_indexes — Индексы визуальных токенов в объединённой последовательности.
  • vision_mse_loss_indexes — Индексы, используемые для чтения предсказаний модуля зрения после базовой сети.
  • vision_timesteps — Шаги диффузии для каждого патча для визуальных токенов.
  • vision_noisy_frame_indexes — Индексы шумных кадров для каждого элемента зрения.
  • sound_tokens — Необязательные тензоры латентных представлений звука до упаковки.
  • sound_token_shapes — Необязательные формы сетки патчей для звуковых элементов.
  • sound_sequence_indexes — Необязательные индексы звуковых токенов в объединённой последовательности.
  • sound_mse_loss_indexes — Необязательные индексы, используемые для чтения предсказаний звука.
  • sound_timesteps — Необязательные временные шаги диффузии для звука на каждый токен.
  • sound_noisy_frame_indexes — Необязательные индексы шумных кадров для каждого элемента звука.
  • action_tokens — Необязательные тензоры латентных действий до упаковки.
  • action_token_shapes — Необязательные формы сетки патчей (T, H, W) для каждого элемента действия.
  • action_sequence_indexes — Необязательные индексы токенов действий в объединённой последовательности.
  • action_mse_loss_indexes — Необязательные индексы, используемые для чтения предсказаний действий после backbone.
  • action_timesteps — Необязательные временные шаги диффузии для каждого токена действия.
  • action_noisy_frame_indexes — Необязательные индексы шумных кадров для каждого элемента действия.
  • action_domain_ids — Необязательные идентификаторы доменов для каждого элемента, определяющие веса головок действий.
  • return_dict — Возвращать ли [Cosmos3OmniTransformerOutput] вместо кортежа.

Выполните полный прямой проход на шаге денойзинга.

Update on GitHub