Q1090项目实战与企业级真题解析通用与软实力AgentAlpha 社区真题库约 8 分钟更新 2026-09-29

How to create fine-tuning datasets for Q&A

面试官想看的不是你会不会“爬数据”,而是你能否系统性地构建一个高质量、低噪声、可复现的微调数据集。考察类型是工程取舍 + 系统设计。刁钻点在于:很多人只关注“数据够不够多”,却忽略了数据分布与模型能力之间的匹配——比如用

How to create fine-tuning datasets for Q&A

1️⃣ 考察意图

面试官想看的不是你会不会“爬数据”,而是你能否系统性地构建一个高质量、低噪声、可复现的微调数据集。考察类型是工程取舍 + 系统设计。刁钻点在于:很多人只关注“数据够不够多”,却忽略了数据分布与模型能力之间的匹配——比如用纯 FAQ 数据微调,模型在开放域问答上反而退化。答好了能展示你对数据质量、多样性、标注一致性的工程把控力,以及从业务目标反推数据策略的思维。

2️⃣ 标准答

构建 Q&A 微调数据集,核心是从业务场景出发,逆向设计数据配方。分四步走:

第一步:数据来源与采集策略

  • 现有日志:客服对话、FAQ、论坛问答。优势是真实分布,但噪声大(拼写错误、多轮上下文丢失)。解法:用 正则 + 规则 过滤掉长度 < 5 字或 > 500 字的问题,再用 BERT 语义相似度 去重(cosine < 0.85 保留)。
  • 文档抽取:从产品文档、Wiki、论文中自动生成 Q&A。用 LLM 自问自答(如 GPT-4 生成问题,再让另一个模型验证答案)。坑:LLM 会生成“幻觉”答案,必须加事实性校验——比如用 BM25 召回原文段落,计算答案与原文的 ROUGE-L 分数,低于 0.3 的丢弃。
  • 人工标注:对于高价值场景(如医疗、法律),必须引入专家。成本高,但质量可控。Trade-off:人工标注 1000 条的成本约 5 万元,但能降低模型 30% 的幻觉率【通用知识】。

第二步:数据格式与模板设计

  • Chat Template:使用 Llama 或 ChatML 格式,明确区分 system / user / assistant 角色。例如:

<|system|>你是一个金融客服助手。</s>**<|user|>什么是复利?</s> <|assistant|>复利是指利息再生利息的计算方式……</s>

  • Instruction 变体:同一个问题写 3-5 种问法(“解释一下复利”、“复利怎么算”、“复利和单利区别”),增强泛化性。坑:变体不能改变语义,用 Sentence-BERT 计算 embedding 相似度,确保 > 0.8。 第三步:质量控制与清洗**

  • 答案准确性:对每个答案,用 GPT-4 作为评判器,打分 1-5 分,低于 3 分的重写。Trade-off:GPT-4 评判有偏差(偏好长答案),所以需要人工抽检 10% 做校准。

  • 覆盖边缘情况:加入否定问题(“复利不是这样算的吧?”)、多跳问题(“如果本金 100 万,年利率 5%,10 年后复利多少?”)、无答案问题(“复利和微积分有什么关系?”)。这些能提升模型的鲁棒性。

  • 分布平衡:统计问题类型(定义、计算、对比、应用),确保每种至少占 10%。如果某类不足,用 LLM 生成 补充。

第四步:验证与迭代

  • 划分:80% 训练,10% 验证,10% 测试。验证集必须包含人工标注的黄金数据。
  • 评估指标:用 BLEU / ROUGE-L 衡量生成质量,但更关键的是人工评估——让 3 个标注员对 100 条测试集打分,计算 Fleiss' Kappa 一致性,低于 0.6 说明标注标准不统一,需要重新定义。
  • 迭代:如果模型在验证集上过拟合(训练 loss 下降但验证 loss 上升),说明数据量不足或多样性不够。解法:增加 20% 的负样本(错误答案对),或者用 数据增强(回译、同义词替换)。

