Theme
下面这两讲其实是一组:Lecture 18 讲“数据不够/数据不干净时,如何合成数据”;Lecture 19 讲“资源有限时,如何决定模型、数据、算力的配比”。核心逻辑是:
真实数据有限 → 需要 synthetic data 扩展/清洗/对齐 → 但合成数据也有质量风险 → 需要 correctness、complexity、diversity、fidelity 评估;同时,训练大模型不能只问“模型多大”,而要问在固定 compute 下如何分配参数量 、数据量 、算力 。
Lecture 18:Synthetic Data
1. 本讲核心目标
本讲要解决的问题是:当真实数据不足、重复使用真实数据收益递减、人工标注昂贵、数据质量参差不齐时,如何通过合成数据构造更大、更干净、更有覆盖度的数据集,并且如何评估合成数据是否可靠。
它的“进化树”是:
原始真实数据 → 直接重复训练:早期有用,但边际收益下降 → 教师模型生成数据:便宜、规模大,但可能 hallucinate → retrieve-and-transform / extract-and-rewrite:引入真实来源 grounding → self-instruct / self-guide / evol-instruct:从少量 seed 自动扩展任务 → multi-agent / AI rating:用 AI 互评或路由降低人工成本 → synthetic data evaluation:用 correctness、complexity、diversity、fidelity 控制质量。
2. 为什么需要 synthetic data
第一,真实数据增长慢,但大模型消耗数据越来越快。课件把数据比作石油:消耗速度超过“探明储量”的增长速度。Llama 3、Qwen2.5、GPT 系列都使用了大规模网页、代码、偏好、指令、多模态等数据,其中 Llama 3 超过 15T tokens,Qwen2.5 约 18T tokens,而 GPT-3 是 300B tokens。
第二,重复同一批数据不是等价于新数据。设真实数据重复训练 次,早期 loss 会下降,但随着 repetition 增加,return on compute rapidly diminishes。直觉是:第一次看到样本时模型学到新模式;之后更多是在强化已见模式,新增信息量下降。
第三,合成数据可以降低 hallucination。方法是构造“应该拒答”“应该承认不确定”的数据,让模型学会在高不确定性下不要强答。这里和 factuality、sycophancy、FactKB 等方向相关。
第四,真实 instruction data 可能质量很差。例如 Alpaca 的 52k IFT 数据中存在 incorrect / irrelevant responses;AlpaGasus 的思想是筛掉低质量样本,用更少但更高质量的数据达到相近甚至更好效果,同时降低训练成本。
第五,合成数据也可用于 evaluation,尤其是 red-teaming。真实 organic data 不一定覆盖 jailbreak、政治迎合、反社会人格、closed-mindedness 等极端 case,所以需要受控生成测试集。
3. Synthetic data 的类型
课件列出的主要类型包括:self-instruct data、code data、math data、preference data。它们对应不同目标:
self-instruct 主要服务 instruction following;code data 可以通过 execution 自动验证;math data 关注推理步骤和答案正确性;preference data 服务 RLHF / DPO / reward model / alignment。
4. 方法演进一:Prompting a Teacher LLM
教师模型生成数据的基本范式是:
其中:
:任务输入、prompt 或 seed instruction。 :教师模型生成的 label、response 或 pairwise judgment。 Teacher LLM:通常是能力更强的模型,例如 GPT-4。 Student model:用这些合成数据训练的小模型,例如 Llama2-7B。
逻辑直觉:当人工标注稀缺时,强模型可以充当标注器,把自己的知识蒸馏给小模型。这也叫 model distillation。课件例子是生成 sentence pairs:same meaning、somewhat similar、completely different。
局限是:教师模型错了,学生会系统性继承错误。例如 “bank” 的两个句子可能词形相同但语义不同,如果被错误标成 similar,student embedding model 会学到错误相似性。
重要程度:★★★★★。这是后续所有 synthetic data 方法的基础。
5. 方法演进二:Retrieve and Transform
教师模型纯生成的问题是缺少 grounding,容易产生不真实样本。因此引入:
其中:
Corpus:已有真实数据集、文档、知识库。 :检索到的相关内容。 Transform:把 改写成目标任务格式。 :最终 instruction-response 或 labeled data。
它解决的问题是:不是让 LLM 凭空造,而是先从真实资料中 retrieve,再 transform 成任务数据。这样可以降低 hallucination。缺点是最终质量高度依赖 retrieval quality;如果 retrieve 错,transform 再好也会生成错误数据。
重要程度:★★★★☆。考试可能问 pros/cons。
6. 方法演进三:Extract and Rewrite
Web 上有很多有用 QA,但被广告、评论、导航栏、无关文本污染。因此流程变成:
其中:
Extract:用 heuristic rules 或 classifier 提取有用内容。 Score / Filter:用 LLM 或规则筛选高质量样本。 Rewrite:统一成 instruction-response 格式。
例子:网页里有 “Solve ”、广告、用户评论、推荐内容。好的重写是:
Instruction: Solve the equation . Response: , because subtracting 3 gives , dividing by 2 gives .
坏的重写会把广告和评论混入任务。
关键公式推导:
两边减 3:
两边除以 2:
符号定义: 是未知变量; 是 的二倍;等号表示左右表达式相等。这个例子用于说明 instruction data 必须保留核心数学内容,不能混入网页噪声。
重要程度:★★★★☆。
7. 方法演进四:Rephrasing
Rephrasing 的思想是:不引入新知识,只改变表达形式。
其中:
:原始文档。 :第 个改写版本。 :生成的不同风格数量。
优点:保留原知识,hallucination 风险较低。 缺点:LLM 改写可能引入自己的风格偏好,让数据 tone 更统一,反而降低多样性。
重要程度:★★★☆☆。
8. 方法演进五:Knowledge Graph Extraction
当领域数据少、私有、不在网上时,可以从小规模文档构建知识图谱,再生成文本:
知识图谱三元组一般写作:
其中:
:subject,主体实体。 :predicate,关系。 :object,客体实体。
例如:
这表示 Penicillin 治疗 bacterial infections。优点是能把小 corpus 扩展成大 synthetic corpus。缺点是 relation extraction 错误或 LLM 误解关系都会导致不忠实数据。课件例子中,知识库只说 Penicillin treats bacterial infections,但生成答案提到 PBP 和 cell wall synthesis,这是额外机制知识,不在 KG 中,因此不 faithful。
重要程度:★★★★☆。
9. 方法演进六:AI Rating / Hybrid Preferences
问题:human feedback 准确但贵;AI feedback 便宜但可能错。因此学习一个路由器:
其中:
:待标注样本。 :路由决策函数。 Human:交给人类标注。 AI:交给语言模型标注。
目标是把困难、高风险、不确定样本交给人,把简单样本交给 AI,从而降低标注成本。缺点是路由模型本身如果判断错,可能把关键样本交给不可靠 AI。
重要程度:★★★☆☆。
10. 方法演进七:Self-Instruct
Teacher LLM 依赖 API,成本高。Self-Instruct 让模型从少量人工 seed 自动扩展任务:
其中:
:人工写的 seed tasks,例如 175 个。 :模型生成 instruction 和 instance 的过程。 :第 轮生成后的任务池。
优点:大幅扩展 instruction data,例如从 175 seed 到 100k examples。缺点:seed 质量决定上限;生成任务可能表面多样但实际单一,例如大量 translation / rewrite 任务。
重要程度:★★★★★。
11. 方法演进八:Self-Guide
Self-Instruct 的问题是生成质量不稳定,所以 Self-Guide 加入结构化示例和过滤:
它通过 task examples 控制数据生成,减少随机低质输出。缺点是示例本身可能 incomplete 或 biased。例如 toxicity detection 的示例只覆盖直接辱骂,就可能漏掉 sarcasm、coded harassment、context-dependent abuse。
重要程度:★★★★☆。
12. 方法演进九:Evol-Instruct
Self-Instruct 主要扩展数量;Evol-Instruct 进一步扩展复杂度。它从简单 instruction 出发,迭代增加难度:
其中:
:第 轮 instruction。 :evolution operation。 常见操作包括 In-Breadth Evolving、Deepening、Add Constraints、Concretizing、Increasing Reasoning、Complicating Input。
优点:自动生成复杂任务,减少人工设计。 缺点:复杂不等于有用,可能生成不现实任务。例如从 演化到 “How to prove in the Goldbach Conjecture?”,这增加了不必要难度,还引入未解决数学问题背景。
重要程度:★★★★★。
13. 方法演进十:Multi-Agent Methods
单个模型容易重复自己的 bias。Multi-agent 方法让多个 AI agent 互评、修订、过滤:
其中:
:第 个 agent。 :agent 数量。 Filtered Dialogues:最终保留为训练数据的对话。
优点:外部 critique 可以减少单模型偏差。 缺点:agent 之间可能互相强化错误,而且计算成本高。课件例子说明,在社会争议问题中,多个反馈可能共同推动回答向单一价值立场偏移。
重要程度:★★★☆☆。
14. Synthetic Data Evaluation
14.1 Correctness
Correctness 检查 response 是否真正 follow instruction。对 code generation,可以执行代码并和 ground truth 比较;对 free-text generation,可以用 LLM-as-a-judge,但 judge LLM 不一定可靠,所以也需要 explicit checking rules。
形式化地,给定 synthetic pair:
定义 correctness function:
其中:
:第 个 instruction。 :模型生成 response。 :满足指令和答案正确。 :不满足。
重要程度:★★★★★。
14.2 Complexity
Complexity 衡量合成数据是否太简单。可以从 CoT steps、constraint 数量、domain knowledge depth 来评估。形式化可以写成:
其中:
:推理步骤数量。 :约束数量。 :领域知识深度。 :不同因素的权重。
直觉:如果 synthetic data 都是简单题,模型无法学会复杂指令;但如果复杂度被机械提高,也可能变成不现实任务。
重要程度:★★★★☆。
14.3 Diversity:Self-BLEU
Self-BLEU 用来衡量一组文本之间是否太相似。对于数据集:
Self-BLEU 可写成:
其中:
:第 条文本。 :除它之外的文本集合。 BLEU:衡量候选文本和参考文本的 n-gram overlap。 Self-BLEU 高:样本彼此相似,多样性低。 Self-BLEU 低:样本差异大,多样性高。
重要程度:★★★★★。
14.4 Diversity:Similarity Matrix / Vendi Score
另一种方法是构建 similarity matrix:
其中:
:第 和第 个样本的相似度。 :可以是 embedding cosine similarity,也可以是图像/文本相似度。 :样本数。
Vendi Score 的直觉是:对 similarity matrix 做谱分解,用特征值分布的 entropy 衡量“有效独特样本数”。如果所有样本很相似,谱集中,diversity 低;如果样本覆盖多个模式,谱更分散,diversity 高。
重要程度:★★★★☆。
14.5 Diversity-aware Greedy Selection
流程是:
形式化地,假设每个样本有质量分数 ,相似度阈值 ,选择集合 。按 从高到低遍历,如果:
则加入:
否则丢弃。直觉是:既要高质量,也不要重复。
重要程度:★★★★☆。
14.6 Fidelity
Fidelity 检查 synthetic data 是否忠于原始事实或 transformation 前的数据。课件例子:
Original: “Only the director may authorize budget overrides.” Rephrased: “The director may only authorize budget overrides.”
这两句不等价。第一句意思是“只有 director 有权限授权”;第二句可能变成“director 只能授权 budget overrides,不能做别的”。所以表面相似不代表语义忠实。
可用 embedding / NLI 模型过滤:
其中:
:原句。 :改写句。 RoBERTa-MNLI:判断蕴含/语义一致性的模型。 :过滤阈值。 若分数低,说明改写可能改变事实。
重要程度:★★★★★。
15. Synthetic Data 的局限
第一,mode collapse。LLM 是训练数据分布的近似器,反复“合成—训练—再合成”可能丢失细节,保留模板化表达,例如 “Sure, I am glad to help”。这些 boilerplate 不如深层事实细节有价值。
第二,lack of data provenance。合成数据被吸收到参数后,很难追踪某个错误行为来自哪条数据。循环越多,追踪越困难。
第三,data leakage。简单 n-gram 或 similarity check 可以发现一部分测试集泄漏,但复杂 rephrasing 后,泄漏更难检测。
重要程度:★★★★★。
Lecture 19:Scaling Laws
1. 本讲核心目标
Lecture 19 要回答:如果我有固定训练预算,应该投到模型参数 、训练数据 ,还是算力 ?这不是简单的“模型越大越好”,而是一个 compute-optimal allocation 问题。
核心进化树:
模型变大 → 发现大模型 few-shot 更强 → 训练成本暴涨 → 需要 scaling law 预测收益 → FLOPs 建模: → Kaplan:更大模型更 data-efficient → Chinchilla:固定 compute 下,模型和数据要平衡 → variants:batch size、learning rate、data quality、多模态 scaling → limitations:downstream inverse scaling、data heterogeneity。
2. Scaling 的三个变量
课件定义:
Scaling 不是单独增大某一个维度,而是平衡 。如果 增大但 不变,容易 memorization / overfitting;如果 增大但 太小,模型 capacity 不够;最优情况是 一起合理增长。
重要程度:★★★★★。
3. FLOPs 基础
FLOP 表示一次 floating-point operation,可以是加、减、乘、除。训练 Transformer 的主要成本来自矩阵乘法,例如 attention query、projection、feed-forward。课件中忽略 bias、LayerNorm、residual、nonlinearity、softmax 等较小项。
矩阵-向量乘法:
每个输出元素:
计算一个输出需要 次乘法和约 次加法,所以约 FLOPs。共有 个输出,所以总 FLOPs:
矩阵-矩阵乘法:
输出:
每个元素需要 FLOPs,共 个元素,因此:
重要程度:★★★★★。
4. 为什么训练成本是
课件给出的核心公式是:
推导如下。
设模型非 embedding 参数总数为 ,每个 token 前向传播大约每个参数参与一次乘加,因此:
训练数据有 个 tokens:
反向传播大约是前向传播的两倍,因为需要计算对 hidden state 的梯度和对参数的梯度:
所以总训练 FLOPs:
符号定义:
:训练总计算量。 :模型参数量。 :训练 token 数。 :一个 token 前向传播的近似 FLOPs。 :一个 token 反向传播的近似 FLOPs。 :所有 token 上的总训练成本。
直觉:训练成本同时正比于模型大小和数据量。固定 时,增大 必须减少 ,反之亦然。
重要程度:★★★★★,考试必考。
5. Transformer 参数量估算
课件给出近似公式:
其中:
:Transformer 层数。 :hidden dimension。 :词表大小。 :position embedding 数量。 第一项 :非 embedding 参数,主要来自 attention 和 FFN。 第二项 :embedding 参数。
例子:,。
非 embedding:
若 vocab size ,position embedding size :
所以总参数约:
重要程度:★★★★★。
6. 训练成本计算例子
如果:
则:
约为:
另一个例子:HyperCLOVA,,。
若使用 1024 张 A100,每张 peak throughput:
总吞吐:
理论时间:
但实际训练用了 13.4 days,因为估算忽略 softmax、GELU、LayerNorm、通信开销、显存带宽、activation swapping、checkpointing、data loading、OOM recovery 等。
重要程度:★★★★★。
7. Kaplan Scaling Laws
Kaplan 的结论可以概括为:预训练 cross-entropy loss 随 scale 呈 power-law 下降,大模型通常更 data-efficient。
power-law 一般形式:
其中:
:在 compute 下的 loss。 :比例常数。 :scaling exponent,决定下降速度。 :irreducible loss,即无限扩展后仍无法消除的损失。
课件中图示:蓝色曲线是固定模型大小下随训练步数变化的 loss;黑点是不同模型下最低 loss,形成 compute-efficient frontier;橙色虚线是 power-law fit。
Kaplan 的核心直觉:更大模型有更陡的 loss curve,因此同样数据下能更有效提取模式,达到更低最终 loss。
局限:这容易被误读成“模型越大越好”,但没有充分考虑固定 compute 下数据量不足的问题。
重要程度:★★★★★。
8. Chinchilla Scaling Law
Chinchilla 修正了 Kaplan 的观点:在固定 compute 下,很多旧大模型是 under-trained,即参数太多、tokens 太少。Chinchilla 发现较小模型 + 更多数据可以在同等 compute 下更强。例子:Chinchilla 70B 用 1.4T tokens,在相同 compute 下优于 Gopher 280B。
Chinchilla 的实验方式是 IsoFLOP curves:固定 FLOPs ,改变模型大小 ,因为:
所以:
当 固定, 越大,能训练的 越少; 越小,能训练的 越多。对每个 ,找到 loss 最低的 和 。
Chinchilla 近似得到:
课件表中 Chinchilla 的 约都接近 ,而 Kaplan 是:
这说明 Kaplan 更偏向增加参数,而 Chinchilla 更强调参数和数据近似同步增长。
重要程度:★★★★★,期末高概率考 Kaplan vs Chinchilla。
9. Kaplan vs Chinchilla 对比
| 维度 | Kaplan | Chinchilla |
|---|---|---|
| 核心结论 | Bigger models often achieve better final performance | Fixed compute 下模型和数据要平衡 |
| 关注点 | Loss 随模型、数据、compute 的 power-law | Compute-optimal allocation |
| 倾向 | 增大参数更重要 | 参数和 tokens 共同增长 |
| 风险 | 可能训练出 under-trained large model | 要求更多高质量 tokens |
| 代表例子 | 更大模型更 data-efficient | 70B Chinchilla + 1.4T tokens 优于 280B Gopher |
一句话记忆:Kaplan 说“大模型更有效”;Chinchilla 说“别只变大,数据也要跟上”。
10. Scaling Law Variants
第一,batch size 和 learning rate 也有 scaling law。随着 compute 增大,optimal batch size 增大,optimal learning rate 减小。这样可以用小规模实验预测大规模训练的超参数,避免昂贵 grid search。
第二,data quality 影响 scaling。FineWeb-Edu 用 38B 高质量 tokens 达到某准确率,而低质量 Matrix dataset 需要约 300B tokens 才达到类似效果。传统 scaling law 把 token count 当主要变量,但实际上 token quality 不是常数。
第三,多模态模型也可能存在 scaling law,不只 text-only LLM。
重要程度:★★★★☆。
11. Scaling Laws 的局限
第一,pretraining loss 不一定预测 downstream performance。Scaling law 通常拟合 next-token cross-entropy loss,但 downstream task 可能依赖 reasoning、instruction following、robustness、factuality、safety,而不是单纯 next-token likelihood。
第二,inverse scaling 可能出现:模型越大,某些任务越差。原因包括:模型更倾向复述 memorized sequences,而不是遵循 in-context instruction;训练数据中存在 undesirable patterns;任务包含 easy distractor,模型抓住捷径;few-shot demonstrations 正确但 misleading。
第三,data filtering 不能 compute-agnostic。小 compute 下,干净小数据最好;大 compute 下,适当加入 noisy data 可能有利。也就是说,最优数据策略依赖 compute budget,而不是固定一个“低质量全部丢掉”的规则。
重要程度:★★★★★。
最后:期末复习重点排序
最高优先级: 的推导;矩阵乘法 FLOPs;Kaplan vs Chinchilla;IsoFLOP curve;Synthetic data 的 correctness / complexity / diversity / fidelity;Self-Instruct / Evol-Instruct 的动机、流程、缺点。
中高优先级:retrieve-and-transform、extract-and-rewrite、knowledge graph synthesis、AI rating、multi-agent critique。
中等优先级:rephrasing、red-teaming、batch size / learning rate scaling、FineWeb data quality scaling。
一句总括:Lecture 18 解决“数据从哪里来、怎么保证质量”;Lecture 19 解决“有了数据和模型后,如何在固定算力下最优扩展”。