自我反思助力VLM推理!南大清华提出VLM自训练框架,支持Inference Scaling

科技   2024-12-01 00:02  


MLNLP社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。
社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。
转载自 | 新智元

多模态大语言模型(MLLMs)在图像描述、视觉问答等场景有着良好的表现。然而,MLLMs 在需要复杂多模态推理的任务上仍存在不足,多模态思维链(Chain-of-Thought,CoT)推理的性能甚至不如直接回答(Direct QA)。

为提升 MLLMs 在视觉语言推理上的表现,本文主要做了两方面贡献:

1. 构建了一个针对视觉语言场景的 Self-Train 自训练框架,在 STaR 的基础上,以自我反思为核心从错误中学习,提升了 VLM 自我提升的效率;

2. 为 VLM 新增的自我反思机制,让模型在测试时能够采样多条推理路径再选择正确答案,从而通过 test-time compute 提升推理性能;该方法具有可扩展性,随采样次数增多能稳定提升性能且优于多数投票。

论文题目:

Vision-Language Models Can Self-Improve Reasoning via Reflection

作者单位:

南京大学、上海AI Lab、清华大学

论文地址:

https://arxiv.org/abs/2411.00855

项目地址:

https://github.com/njucckevin/MM-Self-Improve

引言

思维链(Chain-of-Thought,CoT)推理被广泛证明能够提升大语言模型(Large Language Model,LLM)在复杂任务上的性能。近期,OpenAI o1 通过生成超长 CoT 实现了 inference scaling law,将大模型的推理能力提升到了新的高度。

LLM 的思维链推理能力部分来自大规模的预训练语料。在互联网语料中,天然存在大规模、无监督的以文本为中心的步骤数据(例如要完成某个任务,需要 step1/step2/...)。然而,此类多模态的思维链数据却相当稀缺,这限制了 MLLM 在复杂多模态任务上的推理潜能。

近期一些工作也提到了该问题,开源 MLLM 难以将视觉线索有效地融入推理过程中。使用 CoT prompt 进行推理,相比直接问答(Direct QA)难以取得性能提升,并远远落后于 GPT-4o。一种可能的解决方案是人工收集多模态 CoT 数据用于后训练;然而,人工标注代价高昂,为每个感兴趣的任务标注数据也是不切实际的。

为此,本文探索了通过自训练(Self-Training)提升 VLM 的推理能力,除了 follow STaR 利用正样本外,我们设计了以反思机制为核心的方法高效地从错误中学习来提升自学习效率。

有趣的是,自我反思的学习机制使得 VLM 能够在测试时从多个推理路径中选择正确答案,从而实现 Inference scaling 提升推理性能。

多模态自训练框架 R3V

我们提出了一个迭代式的多模态自训练框架(R3V,Vision-language Reasoning by Reflecting on CoT Rationales)。主要包含交替进行的两部分:

1. 为多模态推理数据集迭代地 bootstrap 扩增正负样本;

2. 自我反思以从错误中学习,我们设计了 self-refine 和 self-select 两个损失,引导 VLM 改正之前错误的推理,以及从多个推理结果中选择正确答案。

2.1 Preliminarie: STaR

STaR [1] 是一个经典的自训练框架,受此启发,我们利用 MLLM 存在但较弱的推理能力,利用已有多模态推理数据集收集正负样本。

对于数据集中提供的图片 I - 问题 x - 答案数据 a ,我们引导 MLLM 采样生成 CoT solution r;之后,可根据 solution 中答案的正确性将这个 CoT solution 划分为正样本和负样本:
之后,我们可以利用正样本 SFT 我们的模型。上述过程可以迭代地进行,更好的模型产生了更高质量的 CoT 样本,更高质量的 CoT 样本进一步训练出了更好的模型。
2.2 通过自我反思从错误中学习
上述过程利用 positve 的正样本训练模型,negative 的负样本则被丢弃了。然而,负样本实际上占采样探索过程的很大比例,并且,我们认为负样本实际上能够为 VLM 提升推理提供极有价值的经验。在我们的前期实验中,我们发现多模态场景下,CoT 数据含有明显的噪声,这导致了传统 DPO 方法次优的性能。
受人类学生学习过程的启发,我们引入了自我反思的机制来从错误中学习,教会模型改正自己的错误、以及从多个推理路径中反思得到最终正确答案。
2.2.1 Self-Refine
Self-refine 机制引导模型改正之前推理的错误。在 self-train 过程中,对同一个 sample 采样得到的多个推理结果可以视为对同一问题的多次推理,非常适合用于 self-refine 训练。具体地,self-refine loss 在给出问题和错误推理的情况下,鼓励模型生成一个正确的推理。

2.2.2 Self-Select