实际落地的坑:一次项目中,我们用了 5000 条客服日志微调,结果模型在开放域问答上性能下降 15%。原因是客服数据中 80% 是“退货流程”类问题,导致模型灾难性遗忘了通用知识。解法:混合 30% 的通用问答数据(如 SQuAD、Natural Questions),并设置学习率衰减(前 10% 步骤用 1e-5,后 90% 用 5e-6),保留预训练知识。

3️⃣ 答题模板(30 秒电梯版)

“这个问题我从数据来源、格式设计、质量控制三个层面回答。数据来源上,优先用客服日志和文档抽取,但必须加事实性校验和去重;格式上,用 Chat Template 并生成指令变体;质量控制上,用 GPT-4 评判 + 人工抽检,并平衡问题类型分布。总结一句:微调数据集的核心不是数量,而是分布匹配业务目标、质量经过多轮校验。”

4️⃣ 高频追问 & 应对

追问 1:如果只有 100 条标注数据,怎么构建数据集?

用数据增强:对每条数据做回译(中→英→中)、同义词替换(用 WordNet 或 BERT 掩码预测)、句式变换(主动变被动)。同时,用 Few-shot 学习 替代微调——把 100 条数据作为示例,直接 prompt 模型。如果必须微调,用 LoRA(rank=8)只更新 0.1% 的参数,防止过拟合。Trade-off:增强后的数据可能引入噪声,所以需要人工抽检 20% 确保语义不变。

追问 2:如何检测并去除数据中的“幻觉”答案?

用事实性校验:对每个答案,用 BM25 从原始文档中召回 Top-3 段落,计算答案与段落的 ROUGE-L 分数。低于 0.3 的丢弃。更高级的做法:用 NLI 模型(如 DeBERTa-v3)判断答案是否被段落蕴含,蕴含概率 < 0.5 的丢弃。坑:NLI 模型对长文本不敏感,所以需要分段处理。

追问 3:数据集中问题类型严重不平衡(80% 是定义类),怎么办?

用重采样:对少数类(计算、对比)做上采样,复制 3-5 次。或者用 LLM 生成:给 GPT-4 一个定义类问题,让它生成 3 个对比类变体(如“复利和单利有什么区别”)。Trade-off:生成的数据可能质量低,所以需要人工校验 50%。更根本的解法:从业务日志中重新采样,只取 20% 的定义类,其余从其他渠道补充。

5️⃣ 避坑 · 常见错误答法

  • ❌ “直接用开源数据集(如 SQuAD)微调就行。” → ✅ “开源数据集分布与业务场景不同,必须混合至少 30% 的领域数据,否则模型在真实场景中性能下降。”
  • ❌ “数据越多越好,爬 10 万条就行。” → ✅ “数据质量比数量重要。1000 条高质量数据(经过人工校验和分布平衡)效果优于 10 万条噪声数据。”
  • ❌ “用 GPT-4 生成所有数据,不需要人工。” → ✅ “GPT-4 生成的数据有系统性偏差(偏好长答案、避免否定),必须人工抽检 10% 并校准评判标准。”

6️⃣ 简历呼应

  • 如果你有 RAG 项目:从“数据来源”切入,强调你如何从文档中抽取 Q&A 对,并用 BM25 校验事实性。可以提到你处理过“文档分块大小对生成质量的影响”。
  • 如果你只做过传统 NLP:用“数据增强”类比迁移,比如你用过回译做文本分类的数据增强,现在扩展到 Q&A 场景。强调你对“分布平衡”的理解。
  • 如果你是校招无项目:聚焦“质量控制”论文复现,比如你读过《Scaling Data-Constrained Language Models》并实现过数据清洗 pipeline。可以提到你用 SQuAD 做 demo,并手动添加了 50 条边缘案例。
  • 《Scaling Data-Constrained Language Models》(数据量与模型性能的关系)
  • 《The Power of Scale for Parameter-Efficient Prompt Tuning》(LoRA 微调与数据量)
  • 《Self-Instruct: Aligning Language Models with Self-Generated Instructions》(LLM 自生成数据)
  • 《Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?》(Few-shot 与微调对比)
  • 《A Survey of Data Augmentation Approaches for NLP》(数据增强方法综述)

—— 本场面试完 ——

我们不做玩具级 Demo 教学。训练营的作业是开源项目和论文——我们想陪伴你,做出能改变生活、最后改变世界的项目。