Mage-VL 是一个用于图像和视频理解的编解码器原生、主动流式多模态基础模型,其视觉编码器以紧凑的4B规模完全从头开始训练。它针对视觉语言模型(VLM)的现代“莫拉维克悖论”——在复杂的离线推理任务上表现出色,但在简单的实时流感知任务上速度慢且计算量大。Mage-VL 不再将视频解码为均匀采样的帧,并将密集的补丁令牌网格输入到冻结的网络预训练 ViT 中,而是遵循现代视频编解码器的结构:将流分离为锚定(I)帧和预测(P)帧,保留每个锚定帧的所有补丁,并仅保留预测帧中编解码器分配比特的补丁——即携带真实运动和新细节的区域。这种与编解码器对齐的稀疏性将视觉令牌减少75%以上,同时保留时空上下文,与均匀帧采样相比,实现了高达3.5倍的实际推理速度提升。
该系统由两个组件构成:
16×16补丁网格和3D旋转位置编码。它与编解码器无关:相同的接口可以通过运动向量+残差能量接受传统编解码器(H.264/AVC、HEVC/H.265),或通过其学习的码率图接受神经编解码器(DCVC-RT)——无需更改架构或重新训练。在这两个组件之上,系统1和系统2双进程设计在单个模型内部添加了主动流式处理:轻量级的认知门(系统1)监控每个滚动的编解码器窗口,并对常规内容保持静默,仅在值得响应的事件完成时调用完整的 VLM(系统2)——无需多智能体管道。
16×16 大小的 I/P 帧)将视觉 token 消耗减少超过 75%(仅为密集帧采样的约 1/8 或更少),使模型能在相同预算下训练8 倍时长的视频。单个 checkpoint microsoft/Mage-VL 是一个统一模型,能够同时提供图像和视频理解以及主动式流控门控——相同的权重既可以回答离线图像/视频问题,也能驱动事件门控式评论。它涵盖了Mage-VL的所有功能:图像理解、帧采样视频、传统H.264/HEVC编解码视频、神经DCVC-RT编解码视频以及事件门控流。该仓库捆绑了编解码器处理器、神经编解码包和主动式门控权重——无需单独的理解、NVC或流控checkpoint。
我们额外发布了**microsoft/Mage-ViT——来自两阶段、从零开始ViT预训练(在约1亿无标签图像/视频帧上进行聚类判别)的独立视觉编码器。这仅是ViT预训练checkpoint**:它未经过与语言模型的联合VLM训练。可将其用作数据高效的、编解码原生的视觉编码器,或作为即插即用的ViT用于您自己的多模态训练。
| 模型 | 任务 | 骨干网络 | Hugging Face |
|---|---|---|---|
Mage-VL | 图像与视频理解 + 主动式流控门控 | Mage-ViT + Qwen3-4B-Instruct-2507 | 🤗 microsoft/Mage-VL |
Mage-ViT | 编解码原生视觉编码器 — 仅ViT预训练,无VLM联合训练 | Codec-ViT(从零开始) | 🤗 microsoft/Mage-ViT |
主动式流控框架 — Mage-ViT将连续流增量编码为事件门控和因果解码器共享的编解码原生视觉特征。门控对每个滚动窗口进行评分,并在常规内容上保持静默;当门控打开时,解码器会生成事件条件响应。
Mage-ViT——一个从零开始构建的Codec-ViT视觉编码器。在16×16的 patch 网格上,它保留了所有锚定(I)帧 patch 以及仅具有运动显著性的预测(P)帧 patch,将视觉 tokens 减少超过75%,同时共享的3D RoPE保留了时空位置信息。
Mage-VL——一个统一模型,其中投影后的视觉 tokens 和文本 tokens 共享一个因果Qwen3解码器。静态图像成为单个空间块;视频成为时间排序的编解码窗口。在流控模式下,一个轻量级的认知门控会为每个滚动窗口(在由事件保留特征提取器维护的循环流控内存之上)预测p_speak = g(h_t),当p_speak ≥ τ时触发生成;响应由冻结的基础模型从最近编解码片段的局部滑动窗口中解码,并且文本查询可以在任何时候注入。
训练——一个渐进式的五阶段监督课程(无偏好/RL后训练),生成一个统一模型:
这五个阶段共同产生了一个单一统一模型Mage-VL,它能够处理图像理解、离线视频推理和主动式流控——无需发布单独的变体。
流水线的两个部分应用了AI4AI(AI-for-AI)范式:(1)密集重新字幕通过智能体闭环运行,其中GPT-5标准评分器对字幕进行评分,Copilot编码智能体在人工验证门控下共同设计提示和工具代码(例如渲染时间戳叠加层)——改进了每个下游OCR/文档/图表/感知基准,并启发了SkillOpt-Lite;(2)第三阶段使用基于AI的诊断来决定训练哪些视频类别、分辨率和帧数。
各模型性能对比。Mage-VL-4B 和 Qwen3-VL-4B 采用相同的 4B Qwen3 LLM 基础模型;Phi-4-Multimodal-Instruct(Phi-4-MM,5.6B)和 Phi-4-Reasoning-Vision(Phi-4-R-V,15B)作为参考模型列出。– = 未运行。粗体 = 行内最佳。
| 基准测试 | Mage-VL-4B | Qwen3-VL-4B | Phi-4-MM-5.6B | Phi-4-R-V-15B |
|---|---|---|---|---|
| 文档理解 | ||||
| DocVQA-val | 95.14 | 94.69 | 92.79 | 76.20 |
| InfoVQA-val | 80.33 | 79.50 | 71.84 | 55.41 |
| AI2D w/ Mask | 83.16 | 81.54 | 81.83 | 82.87 |
| ChartQA | 84.88 | 83.96 | 83.76 | 83.40 |
| OCRBench | 81.80 | 81.60 | 81.70 | 73.90 |
| MultiDocVQA-val | 87.46 | 87.21 | 46.84 | 58.35 |
| ChartQAPro | 32.57 | 26.79 | 0.13 | 25.38 |
| TextVQA-val | 77.28 | 80.55 | 39.93 | 76.06 |
| CC-OCR Doc | 32.25 | 39.69 | 4.99 | 17.65 |
| 通用视觉问答 | ||||
| MMBench-EN-dev | 84.02 | 83.25 | 65.81 | 84.19 |
| MMBench-CN-dev | 82.04 | 80.58 | 75.17 | 79.47 |
| MMStar | 67.32 | 62.04 | 61.24 | 59.63 |
| MME-Perception | 1709.54 | 1703.50 | 1409.66 | 1590.21 |
| SeedBench (All) | 76.78 | 75.65 | 68.28 | 73.70 |
| CV-Bench | 87.79 | 85.37 | 57.09 | 81.31 |
| MME-RealWorld | 66.52 | 63.20 | 32.45 | 57.80 |
| 空间智能 | ||||
| CV-Bench-2D | 82.13 | 81.00 | 56.12 | 80.11 |
| CV-Bench-3D | 94.75 | 92.30 | 56.92 | 82.50 |
| BLINK | 65.11 | 65.10 | 35.24 | 57.80 |
| EmbSpatial | 82.67 | 77.50 | 41.51 | 72.67 |
| CrossPoint | 80.00 | 26.90 | 12.20 | 47.73 |
| CRPE-Relation | 76.12 | 77.70 | 34.60 | 74.46 |
| SAT | 67.33 | 69.30 | 55.33 | 66.67 |
粗体 = 行内最佳。
| 基准测试 | Mage-VL-4B | Qwen3-VL-4B | Phi-4-MM-5.6B | Phi-4-R-V-15B |
|---|---|---|---|---|
| 视频问答 | ||||
| MV-Bench | 65.1 | 66.7 | 44.9 | 49.2 |
| NextQA | 83.1 | 79.8 | 54.1 | 69.0 |
| VideoMME | 64.0 | 59.7 | 44.7 | 55.3 |
| LongVideoBench | 61.3 | 57.7 | 41.14 | 51.2 |
| LVBench | 41.8 | 39.2 | 25.31 | 34.4 |
| MLVU-dev | 68.7 | 61.5 | 44.18 | 51.8 |
| VideoEval-Pro | 45.2 | 20.7 | 14.35 | 16.8 |
| 时间定位 | ||||
| Timelens-Charades | 50.7 | 43.1 | 4.09 | 20.6 |
| Timelens-ActivityNet | 45.4 | 28.4 | 2.03 | 23.0 |
| Timelens-QVHighlight | 57.4 | 34.9 | 2.47 | 11.6 |
| 空间推理 | ||||
| VSI-Bench | 64.3 | 53.3 | 24.09 | 25.5 |
| 跟踪(J&F) | ||||
| Ref-DAVIS17 | 25.83 | 7.48 | 3.14 | 2.15 |
| MeViS-ValidU | 22.55 | 3.16 | 10.28 | 1.53 |
| ReasonVOS | 17.76 | 9.66 | 9.50 | 9.77 |
| Ref-YT-VOS | 25.57 | 5.28 | 8.64 | 3.85 |
SoccerNet — 响应时间(StreamMind 协议,原生编解码输入,零容忍画布匹配)。粗体 = 列内最佳。
| 方法 | TriggerAcc | TimVal | F1 | ROC-AUC | PR-AUC |
|---|---|---|---|---|---|
| StreamMind | 52.18 | 47.36 | – | – | – |
| JoyAI-VL-Interaction-9B | 97.98 | 19.25 | 3.55 | 56.26 | 1.68 |
| Mage-VL-4B | 79.21 | 55.54 | 16.35 | 83.14 | 9.30 |
JoyAI 的高 TriggerAcc 源于在 SoccerNet 严重类别不平衡情况下几乎处处预测静默,因此在精度敏感指标上表现不佳;StreamMind 是在 SoccerNet 上进行分布内训练的,而 Mage-VL 并非如此。
OVO-Bench — 在线视频理解(SimpleStream 最近窗口协议,4 帧 @ 1 fps;无流处理特定微调)。Mage-VL 在流处理架构中创下了新的总体得分最先进水平。RT-Avg / BT-Avg 分别为实时视觉感知 / 回溯子任务的平均值;Overall 为两者的均值。粗体 = 每列最佳模型(Human 为参考上限)。
| 模型 | #Frames | RT-Avg | BT-Avg | Overall |
|---|---|---|---|---|
| Human | – | 93.2 | 92.3 | 92.77 |
| 离线视频大模型 | ||||
| Qwen2.5-VL-7B | 1 fps | 59.9 | 44.7 | 52.28 |
| LLaVA-Video-7B | 64 | 63.5 | 40.4 | 51.95 |
| Qwen3-VL-4B | 64 | 72.8 | 53.1 | 63.00 |
| 在线/流处理视频大模型 | ||||
| VideoLLM-online-8B | 2 fps | 20.8 | 17.7 | 19.26 |
| Flash-VStream-7B | 1 fps | 28.4 | 27.4 | 27.90 |
| Dispider-7B | 1 fps | 54.6 | 36.1 | 45.35 |
| TimeChat-Online-7B | 1 fps | 61.9 | 41.7 | 51.80 |
| StreamForest-7B | 1 fps | 61.2 | 52.0 | 56.60 |
| Streamo-7B | 1 fps | 66.0 | 46.1 | 56.05 |
| HERMES-7B† | 1 fps | 69.0 | 49.4 | 59.20 |
| JoyAI-VL-Interaction-9B | 1 fps | 68.4 | 48.6 | 58.50 |
| Mage-VL-4B | 1 fps | 79.84 | 48.15 | 64.00 |
† HERMES = Qwen2.5-VL-7B + HERMES(4K tokens)。基线结果和表格结构遵循 SimpleStream。
除模型本身外,本报告还提炼出七项实证发现,旨在提升多模态训练效率:
单个 checkpoint microsoft/Mage-VL 即可覆盖以下所有功能。
| 功能 | 脚本 | 运行方式 |
|---|---|---|
| 图像理解 | inference.py | --mode offline --image |
| 帧采样视频 | inference.py | --mode offline --video --video-backend frames |
| 传统H.264/HEVC编解码视频 | inference.py | --mode offline --video --video-backend codec --codec-engine traditional |
| 神经DCVC-RT编解码视频 | inference.py | --mode offline --video --video-backend codec --codec-engine neural |
| 在线图像/视频(SGLang) | inference.py | --mode online … --base-url <server> |
| 事件驱动流式解说 | inference_streaming.py | 详见GitHub仓库 |
离线Transformers推理环境配置:
pip install "transformers>=5.7" accelerate pillow torch torchvision \
opencv-python codec-video-prep基于编解码器的视频推理还需要 PATH 中包含 ffmpeg 和 ffprobe。
本仓库附带了两个示例输入:
| 输入 | 问题 | 内容 |
|---|---|---|
examples/dog.jpg | 详细描述这张图片。 | 一只狗坐在有图案的地毯前的照片 |
examples/soccer-broadcast.mp4 | 描述这个视频。 | 30秒、960×540的足球比赛转播片段 |
下载 inference.py。离线模式通过 AutoModelForCausalLM.from_pretrained 加载检查点,并支持图像、帧采样以及两种编解码器引擎:
# image
python inference.py --mode offline --image examples/dog.jpg \
--question "Describe this image in detail."图片中是一只坐在花纹地毯上的狗。这只狗似乎是中型犬,有着厚实蓬松的毛发。它的毛色以白色为主,带有黑色和棕色的斑块。狗的耳朵竖立着,表情平静且专注。[...]
# video — uniform frame sampling
python inference.py --mode offline --video examples/soccer-broadcast.mp4 \
--video-backend frames --num-frames 32 \
--question "Describe this video."视频开篇,一名身着黑色马球衫、留着短发的男子站在体育场内。他手持一个印有BBC Sport标志的黄色麦克风。背景中可见大量观众。[...]
# video — traditional codec (HEVC/H.264)
python inference.py --mode offline --video examples/soccer-broadcast.mp4 \
--video-backend codec --codec-engine traditional --num-frames 32 \
--question "Describe this video."视频以 BBC Sport 的广播画面开场,一位身着黑色衬衫的主持人手持黄色麦克风。背景是座无虚席的体育场,记分牌上显示“ENG 1 ARG 2 FT”,表明本场比赛的最终比分。[...]
# video — neural codec (DCVC-RT)
python inference.py --mode offline --video examples/soccer-broadcast.mp4 \
--video-backend codec --codec-engine neural --num-frames 32 \
--question "Describe this video."视频以 BBC Sport 的广播开场,画面中主持人站在坐满观众的体育场内。主持人身着黑色衬衫,手持黄色的 BBC Sport 麦克风,并戴着黑色耳机。[...]
在线模式与兼容 OpenAI 的 SGLang 服务器进行通信。首先,使用 Mage-VL SGLang 分支构建并启动服务器(构建过程需要 protobuf-compiler 和 Rust 工具链):
sudo apt-get update && sudo apt-get install -y protobuf-compiler
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
| sh -s -- -y --profile minimal --default-toolchain 1.90.0
source "$HOME/.cargo/env"
git clone -b feat/mage-vl https://github.com/kcz358/sglang
cd sglang
pip install -e 'python[all]'
python -m sglang.launch_server \
--model-path microsoft/Mage-VL \
--trust-remote-code然后将图像或采样的视频帧发送到运行中的服务器:
pip install openai
python inference.py --mode online --image examples/dog.jpg \
--question "Describe this image in detail." \
--base-url http://localhost:30000/v1
python inference.py --mode online --video examples/soccer-broadcast.mp4 \
--num-frames 32 \
--question "Describe this video." \
--base-url http://localhost:30000/v1使用 --model、--max-new-tokens 和 --api-key 覆盖其默认值。
本仓库中的 streammind_gate.safetensors 包含事件门控。流式推理将视频分割为非重叠片段,对常规内容保持静默,仅在检测到值得响应的事件时才生成字幕。通过 GitHub 仓库 中的 inference_streaming.py 运行:
python inference_streaming.py \
--video examples/soccer-broadcast.mp4 \
--video_backend codec \
--segment_sec 8[t=0.0-8.0s] gate=silence (p=0.19)
[t=8.0-16.0s] gate=response (p=0.55) -> The video features a live sports broadcast from BBC Sport, set in a large stadium filled with spectators. The broadcast focuses on a football match between England and Argentina, with the score displayed as England 1, Argentina 2. [...]
[t=16.0-24.0s] gate=response (p=0.73) -> The video features a sports broadcast set in a large stadium filled with spectators. Four commentators are gathered around a table with a 'BBC Sport' logo, each holding a yellow microphone. [...]
[t=24.0-30.0s] gate=silence (p=0.31)该门控是在编码解码器输入上训练的,因此 --video_backend codec 是预期设置。使用 --video_backend frames 可进行直接帧采样。其他控制选项包括 --num_frames、--cur_fps、--max_segments、--max_new_tokens、--gate_threshold 和 --attn_impl。
@article{yang2026mage,
title={Mage-VL: An Efficient Codec-Native Streaming Multimodal Foundation Model},
author={Yang, Senqiao and Zhang, Kaichen and Jia, Zhaoyang and Guo, Jinghao and Shen, Yifei and Zhang, Xinjie and Zhang, Xiaoyi and Wang, Haoqing and Li, Xiao and Zhang, Peng and others},
journal={arXiv preprint arXiv:2607.24904},
year={2026}
}Mage-VL 根据 Apache-2.0 许可证 发布。