在我们的前期实验中发现了 MLLM 推理的一个关键挑战:当前的 MLLM 推理中容易出现较简单的错误,例如错误地识别了表格中的数字,或是简单的逻辑错误。同时 LLM 自回归生成的特质使得模型没办法修正这些错误,导致性能不佳。与之相对,人类推理者在面对复杂问题时,会模拟多种推理路径、检查错误、相互比较,以得到最终答案。
受此启发,我们设计了 Self-Select 机制引导 VLM 从多个备选中选择正确答案。Self-Select loss 在给出问题和一组 N 个 solution 备选(有正确的也有错误的)时,引导模型从中选择一个正确的答案。
其中 C 是备选 solution 集合。在这个过程中,我们希望隐式地让模型深入分析比较多个 solution 并检查其中的错误,以一种类似排除法的方式得到正确答案。
我们认为上述多任务训练也为增强 VLM 推理提供了一种难易结合的方式,从多个备选中选择正确答案->将错误答案改正->直接推理正确答案,难度依次提升。
上述训练涉及的正负样本都可以由我们的自训练框架通过采样产生,无需额外标注,从而实现 VLM 的自我提升。
2.3 Self-Selection for Inference Scaling
前述的 Self-Select 训练使得我们的 VLM 具备特殊的能力:在测试时可以从多个推理路径中选择正确答案。具体地,给定一个问题,我们首先让 VLM 采样生成多个推理路径,之后通过 Self-Select prompt 引导它从中推导最终答案
测试时 Self-Select 为 VLM 解决复杂推理问题提供了一种新路径:比较多个答案、应用排除法检查错误,最终挑选最可能正确的答案。并且这种方式具备可扩展性,可通过纳入更多推理路径来持续提升推理能力。

主要实验

本文精心挑选了多个真正需要多模态推理(特别是多步推理)的数据集进行实验,以验证我们框架让 VLM self-improve 的能力。包含 TabMWP(表格)、ChartQA(图表)、CLEVR(抽象图)、GeoQA(几何)、M3CoT(科学/数学/常识)和 MiniWob(Web 智能体)等多种场景。更多实验结果请参考原文。
实验中选择 Qwen-VL、LLaVA 和 Qwen2-VL 作为基座模型。受限于 Qwen-VL 和 LLaVA-1.5 较弱的 CoT 能力,在 self-improve 之前加入了一个 GPT 蒸馏的阶段以 warmup(从数据集中筛选了约 10% 的样本 GPT 标注 CoT 训练),作为 GPT distill 基线。
此外我们也展示了 CoT 和 QA 的 zero-shot 性能,以及经典自训练方法 STaR 的结果。
VLM能够自我提升
从主表中可以看出,我们的自训练框架 R3V 在无需额外数据的情况下大幅提升了 VLM 的 CoT 推理能力,Qwen-VL(48.47->64.37)、LLaVA(49.03->59.03)。这展示了通过 bootstrap 样本自我提升 VLM 推理能力的广阔前景。
从错误中学习进一步提升训练效率
从主表和下方训练迭代过程中可以看到,我们的自训练框架 R3V 通过反思从错误中学习,取得了比经典自训练方法 STaR 更好的学习效率和效果。R3V 在第一个 iteration 时即明显优于 STaR,并能随着迭代过程稳定自我提升。

Test-time Compute提升推理

为证明我们的 Test-time Self-Select 方法能够在测试时通过采样提升推理性能,我们比较了和 Test@1 以及多数投票(Majority Voting)的性能。
如下图所示,在多个任务上,我们的 Self-Select 方法一致优于多数投票。我们认为,Self-Select 机制在聚合多个答案减少噪声的基础上,隐式地让模型学到了比较多个答案的能力(类似于一种排除法),从而相比多数投票进一步提升了性能。
Inference Scaling
一个有趣且重要的问题是,Self-Select 机制能否实现 inference scaling,即随着测试时采样样本越多持续提升推理性能。为此,我们在 Qwen-VL(左 2)和 Qwen2-VL(右1)上进行了实验(对于Qwen2-VL我们的框架无需 GPT warmup,所有训练数据都是自生成的)。
从下图结果中可以看到,我们的 Self-Select 方法具备一定 scaling 能力,效果明显优于多数投票。例如 Qwen2-VL 在 GeoQA 上,Test@1 正确率为 52%,采样 N=6 的多数投票为 58%,Self-Select 能达到 64%。

总结

本文提出了一种新颖的 VLM 自训练框架,以反思机制为核心让模型从错误中学习,迭代地提升 VLM 的推理性能。同时,我们提出了一种支持 Inference Scaling 的机制 Self-Select,在测试时让 VLM 先生成多个推理路径再从中比较推导出最终结果。
实验结果表明,我们的框架有效激发了 VLM 自我提升的潜力,大幅提升了其 CoT 推理性能。并且,Self-Select 机制具备一定可扩展性,能够通过 scale 采样次数稳定提升推理能力,且明显优于多数投票方法。
参考文献
[1] STaR: Self-Taught Reasoner Bootstrapping Reasoning With Reasoning

技术交流群邀请函

△长按添加小助手

扫描二维码添加小助手微信

请备注:姓名-学校/公司-研究方向
(如:小张-哈工大-对话系统)
即可申请加入自然语言处理/Pytorch等技术交流群

关于我们

MLNLP 社区是由国内外机器学习与自然语言处理学者联合构建的民间学术社区,目前已经发展为国内外知名的机器学习与自然语言处理社区,旨在促进机器学习,自然语言处理学术界、产业界和广大爱好者之间的进步。
社区可以为相关从业者的深造、就业及研究等方面提供开放交流平台。欢迎大家关注和加入我们。


机器学习算法与自然语言处理
关注AI前沿技术,助力AI学者进步
 最新文章