Model reference · open weights
CASA-Helium1-VL is an open-weight language model from kyutai. CASA-Helium1-VL-2B (BF16) weighs 6.1 GB; the smallest configuration that runs it is RTX 3060 12 GB.
Summary of the kyutai/CASA-Helium1-VL-2B model card, 2026-10-01
What it is
| Released by | kyutai |
|---|---|
| Released | 2025-12-10 |
| Parameters | 3.0B |
| VRAM | 6.1 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory |
|---|---|---|---|
| 4K each | |||
| RTX 3060 12 GB | 7 | all 4K | 11.6 GB |
| RTX 4060 Ti 16 GB | 15 | all 4K | 15.4 GB |
| RTX 3090 24 GB | 32 | all 4K | 23.4 GB |
| RTX 4090 24 GB | 32 | all 4K | 23.4 GB |
| RTX 5090 32 GB | 49 | all 4K | 31.0 GB |
| L40S 48 GB | 76 | all 4K | 44.0 GB |
| A100 80 GB | 149 | all 4K | 78.2 GB |
| H100 80 GB | 142 | all 4K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 176 | all 4K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 204 | all 4K | 107 GB |
| H200 141 GB | 270 | all 4K | 138 GB |
| B200 180 GB | 350 | all 4K | 176 GB |
| 2× RTX 3060 12 GB tensor parallel | 28 | all 4K | 11.6 GB a card |
| Requests at once | 4K tokens each |
|---|---|
| 1 | 8.4 GB |
| 5 | 10.3 GB |
| 8 | 11.7 GB |
| 16 | 15.5 GB |
| 32 | 23.0 GB |
| 64 | 38.0 GB |
One card, with vLLM's small-card settings.
From the model card
CASA ([Project Page][blog] . [arXiv][casa-arxiv] . [github][casa-git]) stands for Cross-Attention over Self-Attention. CASA is a VLM based entirely on cross-attention (CA) with enjoys practical benefits for streaming tasks by never adding image tokens to the KVCache of the text model.
Specifically, CASA layers inject visual tokens into a text stream by using image-to-text cross-attention, which act in smaller local attention windows. Simply put, at inference, the model only looks at the latest seen image explicitly. We show that this setup can be naturally leveraged streaming inference e.g. on video inputs, enabling almost constant memory time and inference cost For qualitative samples of CASA used for live video captioning, please check the associated HuggingFace space.
This model page contains the model weights for CASA trained from a pretrained text-only Helium1-2B backbone and from the image encoder from Qwen2.5-VL-3B. In the collection, we also provides weights for:
CASA-Qwen2_5-VL-3B: A CASA model adapted from the full pretrained Qwen2.5-VL-3B (keeping the backbone LLM weights are kept frozen)CASA-Qwen2_5-VL-3B-LiveCC: A CASA model adapted from the full pretrained Qwen2.5-VL-3B and futher finetuned for live video captioning.Helium1-VL-2B: A reference VLM trained from Helium1-2B with standard token insertion mechanism in the same setting as CASA-Helium1-VL-2B.Model Summary:
The intended use of the Helium model is research and development of vision-language systems, including but not limited to image or video understanding.
CASA-Helium1-VL-2B, Helium1-VL-2B and CASA-Qwen2_5-VL-2B can be used as vision-language models to analyze or interpret images as input signals.
CASA-Qwen2_5-VL-2B-LiveCC can be used as a vision-language model on streaming videos as inputs at 2fps.
The models can be used primarly with English as a language. For most downstream use cases, the model should be aligned with supervised fine-tuning, RLHF or related methods.
The model should not be used in other languages than the ones on which it was trained. The model is not intended to be used to impersonate other people or any malicious use of any kind.
Our CASA-Helium1 model was not aligned to human preferences. As such, the model can generate incorrect, biased, harmful or generally unhelpful content. Thus, the model should not be used for downstream applications without further alignment, evaluations and mitigations of risks.
Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
See our [github repository][casa-git] for additional scripts to perform benchmark evaluation and live video captioning.
Below is a short snippet to show you how to load our models, process inputs, and run inference, using a standard HuggingFace transformers pipeline and chat template.
# Minimal requirements:
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "rich",
# "einops>=0.8.1",
# "torch==2.7.0",
# "transformers==4.51.3",
# "torchvision==0.22.0",
# "flash-attn @ https://github.com/Dao-AILab/flash-attention/releases/download/v2.8.0.post2/flash_attn-2.8.0.post2+cu12torch2.7cxx11abiTRUE-cp310-cp310-linux_x86_64.whl"
# ]
# ///
import torch
from transformers.models.auto.modeling_auto import AutoModel
from transformers.models.auto.processing_auto import AutoProcessor
model_id = "kyutai/CASA-Helium1-VL-2B"
model = AutoModel.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
attn_implementation="flash_attention_2",
trust_remote_code=True,
).cuda()
processor = AutoProcessor.from_pretrained(
model_id,
trust_remote_code=True,
)
conversation = [
{
"role": "user",
"content": [
{
"type": "image",
"image": "assets/casa_model.png",
},
{
"type": "text",
"text": "Describe this image.",
},
],
},
]
inputs = processor.tokenize_messages(messages=conversation)
inputs = inputs.to(model.device)
input_len = inputs["input_ids"].shape[1]
output_ids = model.generate_from_image(
**inputs,
max_new_tokens=512,
pre_image_tokens=processor.pre_image_tokens,
post_image_tokens=processor.post_image_tokens,
eos_token_id=model.generation_config.eos_token_id,
)[0, input_len:]
response = processor.tokenizer.decode(output_ids, skip_special_tokens=True)
print(response)
Please have a look at our associated [research paper][casa-arxiv] for details on the training pipeline.
To train our CASA-Helium models we use the FineVision dataset as well as a small, non overlapping, sub
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.