【免费下载链接】Vision-DeepResearch
[ICML 2026 & EMNLP 2026] Multimodal deep-research MLLM and benchmark. The first long-horizon multimodal deep-research MLLM, extending the number of reasoning turns to dozens and the number of search-engine interactions to hundreds.
Vision-DeepResearch 是首个长程多模态 DeepResearch MLLM,将推理轮次扩展到数十轮、搜索引擎交互扩展到数百次。本文带你走通它的SFT 训练全流程:从环境安装、Parquet 数据转 JSONL,到用 ms-swift 的 Megatron 后端对 8B 和 30B-A3B 两个模型做全参数微调,每一步都有现成脚本可用。
为什么 SFT 是多模态 DeepResearch 的关键一步 💡
DeepResearch 类任务要求模型完成"看图 → 裁剪搜索 → 阅读网页 → 多跳推理"这样的长程轨迹,普通 VLM 直接回答往往连第一跳都走不完。Vision-DeepResearch 的核心思路是:先通过高质量 SFT 数据让模型"学会"这种 ReAct 式长程搜索行为,再用 RL 强化搜索与推理能力。
SFT 阶段的训练基于 Qwen3-VL 底座,官方分别提供了 8B(Dense)与 30B-A3B(MoE)两个规模的完整微调脚本:
仓库结构与环境准备
仓库中 SFT 相关资源集中在以下位置:
| 资源 | 路径 |
|---|---|
| 8B 训练脚本 | ms-swift/run/vision_deepresearch_SFT_8B_megatron_lr2e5_2ep.sh |
| 30B-A3B 训练脚本 | ms-swift/run/vision_deepresearch_SFT_30B_A3B_megatron_lr2e5_2ep.sh |
| 数据转换脚本 | ms-swift/run/data_prepare/convert_parquet2jsonl.sh |
| SFT 数据集 | 仓库根目录data/(转换后存放) |
| 输出检查点 | checkpoints/ |
| RL 阶段代码 | rllm/vision_deepresearch_async_workflow/ |
训练栈由仓库内置的四个组件构成,按 README.md 的 Quickstart 依次安装即可:
git clone https://gitcode.com/gh_mirrors/vi/Vision-DeepResearch cd Vision-DeepResearch cd rllm/verl && pip install -e . && cd ../.. cd Megatron-LM && pip install -e . && cd .. cd mbridge && pip install -e . && cd .. cd rllm && pip install -e . && cd .. pip install requests==2.32.3 oss2其中ms-swift 的 Megatron 后端(megatron sft命令)是整个训练流程的入口,它把 Megatron-LM 的 TP/PP/CP/SP/EP 并行技术与 mbridge/ 的 Mcore-Bridge 能力封装成一条命令行,可以直接读写 safetensors 权重,无需手动转换模型格式。更详细的原理可参考 ms-swift/docs/source/Megatron-SWIFT/Mcore-Bridge.md。
⚠️ Megatron 训练需要
transformer_engine、apex、flash_attn等 GPU 依赖,安装细节见 ms-swift/docs/source/Megatron-SWIFT/Quick-start.md。
SFT 数据准备:Parquet 一键转 JSONL
官方冷启动(Cold-start)数据集以 Parquet 格式发布,图片以字节流形式嵌在表内。ms-swift 训练需要的是JSONL + 磁盘图片文件,转换只需一条命令:
bash ms-swift/run/data_prepare/convert_parquet2jsonl.sh脚本内部调用 convert_parquet2jsonl.py,完成三件事:
- 按魔数(PNG/JPG/GIF 头)识别图片格式,把字节流转存为
--image_dir下的独立图片文件; - 将多轮对话、工具调用(搜索/网页访问)字段序列化为 JSONL 行;
- 处理 numpy 类型与 NaN,保证 JSON 可序列化。
转换完成后,训练时通过--dataset 'data/Vision-DeepResearch-Toy-SFT-Data.jsonl'指向该文件即可。
8B 微调脚本参数详解
8B 脚本面向4 节点 × 8 卡(32×80GiB)的集群,核心是megatron sft一条命令:
cd ms-swift bash run/vision_deepresearch_SFT_8B_megatron_lr2e5_2ep.sh关键参数解读(完整脚本见 vision_deepresearch_SFT_8B_megatron_lr2e5_2ep.sh):
| 参数 | 取值 | 作用 |
|---|---|---|
--model | Qwen/Qwen3-VL-8B-Instruct | 底座模型,直接读 safetensors |
--load_safetensors/--save_safetensors | true | Mcore-Bridge 无缝加载/保存,免权重转换 |
--tensor_model_parallel_size | 4 | 张量并行度 4 |
--sequence_parallel | true | 序列并行,进一步省显存 |
--max_length | 64000 | 单样本最大长度,适配长程轨迹 |
--packing | true | 打包长短样本,GPU 负载均衡、显存稳定 |
--micro_batch_size/--global_batch_size | 1 / 64 | 梯度累加实现全局批 64 |
--recompute_granularity | full(uniform/1 层) | 激活重计算,换显存 |
--lr/--min_lr | 2e-5 / 5e-7 | 学习率与余弦衰减下限 |
--max_epochs | 2 | 训练 2 个 epoch |
--save_interval | 500 | 每 500 步存一次检查点 |
--no_save_optim/--no_save_rng | true | 只存权重,SFT 产物可直接部署推理 |
--attention_backend | flash | FlashAttention 后端 |
--report_to | wandb | 实验追踪(脚本运行前需wandb login) |
由于多模态轨迹普遍很长,脚本用--max_length 64000+--packing true的组合是重点:packing 会把不同长度的样本拼成近似等长块,避免长样本拖慢短样本、保证各进程负载均衡。注意 packing 会减少样本数,如自行改数据量,需同步调节global_batch_size和学习率(参数说明见 Command-line-parameters.md)。
30B-A3B MoE 微调:多出来的 6 个参数
30B-A3B 是 MoE 架构(30B 总参数、约 3B 激活),脚本在 8B 基础上新增专家并行与 MoE 融合优化,硬件规模同为 4 节点 × 8 卡:
cd ms-swift bash run/vision_deepresearch_SFT_30B_A3B_megatron_lr2e5_2ep.sh差异参数(完整脚本见 vision_deepresearch_SFT_30B_A3B_megatron_lr2e5_2ep.sh):
| 参数 | 取值 | 作用 |
|---|---|---|
--expert_model_parallel_size | 8 | 专家并行度 8,MoE 专家分布到更多卡 |
--context_parallel_size | 2 | 上下文并行,进一步摊薄 64K 长序列显存 |
--moe_permute_fusion | true | 融合 token permute/unpermute 通信 |
--moe_grouped_gemm | true | Grouped GEMM,按专家批量矩阵乘 |
--moe_shared_expert_overlap | true | 共享专家计算与通信重叠 |
--moe_aux_loss_coeff | 1e-6 | 负载均衡辅助损失权重 |
--moe_expert_capacity_factor | 2 | 专家容量因子,防止 token 被丢弃 |
官方建议MoE 训练优先使用 Megatron-SWIFT,相比普通数据并行可获得数量级的训练加速(见 Quick-start.md)。
训练监控与检查点管理 📈
- 多机启动:脚本内已写好
NNODES=$WORLD_SIZE、NODE_RANK=$RANK、NPROC_PER_NODE=8,直接由多机调度器拉起即可;单机调试可把NPROC_PER_NODE与并行度按需调小。 - 日志:
--report_to wandb记录 loss/吞吐曲线;--save_interval 500将检查点按--save checkpoints/Vision-DeepResearch-SFT-8B-lr2e5-2ep写入 checkpoints/ 目录。 - 产物格式:因开启
--save_safetensors true,检查点可直接被 transformers / vLLM / SGLang 加载,无需再走 Megatron→HF 转换。 - 评估:
--eval_interval 50000000被刻意设得很大,即训练期间不做内置评估;SFT 后的能力验证建议部署到 vLLM 服务,再跑 rllm/eval/run_eval.sh 上的 VDR-Bench 等基准。
常见问题速查 ✅
| 问题 | 处理方式 |
|---|---|
| 显存不够 | 调大--recompute_num_layers、增大 TP/CP,或用--optimizer_cpu_offload卸载优化器状态 |
| 多机训练卡住 | 设置MODELSCOPE_CACHE指向共享存储,保证各节点数据集缓存一致 |
| 想只训练 LLM、冻结视觉塔 | 参考 Multimodal-Model.md 的--freeze_vit/--freeze_aligner |
| 长序列被截断 | 确认--max_length与数据轨迹长度匹配;truncation_strategy默认为左侧裁剪 |
总结与下一步 🚀
本文走完了 Vision-DeepResearch 的 SFT 阶段:环境安装 → Parquet 转 JSONL → 8B/30B-A3B 双脚本微调 → 检查点导出,全程依托 ms-swift 的 Megatron 后端与 Mcore-Bridge 的 safetensors 无缝读写。
SFT 只是起点——模型的搜索广度与推理深度还需要强化学习来打磨。下一步可以部署 vLLM 服务、配置rllm/.env中的 API 密钥,运行 rllm/vision_deepresearch_async_workflow/run/ 下的 GRPO 训练脚本,进入 RL 阶段;完整数据构造逻辑则可对照 rllm/ 下的示例与文档进一步探索。
【免费下载链接】Vision-DeepResearch
[ICML 2026 & EMNLP 2026] Multimodal deep-research MLLM and benchmark. The first long-horizon multimodal deep-research MLLM, extending the number of reasoning turns to dozens and the number of search-engine interactions to hundreds.
相关推荐
scrcpy 投屏教程:5 分钟把安卓手机投到电脑,延迟 35 毫秒、免费且不装 App
scrcpy 投屏教程:5 分钟把安卓手机投到电脑,延迟 35 毫秒、免费且不装 App scrcpy 是一款免费开源的安卓投屏 / 屏幕镜像工具:把手机屏幕镜
桌面应用音视频屏幕录制MiniCPM5 微调实战:使用 ms-swift 对 MiniCPM5-1B / MiniCPM5-2B 进行 LoRA SFT、DPO 与多卡训练
MiniCPM5 微调实战:使用 ms swift 对 MiniCPM5 1B / MiniCPM5 2B 进行 LoRA SFT、DPO 与多卡训练 ms s
人工智能大模型基础模型本地部署微调模型量化预训练openBMB如何完成 palera1n 越狱:A8–A11 checkm8 完整指南(iOS 15+)
如何完成 palera1n 越狱:A8–A11 checkm8 完整指南(iOS 15+) palera1n 越狱工具基于 checkm8 漏洞,为 A8–A1
开发工具应用安全
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考