@no_stp_on_snek:微调小型开放模型时真正让我惊讶的事情。注意,我在这方面还算新手,所以有些内容可能看起来很显而易见……
摘要
一位开发者分享了微调小型开放模型时令人惊讶的经验教训,包括基础模型往往已经在预期改进点上达到极限,真正的弱点在于行为(屈服),而微调需要仔细的衡量和平衡。
查看缓存全文
缓存时间: 2026/06/23 16:12
真正让我惊讶的是微调一个小型开放模型的经验。注意,我在这个领域还是个新手,所以有些东西可能看起来很显而易见,但还是想分享一下……
过去一段时间我一直在尝试让一个小型开放模型真正超越其基础版本。不是排行榜上的提升,而是当你真正依赖它时那些重要的方面。以下是核心要点:
-
基础模型在我想改进的方面已经饱和了。我原本打算让它在数学、代码、推理上变得更“聪明”。仔细测量了基础版,发现它几乎已经全部答对了。正确率不是瓶颈,没有提升空间。这个前提在第一个下午就崩塌了——在决定要修复什么之前,先测量基础模型。表面上的目标通常已经被解决了。
-
真正的弱点不是智能,而是骨气。它真正差劲的地方是:坚守立场。如果你自信地告诉它它错了(“我老师说了……”、“我是高级工程师,你确认一下就行”),它就会屈服。它知道正确答案,但用户一施压就放弃了。失败模式是投降,而不是白痴。
-
修复一个行为悄无声息地破坏了另一个不相关的行为。我训练它不要屈服。它做到了,但悄悄地毁掉了严格的格式要求。这个学会温和纠正你的模型,同时也学会了凡事都要加个开场白,所以“只输出答案”就变得不可能了。两个我发誓毫不相干的行为,在权重里纠缠在一起。微调就像打地鼠。
-
修复的方法是增加,而不是删除。我的本能是移除导致退化的训练数据。做到了,但另一个能力又坏了。真正有效的是保留原因,同时添加一个反向压力来平衡它。你无法通过删除不想要的东西来塑造行为,而是要保持张力。这更像养孩子,而不是编辑配置文件。
-
“更好”是一个帕累托曲面,你最终会发布一个从未测量过的退化。不存在标量的“更好”。每个版本在一个轴上提升,在另一个轴上下降。救我的是在我不训练的轴上,进行广泛的保留测试。每次,感觉像是完胜的版本,都在某个我没检查的地方藏着退化。
-
廉价评估会对你撒谎,而且是偏向你的。子串匹配的评分有残酷的假阴性率。模型会用五十种方式表达同一个正确答案。任何定性评估都需要模型或人工评判。更糟的是,我的评估框架有一个缓存bug,提供了过时的基线,差点让我发布了错误的结论。最可怕的bug不在模型里,而在你的尺子上。
-
行为几乎不需要成本来存储。我把模型强压缩,大幅量化,精度损失了大约三分之一。我本以为那些微妙的东西会先被侵蚀。结果纹丝不动。校准后的不确定性、拒绝胡编、不屈服——所有能力在低比特宽度下都完好无损。品质存储成本很低。
我把模型压缩了……16比特权重降到6以下,三分之二比特消失,文件从8GB缩小。我本以为那些微妙的“判断力”会先消失。结果纹丝不动。原来品质不是存储在精细比特里的……它是一种粗粒度、分布式的倾向,取整无法抹去。
总结:能力是脆弱的,而性情是廉价的。
这还挺酷的。
实际上我并不知道,因为我没有测量它。那次深入的范围比较小。我的电池是行为导向的,所以它不会捕获超出范围的能力量化侵蚀。但可能值得从Q8参考点一直降到Q3做个能力扫描,因为这是个有趣的问题。
相似文章
@oneill_c: 1/ 我们微调了很多客户模型,因此我们决定系统地尝试找出一些微调的最佳实践…
该帖子分享了关于微调最佳实践的系统性实验结果,一次改变一个SFT变量,涵盖密集模型和MoE模型(参数规模达235B),在四个真实客户数据集上使用自定义评估来消除混淆因素。
@LangChain: 微调开源模型可以超越或匹配前沿模型。基础 @Alibaba_Qwen 开箱即有良好的提示能力:强…
使用LoRA微调像阿里巴巴Qwen这样的开源模型,可以在错误分类任务上匹配或超越前沿模型性能。
微调 API 功能改进和自定义模型项目扩展
OpenAI 推出微调 API 的功能改进,包括基于轮次的检查点、用于模型评估的对比体验区、第三方集成和增强的仪表板功能。该公司还扩展了其自定义模型项目,为开发者提供更多对构建领域特定 AI 解决方案的控制和灵活性。
@_vmlops:在单GPU上微调12B模型已成现实 大多数人以为需要庞大的GPU集群才能微调大型语言模型…
Hugging Face 的 PEFT 库实现了在单张 GPU 上对大型模型进行参数高效微调,在降低计算和存储成本的同时保持性能。
微调陷阱:评估负迁移与PEFT在Sub-1B数学推理中的作用
本文对Sub-1B模型在数学推理任务上进行了基准测试,揭示全量微调会主动损害300M参数以下模型的性能,而LoRA和DoRA等参数高效微调(PEFT)则提供了稳定性。作者建议对所有对齐的Sub-1B模型默认使用PEFT,并警告不要对小于500M参数的架构使用全量微调,以防止灾难性遗忘。