真实面经题目 · 原创解析
Agent 微调中如何选择和清洗训练样本,哪些样本质量问题最容易改变模型行为?
这题考 Agent 微调数据的样本选择与清洗能力。与普通 SFT 不同,Agent 样本不仅有问答文本,还包含意图、计划、工具选择、参数、工具结果、状态变化、安全边界和最终回复。回答要说明哪些样本值得训练、哪些噪声会改变模型行为,以及如何用指标验证。
Agent 微调选样本时,我不会只看对话是否流畅,而会看它是否能教会模型正确完成任务链路。一个高质量样本通常包含清晰用户目标、必要上下文、合理的中间决策、正确工具选择、合法参数、真实工具观察、失败恢复和最终可验证结果。选择上要覆盖高频任务、长尾困难任务、工具边界、缺参澄清、权限拒绝、异常重试、安全拒答和多轮状态更新;只收成功样本会让模型不知道什么时候该追问、拒绝或降级。清洗逻辑分几层:第一是隐私和合规,去除个人敏感信息、密钥、内部标识和不可训练内容;第二是结构清洗,统一 role、action schema、tool name、参数类型、observation、traceId 和结束状态;第三是质量清洗,剔除目标不清、工具调用错误、参数错但结果被标成功、工具返回缺失、人工中途改写不可追踪、对话轮次断裂和重复模板样本;第四是标签校验,确认 assistant 的 action 是模型应学习的目标,tool observation 不能被当成模型要生成的答案。样本质量问题会强烈改变 Agent 行为,例如错误工具选择会导致误调用,参数噪声会导致线上失败,成功标签错误会让模型学会错误恢复,缺少拒答样本会让模型越权执行。最后要用工具选择准确率、参数合法率、任务成功率、澄清率、拒绝准确率、异常恢复率和安全违规率验证。
普通 SFT 主要学习输入到回答,而 Agent 样本还包括意图识别、计划步骤、工具调用、参数、工具返回、状态更新和最终总结。清洗时要保留可学习决策,去掉不可学习噪声,否则模型会把错误轨迹当成标准流程。
只选高频成功案例会让模型变得冒进。训练集应覆盖直接回答、调用工具、缺参追问、权限拒绝、工具失败、重试、取消、用户改意图、多轮上下文和高风险操作确认。这样模型才能学会什么时候做事,什么时候停下来。
工具调用样本要统一 tool name、action type、参数 schema、枚举值、时间格式、实体 id、幂等键和结果状态。参数类型错、字段名混乱或同一工具多种写法,会直接降低模型的函数调用稳定性。
工具返回是环境观察,不是模型应该凭空生成的内容。训练时要通过 role 和 loss mask 区分 assistant action、tool observation 和 final answer。否则模型可能学会伪造工具结果,而不是在需要时调用工具。
错误工具选择会训练出误调用;缺少澄清样本会让模型编造参数;错误成功标签会让模型把失败当完成;重复模板会让模型僵硬输出;未清理隐私会带来泄露风险。Agent 数据噪声通常比普通问答噪声破坏更大。
失败样本不一定都要丢。用户取消、权限不足、工具超时、参数缺失、外部系统错误和模型误判是不同类型。能教会恢复策略的失败轨迹可以保留,但必须标清失败原因和正确动作;模型自身造成的错误轨迹不能当正样本训练。
如果某个工具样本过多,模型会倾向过度调用;如果拒答样本过多,又可能过度保守。需要按任务、工具、风险级别、成功/失败、长尾场景和难度做配比,必要时对高价值难例过采样,对重复低信息样本降权。
Agent 微调不能只看最终回答好不好。要分别评估意图分类、是否调用工具、工具选择、参数合法性、权限判断、缺参澄清、异常恢复、最终答案忠实度和任务成功率。这样才能知道是样本选择、清洗还是模型能力出了问题。
要分情况。外部工具超时、权限不足、用户取消、参数缺失这类失败,如果标注了正确恢复动作,可以训练模型学会降级、追问或拒绝;但模型错误选择工具、编造参数、误判成功的轨迹不能作为正样本,除非改成反例或纠错样本。
看四点:用户目标是否清楚,动作链路是否可解释,工具参数和返回是否可验证,最终结果是否和状态一致。任何一项缺失都要降权、修复或剔除,尤其是成功标签和工具 observation 不可信的样本。
进入训练前要做最小化和脱敏,去除姓名、电话、地址、账号、密钥、精确身份标识和敏感业务字段;必要时只保留抽象实体类型和状态变化。还要有访问控制、数据版本、保留期限和审计记录。
Agent 不只是回答问题,还可能执行操作。没有拒答样本,模型可能越权或处理高风险请求;没有澄清样本,模型会在参数不足时编造对象、时间或操作范围,造成错误调用。
优先查数据和 schema:字段名是否统一,类型是否一致,训练和线上工具定义是否一致,样本里是否有历史废弃字段,loss mask 是否正确。数据和工具契约稳定后,再看模型容量和训练超参。