公司真题库

【字节跳动】微调用的训练数据如何构造?如何在保证多样性的同时兼顾质量?

91学AI·2026/7/27·8 阅读

考察点

这道题出自字节跳动大模型智能体算法岗一面,考的是 SFT 阶段最核心的工程能力——数据构造。面试官想听的优先级很清楚:你知不知道数据质量对微调效果的支配性影响(LIMA 那种「一千条精数据胜过十万条脏数据」的结论),多样性从哪几个维度设计,质量用什么手段过滤。追问一般往「合成数据怎么保证不跑偏」「数据配比怎么调」方向走。

参考答案

先立原则:质量是乘数,数量是加数

微调数据和预训练数据的逻辑完全不同。预训练拼规模,SFT 阶段模型的大部分能力已经在基座里,微调做的是行为对齐和格式塑造——你给什么行为样本,模型就学什么行为,包括坏习惯。一条事实错误、格式混乱、风格敷衍的样本教给模型的损害,十条好样本不一定救得回来。所以构造流程的每一步都要贯彻:宁可少,不能脏。

数据来源:两条腿走路

真实业务数据是主干:线上日志、客服工单、用户真实提问。优点是分布真实——用户怎么提问、问题长什么样,模型上线后就遇到什么。必须做的处理:脱敏(用户隐私信息)、筛掉无意义样本(单字提问、乱码、纯情绪发泄)、以及按合规要求取得使用授权。

合成数据是补充,解决真实数据覆盖不到的长尾:用强模型(GPT-4 级)基于种子数据做 Self-Instruct 式的指令扩展——给定几个种子任务,让模型生成同领域的新指令和回答。还有一类重要场景是构造负样本和边界样本:拒答样本(敏感问题、超出知识范围的问题该怎么答)、格式异常样本,这些真实数据里天然稀缺但对行为塑造极关键。

多样性从四个维度设计

多样性不是「话题多」一个维度,我通常按四个轴来查:

  • 任务类型:问答、摘要、改写、抽取、分类、推理、代码——按上线后的任务分布定配比,别全是问答;
  • 指令形式:疑问句、祈使句、带约束的复杂指令(「用表格回答,不超过三条」)、多轮对话——模型要见过各种提要求的方式才会听各种要求;
  • 长度分布:短问题长答案、长背景短答案都要覆盖,长度单一的后果是模型对没见过的长度组合表现不稳;
  • 难度梯度:简单事实查询到多步推理都要有,全是简单题模型学不会深入思考,全是难题训练信号太稀疏。

落地手段上,可以用一个轻量分类器或规则给已有数据打这四个维度的标签,统计分布缺口,针对性地补——比盲目堆量有效得多。

质量过滤:机器筛 + 人审

合成数据最大的风险是模型自嗨——生成内容同质化、事实性错误、答案风格带着生成模型的腔调。过滤手段分层做:

  • 规则层:去重(n-gram 或 embedding 相似度,和训练集内部比也和评测集比——数据泄漏进评测集是低级但常见的错误)、长度过滤、敏感词过滤;
  • 模型层:用强模型给每条样本的质量打分(指令清晰度、回答正确性、格式合规),低分剔除;事实类答案可以用检索验证关键事实点;
  • 人工层:按比例抽检,重点抽检新来源、新模板生成的批次。量级上常见做法是:合成十万条,机器筛掉一半,人审抽样几百条估计合格率,合格线不过就整批返工或丢弃。

配比与格式

最后两个工程细节。配比上,核心业务场景的数据占比要让模型「偏心」——上线后 80% 流量是客服问答,那问答类数据就该占大头,通用指令数据做保底防止能力偏科。格式上,所有样本统一成模型训练用的对话模板(system/user/assistant 结构、特殊 token),多轮对话样本里历史轮次的质量同样重要——脏历史会教模型忽略上下文。

收尾一句经验:SFT 项目里最划算的投入永远是把已有数据洗得更干净,而不是再合成十万条。数据问题诊断不清就上量,是给评测指标注水。

可能的追问

  • 合成数据怎么防止同质化? 答:生成时注入随机主题/风格/难度种子,强制温度采样;生成后用 embedding 聚类看分布,发现扎堆就丢弃过密簇;定期换生成模型或 prompt 模板引入多样性来源。
  • 多少数据量算够? 答:看任务复杂度。行为对齐类几千条精选就能见效,领域知识注入类需求量大得多;正确姿势是从几千条起步训一版看评测曲线,再决定加量方向,别拍脑袋定量。
  • 怎么发现数据里的事实错误? 答:关键事实用检索做自动核验;让另一个强模型对答案做事实性评审;高风险的领域(医疗、法律)必须专家人审,没有捷径。
  • 多轮对话数据构造有什么讲究? 答:轮次间要有真实的上下文依赖(指代、追问),不是把单轮 QA 机械拼接;拒答和澄清类轮次(用户问得不清楚时模型该反问)要专门构造,这是真实对话里最缺的行为样本。

评论 (0)

暂无评论,快来抢沙发吧!

91学AI

© 2026 91学AI · 按岗位学 AI 与大数据. All rights reserved.