真实面经题目 · 原创解析

SFT 数据清洗的具体流程是什么?

SFT 数据清洗的核心目标,是把来自标注、业务日志、开源语料、专家撰写和模型生成改写的数据,整理成可训练、可评估、可追责的指令响应样本。流程不只是删脏数据,而是围绕来源可信、格式统一、语义一致、质量可控、安全合规、覆盖均衡和评估闭环,持续筛掉会让模型学坏、学偏或学乱的样本,同时保留有训练价值的复杂样本。

出现于:阿里巴巴 · 算法

60 秒回答模板

可以从“数据进入训练集之前要经历哪些关卡”来回答。第一步是明确数据来源,包括人工标注、业务问答、专家构造、开源数据和模型辅助生成数据,并记录来源、领域、语言、轮次、授权和版本。第二步做基础清洗,包括去除乱码、空样本、模板残留、重复样本、截断异常、角色混乱和格式不合法的数据。第三步做语义和质量筛选,检查指令是否清楚、回答是否真实有用、是否存在答非所问、幻觉、前后矛盾、过短敷衍或过度啰嗦。第四步做安全合规过滤,处理隐私、版权、涉敏、违法、偏见和不适合训练的内容。第五步关注指令响应一致性和多轮结构,确保 system、user、assistant 角色清晰,多轮上下文可追踪,答案真正回应了用户意图。第六步做质量打分、分层采样和人工抽检,不能只追求高分数据,也要保留推理、长文本、边界场景和领域难例。最后要把清洗后的数据放到训练前后评估闭环中,通过离线评测、人工评审、badcase 回流和数据版本管理,反过来修正规则、打分器和采样策略。

考点 数据来源与准入
主线 基础清洗与去重
易错点 只把数据清洗理解成删除脏词和乱码,忽略指令与回答是否真…

深入解析

01

数据来源与准入

SFT 数据清洗首先要解决“数据从哪里来、能不能用、适合训练什么能力”的问题。常见来源包括人工标注的指令问答、业务客服或搜索日志脱敏后转写、领域专家撰写、公开可用语料改造成指令格式,以及模型生成后经人工审核的数据。每条样本最好带上来源、领域、语言、任务类型、轮次、生成方式、标注人或审核状态等元信息。这样后续发现某类数据引入幻觉、口吻异常或领域偏差时,才能按批次回滚或重新清洗,而不是把训练集当成一坨不可追踪的文本。

02

基础清洗与去重

基础清洗处理的是明显不能进入训练的数据,例如乱码、空指令、空回答、HTML 残留、占位符、截断文本、编码异常、广告水印、重复换行、过长无结构文本、角色标记缺失等。去重不应只做完全字符串匹配,还要考虑近似重复和模板重复,因为大量“同一问题换个词”的样本会让模型过拟合固定表达,降低数据多样性。实践中通常会按指令、回答、指令加回答整体分别去重,并对高频模板、批量生成痕迹、相同答案覆盖不同问题等情况做规则拦截。

03

格式规范与多轮结构

SFT 对格式非常敏感,清洗时要统一成训练框架可消费的结构,例如 system、user、assistant 的角色边界清晰,单轮和多轮样本字段一致,特殊 token、换行、终止符和缺失字段处理统一。多轮数据尤其要检查上下文是否连续,上一轮信息是否真的支撑下一轮回答,不能出现 assistant 自问自答、用户意图突然跳变、历史事实被后文改写等问题。若多轮样本中某一轮质量差,会影响整段对话的学习,因此要支持按轮检查、按轮删除或整条丢弃。

04

质量打分与语义筛选

质量筛选要判断样本是否能教会模型更好地完成指令,而不是只看文本是否通顺。可以从指令清晰度、回答完整性、事实可靠性、可执行性、解释深度、结构化程度、语言自然度和是否答非所问等维度打分。低质量样本包括泛泛而谈、拒答过度、编造事实、逻辑跳跃、无依据下结论、只复述问题、答案与指令约束不一致等。打分可以由规则、模型评审和人工复核结合完成,关键是建立可解释的维度,而不是只给一个不可追责的总分。

05

安全合规与隐私处理

安全合规清洗要覆盖个人隐私、敏感身份信息、商业机密、违法违规指导、仇恨歧视、成人或暴力内容、版权风险和不适合模型模仿的危险行为。对于业务日志类数据,脱敏不是简单替换姓名和手机号,还要关注地址、订单号、账号、罕见经历、内部系统名等可重新识别的信息。安全过滤也不能粗暴删除所有敏感主题,因为模型需要学会安全地拒绝、解释边界和给出替代建议,所以要区分“危险执行指导”和“合规安全回答”两类训练价值。

