Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >7B超越GPT!1/20数据,无需知识蒸馏,马里兰等推出全新视觉推理方法

7B超越GPT!1/20数据,无需知识蒸馏,马里兰等推出全新视觉推理方法

作者头像
新智元
发布于 2025-04-26 13:19:42
发布于 2025-04-26 13:19:42
590
举报
文章被收录于专栏:新智元新智元
新智元报道

编辑:LRST 好困

【新智元导读】通过蒙特卡洛树搜索筛选高难度样本,ThinkLite-VL仅用少量数据就能显著提升视觉语言模型的推理能力,无需知识蒸馏,为高效训练提供了新思路。

在大模型时代,视觉语言模型(Vision-Language Models, VLMs)正在从感知走向推理。在诸如图像问答、图表理解、科学推理等任务中,VLM不再只需要「看见」和「描述」,而是要能「看懂」和「想清楚」。

然而,当前主流的推理能力提升方法普遍存在两个问题:

1. 训练样本质量参差不齐:常见的数据集虽然体量庞大,但真正「有挑战性」的样本比例较低。

2. 过度依赖知识蒸馏:许多模型在训练时依赖大型模型(如GPT-4o)的推理过程作为教师信号,使得训练流程复杂且难以推广。

这使得训练一个高性能的VLM成本极高,也限制了模型的自主学习能力。

能否通过自我提升,训练出高性能的推理模型?

近日,来自马里兰大学,密歇根大学,和微软的团队联合提出了ThinkLite-VL模型试图打破这种依赖,探索「数据更少、能力更强」的可能性。

论文链接:https://arxiv.org/pdf/2504.07934

GitHub项目:https://github.com/si0wang/ThinkLite-VL

Hugging Face:https://huggingface.co/russwang/ThinkLite-VL-7B

论文主要关注一个核心问题:如果不给VLM额外的「教师指导」(如知识蒸馏),能否仅通过自身的反馈机制和强化学习训练,获得强大的推理能力?

直觉上,答案是肯定的:人类也可以通过不断尝试、失败和总结来提升自己的推理能力。但对模型而言,这需要我们解决一个关键挑战——如何准确判断哪些训练样本是「值得学」的?

用MCTS判断「样本难度」,筛选高质量训练集

ThinkLite-VL的最大创新在于:用蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)来重新定义「样本难度」。

研究人员首先从广泛使用的开源多模态训练数据集中收集了70k的样本,涵盖了三个关键的视觉任务:数学推理,自然图像理解和图表理解,具体的数据分布和来源如下表所示。

值得注意的是,为了避免大模型在回答过程中因为选择题选项中提供了正确答案而「蒙对」,研究人员将大部分的样本从选择题格式改成了开放问答格式,这样一来模型就必须依靠自身的推理能力真正理解题目并解决问题,真正的把题做对。

之后,研究人员提出了一种基于蒙特卡洛树搜索(MCTS)的样本选择方式。

具体来说,大模型将问题和图像作为输入,让模型通过蒙特卡洛树搜索进行一步步推理,然后记录模型需要通过多少次推理迭代才能得到正确答案。模型所需要的MCTS迭代次数越多,说明模型需要通过更多的探索和思考才能解决问题,表明该问题对于模型来说更难。

整个过程中,只使用了VLM本身的LLM部分判断MCTS final answer的正确与否,模型通过解题成功的探索次数认识到哪些题是「难题」,并将其作为学习重点。

在对所有的样本都进行MCTS之后,作者最终筛选出迭代次数大于5或在50次迭代内模型都无法解决的样本,总共11k,作为最终的训练集。

强化学习训练:少样本+困难样本,推理效果更强

研究人员基于Qwen2.5-VL-7B-Instruct,在选出的11k样本上使用GRPO进行了强化学习训练,得到了最终的模型 ThinkLite-VL-7B。相比于其他reasoning model来说,ThinkLite-VL-7B大大减少了训练数据量,并且没有蒸馏任何外部推理模型的知识。

在八个主流视觉推理任务上进行测试,包括MathVista, MathVerse, MathVision,MMMU,MMStar, MMVet, MMBench和AI2D, 结果发现ThinkLite-VL-7B的平均性能相比base model Qwen2.5-VL-7B-Instruct提升了7%,从59.69 提高到 63.89,并且显著优于使用随机采样选择相同大小数据量进行强化学习训练的模型。

