# Qwen3 and mini-coder

Dense Qwen3 lowering with explicit head width and Q/K normalization.

[View canonical HTML](https://pllm.run/sdk/build/models/qwen3/)

Document ID: `pllm.docs.models.qwen3`  
Release: `0.1.0`

`pllm.qwen3.v1` extends dense lowering with explicit `head_dim`, per-head Q/K RMS normalization, and configuration-controlled attention bias. Attention projection width is `num_attention_heads * head_dim`; it is not assumed equal to hidden width.

The checked fixture is `ricdomolm/mini-coder-4b` revision `c87892d046a62415a349a6b3aa244bb630fb7417`, raw configuration SHA-256 `fdbc9e0615fcb88b2cc37aa2b23fa332b3863068d50092aa6bd1e628fd187c92`. This establishes configuration parsing and semantic-plan validation only.

## Python SDK example

```python
from pathlib import Path

from pllm import lower_model

fixture = Path("crates/pllm-models/tests/fixtures/mini-coder-4b-c87892d-config.json")
plan = lower_model(fixture.read_bytes(), batch=1, max_input_tokens=16, max_new_tokens=4)
operations = {operation["id"]: operation for operation in plan.prefill["operations"]}
assert operations["layer.0.q_norm"]["operator"] == "rms_norm"
assert operations["layer.0.rope_q"]["output_shape"][-1] == 128
```

API: [Python SDK objects and signatures](/sdk/reference/python/pllm/#objects-and-signatures)

Run this example from a PLLM source checkout; package installations do not include
the pinned mini-coder fixture. This does not execute the model.
