# Cosmos3OmniTransformer

NVIDIAのCosmos3ワールドファウンデーションモデルファミリーの一部として導入された、Mixture-of-Transformer (MoT) によるビジョン・言語統合トランスフォーマーです。このモデルは、パッキングされた統合シーケンスに対して2つの並列計算パスを実行します:

- 因果的な「理解」パスである **causal "understanding" pathway** は、因果的マスキングを適用してテキストトークンに対して自己注意を適用し、
- **双方向の「生成」パス**であり、生成トークン（ビジョンおよび任意のサウンド潜在変数）から、理解と生成のキー/バリューセット全体に対してクロスアテンションを行います。

2つのパスウェイは同じ隠れ層サイズと層数を共有しますが、**個別の Q/K/V/O 投影、MLP、および RMSNorm パラメータ**を保持しています。これが、このアーキテクチャを標準的な Mixture-of-Experts ではなく Mixture-of-Transformer とする理由です。位置情報は、3D マルチモーダル RoPE (mRoPE) によって供給されます。mRoPE は、動画の潜在変数に対して時間 / 高さ / 幅の周波数を交互に配置し、テキストと音声には時間軸を再利用します。

モデルは次のように読み込むことができます。

```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)
```

[ソース](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)
```

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

**パラメータ:**

input_ids : 結合シーケンス内の`text_indexes`に配置されるテキストのトークンID。

text_indexes : 結合シーケンス内のテキストトークンのインデックス。

position_ids : 完全な結合シーケンスに対する mRoPE 位置 ID。`[3, sequence_length]`

und_len : 因果テキスト（理解）プレフィックスの長さ。生成トークンはこれに続きます。

sequence_length : 連結パックシーケンスの総長。

vision_tokens : パッチ化前のアイテムごとのビジョン潜在テンソル。

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 : バックボーン後にアクション予測を読み取るために使用される任意のインデックス。

action_timesteps : アクショントークン用の任意のトークンごとの拡散タイムステップ。

action_noisy_frame_indexes : 各アクションアイテムごとの任意のノイズ付きフレームのインデックス。

action_domain_ids : 各アイテムのアクションヘッドの重みを決定するための、任意のドメインID。

return_dict : タプルではなく、*Cosmos3OmniTransformerOutput* を返すかどうか。

**戻り値:**

*Cosmos3OmniTransformerOutput* または、モダリティごとの予測リストのタプル。省略可能なモダリティは、その入力が省略されている場合に `None` を返します。

完全なデノイジングステップのフォワードパスを実行します。

