Model reference · open weights
Aria is an open-weight language model from rhymes-ai. Aria (BF16) weighs 50.6 GB; the smallest configuration that runs it is H100 80 GB.
Summary of the rhymes-ai/Aria model card, 2026-10-01
What it is
| Released by | rhymes-ai |
|---|---|
| Released | 2024-09-26 |
| Parameters | 25.3B |
| VRAM | 50.6 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB … L40S 48 GB 6 smaller cards | — | — | — | |
| A100 80 GB | 10 | 2 | all 64K | 78.2 GB |
| H100 80 GB | 9 | 2 | all 64K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 16 | 4 | all 64K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 21 | 5 | all 64K | 107 GB |
| H200 141 GB | 34 | 8 | all 64K | 138 GB |
| B200 180 GB | 51 | 12 | all 64K | 176 GB |
| 2× L40S 48 GB tensor parallel | 14 | 3 | all 64K | 44.0 GB a card |
| 4× RTX 4090 24 GB tensor parallel | 15 | 3 | all 64K | 23.4 GB a card |
| 4× RTX 3090 24 GB tensor parallel | 15 | 3 | all 64K | 23.4 GB a card |
| 4× RTX 5090 32 GB tensor parallel | 28 | 7 | all 64K | 31.0 GB a card |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 54.8 GB | 61.9 GB |
| 5 | 64.2 GB | 99.5 GB |
| 8 | 71.3 GB | 128 GB |
| 16 | 90.1 GB | 203 GB |
| 32 | 128 GB | 353 GB |
| 64 | 203 GB | 654 GB |
One card, with vLLM's small-card settings.
From the model card
[Dec 1, 2024] We have released the base models (with native multimodal pre-training) for Aria (Aria-Base-8K and Aria-Base-64K) for research purposes and continue training.
🔗 Try Aria! · 📖 Blog · 📌 Paper · ⭐ GitHub · 🟣 Discord
| Category | Benchmark | Aria | Pixtral 12B | Llama3.2 11B | GPT-4o mini | Gemini-1.5 Flash |
|---|---|---|---|---|---|---|
| Knowledge (Multimodal) | MMMU | 54.9 | 52.5 | 50.7 | 59.4 | 56.1 |
| Math (Multimodal) | MathVista | 66.1 | 58.0 | 51.5 | - | 58.4 |
| Document | DocQA | 92.6 | 90.7 | 84.4 | - | 89.9 |
| Chart | ChartQA | 86.4 | 81.8 | 83.4 | - | 85.4 |
| Scene Text | TextVQA | 81.1 | - | - | - | 78.7 |
| General Visual QA | MMBench-1.1 | 80.3 | - | - | 76.0 | - |
| Video Understanding | LongVideoBench | 65.3 | 47.4 | 45.7 | 58.8 | 62.4 |
| Knowledge (Language) | MMLU (5-shot) | 73.3 | 69.2 | 69.4 | - | 78.9 |
| Math (Language) | MATH | 50.8 | 48.1 | 51.9 | 70.2 | - |
| Reasoning (Language) | ARC Challenge | 91.0 | - | 83.4 | 96.4 | - |
| Coding | HumanEval | 73.2 | 72.0 | 72.6 | 87.2 | 74.3 |
pip install "transformers>=4.48.0" accelerate sentencepiece torchvision requests torch Pillow
pip install flash-attn --no-build-isolation
# For better inference performance, you can install grouped-gemm, which may take 3-5 minutes to install
pip install grouped_gemm==0.1.6
Aria has 25.3B total parameters, it can be loaded in one A100 (80GB) GPU with bfloat16 precision.
Here is a code snippet to show you how to use Aria.
import requests
import torch
from PIL import Image
from transformers import AriaProcessor, AriaForConditionalGeneration
model_id_or_path = "rhymes-ai/Aria"
model = AriaForConditionalGeneration.from_pretrained(
model_id_or_path, device_map="auto", torch_dtype=torch.bfloat16
)
processor = AriaProcessor.from_pretrained(model_id_or_path)
image = Image.open(requests.get("http://images.cocodataset.org/val2017/000000039769.jpg", stream=True).raw)
messages = [
{
"role": "user",
"content": [
{"type": "image"},
{"text": "what is the image?", "type": "text"},
],
}
]
text = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(text=text, images=image, return_tensors="pt")
inputs['pixel_values'] = inputs['pixel_values'].to(torch.bfloat16)
inputs.to(model.device)
output = model.generate(
**inputs,
max_new_tokens=15,
stop_strings=[""],
tokenizer=processor.tokenizer,
do_sample=True,
temperature=0.9,
)
output_ids = output[0][inputs["input_ids"].shape[1]:]
response = processor.decode(output_ids, skip_special_tokens=True)
print(response)
From transformers>=v4.48, you can also pass image url or local path to the conversation history, and let the chat template handle the rest.
Chat template will load the image for you and return inputs in torch.Tensor which you can pass directly to model.generate().
Here is how to rewrite the above example
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "http://images.cocodataset.org/val2017/000000039769.jpg"}
{"type": "text", "text": "what is the image?"},
],
},
]
inputs = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors"pt")
ipnuts = inputs.to(model.device, torch.bfloat16)
output = model.generate(
**inputs,
max_new_tokens=15,
stop_strings=[""],
tokenizer=processor.tokenizer,
do_sample=True,
temperature=0.9,
)
output_ids = output[0][inputs["input_ids"].shape[1]:]
response = processor.decode(output_ids, skip_special_tokens=True)
print(response)
We provide a codebase for more advanced usage of Aria, including vllm inference, cookbooks, and fine-tuning on custom datasets.
If you find our work helpful, please consider citing.
@article{aria,
title={Aria: An Open Multimodal Native Mixture-of-Experts Model},
author={Dongxu Li and Yudong Liu and Haoning Wu and Yue Wang and Zhiqi Shen and Bowen Qu and Xinyao Niu and Guoyin Wang and Bei Chen and Junnan Li},
year={2024},
journal={arXiv preprint arXiv:2410.05993},
}
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.