v3.1.0

Henry-23/VideoChatv3.1.0Jul 29, 2026by lyogavin

AI Summary

Enables running the Kimi K3 (2.8T) open-source model on a single consumer-class GPU, requiring only 3.72GB VRAM.

Key Highlights

  • Kimi K3 (2.8T) runs on a single RTX 6000 Ada (48GB) with 3.72GB VRAM usage
  • Sparse MoE implementation allows streaming one expert at a time
  • Mandatory requirements: flash-attn and CUDA 12 build of torch
  • General fixes for compressed tensors and attention propagation

New Features

  • Support for Kimi K3 (2.8T) on a single card
  • General compressed tensors and attention propagation improvements

Full Release Notes

## Kimi K3 (2.8T) runs on a single card in 3.72GB

Kimi K3 is the largest open-source model released to date. AirLLM runs it on one consumer-class GPU.

Measured end to end on a single **RTX 6000 Ada (48GB)** against the full 1.56TB checkpoint, generating real tokens:

| | |
|---|---|
| **Peak VRAM during generation** | **3.72 GB** |
| Peak VRAM after init | 0.83 GB |
| Init (one-time per process) | 900 s |
| Generation | 292 s/token, disk-bound |

The reason a 2.8T model needs less VRAM than a 671B one is that sparse MoE checkpoints stream **one expert at a time** rather than a whole layer. K3 holds 896 experts per layer and routes each token to 16 of them — expanded, a layer's experts are ~55GB, but a token only needs ~1GB. AirLLM loads just those. MXFP4 weights also cross PCIe packed and expand on the GPU, moving 4x less data.

Fitting the checkpoint on disk needed the same kind of trick: a naive split would want 3.12TB for a 1.56TB model. K3's shards turn out to be pure, one module each, so split layers are hardlinked to the originals instead of copied.

### Before you run K3

K3 brings three requirements of its own, none of them optional:

```bash
pip install airllm compressed-tensors flash-attn
```

- **flash-attn is mandatory.** K3's model code overwrites whatever attention implementation you request.
- **A CUDA 12 build of torch**, because no prebuilt flash-attn wheel exists for CUDA 13 yet.
- **transformers 4.56.x**, as K3's remote code does not load on 5.x.

### Also in this release

Four fixes that came out of the K3 work but are not K3-specific, and should help other models:

- Adopt the checkpoint's shape when a model class builds a different one for a parameter it never materialises.
- Expand packed weights for modules whose forward reads a plain `weight` rather than the packed payload.
- Read `scheme.format` across compressed-tensors versions, where it is an enum in some and a plain string in others.
- Propagate the attention implementation into nested sub-configs, which multimodal wrappers keep their decoder under.

Full details in #316.