AI合成数据、模型坍缩与数据焦虑问题:合成数据的扩展定律(Scaling Law)
https://arxiv.org/abs/2503.19551
模型塌缩(Model Collapse):
当新模型越来越多地使用由旧模型生成的数据进行训练,导致数据分布逐步偏离真实世界,从而引发模型能力退化、多样性下降和错误放大的现象。
这篇论文核心是解决大语言模型(比如ChatGPT这类)训练时“高质量数据不够用”的问题,提出了一种叫“SYNTHLLM”的方法,还搞清楚了“人工合成的数据能不能像真实数据那样,越用越多就让模型越厉害”(这就是论文里说的“扩展定律”)。
用大白话拆解一下关键内容:
1. 背景:大模型遇到的“数据困境”
现在的大模型之所以能干活,靠的是提前学了海量高质量的网页数据。但最近大家发现,好的网页数据快用完了——再想靠爬网页找新数据来提升模型,效果越来越差。
这时候有人想到:既然真实数据不够,能不能让模型自己“造数据”(也就是合成数据)?但之前没人知道:这些人造的数据,能不能像真实数据那样“多喂一点,模型就强一点”?如果不行,那合成数据就没法当长期替代品。
2. 核心方案:SYNTHLLM——让模型“聪明地造数据”
之前造合成数据的方法都有毛病:要么靠少量人工标注的“种子例子”,造出来的东西千篇一律;要么直接从文档里抄问题,没新意还容易重复。
SYNTHLLM的思路不一样,它是“从海量现有文档里挖潜力”,分三步造高质量数据(以数学领域为例):
- 第一步:先筛文档。从网上的教育类数据(比如Fineweb-Edu)里,挑出真正和数学相关、质量高的文档(比如教材、考试卷、教学博客)。
- 第二步:造问题。用三种“递进式”方法生成多样化的数学题,避免重复:
- Level1:直接从文档里找现成的题,或者照着文档内容改一改、加一点新题;
- Level2:先从文档里提炼核心概念(比如“三角函数”“勾股定理”),再随机组合这些概念造题(比如把“勾股定理”和“三角形面积”结合起来出题);
- Level3:把所有文档的概念整合起来,建成一个“概念图谱”(比如“三角函数”和“复数”有关联,就连起来),再通过图谱跨文档找概念组合,造更复杂、更全面的题。
- 第三步:写答案。用专门的大模型(比如Qwen2.5-Math)给造出来的题写标准答案。
3. 关键发现:合成数据真的能“越用越香”
他们用数学题测试了不同大小的模型(10亿参数、30亿参数、80亿参数),发现了三个重要规律:
- 合成数据完全符合“缩放定律”:喂的合成数据越多,模型做数学题的错误率越低,而且这个规律能预测——比如知道现在喂1000亿词,模型能考60分,就能算出喂2000亿词能考多少分;
- 数据不是越多越好:超过3000亿词之后,再喂更多合成数据,模型提升就变慢了(边际效益递减);
- 大模型“学合成数据更快”:比如80亿参数的模型,喂1万亿词的合成数据就达到巅峰了;而30亿参数的模型,得喂4万亿词才能追上。
4. 效果:这方法是真的好用
- 比其他合成数据强:用SYNTHLLM造的数据训练模型,做数学题的成绩(比如MATH数据集、高考数学题)比其他合成数据(比如MAmmoTH2、JiuZhang3.0)都好,而且泛化能力强——比如学了数学合成数据,不仅会做类似的题,还能应对没见过的难题(比如奥林匹克数学题);
- 小模型也能逆袭:用80亿参数的模型,喂SYNTHLLM造的740万道题,成绩居然能追上甚至超过比它大很多的模型(比如720亿参数的NuminaMath-CoT);
- 不止数学能用:他们还在编程领域试了试,用同样的方法造编程题训练模型,模型写代码的能力也提升了,说明这方法能迁移到其他领域(比如物理、法律)。
5. 总结
这篇论文证明了:合成数据完全可以当真实数据的“替代品”——不仅能让模型越学越强,还能解决真实数据不够用的问题。而SYNTHLLM的核心优势就是“会利用现有文档的概念,造多样化、高质量的题”,比之前的合成数据方法更靠谱、更能规模化。
未来还能优化的地方:比如给答案加个“查重纠错”(现在没做,因为初步测试发现纠错对效果提升不大),或者把这个方法用到更多领域(比如金融、法律)。
这篇论文提出的SYNTHLLM框架,通过“筛选高质量文档→分层次生成多样化问题→匹配标准答案”三步合成数据,核心是从现有文档中提取概念并重组,避免重复且保证多样性。下面结合具体例子,详细拆解每一步的操作逻辑:
一、第一步:筛选目标领域的高质量参考文档
合成数据的前提是有靠谱的“原材料”,SYNTHLLM会先从海量网页数据中挑出和目标领域(比如数学)高度相关的文档,具体分两步:
- 冷启动筛选(找初始种子文档)
- 先根据目标领域(如数学)的课程大纲(比如高中三角函数、大学微积分大纲),用GPT-4生成一批“模拟文档”(比如模拟高中数学教材章节、考试卷解析),作为“正面例子”。
- 再从公开网页数据集(Fineweb-Edu)中随机抽一批无关文档(比如美食博客、旅游攻略)作为“负面例子”,训练一个分类器。
- 用这个分类器从Fineweb-Edu中筛选出第一批和数学相关的文档(比如真实的高中数学教案、大学微积分讲义),形成初始文档集。
- 精细化筛选(扩大并优化文档集)
- 让GPT-4o给初始文档集打分(1-10分,看相关性、清晰度、质量),保留6.5分以上的文档。
- 用这些高分文档再训练一个更精准的分类器,再次从Fineweb-Edu中筛选,重复2次后,得到约52万份高质量数学文档(比如包含三角函数、线性代数、微积分等主题的教材、习题集、教学博客)。
二、第二步:分3个层次生成多样化问题(核心步骤)
这是合成数据的关键,通过“从简单到复杂”的三层生成法,确保问题不重复、覆盖广,每个层次都有具体操作逻辑和例子:
层次1:直接提取+小幅改写(基础款)
- 逻辑:从单篇参考文档中找现成问题,或基于文档内容新增简单问题,不做复杂重组。
- 具体操作:
- 用大模型(Mistral-Large-Instruct-2407)扫描单篇文档,比如一篇讲“勾股定理”的初中数学教案。
- 若文档里有现成问题(如“直角三角形两直角边为3和4,斜边多长?”),直接提取并标注
<original_question>,也可改写(如“已知直角三角形两条直角边长度分别为3cm和4cm,求斜边的长度(结果保留整数)”)。 - 若文档内容丰富但无现成问题,新增简单相关问题(如“若直角三角形斜边为5cm,一条直角边为3cm,另一条直角边多长?”),标注
<newly_created>。
- 输出示例:
Question: 已知直角三角形两条直角边长度分别为3cm和4cm,求斜边的长度(结果保留整数) Orig_tag:<original_question> Level:<middle_school>
Question: 若直角三角形斜边为5cm,一条直角边为3cm,另一条直角边多长? Orig_tag:<newly_created> Level:<middle_school>
层次2:提取概念+随机重组(进阶款)
- 逻辑:先从单篇文档中拆出核心概念,再随机组合概念生成复杂问题,避免依赖现成问题。
- 具体操作:
- 提取概念:以一篇“三角函数+三角形面积”的高中文档为例,用大模型提取核心概念(如“正弦函数sinA”“三角形面积公式S=1/2ab sinC”“直角三角形”“钝角三角形”)。
- 随机组合:从概念中选2-3个组合(比如“正弦函数+钝角三角形+面积计算”)。
- 生成问题:基于组合和原文档,生成需要多步推理的问题,确保不重复且贴合文档内容。
- 输出示例:
Selected Concepts: [正弦函数sinA、钝角三角形、面积计算] Question: 在钝角三角形ABC中,角A为120°,AB边长为4cm,AC边长为6cm,利用正弦函数求该三角形的面积(结果保留两位小数)
Selected Concepts: [正弦函数sinA、直角三角形、斜边长度] Question: 直角三角形ABC中,角C为90°,角A为30°,BC边长为5cm,利用sinA的定义求斜边AB的长度
层次3:跨文档概念图谱+组合(高阶款)
- 逻辑:把所有筛选出的文档的概念整合为“全局概念图谱”,跨文档组合概念,生成更全面、多样的问题。
- 具体操作:
- 构建全局概念图谱:
- 把52万份数学文档的所有概念(如“勾股定理”“导数”“概率”“数列”)作为图谱节点,若两个概念经常出现在同一篇文档(如“导数”和“函数单调性”),就给它们连一条边,边的权重代表关联强度。
- 图谱最终包含3.2万个主题、20万个核心概念,比如“三角函数”节点和“复数”“几何图形”节点都有关联。
- 随机游走采样概念:
- 从图谱中随机选一个初始概念(如“导数”),通过1-2步随机游走,找到关联概念(如“函数单调性”“极值点”),再跨文档找相关概念(如从另一篇文档的“数列”概念中关联“递推数列”)。
- 最终采样出跨主题的概念组合(如“导数+函数单调性+递推数列”)。
- 匹配参考文档+生成问题:
- 找和这个概念组合最相关的2篇文档(比如一篇讲“导数与函数单调性”,一篇讲“递推数列的极值问题”)。
- 基于这2篇文档和概念组合,生成跨主题的复杂问题。
- 构建全局概念图谱:
- 输出示例:
Selected Concepts: [导数、函数单调性、递推数列] Question: 已知递推数列an满足a₁=1,aₙ₊₁ = aₙ + 1/(n(n+1)),设函数f(x) = x + aₙx²(n为正整数),求f(x)在区间(0, +∞)上单调递增时n的最小值
Selected Concepts: [概率、排列组合、导数应用] Question: 从10个不同的小球中随机抽取3个,记抽到的3个小球编号之和为X,设函数g(x) = Xx³ - 6x²,求g(x)的极大值点对应的X值的概率
三、第三步:生成标准答案(确保数据完整性)
- 逻辑:用专门的大模型给生成的问题配精准答案,不额外做验证(实验证明验证对性能提升极小)。
- 具体操作:
- 用专业领域大模型(如数学用Qwen2.5-Math-72B-Instruct,编程用Qwen2.5-Coder-32B-Instruct),给每个问题生成详细答案。
- 答案要求逻辑完整、步骤清晰,比如层次2的“钝角三角形面积”问题,答案需包含“sin120°=√3/2”“代入公式S=1/2×4×6×√3/2”“计算结果≈10.39cm²”等步骤。
- 输出示例(对应层次2的问题):
问题:在钝角三角形ABC中,角A为120°,AB边长为4cm,AC边长为6cm,利用正弦函数求该三角形的面积(结果保留两位小数)
答案:1. 已知三角形面积公式:S = 1/2ab sinC(其中a、b为两边长度,C为两边夹角);2. 本题中a=AB=4cm,b=AC=6cm,夹角C=角A=120°;3. 查三角函数表得sin120°=√3/2≈0.8660;4. 代入公式计算:S = 1/2×4×6×0.8660 = 12×0.8660≈10.39cm²;5. 最终答案:10.39cm²
四、数据合成的最终成果
- 每个层次的产出:层次1生成230万条样本(5题/文档),层次2生成260万条样本(5题/文档),层次3生成260万条样本(3题/每个概念组合),总计740万条高质量合成数据。
- 数据特点:问题中位数长度32-80字,答案中位数长度358-545字,覆盖小学到大学的数学主题,包含基础计算、奥数题、高考题等不同难度。
scaling law
论文中的 scaling law(缩放定律) 核心是:模型性能(如数学题正确率)会随“训练数据量”或“模型参数量”的增加呈现可预测的规律变化——就像“越多投入(数据/参数),越有回报(性能提升)”,且这种回报的增速、上限能通过公式量化。
结合论文语境,缩放定律分两类(有机数据+合成数据),且论文重点验证了 合成数据的缩放定律,下面用“通俗定义+公式+具体例子”拆解:
一、先明确:论文里的缩放定律分两种
1. 有机数据的缩放定律(传统版,已有研究)
指模型用“真实人类生成数据(如网页文档、教材)”训练时的规律,核心是:
模型损失(错误率)= 模型参数不够导致的损失 + 数据量不够导致的损失 + 无法降低的固有损失
公式(论文Eq.1):
- 通俗解释:
- (N):模型参数量(比如30亿参数、80亿参数);
- (D):训练数据量(比如1000亿词、4万亿词);
- 随着 (N) 或 (D) 增大,前两项损失会逐渐减小,最终逼近固有损失 (\hat{E})(比如再怎么训练,也不可能100%做对所有数学题)。
- 例子:
用真实数学教材数据训练模型:80亿参数模型用1万亿词数据,错误率28.7%;如果把数据量加到4万亿词,错误率会按公式预测的比例下降(比如降到25%左右),但不会降到0。
2. 合成数据的缩放定律(论文核心验证,新增发现)
指模型用“SYNTHLLM生成的合成数据”训练时的规律,论文证明它符合 Rectified Scaling Law(修正缩放定律)——因为基础模型(如Llama-3.1-8B)在预训练阶段已学过一些数学知识,所以要加入“预训练固有知识”的影响。
公式(论文Eq.2):
- 通俗解释(重点拆解新增项):
- (D):合成数据的训练量(比如300亿词、1万亿词);
- (D_l):预训练学到的“相关知识量”(比如基础模型已经懂的数学公式、解题思路,相当于“先天基础”);
- (E):最终无法降低的错误率(固有上限);
- 核心逻辑:合成数据的“增量价值”会和预训练的“先天基础”叠加,所以模型性能提升速度,既取决于合成数据量,也取决于模型本身的基础能力。
- 关键结论:合成数据和真实数据一样,完全遵循“数据越多、性能越好”的可预测规律,且能通过公式精准预测后续性能。
二、合成数据缩放定律的3个核心特点(附具体例子)
论文用“数学推理任务”(MATH数据集,错误率越低=性能越好)验证了合成数据的缩放定律,结合不同模型尺寸(3B=30亿参数、8B=80亿参数),例子更直观:
特点1:性能提升可预测(核心价值)
只要用部分数据拟合公式,就能预测“加更多数据后模型能达到的性能”。
- 例子:
用8B模型训练时,先喂100亿词、500亿词、1000亿词的合成数据,记录错误率,代入公式拟合后:- 预测“喂4.5万亿词”时,错误率会降到28.7%(正确率71.3%);
- 实际训练后,真实错误率和预测值几乎一致(论文图1红色验证点)。
再比如3B模型,拟合后预测“喂4万亿词”时,正确率能达到84.4%(论文表1),不用真的喂4万亿词就能提前知道上限。
特点2:模型越大,“吃数据效率越高”
大模型用更少的合成数据就能达到性能巅峰,小模型需要更多数据才能追上。
- 具体对比例子(论文表1+核心发现):
模型尺寸 达到性能上限需要的合成数据量 上限正确率(MATH数据集) 3B(小模型) 4万亿词 84.4% 8B(大模型) 1万亿词 82.6% - 通俗解读:
8B模型只需要1万亿词合成数据,就能达到82.6%的正确率;而3B模型要喂4倍的 data(4万亿词),才能达到更高一点的84.4%——大模型“消化数据的能力更强”,不用多花几倍数据成本。
特点3:数据量超3000亿词后,提升会“边际递减”
合成数据不是越多越好,超过某个阈值后,再增加数据,性能提升会变得极慢(逼近固有错误率E)。
- 例子:
3B模型的变化:- 从100亿词→500亿词:正确率从64.6%涨到74.7%(涨10.1个百分点);
- 从2500亿词→3000亿词:正确率从80.5%涨到80.9%(只涨0.4个百分点);
- 再涨到4万亿词:也只涨到84.4%(再涨3.5个百分点)。
原因:此时模型的错误率已经逼近固有损失E,再喂数据也很难突破——就像人学数学,基础题都懂了,再做更多同类题,难题正确率也不会大幅提升。
特点4:预训练基础会影响初始性能(修正缩放定律的关键)
小模型虽然“吃数据效率低”,但如果预训练时学的数学知识多((D_l) 大),初始错误率也会更低。
- 例子:
8B模型的预训练数据更丰富((D_l) 比3B大),所以刚开始喂100亿词合成数据时,8B模型正确率73.2%,而3B模型只有64.6%——“先天基础”让大模型从一开始就领先,后续再用合成数据放大优势。
三、总结:论文里的scaling law本质是什么?
就是用数学公式量化“合成数据量→模型性能”的关系,核心结论是:
合成数据和真实数据一样,能让模型“多学多进步”,且进步的速度、上限可预测——这解决了“合成数据能不能替代真实数据”的关键疑问:既然它符合缩放定律,就能通过持续生成合成数据,让模型稳定提升,不用依赖稀缺的真实高质量数据。
比如实际应用中,要训练一个8B的数学模型,不用找4万亿词的真实数学数据,而是用SYNTHLLM生成1万亿词的合成数据,就能达到82.6%的正确率,既省钱又高效,且能提前通过缩放定律预测效果。
如果这篇文章帮助到了你,你可以请作者喝一杯咖啡

浙公网安备 33010602011771号