做内部工具的人大概都遇到过这种场面:通用模型能写漂亮的周报,却总把公司的审批流程说错一环。提示词改到第四版,输出还是时对时错。这时有人说,干脆做个模型微调吧。会议因此结束,问题好像解决了,其实只是换了个地方。
先把两件常被混在一起的事分开。检索增强是把资料放进上下文,模型本身没变;模型微调改的是权重,让模型在特定任务上形成稳定的输出习惯。前者适合“我有一批会变的文档”,后者适合“我知道答案长什么样,只是模型不肯按这个格式说”。判断标准并不在于技术热度,而在于你要解决的是知识缺失,还是行为不一致。
它学的是习惯,不是记忆
把公司制度塞进训练样本,指望模型背下来,是常见的误用。参数记住的是模式:什么样的输入,通常对应什么样的措辞、结构和判断标准。知识会更新,模式相对稳定,所以微调在格式对齐、语气统一、字段抽取这类任务上表现自然;在“最新政策第几条”这类问题上,它给出的答案未必可靠,而且错得很自信。
这也解释了为什么有些微调上线后效果不如预期:训练集里塞了大量事实,评测时却只问事实是否记得住。
数据干净比数量重要
样本量不是唯一的门槛。一批彼此矛盾的标注,会让模型学到摇摆不定的判断标准。开工前值得做的几件事:
- 把任务写成一句话,确认它不包含三四种不同的目标;
- 抽样检查标注一致性,尤其看边界样本怎么处理;
- 留出一部分不参与训练的数据,专门用来做评测;
- 记录每次训练用了哪些数据,方便回溯。
灾难性遗忘也值得留意。模型在单一任务上被反复训练,通用能力可能悄悄退化。常见做法是混入一部分通用样本,或者降低训练强度,但具体怎么配比,只能靠评测说话。
有些问题不该交给微调
如果需求只是几条固定规则,比如输出必须带工单号,正则校验或者后处理就够了。如果资料每周都在变,检索更合适。如果只是偶尔答错,先去看看提示词里有没有自相矛盾的指令,这类问题在训练前解决,成本低得多。
真正需要模型微调的情况通常有一个共性:任务明确、样本可收集、输出有稳定的判断标准,并且能说清“答成什么样算对”。说不清这一点,训练出来的模型只能让人反复猜测。
先有评测,再谈训练
顺序常常被倒过来:先训练,再看效果。合理的做法是先攒一个几十到几百条的小评测集,覆盖常见问题和容易出错的边界,人工确认标准答案。它不需要多精致,但要能在每次调整后给出可比较的结果。没有它,任何一次模型微调都只是换了一组参数,然后大家凭感觉争论。
最后说个判断:微调是一项收敛问题的手段,不是探索问题的手段。当你已经能把任务描述清楚、把对错标准写下来,它才真正开始工作。在那之前,多花几天把问题问清楚,往往比多跑几轮训练更划算。