Skip to content

下面这两讲其实是一组: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 对比

维度KaplanChinchilla
核心结论Bigger models often achieve better final performanceFixed compute 下模型和数据要平衡
关注点Loss 随模型、数据、compute 的 power-lawCompute-optimal allocation
倾向增大参数更重要参数和 tokens 共同增长
风险可能训练出 under-trained large model要求更多高质量 tokens
代表例子更大模型更 data-efficient70B 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 解决“有了数据和模型后,如何在固定算力下最优扩展”。

Static academic notes built with VitePress and KaTeX.