在微调领域,“Garbage In, Garbage Out” (GIGO) 是永恒的真理。本手册旨在教你如何将原始、嘈杂的数据炼化为支撑大模型进化的高纯度“燃料”。
一、 第一阶段:深度清洗(过滤毒素)
清洗不仅仅是删减,而是通过规则与智能双重过滤。
1. 基础规则过滤 (Heuristic Filtering)
- 统计学过滤:剔除 Token 长度过短(如少于 5 个词)或过长(超出显存阈值)的样本。
- 语言纯度:利用
langdetect确保数据语种符合预期,剔除乱码和无意义字符。 - 黑名单屏蔽:剔除包含广告、敏感隐私、自我介绍废话(如“作为一个AI...”)的数据。
2. AI 智能审判 (AI-as-a-Judge)
利用性能更强的模型(如 GPT-4o, DeepSeek-V3)作为裁判,对每一条 SFT 数据进行打分。
- 评分维度:
- 指令遵循 (Alignment):模型是否回答了用户提出的所有限制条件?
- 逻辑密度 (Logic):推理过程是否严密?是否存在幻觉?
- 真诚度 (Tone):回复是否简洁直接,无冗余废话?
- 实战策略:只保留打分在 Top 20% 的黄金数据。
二、 第二阶段:语义去重(拒绝冗余)
重复或高度相似的数据会导致模型产生“模式坍塌”,只会反复说同样的话。
1. Embedding 聚类去重
- 向量化:使用 Embedding 模型(如 BGE-M3)将每一条数据转化为高维空间的向量。
- 相似度判别:计算余弦相似度(Cosine Similarity)。如果两条数据相似度 > 0.92,则视为重复,仅保留其中一条。
- 聚类分布:通过 K-Means 对数据进行聚类,观察各类任务的分布情况。
2. 离群点检测 (Outlier Detection)
- 在向量空间中孤立存在的点,通常意味着数据格式损坏、语种错误或极度偏见的样本,应予以剔除。
三、 第三阶段:多样性控制(营养配比)
模型的能力是由数据的“食谱”决定的。你需要手动干预各类任务的配比。
1. 任务配混 (Data Mixing) 黄金比例建议
- 逻辑推理 (30%):数学、编程、逻辑谜题。这是模型“智商”的核心。
- 角色对话 (20%):不同语气、背景的对话,提升模型的“情商”与交互感。
- 通用常识 (30%):各领域的百科知识,维持知识储备。
- 预训练回放 (10%):混入通用预训练数据,防止灾难性遗忘。
- 安全性 (10%):拒绝诱导、有害输入的对齐数据。
2. 长度分布配平
- 如果训练集全是长文本,模型会变得啰嗦;全是短文本,模型会丧失深度。
- 操作:监控数据集的长度分布直方图,确保长、中、短回答的比例均衡。
四、 第四阶段:数据增强(化腐朽为神奇)
当特定领域(如医疗、法律)的高质量原始数据不足时,采用“以 AI 生成 AI”的方式。
- Evol-Instruct (指令进化):
- 让 AI 将简单的指令增加复杂性(如:“解释什么是重力” -> “请结合广义相对论向一名物理系大学生解释重力”)。
- Back-translation (反向生成):
- 根据一段专业的知识内容,让 AI 反推用户可能会如何提出问题。
🛠️ 炼丹师执行清单
| 步骤 | 操作目标 | 核心指标 |
|---|---|---|
| 清洗 | 剔除脏数据、废话、敏感内容 | 数据保留率 (Retention Rate) |
| 去重 | 消除语义重复,防止过拟合 | 余弦相似度阈值 (Threshold) |
| 打分 | 选出逻辑最强的样本 | 均值分 (Mean Quality Score) |
| 配比 | 调整逻辑、代码、对话的百分比 | 任务分布直方图 |
总结:微调是一场“以质取胜”的战争。宁要 1000 条逻辑无懈可击的完美数据,也不要 10 万条充满噪音的平庸语料。