06

指令响应一致性

SFT 的本质是让模型学习“看到指令后应该如何响应”,所以指令和回答之间的一致性非常关键。清洗时要检查回答是否遵守用户要求的语言、格式、长度、角色、约束条件和禁止事项。例如用户要求只给结论,回答却长篇解释;用户要求中文,回答混入大量英文;用户问诊断思路,回答直接编造结果;用户要求多方案比较,回答只给单点建议,这些都会破坏对齐效果。高质量样本应当体现对意图的理解、对约束的遵循和对不确定性的诚实处理。

07

覆盖均衡与难例保留

清洗不是把所有难样本都删掉,也不是只保留最顺滑的答案。训练集需要覆盖不同领域、任务类型、语言风格、长度区间、难度层级和用户意图,包括问答、摘要、改写、推理、代码解释、信息抽取、开放创作、工具使用和拒答场景。对于长上下文、多约束、边界条件、容易混淆概念和需要严谨推理的难例,只要答案质量可靠,就应该保留甚至提高采样权重。否则模型会在普通问题上表现不错,但遇到真实复杂任务时退化明显。

08

人工抽检与评估闭环

最后必须建立训练前后的闭环。训练前要对每个批次做抽检,关注高分样本是否真的高质量、被过滤样本是否存在误杀、不同领域是否失衡。训练后要通过离线基准、人工偏好评审、业务 badcase 和安全测试观察模型变化,再把问题回流到数据清洗规则中。例如模型变得啰嗦,可能要检查答案长度分布;模型拒答过度,可能要检查安全样本比例;模型事实错误增加,可能要提高事实核验门槛。数据清洗应当是迭代系统,而不是训练前的一次性脚本。

易错点

  • 只把数据清洗理解成删除脏词和乱码,忽略指令与回答是否真正一致。
  • 一味追求高分样本,删除复杂难例,导致模型在真实多约束任务中表现变差。
  • 只做完全去重,不处理近似重复、模板化回答和批量生成痕迹。
  • 忽视多轮对话的角色边界和上下文连续性,让模型学到混乱的对话结构。
  • 安全合规只靠关键词过滤,误删安全解释样本,同时漏掉隐含风险内容。
  • 没有人工抽检和训练后评估闭环,无法判断清洗规则是否真的改善模型。

面试官追问

SFT 数据清洗和预训练数据清洗有什么区别?

预训练数据清洗更关注大规模语料的基础质量、去重、毒性过滤和领域分布,目标是让模型学习语言和知识。SFT 数据清洗更关注指令和回答之间的对齐关系,包括是否遵守用户意图、角色格式是否正确、答案是否可用、安全边界是否合适。SFT 样本量通常更小,但单条质量对模型行为影响更直接。

为什么不能只用模型打分来决定数据去留?

模型打分效率高,适合做大规模初筛,但它可能偏好流畅、长篇、看似完整的回答,却忽略事实错误、业务约束和隐含安全风险。只依赖模型打分还可能放大已有模型偏见。更稳妥的做法是规则过滤、模型评分、领域校验和人工抽检结合,并定期用训练后 badcase 校准打分标准。

多轮 SFT 数据最容易出什么问题?

多轮数据常见问题是上下文断裂、角色混乱、历史信息被后续回答矛盾引用、某一轮指令缺失但回答仍像独立样本、或者 assistant 在没有用户要求时主动扩展过多。清洗时要检查每一轮是否依赖前文、是否保持同一任务目标、是否存在无效轮次。必要时可以拆成单轮、修正上下文或整条删除。

安全合规过滤会不会损失模型能力?

如果做成简单关键词删除,确实可能损失能力,因为模型会缺少对敏感问题的边界判断训练。更好的做法是删除危险执行型样本,保留经过审核的安全回答样本,让模型学会拒绝不当请求、解释原因,并在合规范围内给出替代信息。这样既降低风险,也提升模型在真实场景中的稳健性。

如何判断清洗后的 SFT 数据是否真的更好?

不能只看清洗掉了多少比例,而要看训练后的模型是否在目标能力上提升。可以比较清洗前后模型在指令遵循、事实性、安全性、多轮一致性、领域任务和人工偏好评审上的表现,同时观察是否出现拒答增加、回答变短、风格单一等副作用。若评估发现问题,应回到数据分布、规则阈值和抽样策略继续迭代。