一份号称人人可复现的教程说,给一个3.5亿参数的小模型做100步GRPO微调,结构化输出合规率能从22.6%涨到29.7%,免费Colab就能跑完,连评测都能在MacBook本地搞定。这听起来像今年最省钱的AI教程之一。
但翻回Liquid AI自己六月发布的IFStruct官方博客,同一个模型、同一个基准,官方公布的数字是21.1%到44.9%——涨幅几乎是教程版本的三倍多。这不是四舍五入的误差,是两条完全不同的曲线。
教程做了什么
事实很简单:模型是LiquidAI/LFM2.5-350M,训练数据来自nvidia的Nemotron结构化输出数据集,只用了约500条样本,挂LoRA(约600万参数,占比1.66%),跑100步GRPO,reward分三块——格式是否对、字段数是否对、schema是否校验通过。评测用IFStruct基准,2000条测试样本,靠llama.cpp本地起server跑分。
结果分布很直观:JSON这块涨得最猛,从18.0%冲到31.9%;YAML几乎没动,27.2%到27.5%。说明训练确实抓住了它想解决的问题——模型学会了按指定格式(裸JSON还是代码块包裹的JSON)老实交作业,但对本来就擅长的YAML没什么增量。
IFStruct本身是严格的二元通过制:一条样本只要有一个字段类型不对、一个必填字段缺失,就算不通过,不评内容质量好不好,只看结构是不是完全合法。这个设计本身没问题,但它意味着训练曲线里那些"从错9个字段变成错1个字段"的渐进式改善,在最终得分上一分都不体现。
放在一起看,教程那根砖红色的短条,离官方RL的灰条还差着一大段距离,离顶部那根真正的大模型更是差着量级。
数字对不上的地方
教程文档里其实写了一句免责声明:这套训练流程,跟Liquid AI官方IFStruct博客里训练那个RL模型用的流程"不是同一套"。这句话是诚实的,但它也是止步于此——没有告诉你官方那版用了多少数据、跑了多少步、reward怎么调的更精细。
500样本、100步是一个刻意设计成"免费GPU能跑"的轻量配方,它证明的是方向对:GRPO这类可验证奖励确实能让小模型在结构合规上进步。但它离官方全量RL训练的效果,只拿到了后者涨幅的三成左右(+7.1分 对 +23.8分)。免费版本能省钱,但省不掉那道天花板。
取法乎上,仅得乎中
这句老话搬到这里刚好合适。教程标题喊的是"让小模型接近大模型",落地的分数却只走到了官方版本的一半路。这不是教程写错了什么,而是提醒读者:轻量recipe的价值在于验证可行性,不在于复现顶配效果。
约束解码这盆冷水
更值得琢磨的问题不是"涨了多少",而是"GRPO到底在解决什么"。有一项独立的小规模测试(16个贪心解码样本)发现:同一个350M模型,不做任何RL训练,只是在推理时加一层语法约束解码(grammar-constrained decoding),结构合法率就能从0直接冲到100%——当然,内容准不准确是另一回事。
这个结果直接刺破了一个隐含前提:如果目标只是"输出能被解析、符合语法",约束解码几乎零成本就能搞定,根本用不上GRPO训练。GRPO真正能加的分,是schema里更细的东西——字段数量对不对、类型对不对、必填项全不全。这恰好对应教程reward设计里的field_count_reward和schema_validation_reward,但这两项和纯语法层面的json_format_reward被合并成一个总分,读者很难看出这次涨的7.1分,到底是语法层还是语义层的功劳。
- 结论.GRPO训练该省的钱是语法关的约束解码,该花的钱是字段和类型层面的语义合规
应试与真实能力之间
IFStruct的全有全无判分,也带来另一个盲区:结构合规不等于内容正确。Liquid AI自己在基准说明里承认,这个测试只看结构、不评内容,建议叠加LLM judge之类的质量信号来防止模型"应试"——只满足格式却输出没意义的内容。教程正文没有展开这一层风险,但它是任何打算把这套recipe接入生产环境的团队都该补上的一步。
另一个细节也值得留意:教程指向的notebook文件名,和当前Liquid AI cookbook仓库里实际的文件名并不一致。这大概率是仓库后续迭代改了名字,但对读者来说,意味着今天按图操作,未必能原样跑出22.6%到29.7%这组数字——复现性本身也有保鲜期。
- 风险.结构合规达标不代表内容可信,考核体系本身可能被"应试"
该看什么
对真要往生产环境里塞小模型的团队,这篇教程给出的更多是方法论,不是可以直接照搬的最终成绩单。真正该问自己的问题是:你要解决的是语法关(用约束解码就够),还是语义关(字段、类型、必填项,这才是GRPO能加分的地方)。至于500样本、100步能到什么程度——现在能看到的答案是,离免费的诱惑很近,离官方的天花板还有一段距离。
