外观
大模型训练数据构建与微调策略
内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。
1. 各阶段训练数据格式
| 训练阶段 | 数据格式 | 说明 |
|---|---|---|
| SFT(有监督微调) | 一问一答 | 指令 + 期望输出 |
| RM(奖励模型) | 一个问题 + 一条好回答 + 一条差回答 | 偏好对比数据 |
| PPO(强化学习) | 理论上不需要新增数据 | 提供一些 prompt 即可,可用 SFT 阶段的问题;限制模型不要偏离原模型(ptx loss),也可直接用 SFT 数据 |
2. 数据集从哪里找?
推荐 Alpaca-CoT,数据集整理非常全面,包括常用的 alpaca、CoT 等数据集,且有中文版本。
3. 微调需要多少条数据?
| 数据分布情况 | 所需数据量 | 说明 |
|---|---|---|
| 与预训练数据分布一致 | ~100 条 | 即可达到效果 |
| 分布差异较大 | 千条~万条以上 | 需要更多数据 |
| 任务复杂/冷门行业 | 需要较多监督数据 | 如药品名称识别任务 |
注意:微调大模型时,一遍是记不住的。100 条微调数据,
epochs=20才能稳定拟合任务要求。
4. 有哪些大模型的训练集?
4.1 预训练数据集
RedPajama-Data-1T(红睡衣)开源计划:
| 项目 | 说明 |
|---|---|
| 子集数量 | 7 个子集 |
| Token 数量 | 大致匹配 Meta 在原始 LLaMA 论文中报告的数量 |
| 存储容量 | 压缩后 3TB,解压后 5TB |
| 预处理脚本 | 已开源 |
4.2 CoT 微调数据集
Alpaca-CoT:包括常用的 alpaca、CoT 等数据集,包含中文数据。
5. 领域大模型预训练选用什么数据?
通过分析现有开源大模型的预训练过程,发现会加入数据、论文等内容,主要因为:
| 数据特性 | 说明 |
|---|---|
| 数据质量高 | 论文等数据质量较高 |
| 领域相关性强 | 与目标领域高度相关 |
| 知识覆盖度大 | 密度大,让模型更适应"考试" |
同时,领域相关的网站内容、新闻内容也是比较重要的数据来源。
领域大模型构建三要素
- 高质量、大规模、高覆盖度的预训练数据集
- 在预训练数据集上训练出的基础模型
- 指令调优数据集和模型,比基本模型更安全、可靠
6. 如何选取和构建大模型微调数据?
6.1 问题背景
数据分布通常符合长尾分布:主要类别占据 90% 数据量,剩余 90% 的类别只有 10% 数据量。
例如:小红书上 query 的意图识别里,美食、穿搭、旅游攻略类非常多,技术类较少。直接采样线上数据标注会导致攻略类数据远多于技术类,人力成本浪费且模型效果因数据不平衡而不佳。
6.2 主动学习的两个基本原则
| 原则 | 核心思想 | 实现方法 |
|---|---|---|
| 数据多样性 | 去重,避免重复数据 | 相似度度量 + 聚类过滤 |
| 数据不确定性 | 选取模型学得不好的数据 | 过滤 PPL 差或概率低的数据 |
6.3 数据多样性的实现
去重方法
| 方法 | 说明 |
|---|---|
| 对比学习语义向量 | 基于 contrastive learning 构造的语义相似度(主流) |
| 词袋/TF-IDF | 简单的基于词频的相似度度量 |
| One-pass 聚类 | 简单的聚类过滤方法 |
| K-Center-Greedy | 在最大化多样性情况下使指令数据集最小 |
寻找与已有数据不同的数据
一个简单实用的半监督方案:
步骤1: 已有高质量数据打标签 1,待筛选数据打标签 0
步骤2: 用 DeBERTa 构建二分类模型
步骤3: 进行 K-fold 交叉验证
步骤4: 选出每个 fold 测试集中概率接近于 0 的样本
→ 这些就是与已有数据"长得不一样"的数据该方案可广泛应用于其他场景:只要有种子数据,就能选出"长得像"或"长得不像"的数据。
6.4 数据不确定性的实现
| 方法 | 说明 |
|---|---|
| PPL 过滤 | 选出模型 PPL 值较差的数据 |
| 概率和过滤 | 计算所有选项的概率之和,过滤概率和低的数据 |
副作用:选出的数据可能质量本身就差,而非模型学得不好。因此需要借助 Reward Model(广义的质量二分类模型,如 DeBERTa)进行数据质量判断。
6.5 构建方法总结
| 方法 | 类别 | 核心思路 |
|---|---|---|
| Self-Instruct | 自生成 | 从语言模型生成指令、输入和输出样本,清洗后微调 |
| 主动学习 | 人工+模型辅助 | 数据多样性 + 数据不确定性 |
监督学习中主动学习的核心:寻找多样性的数据和模型不确定性的数据。实践中使用的聚类去重、对抗半监督过滤、自建 reward 二分类等方法虽然学术上并不高深,但都是实践中总结出的有效方法。