> 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.hy_mt2.layers

## Module Contents

### Classes

| Name                                                                               | Description                                                    |
| ---------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| [`HyMT2Attention`](#nemo_automodel-components-models-hy_mt2-layers-HyMT2Attention) | Hy-MT2-30B-A3B attention: GQA, per-head Q/K RMSNorm, and RoPE. |

### API

```python
class nemo_automodel.components.models.hy_mt2.layers.HyMT2Attention(
    config: typing.Any,
    backend: nemo_automodel.components.models.common.BackendConfig
)
```

**Bases:** `Module`

Hy-MT2-30B-A3B attention: GQA, per-head Q/K RMSNorm, and RoPE.

Differences vs. the existing Hy3-preview `HYV3Attention`:

* `qk_norm` is gated by `config.qk_norm` (defaults to True). For
  Hy-MT2-30B-A3B this is always True; the flag is here so the same
  module can also be reused for non-qk-norm variants without code
  edits.
* Dimensions follow Hy-MT2-30B-A3B: 32 Q heads / 4 KV heads,
  head\_dim=128, hidden\_size=2048.

```python
nemo_automodel.components.models.hy_mt2.layers.HyMT2Attention.forward(
    x: torch.Tensor,
    freqs_cis: torch.Tensor,
    attention_mask: torch.Tensor | None = None,
    attn_kwargs: typing.Any = {}
) -> torch.Tensor
```

```python
nemo_automodel.components.models.hy_mt2.layers.HyMT2Attention.init_weights(
    buffer_device: torch.device,
    init_std: float = 0.02
)
```