大模型训练目标输出如何设计

模型与算力

讲清大模型训练目标输出该怎么设计:先定评价口径,再定答案形态与拒答边界,最后用小批量人工比对验证,避免训出一个只会说漂亮话的模型。

做微调或自研训练时,最容易被跳过的一步就是「目标输出长什么样」。数据集里只写了问题和答案,没写答案该多长、要不要给步骤、不确定时该说什么,训出来的模型就会按自己的习惯发挥:该简短的时候写小作文,该给理由的时候只丢结论。这篇给一套可执行的输出设计流程,从定口径到抽样验收,让你在开训前把标准写下来,训完能对着标准打分,而不是靠感觉判断好坏。

做微调或自研训练时,最容易被跳过的一步就是「目标输出长什么样」。数据集里往往只写了问题和答案,没写答案该多长、要不要给步骤、不确定时该说什么。结果训出来的模型就按自己的习惯发挥:该简短的时候写小作文,该给理由的时候只丢结论,下游程序解析不了,人工看又看不完。

这篇给一套可执行的输出设计流程:先定评价口径,再定答案形态与拒答边界,接着把长度和格式写死,最后用小批量人工比对验证。核心目的是让你在开训前把标准落在纸上,训完能对着标准打分,而不是靠感觉判断好坏。顺便说一句,模型选型和成本这块可以去 /price-watch 核对当时的数字,但输出设计本身跟用哪家无关。

先定评价口径,再谈输出长什么样

很多人上来就纠结「答案应该写多详细」,其实顺序反了。你应该先回答:这条输出我打算怎么验收?如果验收方式是人工一条条读,那几百条之后就看不动了,标准会越来越松。所以先把「好」拆成能判断的几条,拆不出来的标准等于没有标准。

  • 字段是否齐全、能否被程序解析,这是最硬的一关,过不了后面都不用谈
  • 关键信息是否命中:答案里有没有出现必须包含的点,漏了算不合格
  • 是否答到点上:有没有跑题、有没有答非所问
  • 是否多余铺垫:开头寒暄、结尾总结这类内容在抽取类任务里按扣分处理
  • 不确定时是否给出说明:信息不足时是坦白还是硬编

选对答案形态:短答案、结构化还是带推理

形态这件事要在开训前定死,因为三种形态对标注的要求完全不同。短答案要求一句话内出结论,标注员写多了反而要删;结构化输出要求字段名和嵌套层级完全一致,一批一种写法就废了;带推理的输出最难,因为要规定推理写在哪个位置,让程序能只取最终结果那一段。

形态适合的任务目标输出要写清什么
短答案分类、抽取、是否判断结论只允许一句,不给理由,多写算错
结构化要接下游系统的场景字段名、类型、层级、缺省值怎么填
带推理需要解释过程的场景推理放哪个标记之前,最终答案放哪个标记之后
混合型输入里指定本次要哪种输入模板必须显式说明当前要求,不能靠猜

同一份数据集里不要混用多种形态,除非你在输入里明确告诉模型这次要哪种。判断标准很简单:拿十条样本给同事看,他能不能一眼说出这条属于哪种形态。说不出来,就是混得太厉害了。

把拒答和不确定的话术一起写进目标输出

这是最容易被漏掉的一节。你不写拒答话术,模型就自己发挥,有的道歉半天,有的直接编。正确做法是在样本里给出统一说法,并且规定「信息不足时应该先说要什么,而不是硬给一个答案」。

  1. 圈定不该回答的范围列出业务上不能碰的输入类型,逐条写成判断条件,别用「敏感内容」这种模糊词
  2. 写死统一话术每类情况配一句固定回复,标注时照抄,不要每条约一位标注员自己措辞
  3. 补充信息不足的示范目标输出示范「缺什么就说缺什么、然后追问要什么」,比如「要给结论需要知道 X,请补充」
  4. 配比并验证这类样本要占一定比例,风险高的业务占比更高;抽一批测一下模型是不是学会了这套说法

不适用的情况也要说清:任务本身允许猜测的场景,比如创意起名、头脑风暴,就别强加拒答模板,否则模型会变得畏手畏脚,该给建议的时候也在推脱。判断依据是「猜错了有没有实际代价」,没有代价就别拦。

长度、格式与标点这些细节要写死

长度不写死,模型就会按自己的习惯发挥,而它通常倾向于写长。规定字数或句数区间时,顺便说明超出怎么处理:是直接算不合格,还是允许一定浮动。长答案在多数抽取和分类任务里都意味着模型在凑内容。

  • 统一标点、编号、代码块、表格的写法,别一会儿用顿号一会儿用逗号
  • 下游要解析 JSON,就把 JSON 规则写进样本本身,不要只写在外部文档里
  • 输入里带了示例或字段说明时,目标输出要与之对齐,否则模型会学会忽略输入
  • 多语言场景明确目标输出的语言,别默认跟输入语言走
  • 数字、单位、专有名词的写法统一,避免同一含义出现多种表达

抽样验收:先跑小批量比对再全量

标准写完了不代表就对了,得拿现有模型跑一遍,看它和人工目标输出的差距在哪。关键是抽小批量,别一上来全量训,浪费的时间和成本都收不回来。验收顺序建议固定下来,先硬指标后软指标。

验收顺序看什么发现问题怎么改
第一步格式能不能解析,字段齐不齐回到标注规范补格式说明,重写相关样本
第二步关键信息有没有命中检查是标注漏了还是模型能力不够
第三步长度和形态是否合规改长度区间定义,必要时拆细任务
第四步语气和措辞放在最后评,这类分歧最容易吵
回归训完后同一套规则再跑一遍发现退化就回数据集查哪类样本带偏了

差距要归类成可修改的规则,回到标注规范里改,再抽一批验证。不要直接改单条样本,那样同样的问题会在别的样本上反复出现。至于用哪个模型做这轮比对、各家接口当时什么价,去 /rankings 和 /price-watch 核对当时的数字,别凭印象选。

下一步把上面这套标准整理成一份标注规范文档,先拿二十条样本试标一轮,看标注员之间的一致率。想要现成的评测口径、模型资料和实测工具,去 /tools/speed-test 上手跑一遍,比空想标准快得多。

常见问题

目标输出是不是越详细越好?

不是。详细程度要匹配任务:抽取类任务答案越短越好,解释类任务才需要步骤。判断标准是「下游能不能直接用」,如果还要人再加工一遍,说明输出形态选错了。可以先按最短可用原则写一版,再根据实际缺什么往上加。

没有人力写目标输出,能不能让大模型批量生成?

可以当起点,但不能当终点。让模型生成后必须人工抽查,重点看格式一致性、有没有编造内容、有没有忽略输入里的约束。抽查发现的问题要变成规则回写,而不是一条条手改。生成加抽检适合格式类任务,涉及事实判断的部分还是要人把关。

训练目标输出和提示词里写的输出要求要一致吗?

尽量一致,否则模型会分裂:训练时学会一种写法,线上又被提示词要求另一种。做法是把提示词里的输出要求抄进目标输出的设计文档,两边同时改。如果线上要支持多种输出形态,就在训练数据里把形态指令也做成输入的一部分。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。