此外,相比7B级别的其他reasoning VLM,ThinkLite-VL-7B同样具有明显优势,包括OpenVLThinker-7B,MM-Eureka-Qwen-7B等。

特别地,在MathVista上ThinkLite-VL-7B达到了75.1的SoTA准确率,超过了GPT-4o和o1等闭源模型和Qwen2.5-VL-72B等开源更大参数量的模型。

这意味着,即使在没有额外监督、没有知识蒸馏、没有大规模数据的前提下,只需要正确选择少量对于VLM具有挑战性的高质量样本,VLM也能通过self-improve显著提升推理能力。

研究人员进一步对不同难度组合的训练集进行了消融分析,发现:

  1. 仅用最难的样本(无法解出)可以提升能力,但效果不及中等+困难样本的组合;
  2. 简单样本虽然在训练过程中快速提升reward,但对最终推理能力提升作用有限;
  3. 使用中等难度加上困难样本的组合才能最大程度提升模型的推理能力,即使模型在训练中无法解决全部的样本。

这一发现对未来的模型训练有重要启示:合理的样本难度分布比样本数量更关键。

论文一作王玺尧是马里兰大学计算机系三年级phd,导师为Furong Huang教授,主要研究方向为强化学习在大语言模型和视觉语言模型训练中的应用,在ICML, NeurIPS, ICLR, ACL, EMNLP, NAACL, CVPR等会议上发表过多篇论文。

参考资料:

