news 2026/9/9 21:48:29

一个2B小模型,怎么才能学会好好玩文字游戏

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一个2B小模型,怎么才能学会好好玩文字游戏

你有没有玩过Wordle?

就是那个每天一个单词,你猜五个字母,系统告诉你哪个字母对了、哪个字母在但位置错了、哪个字母压根不在里面的游戏。这游戏简单到小学生都能上手,规则清清楚楚写在那儿。

但如果让一个只有20亿参数的小AI模型来玩呢?

结果可能让你意外。研究者发现,这个叫Qwen3.5-2B的小模型在玩Wordle时,经常干一件特别离谱的事:它刚刚被系统告知"红色的c不能用",下一秒它猜的词里还带着红色的c。它甚至会重复猜同一个刚被否定的词,或者猜出一个六个字母的词硬塞进只能填五个字母的格子里。

这不是模型不懂游戏规则,它连基本的单词格式都会写对。问题出在更细微的地方,它记不住上一步反馈说了什么,或者说,它没能把"刚看到的信息"用到"马上要做的决定"上。这篇论文要讲的,就是研究者怎么一步步把这个"健忘"的小模型调教成一个能打的游戏玩家。

小模型的真实困境

这项研究来自一个叫LM Playschool Challenge的比赛,用的评测环境叫Playpen。

Playpen*:一个专门用来研究"对话游戏反馈学习"的训练和测试环境,里面装了clembench的一系列文字游戏,比如猜词、猜图、房间导航等等,每个游戏都有程序自动判断你玩得对不对、玩没玩下去。

比赛的官方基线数据摆在那儿,挺扎心的。2B模型的官方基线在最终评测里只拿到10.67分的clemscore,而它的27B大哥能拿60.30分。差了将近50分,这已经不是量变了。

clemscore*:这套比赛用来衡量模型游戏能力的核心分数,它由两部分相乘得到,一部分是Played(游戏有没有被顺利玩下去,没有中途因违规被判出局),另一部分是Quality(玩下去之后完成得好不好)。一个模型可能压根不会中途放弃游戏,但玩得稀烂,也可能玩几把就崩溃退出,这两种情况都会拉低最终分数。

这里有个容易被忽略的细节:模型可以两种方式失分,要么根本没法把游戏继续玩下去(Played低),要么勉强玩下去了但表现差劲(Quality低)。而2B模型的问题,很大程度上出在后者,它经常"死"在游戏中途,因为一些看似很小的规则违反被系统判定失败。

研究者们盯着这些失败的对话记录看了很久,发现了一个规律。这些失败不是随机的,它们高度集中在"模型刚接收到反馈之后马上要做的那个动作"上。换句话说,问题不是模型"不会玩",而是它在某个特定的、可以被机器精确识别的决策点上,一次又一次地摔了同一个跟头。

这就带来了一个和常规思路不太一样的问题:与其把整套游戏流程重新教一遍,不如去精确定位那个总是出错的瞬间,只在那里加强训练。

三步走的诊断式训练法

研究团队给自己的方案起了个挺形象的名字,叫"获取、修复、保留"(Acquire, Repair, Preserve)。这三步走的逻辑其实很像医生看病的流程:先让病人恢复基本的行动能力,再针对具体的病灶做手术,最后确保手术没有伤到病人身体其他健康的部分。

第一步:广泛的模仿学习,让模型先学会"参与游戏"

一开始的2B模型,连游戏都玩不明白,很多游戏它压根接不上话,直接被判定中途退出。研究者用的第一招是最基础的SFT。

SFT*:全称Supervised Fine-Tuning,监督微调,简单说就是拿一堆"正确答案"喂给模型,让它照着学,模仿这些成功案例的说话方式和行为模式。

具体做法是,从Playpen提供的训练数据里,挑出那些"成功通关"的游戏对话记录,每种游戏最多挑700条,凑了9522条数据,让模型跟着学一遍。

这一步效果立竿见影。模型的分数从13.05一下子跳到43.85,几乎翻了三倍多。但代价也很明显,Wordle这个游戏的实际得分依然是零。模型学会了"游戏应该长什么样子",比如它知道要输出"guess: xxxxx"这种固定格式,却依然不会真正玩这个游戏,还是会重复猜错的词,还是会忽视刚收到的反馈。

这就好比你教一个刚学开车的人,先让他把交通规则手册背得滚瓜烂熟,红灯停绿灯行,靠右行驶,倒车要看后视镜。他确实能把这些话一字不差地复述出来,甚至能在考试卷上全部答对。但真正坐进驾驶座,遇到前车突然刹车这种需要"当场反应"的情况,他还是会愣住,因为背规则和临场做决策是两种完全不同的能力。如果不做后面的针对性训练,这个模型就永远停留在"会背规则但不会开车"的阶段。

