多模态大模型的训练策略对比
两年干了别人十年的活?多模态训练,我这踩坑实录
说到多模态大模型,你第一反应是啥?那种给张图,它能跟你聊得眉飞色舞的玩意儿?
我去年刚开始搞的时候,也天真地以为,这不就是把看图的能耐和说话的能耐焊一块嘛,有啥?
结果,现实是直接一巴掌呼过来。
我从2023年9月开始,跟追剧似的刷了十几篇顶级论文,从LLaVA一路追到今年的Keye-VL 1.5。最大的震撼是啥?那个模型铁三角——眼睛(Vision Encoder)+翻译官(MLP/Q-Former)+大脑(LLM)——基本没怎么动过。但训练策略这玩意儿,两年走的弯路,够别人绕地球十圈了。
今天我就把这一年多来,看过的、试过的、踩坑里爬不出来的训练策略,跟你好好唠唠。这不是学术报告,这就是我个人的“挨打史”。你要也想趟这水,或者已经在坑里了,希望能帮你省几盒“烟钱”。
1. 预训练:从“大锅饭”到“米其林三星”
早期的LLaVA,路子很野:预训练加微调(SFT),两步完事。预训练阶段,就是整一堆图文对,像填鸭一样往里灌,让它知道“红色”大概长啥样。
我也照着做了。效果嘛,看图说话还行,但稍微来点复杂的,比如“图里穿红衣服那人背后是啥牌子的车”,它直接开始胡编。
后来发现,高手们开始搞“多阶段”了。做饭有了层次,不是大锅烩了。
GLM-4.5V这模型,技术报告写得明白:预训练分两大步。先是常规的多模态预训练,学看图。然后,又来一轮长文本继续训练,专门处理长视频和多图。上下文能力,直接从4K飙到了128K。
数据清洗这块,GLM-4.5V做得讲究,干了四轮:
1. 第一轮,扔垃圾:分辨率低的,内容重复的,图片说明太短的——全扔。先把明显不行的筛掉。
2. 第二轮,考匹配:用CLIP模型打分,图文对齐得分不到0.3的不要。这里头水很深。阈值调高了,数据质量是上去了,但多样性就跌得厉害,很多怪场景模型就看不到了。我自己就栽过这跟头。
3. 第三轮,找平衡:现实世界的东西,出现的频率差很多。“猫”能出现几万次,但“一只偷吃草莓的河马”可能就几十次。不拉平一下,模型就成了“常识专家,稀罕货的傻子”,碰上少见的直接就摆烂。
4. 第四轮,升品质:用更强的模型,人工重新生成高质量的图片描述。成本高,但效果确实顶。尤其是那些图文关联本来就不清楚的样本,重新描述一次,训练信号一下就干净了。
踩坑记录:
我以前图省事,直接从一个开源数据集LAION上扒数据,心想“数据越多越顶”。结果呢,训练完让模型描述一张图,它连颜色和位置都能给你搞反,比如把“红色汽车左边的蓝色垃圾桶”说成“蓝色汽车旁边的红色垃圾桶”。
后来老老实实加了CLIP过滤和重描述,情况才好转。预训练就是打地基,地基不牢,后面什么微调骚操作都白搭。
2. SFT:从“大锅乱炖”到“分餐制”
到2024年初,大家发现了个惊天秘密:SFT这一步,不能再“一锅乱炖”了。
以前就是把几个开源的问答数据集(VQA)混一起,再训一轮完事。后来发现,不同类型的任务混着训互相干扰,就跟火锅里煮抹茶蛋糕似的,味全乱了。数据配比,比数据量更重要。
Qwen2.5-VL怎么干的?它把SFT分了好几个阶段,先训粗活(像看图说话、分类),再训细活(像文档OCR、框选物体位置)。有人叫它课程学习,我倒觉得像上菜顺序——凉菜先上,主菜再上,最后上甜品。顺序一乱,味道就崩了。
GLM-4.5V在SFT阶段,搞了多轮SFT。每训完一轮,把模型拉出去考一考,答得好的题目收起来,作为下一轮的高质量数据。这里有个魔鬼细节:他们不光把对的答案整理出来,还人工去掉了那些“想太多”、“车轱辘话来回说”,或者“中文夹火星文”的样本。
我之前不信邪,觉得自动过滤就够了。结果有些样本,答案是对,但废话连篇。模型学完,输出就变得特别啰嗦,像话痨大妈。折腾了好一阵才调回来。
还有一个反常识的坑:SFT数据不是越多越好!
我试过把好几个开源数据集全怼进去训,觉得多多益善肯定没错。结果模型直接过拟合了,训练集背得滚瓜烂熟,拿到测试集上,效果反而还跌了。后来看了Keye-VL 1.5的做法才明白——要控制。每个类别的样本数控制在几千以内,再混点纯文本的SFT数据,把它的语言功底稳住,效果才恢复正常。
3. RL后训练:2025年,神仙打架
到了2025年,风向彻底变了。如果2024年“多阶段SFT”是主流,那2025年最大的变化就是——强化学习(RL)从“加分项”变成了“必选项”。几乎所有的大模型都加了RL阶段,而且设计得越来越精细。
GLM-4.5V的思路是经典的“三阶段”:预训练 → SFT → RL。RL阶段,它还会再细分好几轮。每轮RL之后,用这轮的模型去写新的考卷,拿标准答案作为下一轮SFT的“冷启动”数据。形成一个SFT → RL → 出难题 → SFT → RL的闭环。
更猛的玩法,来自Seed1.5-VL和MiMo-VL。它们搞出了“多轮SFT + 多轮RL”的交替训练。Seed1.5-VL的技术报告里写着:做了四轮SFT + 四轮RL!
每轮RL之后,模型推理能力确实在提,但提升的幅度越来越小。等到第四轮,收益已经微乎其微,成本划不来了。就像考试,从60分提到80分容易,从95分再提1分,你得拼老命。
个人经验: 小团队,做两轮SFT + 两轮RL基本够了。再往后,性价比就不行了。而且RL阶段的奖励函数设计是技术活,搞不好就出奖励黑客——模型学的是刷分,表面上分数高,但真实能力没涨。就像玩游戏,它作弊了,没真变强。
MiMo-VL还提了个有意思的概念:Reward-as-a-Service。搞个路由专家,根据不同任务,自动选好最合适的奖励函数。做数学题,用基于规则的判分;做开放式图像生成,用奖励模型。这个想法听着不错,但我没自己实现过,不确定具体效果。
Seed1.5-VL的奖励函数更绝:STEM题目用规则打分,还加了格式奖励(回答必须写三段式),以及混合奖励(只看最终答案,忽略中间思考过程)。他们还做了动态调整——简单任务只用模型生成1次答案;复杂任务生成4-8次。这效率,比之前所有模型都高出一截。
4. 冷启动和数据增强:细节里全是坑
再说说我在“魔鬼细节”里踩过的坑,以及大佬们怎么填的坑。
第一大坑:冷启动阶段,模型“眼瞎”。
刚开始训RL,模型对着图,经常不看图就开始胡编。比如你问“图里有几个苹果?”,它不看图直接答“3个”,其实图里是5个。
怎么治?有个叫AVAR的策略。它在SFT数据里加入“视觉锚定”的数据。不是简单问“这是什么颜色?”,而是设计那种必须把文字描述和图像细节结合才能回答的问题。比如“图中那个穿红衣服的男孩,他衣服上的图案是什么?”。这种问题,能强制模型盯着视觉输入。
第二大坑:长篇推理到一半,模型“失忆”。
训练长篇推理链(LongCoT)时,模型回答到一半,突然忘了前面图里讲过啥,开始编视觉细节。VAPO这个策略,通过视觉锚点 + 感知奖励来保持模型的“记忆力”。在推理中间插入一个视觉锚定的任务,如果模型后面脱离图像,就给它一个大大的负分,让它长记性。
第三大坑:数据不够用怎么办?
有个叫MergeMix的招数,把不同样本的token混合起来,有点像图像领域的Mixup,但用在多模态。我试下来,感觉对泛化性有帮助,尤其是数据少的时候,算个“兴奋剂”。但效果提升有限,核心还是得靠数据质量和训练策略。
第四大坑:光训“大脑”,不训“眼睛”?
传统做法是,训练RL时,把视觉编码器冻住,只训练LLM和连接器。PIVOT这个研究就发现,在RL阶段,用偏好学习去搞一下视觉编码器,能让它产生更强的局部特征表示能力。但代价是,你得像重新训练视觉骨干一样,烧大把算力。我尝试不多,因为太贵了,而且搞不好会把模型的眼睛“练瞎”。
最后,一个免费的“彩蛋”:Visual Jigsaw。
在SFT和RL都做完之后,加一轮像拼图一样的自监督任务。零标注成本。只需要把图像切成碎片打乱,让模型还原顺序。我实践下来,这个trick对视频和时间序列理解,有稳定增益,但幅度不大,大概1-2个点。好处是,不花钱,顺手就能做一轮,算个饭后甜点。
5. 两个共识,一个大胆猜测
看了这么多论文,我总结出两个大家都点头的观点。
共识一,反常识:数据少,模型结构要精巧;数据多,结构简单反而香。
网上有个帖子说得很直白:当你只有几百万张图文对的时候,Q-Former这种复杂结构,比简单的MLP效果要好。但当你手握几十亿张图文对的时候,MLP和Q-Former的差距,直接可以被海量数据抹平,而且MLP更省事,还更不容易过拟合。我自己也做过对比,在500万数据下,Q-Former领先3-4个点,但数据量到了5000万,两者基本持平。所以,你要是有钱,数据海量,别在结构上搞花样,堆数据才是正道。
共识二,最值得关注的转变:“有没有真的看图”比“答案对不对”更重要。
这是我在读AVAR和VAPO论文时,印象最深的一句话。很多模型在标准测试集上分数高得吓人,但你稍微改一下图片背景、换个问法,它立刻就崩。这说明它根本没理解,只是在死记硬背训练集里的套路。现在的训练策略,正在从“看你考了多少分”变成“看你解题过程是不是猫腻”。“中间推理过程的视觉锚定”成了比“最终答案准确率”更关键的评价指标。 这个转变,太对了。
我的大胆猜测: 未来一年,训练策略的竞争,将从“多阶段设计”的军备竞赛,进化为“每一阶段内部细节”的微雕竞赛。比如,预训练阶段的数据课程该怎么排?SFT阶段的数据配比,能不能根据模型当前状态动态调节?RL阶段的奖励函数,能不能做成自动路由的智能体?框架都大差不差,最后拼的是谁在细节上更扎实。
6. 给你几句实在话
如果你也想踏上这条多模态训练的“不归路”,这几句话希望能帮你少掉几根头发:
1. 别一上来就琢磨怎么调RL! 先把预训练和SFT的地基打牢。数据洗干净、比例调好,模型能稳定看图说话了,再考虑RL。我见过一上来就冲RL的团队,奖励函数跟心电图似的,一直在波动,最后效果还不如不加RL的。
2. 一定要保证模型的眼睛是睁开的! 尤其是你要做长篇推理的,一定要在训练数据里加大量“视觉锚定”样本,不然学到后面,模型就彻底“学坏”了,闭着眼睛跟你胡扯。
3. RL的奖励函数,一开始千万别搞复杂。 就用最简单、最直白的规则打分。等模型基础能力练出来了,再加奖励模型。混合奖励一上,各种奖励黑客,查起来能让你怀疑人生。
4. 资源有限,就做个“断舍离”的聪明人。 不是所有场景都需要四轮SFT加四轮RL。很多应用,两轮SFT加一轮RL就差不多了。多做一轮,成本和收益自己拿计算器算清楚。
5. 没事多去刷刷论文,特别是那些“失败的经验”分享。 训练策略的更新速度,比模型结构快得多。我基本每周都刷几篇新论文,很多人会分享他们踩过的坑和失败的实验细节,那些往往是最值钱的东西。
说到底,多模态大模型的训练策略,就是一部进化史。从开始的简单粗暴两阶段,到如今精雕细琢的多阶段设计,本质上是数据、算力和评估手段都在变好。
这世上没有能让你一步登天的秘籍,只有不断试错、记录、优化,然后再次起飞的螺旋式上升。
这篇文章,就是我跟这个领域“肉搏”的记录。希望能给你点启发,让你少走我走过的弯路。
有新的发现,或者想看我怎么解决某个具体问题,随时来找我聊。一起学习,一起进步。
这个领域还很年轻,最酷的地方就在于,我们可以亲手创造未来的“标准答案”。
读者评论 2