刚开始琢磨使用DeepSeek-R1风格训练多模态R1模型,就看到这个工作,本文一起看看,供参考。
先提出问题,仅靠 RL 是否足以激励 MLLM 的推理能力?
结论:不能,因为如果 RL 能有效激励推理能力,Vision-R1-Zero 应该表现出生成复杂 CoT 的能力,并在基准测试中提升准确率。如下图D和E所示:
图片
方法:从未经专门推理优化的原始 MLLM(例如 Qwen-2.5VL-7B-Instruct)开始,直接应用 RL 训练。使用与 Vision-R1 相同的奖励函数,即硬格式结果奖励函数(HFRRF):如果输出格式正确且答案正确,奖励为 1,否则为 0。训练目标是激励模型生成多模态 CoT,解决数学推理任务。
系统提示与奖励格式和Deepseek相似:
- 系统提示:
A conversation between User and Assistant. ... first thinks about the reasoning process ... provides the user with the answer. The reasoning process and answer are enclosed within <think> </think> and <answer> </answer> tags ...
- 奖励格式:
<think> </think><answer></answer>
方法架构
仅靠强化学习(RL)无法有效激励多模态大型语言模型(MLLM)的推理能力,主要原因是缺乏高质量初始数据和优化策略。
因此,可以知道Vision-R1 的目标是:
- 生成高质量的多模态推理链(CoT)数据集,无需人工标注。
- 通过 RL 优化模型,使其生成逻辑清晰、长度适中的 CoT,避免过度思考(Overthinking)。
基于此,Vision-R1 提出了一种两阶段方法,通过冷启动初始化和渐进式 RL 训练。
Vision-R1流程
1. 冷启动初始化
冷启动初始化是通过构建一个高质量的多模态链式推理(CoT)数据集来实现的。目的是为模型提供一个初始的、高质量的推理示例,以便在后续的强化学习过程中更好地学习和改进推理能力。
冷启动初始化的核心在于如何从多模态数据中提取出高质量的推理过程。由于多模态大型语言模型(MLLMs)通常难以直接处理多模态输入,提出了一种称为“模态桥接”(Modality Bridging)的方法来实现这一目标。
整体数据生成流程
实现细节
步骤 | 作用 | 方法 |
1. 伪 CoT 生成 | MLLM 处理图像-文本对,生成初步推理步骤 | 使用 Qwen-2.5VL-72B |
2. 详细描述获取 | 通过提示获取支持回答问题的详细图像描述 | 提示模板见论文 |
3. CoT 提取与优化 | DeepSeek-R1 提取并优化 CoT | DeepSeek-R1 见 |
4. 数据过滤 | 规则过滤确保数据质量 | 200K Vision-R1-cold 数据集 |
- 伪CoT生成:首先,使用现有的多模态大型语言模型(MLLM)来生成“伪CoT”(Pseudo-CoT)。具体的,输入一个图像-问题-答案对和一个提示到一个MLLM中,模型会生成一个包含图像描述和推理过程的文本。这个“伪CoT”不仅包含了图像的描述,还尝试进行初步的推理,但可能缺乏深度和复杂性。
通过带有和不带“伪CoT”的描述生成的CoT过程比较。
- 文本描述生成:将生成的“伪CoT”与原始的图像-问题对以及一个新的提示一起输入到同一个MLLM中,以获取更详细的图像描述。这一步骤的目的是通过MLLM的文本生成能力,将图像中的视觉信息转化为更详细的文本描述,从而为后续的推理提供更多的上下文信息。
- 推理生成:将经过文本化的图像-问题对输入到一个专门的推理大型语言模型(如DeepSeek-R1)中,以生成高质量的CoT推理过程。DeepSeek-R1能够生成包含自然认知过程的推理过程,如质疑、反思和检查等。
- 数据过滤:从生成的CoT数据中保留那些最终答案与真实值一致的样本。使用规则进行数据过滤,去除逻辑不一致的样本,并替换一些词汇以提高语义连贯性。
冷启动数据源:
图片
小结:冷启动初始化的主要目的是为模型提供一个高质量的起点,使得模型在后续的强化学习过程中能够更快地学习和改进其推理能力。
2 渐进式思维抑制训练(PTST)
图片
为了解决冷启动后的过度思考问题,Vision-R1 采用渐进式思维抑制训练(PTST),通过 RL 进一步优化模型的推理能力。
- 分组相对策略优化(GRPO): GRPO 是一种 RL 算法,通过分组类似状态或动作来优化策略,提高学习效率。 详细的可参考往期《DeepSeek采用的GRPO算法数学原理及算法过程浅析》
- 硬格式结果奖励函数(HFRRF): 奖励函数简单:如果输出格式正确且答案正确,则奖励为 1,否则为 0。
- 分阶段训练: 训练分为多个阶段,逐步增加序列长度(如 4K、8K、16K 标记)和调整组大小(如 16、8、4)。
a.每个阶段训练 100 步,使用 64 个 NVIDIA H800 80G GPU,约 2 天,使用 Verl 框架。
b.与固定长度 16K、300 步训练的 Vision-R1-Long 相比,PTST 表现更好,平均长度 2057,平均准确率 55.4%。
图片
效果与实验
出现“顿悟时刻”:
图片
图片
图片
数学评测:
图片
参考文献:Vision-R1: Incentivizing Reasoning Capability in Multimodal Large Language Models, https://arxiv.org/abs/2503.06749) code:https://github.com/Osilly/Vision-R1