第二步:精准打击,只修那些能被机器验证的错误

既然知道问题出在哪儿,第二步就是对症下药。研究者选中Wordle作为突破口,不是因为它最重要,而是因为它的错误"最好抓"。

一个猜词是不是重复了刚才猜过的词,一个猜词的长度对不对,一个猜的词是不是压根不在词典里,这些全部可以用程序自动检测出来,不需要人工判断,也不需要模糊的主观打分。

研究者的做法是构造"偏好对"。

偏好对(preference pair)*:一种训练数据格式,包含同一个场景下的两个回答,一个是"更好的",一个是"更差的",模型通过对比学习"该往哪个方向走"。

具体流程是,拿一段真实的、成功通关的Wordle对话,在模型刚收到反馈后要做出下一步猜测的那个节点上,把真实的好答案标记为"更优选项",然后人为地在这个好答案基础上制造一个带有某种错误的"坏答案",比如故意让它变成重复上一次的猜测,或者故意把长度改错。这样模型就能学到"在这个具体情境下,这样做不对,那样做才对"。

这里的关键设计是"锁定对话历史不变",只对比模型即将说出口的那句话。这就好比给一个总是在某个路口闯红灯的司机做专项培训,不是让他重新考一遍整本驾照,而是把他每次经过那个路口的行车记录仪画面调出来,一帧一帧地告诉他,看,这里灯是红的,你应该在这里踩刹车而不是踩油门。这种训练方式的成本极低,因为纠正的范围被死死限定在那一个决策瞬间,而不是整个开车过程,如果训练范围铺得太大,反而会让司机对"正常路口该怎么开"这种他本来就会的事情产生困惑。

这套修复分了两轮进行。第一轮专门治"重复猜测"和"长度错误"这两种病,用了1905对训练数据。治完之后,这两个问题确实消失了,但又冒出了新问题,猜的词压根不在词典里,或者一次输出里塞了两个猜词字段。第二轮就专门治这两个新问题,又用了1906对数据。

第三步:让模型跟自己的表现较劲

前两轮修复用的都是"人工制造的错误样本"。第三步换了个思路,让当前训练到一半的模型自己去玩游戏,然后从模型自己产生的多个不同回答里,挑出得分最高的和得分最低的那一对,拿这两个真实的、模型自己写出来的答案去做对比训练。

这个方法有个专门的名字叫"分支DPO",DPO*就是Direct Preference Optimization,直接偏好优化,一种不需要单独训练奖励模型、可以直接根据"哪个答案更好"这种偏好数据来调整模型参数的训练技术。

这一步的效果在论文里显得有点摇摆,在研究者提交的最终模型那条训练轨迹上看是涨了3分,但在另一次独立对照实验里却是跌了2.07分。研究者很坦诚地把这个矛盾写了出来,没有藏着掖着,说这一步的贡献"依赖于用哪把评测尺子去量"。这种诚实挺难得的,很多论文会选择性地只报好看的那个数字。

第四步:往回调一点,别把老本事丢了

练完前三步,模型确实变得更擅长玩Wordle了,但研究者发现一个副作用:模型在一些通用能力测试(比如BBH、IFEval这些标准化的静态基准测试)上的分数掉了好几分。这就是典型的"捡了芝麻丢了西瓜"。

研究者管这个叫"专精税"(specialization tax),意思是模型为了变得更擅长某个具体任务,付出了通用能力下降的代价。

他们的解法很巧妙,不是继续加训练数据去补救,而是做了一件"不训练"的事情。他们把前面几步训练出来的参数调整量(术语叫LoRA增量)乘上一个缩放系数s,s取值在0到1之间,s越接近1说明保留的调整幅度越大,越接近0说明越接近调整前的原始模型。

LoRA*:Low-Rank Adaptation,一种参数高效的微调方法,不用把整个大模型的参数全部重新训练一遍,只训练一小部分额外插入的参数,这样既省资源,也方便像本文这样把训练出来的"调整量"单独拿出来做加减法运算。

他们不断尝试不同的s值,一边看模型在游戏上的表现有没有掉到不能接受的程度,一边看它在通用能力测试上的分数能不能保住,最后找到一个折中点,s=0.85。这个操作完全不需要额外的计算资源去做反向传播,纯粹是"抽取多少比例的学习成果"这样一个选择题。

