PyVision-RL:通过强化学习打造开放智能体视觉模型 PyVision-RL: Forging Open Agentic Vision Models via RL
用过采样-过滤-排序和累积工具奖励解决多模态RL训练中的交互坍缩问题
前置知识
GRPO(Group Relative Policy Optimization)
一种无评论家的强化学习算法,通过在同一输入的多个采样结果之间进行组内相对比较来估计优势函数。对于每个输入 $x$,生成 $G$ 个采样 $\{y_i\}_{i=1}^G$,计算每个采样的奖励,然后通过组内均值标准化得到优势估计 $\hat{A}_{i,t} = R(x, y_i) - \text{mean}\{R(x, y_i)\}_{j=1}^G$。相比 PPO,GRPO 不需要单独训练价值网络,更适合大语言模型的训练。
本文基于 GRPO 进行改进,移除了标准差归一化项,并提出了过采样-过滤-排序框架来优化采样质量
交互坍缩(Interaction Collapse)
在多模态智能体的强化学习训练过程中,模型逐渐学会减少工具调用次数和多轮推理,最终收敛到简短、低交互的行为模式。这种现象在动态工具使用的研究中被广泛观察到,表现为平均工具调用数量在训练过程中持续下降,模型倾向于用单一的短回答来'偷懒'。
这是本文要解决的核心问题,论文的所有技术创新都围绕防止交互坍缩展开
动态工具使用(Dynamic Tooling)
与静态工具集(预定义裁剪、缩放等固定工具)不同,动态工具使用将 Python 作为原始工具,允许模型根据任务需求实时合成特定操作。模型可以生成任意 Python 代码来处理图像或视频,包括但不限于裁剪、缩放、像素分析、直方图绘制等。这种范式具有更强的表达能力和组合性。
本文采用 Python 作为原始工具实现动态工具使用,并将其扩展到视频理解领域
按需上下文构建(On-demand Context Construction)
针对视频理解的新方法:完整视频仅加载到 Python 运行时环境中,而不是直接注入模型上下文。模型通过生成 Python 代码来选择性采样和绘制与任务相关的帧,只将这些任务相关的视觉信息注入到多模态大语言模型的上下文中。例如,对于'视频最后半段演员在做什么'这样的问题,模型只采样后半段的帧。
这是 PyVision-Video 的核心设计,显著降低视觉 token 消耗的同时提升推理效率
标准差排序(Standard Deviation Sorting)
在过采样-过滤-排序框架中的排序阶段,根据组级奖励标准差对 rollout 组进行排序。标准差高的组通常包含正确和错误的混合采样,代表对当前策略来说难度适中的样本。标准差低的组(全对或全错)提供的学习信号有限。通过优先选择标准差高的组进行训练,实现类似课程学习的效果。
这是提高训练稳定性和效率的关键技术,减少了正样本获得负优势的比率
累积工具奖励(Accumulative Tool Reward)
除了答案正确性奖励 $R_{acc} \in \{0, 1\}$ 外,额外添加与工具调用数量成正比的奖励:$0.1 \cdot n_{tc}$,其中 $n_{tc}$ 是 rollout 中的总工具调用次数。该奖励仅在答案正确时才加入,确保工具使用被鼓励但不会奖励无效或错误的工具调用。最终奖励公式为 $R = R_{acc} + 0.1 \cdot n_{tc} \cdot \mathbf{1}\{R_{acc}=1\}$。
这是防止交互坍缩的核心激励机制,实验表明它能显著提升训练后期的性能
研究动机
多模态智能体的强化学习训练面临严重的交互坍缩问题。先前工作观察到,经过 RL 微调后,模型倾向于减少工具使用,收敛到简短、低交互的行为模式。具体表现为:训练过程中平均工具调用数量持续下降,模型学会用单一短回答来'偷懒'。这导致人们对测试时交互缩放(test-time interaction scaling)的有效性产生怀疑,尽管这种缩放在纯文本推理中已经取得成功(如 OpenAI o1)。此外,现有的多模态工具使用方法要么依赖静态工具集(缺乏灵活性,需要针对特定任务的工程设计),要么虽然采用动态工具使用(将 Python 作为原始工具),但主要局限于图像理解,且常常依赖专有 API,使得开源多模态模型的 RL 训练仍未被充分探索,尤其是在视频理解领域。
本文的目标是本文的目标是为开源多模态模型设计一个稳定的智能体强化学习框架 PyVision-RL,解决交互坍缩问题,同时将动态工具使用范式从图像理解扩展到视频理解。具体而言,作者希望:(1) 通过技术创新稳定 RL 训练过程,防止工具使用行为退化;(2) 开发 PyVision-Image 和 PyVision-Video 两个模型,分别用于图像和视频理解;(3) 实现按需上下文构建,显著降低视频任务中的视觉 token 消耗;(4) 在多个基准测试上达到或超越现有方法的性能。
与已有工作不同的是,本文的独特切入角度在于,作者认为交互坍缩并非交互本身的固有弱点,而是训练激励不足和 rollout 选择不稳定的结果。基于这一洞察,论文从两个维度进行创新:(1) 在 rollout 生成层面,提出过采样-过滤-排序框架,通过标准差排序选择难度适中的样本,提高学习信号的质量;(2) 在奖励设计层面,引入累积工具奖励,显式激励多轮工具使用。此外,在视频理解方面,论文创新性地提出按需上下文构建机制,将视频仅加载到 Python 运行时,让模型通过代码动态选择需要查看的帧,这与传统的均匀帧采样形成鲜明对比。
核心方法
PyVision-RL 的整体方法可以分为三个层次理解。在直觉层面,作者观察到模型在 RL 训练中'变懒'是因为缺乏足够的激励去使用工具,同时训练过程中存在大量低质量的 rollout 干扰学习。因此,解决方案是:(1) 提供明确的奖励信号鼓励工具使用;(2) 筛选出最有学习价值的训练样本。在技术层面,PyVision-RL 采用 Python 作为原始工具,构建统一的智能体脚手架(scaffold),支持图像和视频理解。模型被提示在自然语言推理和可执行代码之间交替生成,环境执行代码并返回结果(包括文本输出和渲染图像),形成交互循环直到产生最终答案。在训练层面,框架采用 GRPO 作为基础算法,结合过采样-过滤-排序的 rollout 生成策略和累积工具奖励,实现稳定的 RL 训练。
本文的核心创新有三个,每个都针对交互坍缩的不同方面。第一个是过采样-过滤-排序(Oversampling-Filtering-Ranking)框架:首先过采样 $\alpha \cdot B$ 个 prompt,为每个生成 $G$ 个 rollout;然后过滤掉奖励方差为零的组和损坏的轨迹;最后按组级标准差降序排序,选择前 $B \cdot G$ 个样本用于训练。这种方法优先选择难度适中的样本,同时减少正样本获得负优势的比率。第二个是累积工具奖励:在答案正确性奖励基础上,额外添加 $0.1 \cdot n_{tc}$ 的工具使用奖励,直接激励模型进行更多工具调用。第三个是按需上下文构建(仅用于视频):将完整视频仅加载到 Python 运行时,模型通过生成 Python 代码选择性采样和可视化任务相关的帧,避免了一次性将所有帧注入上下文带来的高 token 消耗。与已有方法的本质区别在于,本文不依赖静态工具集,不依赖专有 API,而是通过改进 RL 训练本身来实现稳定的多轮工具使用。
方法步骤详情
方法的具体步骤如下:(1) **智能体脚手架设计**:为图像和视频设计两种脚手架。图像任务将图像同时注入 MLLM 上下文和 Python 运行时;视频任务仅将视频加载到 Python 运行时,MLLM 上下文只注入系统提示。(2) **SFT 冷启动**:收集或合成 SFT 数据,为 PyVision-Image 收集 7K 样本(覆盖多模态推理、医学推理、图表理解、通用 VQA),为 PyVision-Video 收集 44K 样本(覆盖空间推理和长视频推理)。使用 LLaMA-Factory 在单节点上训练一个 epoch。(3) **RL 数据收集**:PyVision-Image 的 RL 数据包括 44K 视觉搜索样本和多模态推理数据;PyVision-Video 的 RL 数据包括 15K 空间推理样本。(4) **RL 训练**:使用 GRPO 算法,但移除标准差归一化项。设置过采样批量大小 32、训练批量大小 16、组大小 8、学习率 $1 \times 10^{-6}$,在 8 张 H100 GPU 上训练 700 步。(5) **推理设置**:最大轮次预算设为 30,最大上下文长度 32K tokens,温度 0.01(V*)或 0.5 + top-k 20(其他基准)。
技术新颖性
本文的技术新颖性体现在多个方面。首先,将动态工具使用从图像扩展到视频理解是该领域的首次尝试,之前的动态工具方法(如 Thyme、CodeV、CodeDance、CodeVision 等)都仅限于图像任务。其次,按需上下文构建机制是一个全新的视频处理范式:传统 MLLM(如 Qwen-VL 系列)通过均匀采样帧并直接注入上下文来处理视频,而 PyVision-Video 让模型在推理过程中动态查询视频,选择性地提取信息性关键帧。这不仅提高了 token 效率(平均仅需 5K 视觉 token,而 Qwen2.5-VL-7B 需要 45K),还提升了推理性能(44.0% vs 38.0%)。第三,过采样-过滤-排序框架从课程学习的角度出发,将组级奖励标准差作为样本难度的代理指标,这是一种新颖的 rollout 选择策略。最后,移除 GRPO 中的标准差归一化项并验证其有效性,是对现有 RL 算法的有意义的改进。
实验结果
论文的实验结果令人印象深刻,验证了 PyVision-RL 框架的有效性。在图像理解方面,PyVision-Image 在所有评估的三类任务上都达到了最先进的性能。在视觉搜索任务上,相比基础模型 Qwen2.5-VL-7B,PyVision-Image 在 V* 上提升 +10.2%(88.7% vs 78.5%),在 HRBench-4K 上提升 +6.5%(78.1% vs 71.6%),在 HRBench-8K 上提升 +6.4%(74.3% vs 67.9%)。在多模态推理任务上,PyVision-Image 超越了之前的最佳模型 DeepEyes-v2,在 DynaMath 上提升 +4.4%(61.6% vs 57.2%),在 MathVerse 上提升 +3.1%(55.8% vs 52.7%),在 WeMath 上提升 +9.6%(47.7% vs 38.1%)。在需要多轮工具使用的智能体推理任务 TIR-Bench 上,PyVision-Image 比基础模型提升 +3.8%(19.8% vs 16.0%)。在视频理解方面,PyVision-Video 在 VSI-Bench 上达到 44.0%,比 Qwen2.5-VL-7B 提升 +7.3%,比使用预定义视频裁剪工具的 VITAL 提升 +2.2%。特别值得注意的是 token 效率:PyVision-Video 平均仅需 5K 视觉 token,而 Qwen2.5-VL-7B 在 1.0 FPS 采样时需要约 45K token,且 PyVision-Video 的准确率更高(44.0% vs 38.0%)。消融实验进一步验证了各组件的重要性:在训练第 600 步时,最大轮次预算 4 比 2 高出 1.93%;累积工具奖励在第 500 步时带来 +1.91% 的提升;标准差排序在第 300 步时提升 +2.26%;移除标准差归一化在第 500 步时提升 +4.94%。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 视觉搜索(V*) | avg@32 | 88.7% | 78.5%(Qwen2.5-VL-7B) | +10.2% |
| 视觉搜索(HRBench-4K) | 准确率 | 78.1% | 71.6%(Qwen2.5-VL-7B) | +6.5% |
| 视觉搜索(HRBench-8K) | 准确率 | 74.3% | 67.9%(Qwen2.5-VL-7B) | +6.4% |
| 多模态推理(DynaMath) | 准确率 | 61.6% | 57.2%(DeepEyes-v2) | +4.4% |
| 多模态推理(MathVerse) | 准确率 | 55.8% | 52.7%(DeepEyes-v2) | +3.1% |
| 多模态推理(WeMath) | 准确率 | 47.7% | 38.1%(DeepEyes-v2) | +9.6% |
| 智能体推理(TIR-Bench) | 准确率 | 19.8% | 16.0%(Qwen2.5-VL-7B) | +3.8% |
| 空间推理(VSI-Bench) | 平均准确率 | 44.0% | 36.7%(Qwen2.5-VL-7B) | +7.3% |
局限与改进
论文在局限性方面有一些坦诚的讨论,同时我也观察到一些额外的限制。首先,在 Impact Statement 中,作者明确指出由于模型使用 Python 作为原始工具,它可能访问主机文件系统并造成损害,因此部署时需要仔细考虑这些安全影响。这是一个重要的实际限制,尤其是在生产环境中。其次,论文主要基于 Qwen2.5-VL-7B 进行实验,没有在更大规模的模型(如 13B 或 72B)上验证方法的可扩展性。第三,虽然 PyVision-Video 在 token 效率上表现优异,但其推理速度可能会因为需要多次执行 Python 代码而受到影响,论文未报告推理延迟数据。第四,SFT 数据的合成依赖 GPT-4.1,这可能引入来自闭源模型的偏见,且增加了数据准备的成本。第五,论文在 VSI-Bench 上的某些子任务表现不理想,例如 Rel. Dist.(44.8%)和 Route Plan(26.3%),表明在相对距离估计和路径规划方面仍有改进空间。最后,论文没有讨论方法在不同语言或文化背景下的适用性,所有评估基准都是英文的。
独立分析的弱点
基于对论文的深入分析,我识别出以下几个弱点:(1) **安全风险未充分解决**:论文承认 Python 工具可能访问文件系统造成损害,但仅在 Impact Statement 中简单提及,没有提出具体的安全防护机制(如沙箱隔离、权限限制等)。改进建议:设计严格的代码执行沙箱,限制文件系统访问和网络请求。(2) **推理效率未评估**:虽然 token 效率很高,但多轮代码执行的推理延迟可能很高,论文未提供任何延迟数据。改进建议:报告端到端推理时间,并探索代码缓存或并行执行等优化策略。(3) **模型规模局限**:仅在 7B 模型上验证,更大模型上的表现未知。改进建议:在 13B 和 72B 模型上进行扩展实验。(4) **数据依赖闭源模型**:SFT 数据使用 GPT-4.1 合成,限制了完全开源复现。改进建议:探索使用开源模型合成数据或设计无需合成数据的训练策略。(5) **视频任务范围有限**:PyVision-Video 仅在空间推理(VSI-Bench)上评估,未涉及动作识别、视频问答等更广泛的任务。改进建议:在更多视频理解基准上进行评估。(6) **VSI-Bench 子任务表现不均**:Rel. Dist.(44.8%)和 Route Plan(26.3%)表现相对较低,说明方法在某些空间推理任务上仍有不足。
未来方向
论文和基于论文成果可以延伸出多个有前景的研究方向。(1) **多模态工具安全研究**:开发专门针对多模态智能体的安全框架,包括代码执行沙箱、输出验证、权限管理等。(2) **更大规模模型的扩展**:将 PyVision-RL 框架应用到 13B、72B 甚至 MoE 架构的模型上,研究模型规模与工具使用能力的关系。(3) **更广泛的视频理解任务**:将按需上下文构建扩展到视频问答、动作识别、时序推理等任务。(4) **实时交互场景**:将框架应用于需要实时响应的场景,如视频监控分析、机器人视觉等。(5) **多模态工具学习的理论研究**:深入理解为什么 RL 训练会导致交互坍缩,以及什么样的奖励设计最能激励有效的工具使用。(6) **跨模态工具迁移**:研究在图像任务上学到的工具使用能力能否迁移到视频任务。(7) **更高效的推理策略**:探索预测性帧采样、工具调用缓存等策略来进一步提升推理效率。
复现评估
论文在可复现性方面做得相当好。代码、数据和模型已在 GitHub 上开源(https://github.com/agents-x-project/PyVision-RL)。论文详细描述了训练超参数(过采样批量大小 32、训练批量大小 16、组大小 8、学习率 $1 \times 10^{-6}$、8 张 H100 GPU、700 步)和数据来源(SFT 数据来自 ChartQA、InfoVQA、GMAI-Reasoning、MMK-12、MMPR、SpaceR、LongVILA;RL 数据来自 DeepEyes、Mini-o3、V-Thinker、WeMath-v2、SpaceR)。然而,完全复现仍有一定难度:(1) 需要 8 张 H100 GPU,算力门槛较高;(2) SFT 数据合成依赖 GPT-4.1 API,需要额外成本;(3) 代码执行环境的安全配置需要仔细处理。总体而言,对于有充足算力的研究者来说,复现是可行的。
论文图表