Model reference · open weights

AIN

LLMs MBZUAI Vision + text 1 build Open weights 939 dl/mo

AIN is an open-weight language model from MBZUAI. AIN (FP32) weighs 16.6 GB; the smallest configuration that runs it is 2× RTX 3060 12 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • AIN is an 8.3B parameter bilingual large multimodal model developed by MBZUAI for image-text-to-text tasks.
  • It supports English and Arabic with a context length of 32,768 tokens and is released under the MIT license.
  • The model was trained on 3.6 million high-quality multimodal data samples to provide strong visual capabilities in both languages.

Summary of the MBZUAI/AIN model card, 2026-10-01

What it is

Released byMBZUAI
Released2025-01-07
Parameters8.3B
VRAM16.6 GB for the weights

What it runs on

Memory and cards for AIN (FP32)

16.6 GBweights, file size
57 MBcache per 1K tokens
2.1 GBruntime overhead, at least
32,768 tokenscontext max
CardRequests at onceContext maxMemory
8K each32K each
RTX 3060 12 GB … RTX 4060 Ti 16 GB
2 smaller cards
RTX 3090 24 GB102all 32K23.4 GB
RTX 4090 24 GB92all 32K23.4 GB
RTX 5090 32 GB266all 32K31.0 GB
L40S 48 GB5313all 32K44.0 GB
A100 80 GB12631all 32K78.2 GB
H100 80 GB11729all 32K78.1 GB
RTX PRO 6000 Blackwell 96 GB15037all 32K93.8 GB
DGX Spark (GB10) 128 GB unified17944all 32K107 GB
H200 141 GB24461all 32K138 GB
B200 180 GB32481all 32K176 GB
2× RTX 3060 12 GB
tensor parallel
51all 32K11.6 GB a card
2× RTX 4060 Ti 16 GB
tensor parallel
215all 32K15.4 GB a card
Memory needed at each load
Requests at once8K tokens each32K tokens each
119.1 GB20.5 GB
521.0 GB28.1 GB
822.4 GB33.7 GB
1626.2 GB48.7 GB
3233.7 GB78.8 GB
6448.7 GB139 GB

One card, with vLLM's small-card settings.

From the model card

What MBZUAI says about AIN

Read the model card

Ahmed Heakl *   Sara Ghaboura *   Omkar Thawakar   Fahad Shahbaz Khan   Hisham Cholakkal   Rao M. Anwer   Salman Khan

Mohamed Bin Zayed University of Artificial Intelligence (MBZUAI), UAE


       Amid the swift progress of large language models (LLMs) and their evolution into large multimodal models (LMMs), significant strides have been made in high-resource languages such as English and Chinese. While Arabic LLMs have seen notable progress, Arabic LMMs remain largely unexplored, often narrowly focusing on a few specific aspects of the language and visual understanding. To bridge this gap, we introduce AIN - the Arabic Inclusive Multimodal Model- designed to excel across diverse domains.
       AIN is an English-Arabic bilingual LMM designed to excel in English and Arabic, leveraging carefully constructed 3.6 million high-quality Arabic-English multimodal data samples. AIN demonstrates state-of-the-art Arabic performance, while also possessing strong English-language visual capabilities.

🌟 Key Features

  • The first Arabic-centric inclusive Large Multimodal Model (LMM) trained on 3.6M samples.
  • Includes 35% authentic Arabic data within its Arabic data subset.
  • Achieves superior performance compared to open- and closed-source models (e.g., GPT-4o) and open-source models (e.g., Qwen2-VL-7B) across tasks such as OCR and specialized domains.
  • Demonstrates robust bilingual capabilities (Arabic/English), validated through comprehensive testing and human evaluation across 17 Arab countries.
  • Exhibits advanced cultural understanding and domain expertise in fields such as medical imaging, agriculture, and scientific visualization.

⚖️ Quick Start

Please install the qwen vision kit. This includes base64, URLs, and interleaved images and videos. You can install it using the following command:

pip install qwen-vl-utils

Here we show a code snippet to show you how to use the chat model with transformers and qwen_vl_utils:

from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info
# default: Load the model on the available device(s)
model = Qwen2VLForConditionalGeneration.from_pretrained(
    "MBZUAI/AIN", torch_dtype="auto", device_map="auto"
)
# We recommend enabling flash_attention_2 for better acceleration and memory saving, especially in multi-image and video scenarios.
# model = Qwen2VLForConditionalGeneration.from_pretrained(
#     "MBZUAI/AIN",
#     torch_dtype=torch.bfloat16,
#     attn_implementation="flash_attention_2",
#     device_map="auto",
# )
# default processer
processor = AutoProcessor.from_pretrained("MBZUAI/AIN")
# The default range for the number of visual tokens per image in the model is 4-16384. You can set min_pixels and max_pixels according to your needs, such as a token count range of 256-1280, to balance speed and memory usage.
# min_pixels = 256*28*28
# max_pixels = 1280*28*28
# processor = AutoProcessor.from_pretrained("MBZUAI/AIN", min_pixels=min_pixels, max_pixels=max_pixels)
messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": "https://huggingface.co/MBZUAI/AIN/resolve/main/assets_hf/demo_image.jpeg",
            },
            {"type": "text", "text": "يرجى وصف هذه الصورة."},
        ],
    }
]
# Preparation for inference
text = processor.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
    text=[text],
    images=image_inputs,
    videos=video_inputs,
    padding=True,
    return_tensors="pt",
)
inputs = inputs.to("cuda")
# Inference: Generation of the output
generated_ids = model.generate(**inputs, max_new_tokens=128)
generated_ids_trimmed = [
    out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)
from PIL import Image
import requests
import torch
from torchvision import io
from typing import Dict
from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor
# Load the model in half-precision on the available device(s)
model = Qwen2VLForConditionalGeneration.from_pretrained(
    "MBZUAI/AIN", torch_dtype="auto", device_map="auto"
)
processor = AutoProcessor.from_pretrained("MBZUAI/AIN")
# Image
url = "https://huggingface.co/MBZUAI/AIN/resolve/main/assets_hf/demo_image.jpeg"
image = Image.open(requests.get(url, stream=True).raw)
conversation = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
            },
            {"type": "text", "text": "Describe this image in Arabic."},
        ],
    }
]
# Preprocess the inputs
text_prompt = processor.apply_chat_template(conversation, add_generation_prompt=True)
# Excepted output: 'system\nYou are a helpful assistant.\nuser\nDescribe this image.\nassistant\n'
inputs = processor(
    text=[text_prompt], images=[image], padding=True, return_tensors="pt"
)
inputs = inputs.to("cuda")
# Inference: Generation of the output
output_ids = m

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms