> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/automodel/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/automodel/_mcp/server.

# nemo_automodel.components.models.kimi_k3.multimodal

Native top-level Kimi K3 vision-language model.

## Module Contents

### Classes

| Name                                                                                                                    | Description                                                            |
| ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [`KimiK3ForConditionalGeneration`](#nemo_automodel-components-models-kimi_k3-multimodal-KimiK3ForConditionalGeneration) | Kimi K3 MoonViT3d tower, projector, and native KDA/MLA language model. |

### Functions

| Name                                                                                                | Description |
| --------------------------------------------------------------------------------------------------- | ----------- |
| [`_projector_config`](#nemo_automodel-components-models-kimi_k3-multimodal-_projector_config)       | -           |
| [`_vision_tower_config`](#nemo_automodel-components-models-kimi_k3-multimodal-_vision_tower_config) | -           |

### Data

[`ModelClass`](#nemo_automodel-components-models-kimi_k3-multimodal-ModelClass)

### API

```python
class nemo_automodel.components.models.kimi_k3.multimodal.KimiK3ForConditionalGeneration(
    config: nemo_automodel.components.models.kimi_k3.config.KimiK3Config,
    moe_config: nemo_automodel.components.moe.config.MoEConfig | None = None,
    backend: nemo_automodel.components.models.common.BackendConfig | None = None,
    kwargs: typing.Any = {}
)
```

**Bases:** [KimiK3ForCausalLM](/nemo-automodel/nemo_automodel/components/models/kimi_k3/model#nemo_automodel-components-models-kimi_k3-model-KimiK3ForCausalLM)

Kimi K3 MoonViT3d tower, projector, and native KDA/MLA language model.

**`ModelCapabilities`** `= KimiK3ForCausalLM.ModelCapabilities`

---

**`mm_projector`** `= projector_cls(projector_config)`

---

**`state_dict_adapter`**

---

**`vision_tower`**

---

```python
nemo_automodel.components.models.kimi_k3.multimodal.KimiK3ForConditionalGeneration._extract_image_features(
    pixel_values: torch.Tensor,
    grid_thws: torch.Tensor
) -> list[torch.Tensor]
```

Encode packed `pixel_values` using `grid_thws` image/video geometry.

```python
nemo_automodel.components.models.kimi_k3.multimodal.KimiK3ForConditionalGeneration._merge_input_ids_with_image_features(
    image_features: list[torch.Tensor],
    inputs_embeds: torch.Tensor,
    input_ids: torch.Tensor,
    attention_mask: torch.Tensor,
    labels: torch.Tensor | None = None
) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor | None, torch.Tensor]
```

Expand image placeholders in `[batch, sequence]` text tensors.

```python
nemo_automodel.components.models.kimi_k3.multimodal.KimiK3ForConditionalGeneration.forward(
    input_ids: torch.Tensor | None = None,
    block_residual: torch.Tensor | None = None,
    pixel_values: torch.Tensor | None = None,
    grid_thws: torch.Tensor | None = None,
    attention_mask: torch.Tensor | None = None,
    position_ids: torch.Tensor | None = None,
    inputs_embeds: torch.Tensor | None = None,
    labels: torch.Tensor | None = None,
    logits_to_keep: int | torch.Tensor = 0,
    output_hidden_states: bool | None = None,
    kwargs: typing.Any = {}
) -> transformers.modeling_outputs.CausalLMOutputWithPast | torch.Tensor | tuple[torch.Tensor, torch.Tensor]
```

Run text-only or multimodal K3 inputs.

```python
nemo_automodel.components.models.kimi_k3.multimodal.KimiK3ForConditionalGeneration.from_config(
    config: nemo_automodel.components.models.kimi_k3.config.KimiK3Config,
    moe_config: nemo_automodel.components.moe.config.MoEConfig | None = None,
    backend: nemo_automodel.components.models.common.BackendConfig | None = None,
    kwargs: typing.Any = {}
) -> 'KimiK3ForConditionalGeneration'
```

classmethod

```python
nemo_automodel.components.models.kimi_k3.multimodal.KimiK3ForConditionalGeneration.from_pretrained(
    pretrained_model_name_or_path: str,
    model_args: typing.Any = (),
    kwargs: typing.Any = {}
) -> 'KimiK3ForConditionalGeneration'
```

classmethod

```python
nemo_automodel.components.models.kimi_k3.multimodal._projector_config(
    config: nemo_automodel.components.models.kimi_k3.config.KimiK3Config
) -> types.SimpleNamespace
```

```python
nemo_automodel.components.models.kimi_k3.multimodal._vision_tower_config(
    config: nemo_automodel.components.models.kimi_k3.config.KimiK3Config
)
```

```python
nemo_automodel.components.models.kimi_k3.multimodal.ModelClass = KimiK3ForConditionalGeneration
```