Model reference · open weights

Sa2VA-Qwen3-VL

LLMs ByteDance Vision + text 2 builds Open weights 1k dl/mo

Sa2VA-Qwen3-VL is an open-weight language model from ByteDance. Sa2VA-Qwen3-VL-2B (FP32) weighs 5.3 GB; the smallest configuration that runs it is RTX 3060 12 GB.

  • Sa2VA-Qwen3-VL is a 5.1B parameter multimodal large language model developed by ByteDance for image-text-to-text tasks.
  • It supports question answering, visual prompt understanding, and dense object segmentation at both image and video levels.
  • The model is multilingual and released under the Apache-2.0 license.

Summary of the ByteDance/Sa2VA-Qwen3-VL-4B model card, 2026-10-01. The estimate below is for another build of the family.

What it is

Released byByteDance
Released2025-10-21
Parameters5.1B
VRAM5.3 GB for the weights

What it runs on

Memory and cards for Sa2VA-Qwen3-VL-2B (FP32)

5.3 GBweights, file size
115 MBcache per 1K tokens
2.0 GBruntime overhead, at least
262,144 tokenscontext max
CardRequests at onceContext maxMemory
8K each32K each
RTX 3060 12 GB4136K11.6 GB
RTX 4060 Ti 16 GB8269K15.4 GB
RTX 3090 24 GB174137K23.4 GB
RTX 4090 24 GB174136K23.4 GB
RTX 5090 32 GB256202K31.0 GB
L40S 48 GB399all 256K44.0 GB
A100 80 GB7518all 256K78.2 GB
H100 80 GB7117all 256K78.1 GB
RTX PRO 6000 Blackwell 96 GB8721all 256K93.8 GB
DGX Spark (GB10) 128 GB unified10225all 256K107 GB
H200 141 GB13433all 256K138 GB
B200 180 GB17543all 256K176 GB
2× RTX 3060 12 GB
tensor parallel
143119K11.6 GB a card
Memory needed at each load
Requests at once8K tokens each32K tokens each
18.2 GB11.0 GB
512.0 GB26.1 GB
814.8 GB37.4 GB
1622.3 GB67.4 GB
3237.4 GB128 GB
6467.4 GB248 GB

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

Builds

Sizes, precisions & builds

BuildParamsPrecisionWeightsSmallest setup
Sa2VA-Qwen3-VL-4B ↗ 5.1BFP32 10.1 GBRTX 4060 Ti 16 GB
Sa2VA-Qwen3-VL-2B (above) ↗ 2.7BFP32 5.3 GBRTX 3060 12 GB

From the model card

What ByteDance says about Sa2VA-Qwen3-VL

Read the model card

[📂 GitHub] [📜 Sa2VA paper] [🚀 Quick Start]

Introduction

Sa2VA is an MLLM capable of question answering, visual prompt understanding, and dense object segmentation at both image and video levels. It achieves comparable performance to SOTA MLLMs Qwen2.5-VL and InternVL3 on question-answering benchmarks. Additionally, Sa2VA possesses the visual prompt understanding and dense object segmentation capabilities that SOTA MLLMs Qwen2.5-VL and InternVL3 lack. Sa2VA achieves SOTA performance on both image and video grounding and segmentation benchmarks.

Sa2VA Family

We built the Sa2VA series based on Qwen2.5/3-VL and InternVL2.5/3. In the following table, we provide some Sa2VA models built on Qwen2.5/3-VL and InternVL3.

Model NameBase MLLMLanguage PartHF Link
Sa2VA-InternVL3-2BInternVL3-2BQwen2.5-1.5B🤗 link
Sa2VA-InternVL3-8BInternVL3-8BQwen2.5-7B🤗 link
Sa2VA-InternVL3-14BInternVL3-14BQwen2.5-14B🤗 link
Sa2VA-Qwen2_5-VL-3BQwen2.5-VL-3B-InstructQwen2.5-3B🤗 link
Sa2VA-Qwen2_5-VL-7BQwen2.5-VL-7B-InstructQwen2.5-7B🤗 link
Sa2VA-Qwen3-VL-4BQwen3-VL-4B-InstructQwen3-4B🤗 link

Sa2VA Performance

Model NameMMEMMBenchRefCOCORefCOCO+RefCOCOgMeVIS (val_u)DAVIS
Sa2VA-InternVL3-2B1631/55979.881.475.780.353.974.5
Sa2VA-InternVL3-8B1743/63383.083.378.981.856.476.3
Sa2VA-InternVL3-14B1746/72484.383.679.983.659.276.6
Sa2VA-Qwen2_5-VL-3B1533/57278.479.674.077.151.673.4
Sa2VA-Qwen2_5-VL-7B1552/67684.582.477.581.556.479.4
Sa2VA-Qwen3-VL-4B1660/65586.381.777.480.057.175.9

Quick Start

We provide an example code to run Sa2VA using transformers.

import torch
from transformers import AutoProcessor, AutoModel
from PIL import Image
import numpy as np
import os

# load the model and processor
path = "ByteDance/Sa2VA-Qwen3-VL-4B"
model = AutoModel.from_pretrained(
    path,
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
    use_flash_attn=True,
    trust_remote_code=True).eval().cuda()
processor = AutoProcessor.from_pretrained(path, trust_remote_code=True, use_fast=False)

# for image chat
image_path = "/PATH/TO/IMAGE"
text_prompts = "Please describe the image."
image = Image.open(image_path).convert('RGB')
input_dict = {
    'image': image,
    'text': text_prompts,
    'past_text': '',
    'mask_prompts': None,
    'processor': processor,
    }
return_dict = model.predict_forward(**input_dict)
answer = return_dict["prediction"] # the text format answer

# for image chat with segmentation output
image_path = "/PATH/TO/IMAGE"
text_prompts = "Could you please give me a brief description of the image? Please respond with interleaved segmentation masks for the corresponding parts of the answer."
image = Image.open(image_path).convert('RGB')
input_dict = {
    'image': image,
    'text': text_prompts,
    'past_text': '',
    'mask_prompts': None,
    'processor': processor,
    }
return_dict = model.predict_forward(**input_dict)
answer = return_dict["prediction"] # the text format answer
masks = return_dict['prediction_masks']  # segmentation masks, list(np.array(1, h, w), ...)

# for chat with visual prompt (mask format) input
mask_prompts = np.load('/PATH/TO/pred_masks.npy') # np.array(n_prompts, h, w)
image_path = "/PATH/TO/IMAGE"
text_prompts = "Can you provide me with a detailed description of the region in the picture marked by region1."
image = Image.open(image_path).convert('RGB')
input_dict = {
    'image': image,
    'text': text_prompts,
    'past_text': '',
    'mask_prompts': mask_prompts,
    'processor': processor,
    }
return_dict = model.predict_forward(**input_dict)
answer = return_dict["prediction"] # the text format answer

# for video chat
video_folder = "/PATH/TO/VIDEO_FOLDER"
images_paths = os.listdir(video_folder)
images_paths = [os.path.join(video_folder, image_path) for image_name in images_paths]
if len(images_paths) > 5:  # uniformly sample 5 frames
    step = (len(images_paths) - 1) // (5 - 1)
    images_paths = [images_paths[0]] + images_paths[1:-1][::step][1:] + [images_paths[-1]]
text_prompts = "Please describe the video."
input_dict = {
    'video': images_paths,
    'text': text_prompts,
    'past_tex

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