这就好比一个人为了准备一场重要的专业考试,集中突击了一个月,结果发现自己在这段时间里把其他一些日常技能都生疏了,比如做饭、社交这些事变得笨拙了。这时候最好的办法往往不是继续加练专业考试的内容,而是回头想想,这段突击学习里,哪些是真正巩固下来的核心能力,哪些只是临时抱佛脚硬记下来的东西,然后有选择地"消化吸收"一部分,而不是全盘接受。如果不做这个筛选,直接把突击期间学到的东西100%照单全收,代价就是原本擅长的事情也跟着退步了。

数据说话:这套方法到底行不行

来看最终的官方评测结果。这是整篇论文最硬核的部分,数字不会说谎。

在公开评测集上,模型从10.67分提升到38.92分,涨了28.25分。在官方隐藏的"同类游戏"评测集(closed in-domain)上,从13.41分涨到41.17分,涨了27.76分。这两个数字都超过了官方给出的4B和9B模型基线的表现,而这个2B模型的参数量只有它们的一半到四分之一。

更值得关注的是,模型的通用静态能力测试分数几乎没怎么掉,从44.24变成44.14,只差0.1分,几乎可以忽略不计。这说明"保留"这一步确实起到了作用。

但故事没有那么圆满。在"跨领域"评测集(closed out-of-domain,也就是那些模型完全没见过的、和Wordle完全不搭边的新游戏类型)上,得分只有7.88,虽然比训练前的3.72有所提升,但绝对数值依然很低。更扎心的是,模型在这些陌生游戏里能顺利玩下去的比例(Played),反而比训练之前还要低(33.08% 对 35.19%)。

研究者进一步拆解发现,跨领域评测里那点微弱的正向进步,82.5%都集中在三个和Wordle高度相似的"变体游戏"上(叫Wordle-crazy),而真正意义上完全陌生的游戏类型,几乎没有得到任何改善。这说明这套针对Wordle的精准修复,学到的是一种相对局限的能力,能迁移到长得很像的近亲游戏上,但迁移不到完全不同的场景里。

拿一个具体的类比来说,这有点像一个人练了很久的乒乓球正手抽击,专门纠正了自己挥拍角度的一个细微错误。他确实在正手抽击上打得更准了,甚至能把这个技巧用到稍微变化一点的场地和球速上。但你要是让他去打网球或者羽毛球,这个专项纠正带来的帮助就非常有限了,因为握拍方式、场地感觉、球的物理特性完全是另一套东西。如果不承认这个局限,硬说"练好了乒乓球正手就等于练好了所有球类运动",那是自欺欺人。

一个有意思的对照实验

研究团队还做了一个特别值得说的对照实验,结果有点反直觉。

他们之前尝试过另一种训练方式,不是只针对"刚收到反馈后的那一个决策点"做修复,而是把整段对话从头到尾拿来做偏好对比训练(叫whole-dialogue DPO)。

结果这个"整段对话"的训练方式,直接把模型的游戏协议遵守能力给毁了。分数只有可怜的12.35分,模型开始在该输出固定格式指令的地方,夹杂大段自由发挥的文字,各种游戏里都出现了违规。后来研究者尝试过滤掉一些质量不好的训练样本,分数勉强回升到25.76,但核心的"中途退出"问题依然没解决。

这个对比恰恰印证了论文最核心的观点:不是训练数据不够多、覆盖面不够广就一定更好,训练信号的"精准度"比"广度"重要得多,至少在修复这种局部、具体的错误时是这样。

这就像给一篇作文纠错,如果老师只是笼统地说"这篇文章写得不够好,你重写一遍吧",学生可能连原本写对的部分也一起改乱了。但如果老师精确指出"第三段第二句这个词用错了,换成另一个词",学生就能在保留其他优点的基础上,只修正那个具体的错误。整篇重写的成本高,风险大,而定点修改的成本低,效果反而更精准。

写在后面

读完这篇论文,有一个细节让我印象特别深。

研究者在论文里非常坦诚地承认,他们最初设计的训练流程本来说是六个阶段,但后来做代码审查时才发现,其中两个阶段其实压根没有真正更新模型参数,一个是因为加载方式的技术疏漏导致适配器被误设为"不可训练",另一个是因为某个训练框架的底层逻辑有个隐藏的bug,把优化器构建在了一个空的参数集合上。也就是说,这两步"训练"其实是空转,模型权重一个字节都没变。