https://arxiv.org/pdf/2504.07934

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python深浅拷贝
对于字符串str、整数型int、布尔值bool三种不可变的对象类型,深浅拷贝是一样的,直接在内存中直接开辟空间进行存储。
皮大大
2021/03/02
3830
搞定面试之图解Python深拷贝浅拷贝
「引用」:在 Python 程序中,每个对象都会在内存中申请开辟一块空间来保存该对象,该对象在内存中所在位置的地址被称为引用,使用变量名进行指代。
吾非同
2021/01/06
4200
Python基础 | 深浅拷贝问题、递归函数练习
在实际工作中,经常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题。为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用。为了生成这个副本,就产生了拷贝。下面先了解一下几个概念:对象、可变类型、引用
叶庭云
2021/12/07
4930
Python基础 | 深浅拷贝问题、递归函数练习
python学习笔记:深浅拷贝的使用和原理
在理解深浅拷贝之前,我们先熟悉下变量对象和数据类型 1.变量和对象 变量-引用-对象(可变对象,不可变对象) 在python中一切都是对象,比如[1,2],'hello world',123,{'k1
用户1679793
2018/04/28
7290
python学习笔记:深浅拷贝的使用和原理
python基础之深浅copy
首先在了解python中的深浅拷贝之前,我们先花一点时间来了解一下python内存中变量的存储情况。对于python而言,变量的存储采用了引用语义的方式,存储的只是一个变量值所在的内存地址,而不是这个变量的本身。
天钧
2019/07/26
3840
一、python学习笔记-基本数据类型-深浅拷贝(一)
"""定义 在Python中对象的赋值其实就是对象的引用。当创建一个对象,把它赋值给另一个变量的时候,python并没有拷贝这个对象,只是拷贝了这个对象的引用而已。 浅拷贝:拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已。也就是,把对象复制一遍,但是该对象中引用的其他对象我不复制(快捷方式) 深拷贝:外围和内部元素都进行了拷贝对象本身,而不是引用。也就是,把对象复制一遍,并且该对象中引用的其他对象我也复制。(复制) """ """术语解释 1、变量:是一个系统表的元素,拥有指向对象的连接空间
堕落飞鸟
2022/01/12
2660
​深度解析Python的赋值、浅拷贝、深拷贝
拷贝 就是把原数据复制一份,在复制的数据上随意改动不会影响到其原数据。也就是这里讲的深拷贝。
忆想不到的晖
2021/04/04
5K0
python高级-深浅拷贝(16)
一、浅拷贝 浅拷贝是对一个对象的顶层拷贝,通俗地讲就是:拷贝了引用,并没有拷贝内容。 a = [1,2,3] print(id(a)) b=a print(b) print(id(b)) a.append(4) print(a) print(b) 运行结果为: 1965053928072 [1, 2, 3] 1965053928072 [1, 2, 3, 4] [1, 2, 3, 4] 二、深拷贝 深拷贝是对于一个对象所有层次的拷贝,重新开辟内存地址。 import copy a = [1,2,3] pr
Se7eN_HOU
2019/09/11
3140
Python | Python学习之深浅拷贝
== 是 python 标准操作符中的比较操作符,用来比较判断两个对象的 value(值) 是否相等 。
咸鱼学Python
2019/10/09
4410
Python | Python学习之深浅拷贝
元组、字典、集合的内置方法,散列表、深浅拷贝学习笔记
元组的使用方法(与列表类似):索引取值、索引切片、for循环、成员运算、index获取元素索引、count计数
GH
2022/05/10
3190
元组、字典、集合的内置方法,散列表、深浅拷贝学习笔记
Python深浅拷贝
深浅拷贝分为两部分,一部分是数字和字符串另一部分是列表、元组、字典等其他数据类型。
py3study
2020/01/15
4020
day06(深浅拷贝,元组,字典,集合)
1,今日内容: 1.深浅拷贝:**** 2.元组 - 元组可以存放可变类型 *** 3.字典:***** -- 增删改查 -- 常用方法 4.集合:** -- 集合运算 5.数据类型的相互转化 ******** 6.内存管理 ***** 二,深浅拷贝 ## 拷贝:对值进行复制的过程 # 1,值拷贝:应用场景最多 ls = [1, 'abc', [10]] ls1 = ls # ls1直接将ls中存放的地址拿过来 # ls内部的值发生任何变化,ls1都会随之变化 #2,浅拷贝
py3study
2020/01/16
3750
深拷贝和浅拷贝原来是这样?
为了让读者更好的理解深浅拷贝,在讲深浅拷贝之前要引入基本数据类型 , 引用数据类型 和 数据储存(栈和堆)这几个概念,如果已经理解,可直接跳过这一part。
IT人一直在路上
2019/09/16
4140
由问题入手,步步爬出Python中赋值与拷贝的坑
1、问题的引出 之前遇到了一个求数组中出现次数最多的k个元素的题,我们参照如下的思路进行求解,首先利用一个dict记录所有元素出现的次数,key:value中的key表示元素,value表示元素出现的次数,随后根据元素出现的次数将元素放入对应的桶中,桶是一个二维数组,桶中第一个元素保存出现次数为0的元素,桶中第二个元素保存出现次数为1的元素,依次类推。最后从后往前遍历桶,取出出现次数最多的k个元素即可。 按照这样的思路,我写了如下的代码: class Solution(object): def to
石晓文
2018/04/11
9240
由问题入手,步步爬出Python中赋值与拷贝的坑
JS复习之深浅拷贝
  想掌握JS的深浅拷贝,首先来回顾一下JS的数据类型,JS中数据类型分为基本数据类型和引用数据类型。
huofo
2022/03/18
3980
JS复习之深浅拷贝
js数组的拷贝赋值复制-你真的懂?
在看react-native性能优化的时候,看到如何避免shouldComponentUpdate的异常数据时,脑内一阵风暴,从而牵连出一连串的问题,于是有了这一篇关于js数组的复制(深浅拷贝)与赋值等为何能产生异常数据的文章。 有什么问题欢迎指正 现在进入正题: 首先异常数据的产生在于我们在复制赋值时,会有或没有改变到本身的值。 一、push与concat push的定义是:像数组末尾添加一个或更多元素,并返回新的长度。该方法会改变数组的长度。 concat的定义是:连接两个或更多的数组,并返回结果,该方
IT架构圈
2018/05/31
4.9K0
python学习笔记:第7天 深浅拷贝
join方法是把一个列表中的数据进行拼接,拼接成字符串(与split方法相反,split方法是把一个字符串切割成列表)
py3study
2020/01/20
4160
学习Python一年,这次终于弄懂了浅拷贝和深拷贝
话说,网上已经有很多关于Python浅拷贝和深拷贝的文章了,不过好多文章看起来还是决定似懂非懂,所以决定用自己的理解来写出这样一篇文章。
宇宙之一粟
2020/10/26
6980
学习Python一年,这次终于弄懂了浅拷贝和深拷贝
Python|赋值、浅拷贝与深拷贝
在python中一个变量可以说是内存中一个对象的‘标签’或者‘引用’。假设现在有一个变量a。
算法与编程之美
2019/07/17
7120
Python基础三
不可变的数据类型公用,可变的数据类型重新开辟一个空间,对源数据进行修改,深拷贝的内容不进行改变
changxin7
2019/09/10
1.4K0
相关推荐
Python深浅拷贝
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档