这种坦白在学术论文里其实挺少见的,很多团队可能会选择悄悄修正然后当作什么都没发生过。但这篇论文把这个"乌龙"完整地写进了附录,甚至重新跑了修复后的正确版本对比效果,发现修正后的两阶段训练净效果只有细微的-0.30分变化。这提醒我们,复杂的AI训练流程里,"看起来在训练"和"真的在训练"之间可能存在巨大的鸿沟,如果没有人认真去检查梯度是不是真的在更新、优化器里到底有没有参数,这种错误可能悄无声息地混进最终结果里,而外界完全无法察觉。

另一个让我反复琢磨的地方是,论文里提到跨领域和跨领域内的分数相关性很弱(相关系数只有0.30),而公开评测集的分数和"同类游戏"评测集的相关性却高达0.93。这意味着,如果一个团队只盯着自己能看到的那部分数据去反复调优,很可能调出来的是一个在"看得见的地方"表现很好、但在"看不见的地方"其实没什么真本事的模型。这不只是这篇论文遇到的问题,几乎是所有依赖有限验证集做迭代优化的机器学习项目都会撞上的一堵墙。

那么问题来了,如果连一个专门为Wordle定制的修复方案,都很难泛化到哪怕外形相似的变体游戏之外,我们又该用什么样的诊断方法,才能让小模型真正学会"举一反三",而不是"头痛医头脚痛医脚"?

Q&A

Q1:LM Playschool Challenge是什么比赛?

A:这是一个专门测试语言模型在互动对话游戏中表现的比赛,模型需要在猜词、猜图、房间导航等游戏里保持状态、理解反馈、做出正确决策,同时还要考察模型是否保留了通用能力。

Q2:这篇论文提出的训练方法叫什么,分几步?

A:叫"获取、修复、保留"三步法。先用监督微调让模型学会参与各种游戏,再针对Wordle这个游戏用精准的偏好对训练修复具体错误,最后用参数缩放的方式在提升游戏能力和保留通用能力之间找平衡点。

Q3:这套方法在跨领域游戏上效果怎么样?

A:效果比较有限,跨领域clemscore只有7.88分,而且大部分提升集中在和Wordle很相似的变体游戏上,对完全陌生的游戏类型帮助很小,说明这种精准修复主要在近亲游戏间迁移,泛化能力还不够强。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 21:48:00

STM32 VL53L0X ToF测距模块驱动移植与实战详解

简介:STM32_VL53.zip 是一份基于 STM32F103VET6 主控与 VL53L1X 激光测距传感器的嵌入式工程资源,适合正在学习 STM32 I2C 通信和 ToF 测距应用的开发者。工程将 PA2/PA3 分别配置为 SDA 与 SCL 连接 VL53L1X,PA4 接 XShut 控制传感器电源&am…

作者头像 李华
网站建设 2026/9/9 21:47:14

置信规则库BRB全解析:从推理原理到MATLAB代码实现与故障诊断

简介:这份压缩包提供的是置信规则库(BRB)的MATLAB实现代码,源自杨剑波教授设计的BRB方法,适合学习模糊逻辑、不确定性推理及参数优化的研究人员和开发者参考。代码围绕BRB的构建与推理流程展开,包含模型主程…

作者头像 李华
网站建设 2026/9/9 21:45:34

代理模型实战指南:解析tools.rar工具箱的配置与调优

简介:这是一份面向 MATLAB 用户与工程优化研究者的代理模型工具箱,专注于利用近似模型替代昂贵仿真计算,适用于多项式回归、Kriging、径向基函数网络、支持向量机等常见代理模型的快速构建与评估。包内共 289 个文件,主体为 263 个…

作者头像 李华
网站建设 2026/9/9 21:45:09

Calcite物化视图匹配核心:AggregateStarTableRule原理与实战

很多刚开始接触 Calcite 源码的人,看到AggregateStarTableRule这类类名时,第一反应往往是"哦,又一个看不懂的优化规则"。但实际上,如果你搞懂了这条规则,基本就摸清了 Calcite 物化视图匹配和星型模型加速的…

作者头像 李华
网站建设 2026/9/9 21:44:35

PowerToys 自动更新被 GPO 或设置禁用怎么排查?

PowerToys 自动更新被 GPO 或设置禁用怎么排查? 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trending/po/PowerToys …

作者头像 李华
网站建设 2026/9/9 21:44:29

Arnis 世界生成快速排查指南:地形失真与生成卡顿的调优清单

Arnis 世界生成快速排查指南:地形失真与生成卡顿的调优清单 【免费下载链接】arnis Generate any location from the real world in Minecraft with a high level of detail. 项目地址: https://gitcode.com/GitHub_Trending/ar/arnis 用 Arnis 世界生成工具…

作者头像 李华