深夜的夜市,老陈的汤铺前永远排着长队。他的秘诀听起来很笨:一个灶、一口大锅,不停往汤里加食材。刚开始,从清水变成汤底,每一把食材都是天翻地覆的变化;可汤越熬越浓之后,再添一斤排骨,客人们几乎尝不出差别。老陈渐渐明白:加料多不等于味道好,关键还要看食材新不新鲜、品种全不全,以及厨房的预算怎么分配。训练大模型就像熬这锅汤——喂给模型的数据是食材,模型的“差评率”(损失)是味道。数据越多,表现越好,但“越好”的速度会越来越慢。这就是数据缩放(Data Scaling)想讲清楚的事。
对 AI 从业者而言,理解数据缩放等于拿到一张“预算地图”:知道该花多少钱买数据、买到多少就该停下来,让每一分算力都熬出味道。
目录
可视化演示
展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。
本节配有交互动效(进入视口后自动加载,约 3KB)。
系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T
规模效应:数据越多,损失越低
老陈第一次开火时锅里只有清水,丢进第一把鸡架,汤瞬间有了滋味;可汤越来越浓之后,再往锅里加料,变化却越来越小。大模型的情况如出一辙:用不同规模的训练数据 D 去训练模型,把“差评率”——损失 L——记下来,几乎每一次实验都指向同一个结论:数据量越大,损失越低。
这个现象并非某个模型的运气,而是在 GPT、Llama、BLOOM 等系列模型上反复出现的经验规律,研究者称之为数据缩放。它说的是:只要训练数据量按数量级增长(10 倍、100 倍、1000 倍),模型的损失几乎总是下降,只是下降的“节奏”很有讲究——先快后慢。
研究者把这条曲线写成简洁的形式:
老陈盯着汤锅就明白了:第一把食材让“水”变成“汤”,之后的每一把都在让汤更浓,但变浓的速度已经由锅里的底子决定。规模效应是真的,但它是“先快后慢”地兑现的。
- 损失 L(D)模型在数据量为 D 时的平均“差评率”,数值越低代表模型预测越准,是数据缩放的观测指标
- 数据量 D训练时喂给模型的有效样本总数,在缩放研究中通常按数量级(10 倍、100 倍)讨论
- 临界数据量 D_c与模型结构、任务难度相关的参考常数,决定整条曲线在坐标系里的水平位置
- 缩放指数 α一个正的小数(常见 0.05~0.35),决定损失随数据下降的速度,α 越大下降越猛
- 不可约损失 L∞数据无限多时损失也会停留的下限,由任务固有难度和噪声决定
幂律规律:对数纸上的直线
老陈有个记账本,每次加完食材就在“对数格子纸”上点一个点:横轴是食材总量,纵轴是客人满意度。神奇的是,这些点排成了一条直线。汤的味道和食材总量之间,藏着的是一种严格的数学关系——幂律。
当损失尚未贴近下限 L∞ 时,第一项占主导。对缩放公式两边取对数,乘幂关系就变成了线性关系:
这条直线带来一个实用的副产品——外推预测:既然数据点都乖乖排在直线上,那么沿直线延长,就能粗略预估“再加十倍数据,损失能降到多少”。这正是很多训练团队的日常操作:先用小规模实验画出直线,再预测大预算下的收益,从而决定要不要继续投钱。
老陈的对数格子纸就是他的“缩放曲线”。有了这条直线,他不用真的买回一千斤排骨,也能猜到汤大约会浓到什么程度——省下的试错成本,就是幂律规律送的礼物。
- 对等式两边取对数把乘除运算变成加减运算,幂函数在双对数坐标中化为直线
- 截距 log k直线与纵轴的截距,由模型规模与数据分布共同决定,相当于整条线的“海拔”
- 斜率 -α双对数坐标里直线的斜率,数值越大下降越快;它等于数据缩放指数取负号
- 外推预测沿直线延长估算更大数据量下的损失,是缩放曲线最重要的工程用途
数据质量:发酸的汤救不回来
有一天老陈贪便宜,进了一批开始发酸的鸡架。煮下去,整锅汤都带上了一股怪味,客人的差评反而变多了,之后再加好食材也救不回来。数据缩放的世界里,发酸的鸡架就是垃圾数据:噪声、错误标签、从论坛爬来的无意义文本。
前面公式里的 L∞ 不是摆设——它代表“无论数据再多也无法消除的损失”,而这部分损失的一大来源正是数据质量。把公式改写成更常见的形式,常数项 c 就是质量留下的“底色”:
因此,大模型团队会做“质量过滤”:按困惑度打分、用规则筛掉广告与脏数据、训练模型滤除低质文本,再进入训练管线。这相当于进货时先挑掉烂叶子——同样的钱,买干净食材比买一堆带泥的更划算。一句话:质量决定上限,数量决定在上限之下能走多远。
老陈把发酸的鸡架全部扔掉,换了新鲜食材,汤的差评率立刻降了回去。他记下一条心得:好汤的底线从来不是“加了多少”,而是“加的是什么”。数据质量,就是这条底线。
- 系数 k缩放系数,由任务难度与模型结构决定,对应前文中的 (D_c)^α
- 数据项 D^{-α}随数据量增大而衰减的部分,数据越多,每一份新增数据的贡献越小
- 常数项 c不可约损失,由噪声和任务固有难度抬高,数据再多也不能消除
多样覆盖:别让汤只有一种味道
老陈曾经连着一个月只进白菜。汤确实越熬越浓,但所有客人都在抱怨:“怎么喝都是白菜味。”后来他加了萝卜、香菇、牛骨,味道立刻立体起来。这一勺一勺的“不同”,就是数据的多样性。
模型的真实世界语料并不是单一分布的:有新闻、有代码、有数学题、有方言俚语,还有只出现在冷门论坛的长尾话题。如果训练数据只覆盖几个热门领域,模型在长尾场景就会“犯傻”。多样性意味着覆盖真实分布,让模型学会应对“汤里可能出现的一切食材”。
多样性的反面是重复。同一个网页被爬虫抓了 10 遍,或者同一段文本以 10 种马甲出现,它们带来的新信息几乎为零,却实打实占用算力。工程师会先做去重,再计算“有效数据量”:
老陈开始管理他的食材仓库:每种食材都建台账,重复进的两筐白菜只留一筐,再补一筐萝卜。数据团队的“仓库管理”就是去重与配比——多样又干净的食材,才能把缩放曲线的每一分收益都熬出来。
- 有效数据量 D_eff去重、清洗后真正提供新信息的样本数,是缩放曲线里应该使用的 D
- 原始数据量 D爬虫或采集系统拿到的原始样本总数,包含大量重复
- 重复率 r_dup重复样本占总样本的比例,通过近似相似度去重算法估算
缩放曲线:收益递减与联合缩放
老陈的记账本上,直线渐渐弯了:汤的味道在逼近一个“天花板”。这个现象在数据缩放里叫饱和。硬要总结成一句话:数据量翻倍带来的收益,本身也在不断缩水。
从公式可以直接看出递减的数学机制:数据量从 D 翻到 2D 时,损失的下降量是两项之差,而 D 越大,这个差值越小。更关键的是,数据并不是唯一的杠杆——联合缩放律告诉我们,模型的参数规模 N 和数据量 D 是两条独立的杠杆,缺一不可:
老陈终于明白厨房的真谛:锅太小,加再多食材也溢出来;食材太少,锅再大也熬不出内容。汤的最终浓度,是锅和食材一起决定的。数据缩放曲线,画的就是这口平衡。
- 参数规模 N模型的可学习参数总量,衡量模型的“锅有多大”
- 临界参数 N_c 与临界数据 D_c两个参考常数,分别标定模型与数据的相对大小基准
- 两个指数 α_N 与 α_D模型缩放和数据缩放各自的斜率,通常数值并不相同
- 加号结构两类误差独立叠加,说明模型与数据是“双人船”,只划一边,船会在原地打转
资源决策:预算花在刀刃上
老陈每个月的厨房预算固定:5000 块,既要买锅也要买食材。以前他凭感觉分,后来学会了看曲线:锅和食材要按比例升级。大模型团队的预算问题一模一样——算力有限,数据采集和模型扩展怎么分配?
这正是“算力最优缩放”回答的问题。Hoffmann 等人的 Chinchilla 研究给出过一个简洁结论:在给定计算预算 C 的情况下,最优的数据量大致服从:
实际操作中,一支训练团队会分三步走:第一,用一组小模型在不同数据量上做实验,拟合出本地缩放曲线;第二,结合数据清洗成本、采集难度、算力单价,把“曲线”翻译成“预算报表”;第三,在预算内决定采购多少 token、训练多大的模型。数据缩放曲线在这里不是学术装饰,而是资源分配的核心决策依据。
老陈把账本和曲线贴在灶台边,每个月按比例进货、换锅。汤铺的生意越做越稳,因为他终于不再凭感觉花钱,而是让曲线告诉他一分钱该往哪儿放。数据缩放,就是每个大模型团队的这张“灶台记账本”。
- 计算预算 C一次训练消耗的总计算量,常用 FLOPs 衡量,相当于厨房的月度总预算
- 最优数据量 D_opt在给定预算下让损失最小的训练数据规模
- 最优参数 N_opt与 D_opt 配套的模型规模,两者一起决定最终味道
- 0.5 次方预算翻倍时数据量约放大 √2 倍,这就是“按比例投资”的数字表达
AI 应用场景
训练语料采购预算规划
阶段:数据准备 / 预算规划
解决的问题:传统方式靠经验拍脑袋决定“买多少 token 数据”,花了大钱却发现收益甚微。AI 方式是用小模型拟合本地缩放曲线,外推不同数据量下的损失,再结合采集单价决定采购量。
具体案例:某公司计划训练 70B 参数模型,团队先用 1B 模型在 1 亿~10 亿 token 区间做几组实验,拟合出 α≈0.2 的曲线,推算出 5T token 时损失可降至预期,于是把预算从 8T 砍到 5T,省下的钱投给数据清洗和模型并行。
大规模去重与质量过滤流水线
阶段:数据治理
解决的问题:原始爬虫语料重复率高、噪声大,直接训练既浪费算力,又会抬高不可约损失 c,让缩放曲线整体上移。
具体案例:数据团队对 10T 原始语料做 MinHash 近似去重,重复率从 35% 降到 8%;再用困惑度打分过滤低质文本,最终得到 6T 有效数据。代入缩放曲线后,团队确认 6T 有效数据对应的损失与 10T 原始数据几乎相同——去重省下了近一半算力。
小规模外推支撑大模型立项
阶段:训练前评估 / 可行性分析
解决的问题:直接花千万级算力训练大模型试错风险极高,传统评估依赖主观判断。缩放曲线的外推能力提供了量化依据。
具体案例:团队在 1B、3B、7B 三个尺度上完成数据缩放实验,拟合出参数与数据两条幂律曲线,外推 70B 模型在 4T token 下的损失水平,论证项目 ROI,并划出“什么时候该停止加数据”的止损线。
Python 演示
import numpy as npfrom scipy.optimize import curve_fit def power_law(D, k, alpha, c): return k * np.power(D, -alpha) + c # 模仿真实评测中收集的数据量-损失观察数据D_obs = np.array([1e8, 2e8, 5e8, 1e9, 2e9, 5e9, 1e10])L_obs = np.array([2.85, 2.61, 2.38, 2.22, 2.08, 1.93, 1.84]) np.random.seed(42)L_obs = L_obs + np.random.normal(0, 0.02, size=L_obs.shape) # 用最小二乘拟合幂律曲线 L = k * D^-alpha + cparams, _ = curve_fit(power_law, D_obs, L_obs, p0=[0.3, 0.15, 1.0])k, alpha, c = paramsprint("拟合结果: k=%.4f, alpha=%.4f, c=%.4f" % (k, alpha, c)) # 外推到更大数据量, 预测继续采集数据的收益D_new = np.array([2e10, 5e10, 1e11])pred = power_law(D_new, k, alpha, c)print("外推预测:")for d, p in zip(D_new, pred): print(" D=%.0e -> loss=%.3f" % (d, p)) # 观察数据量翻倍时每个阶段带来的损失下降print("数据量每翻一倍, 损失下降量:")base = 1e9for _ in range(4): double = base * 2 gain = power_law(base, k, alpha, c) - power_law(double, k, alpha, c) print(" %.0e -> %.0e : 下降 %.4f" % (base, double, gain)) base = double
def power_law(D, k, alpha, c):定义幂律曲线函数 L = k·D^-α + c,c 就是不可约损失D_obs = np.array([1e8, 2e8, 5e8, 1e9, 2e9, 5e9, 1e10])从小到大排列的训练数据量观测点,覆盖两个数量级L_obs = L_obs + np.random.normal(0, 0.02, size=L_obs.shape)加入小噪声,模拟真实评测的随机波动params, _ = curve_fit(power_law, D_obs, L_obs, p0=[0.3, 0.15, 1.0])用最小二乘拟合出 k、α、c 三个参数pred = power_law(D_new, k, alpha, c)把拟合好的曲线外推到更大的数据量,预测损失gain = power_law(base, k, alpha, c) - power_law(double, k, alpha, c)计算数据量翻倍带来的损失下降量,观察它如何递减
常见误区
误区既然幂律说数据量增加损失就下降,那数据就是多多益善。我只要有预算,就一直抓数据、一直加,模型一定会一直变好。
正解数据缩放是“先快后慢”的递减过程:数据量每翻一倍,损失下降量本身也在缩小。当曲线进入饱和段,加 10 倍数据的收益可能还不如换一次模型结构。真正的工程决策是算“边际收益 vs 边际成本”,而不是无脑堆数据。就像老陈的汤,汤已经够浓时,再买一百斤排骨只会浪费钱。
为何常见:只盯着缩放曲线“下降”的方向,忽略了斜率在不断收窄;人们习惯用直线思维理解幂律关系。
误区我手上的语料有 10T,就算混进一些垃圾文本、错误答案,大模型应该也能自己扛住,毕竟量大嘛。
正解噪声和错误并不会被“平均掉”,它们会抬高公式里的不可约损失 c——相当于把汤的底线抬高了。质量差的数据多了,整条缩放曲线都会上移,堆再多数据也够不到原本该有的水平。工程上先做质量过滤,本质上是在压低 c,让同样的数据预算换来更低的损失。
为何常见:混淆了“数量”和“质量”两个独立维度,误以为劣质数据只是“没帮助”,却没意识到它们会主动拉高损失下限。
误区同一个网页我多爬几遍,语料库的规模数字就变大,训练出来的模型当然学得更多。
正解重复样本不提供新信息——同样的内容出现 10 次,信息量还是一次的量。它们只会让模型过度拟合高频片段,并白占算力。缩放曲线里的 D 应该是去重后的有效数据量 D_eff = D(1 - r_dup),重复率越高,有效投入越少。老陈进货时会把同一筐白菜从账本里划掉,就是这个道理。
为何常见:把“原始抓取量”当成“有效数据量”,忽略了信息论里最朴素的直觉——重复不能增加信息熵。
误区我用 7 个数据点拟合出一条幂律直线,现在可以精确算出训练 100T 数据时的损失,误差肯定很小。
正解缩放曲线是统计外推,不是物理定律。拟合范围内它很可靠,但外推到几十倍之外时,可能出现分布偏移、数据瓶颈,甚至缩放规律本身的改变(部分论文观察到曲线会“转折”)。正确用法是把它当作预算规划的指南针,而不是精确到小数点后三位的计算器。
为何常见:把“对数坐标上的线性外推”误当成“确定性的预言”,高估了小样本拟合的外推能力。
面试题
Q1. 根据数据缩放规律,增大训练数据量时,模型的损失通常会怎么变化?
- A.持续下降,但降幅越来越小← 正确答案
- B.持续上升,模型反而变差
- C.线性下降,每步收益相等
- D.完全不变,数据没有作用
答案:A。数据缩放的核心结论是损失随数据量增大而下降,但下降速度符合幂律,初期收益大、后期收益小,所以 A 正确。B 与事实相反,C 的“线性”不符合幂律特征,D 否定了缩放效应。
Q2. 把数据缩放曲线画在双对数坐标上,会呈现什么形态?
- A.一个圆形,半径代表数据规模
- B.一条抛物线,顶点代表峰值
- C.一条直线,斜率代表缩放指数← 正确答案
- D.一条折线,拐点代表阈值
答案:C。幂律取对数后变为 log L = log k - α log D,在双对数坐标下就是一条斜率为 -α 的直线,因此 C 正确。圆形、抛物线、折线都不符合幂律对数后线性的特征。
Q3. 幂律公式 L(D) = (D_c/D)^α 中,指数 α 越大意味着什么?
- A.数据收益越低,损失下降越慢
- B.数据收益越高,损失下降越快← 正确答案
- C.模型参数越多,拟合能力越强
- D.模型参数越少,拟合能力越弱
答案:B。α 是数据缩放指数,α 越大,数据量增幅带来的损失下降越大,即数据收益越高。A 说反了,C/D 把数据缩放与模型参数规模混为一谈,与公式含义无关。
Q4. 关于数据重复与有效数据量的说法,正确的有哪些?
- A.重复样本会虚增原始数据规模← 正确答案
- B.有效数据量小于去重前总量← 正确答案
- C.重复样本能带来全新知识
- D.有效数据量取决于重复率← 正确答案
答案:ABD。有效数据量 D_eff = D × (1 - r_dup),必然小于去重前总量,且受重复率直接影响,所以 A/B/D 正确。C 认为重复能带来新知识,违反了信息论直觉——同一信息重复出现不会增加新信息。
Q5. 关于数据质量与数据多样性的说法,正确的有哪些?
- A.噪声数据会抬高不可约损失← 正确答案
- B.多样性不足时模型长尾犯傻← 正确答案
- C.质量过滤能压低损失底线← 正确答案
- D.去重之后信息量必然增加
答案:ABC。噪声抬高不可约损失 c,质量过滤能压低 c,多样性不足会让模型在长尾场景表现差,所以 A/B/C 正确。D 不成立——去重只是去掉冗余,并不会创造新的信息。
Q6. 数据缩放曲线出现“饱和”现象时,说明什么?
- A.模型参数数量已经严重超标
- B.训练数据质量变得非常差
- C.损失下降速度变得很缓慢← 正确答案
- D.计算资源出现严重浪费
答案:C。饱和指损失下降速度趋近于零,曲线进入平台期,说明数据量对损失的边际贡献已经很弱,C 正确。A/B/D 都可能是其他原因导致的现象,并不是“饱和”的直接定义。
Q7. 联合缩放律 L(N, D) 告诉我们,模型参数与数据的正确关系是?
- A.两类误差独立叠加,需共同扩展← 正确答案
- B.数据足够时,模型大小无所谓
- C.模型足够大,数据多少无所谓
- D.两类误差相互抵消,无需扩展
答案:A。联合缩放律把参数不足与数据不足写成两类独立的误差项并相加,想要总损失下降,模型和数据必须一起扩展。B/C 只强调单一因素,D 说误差会相互抵消,都与公式的加号结构矛盾。
Q8. 用小规模实验拟合缩放曲线后做外推,正确的做法与态度是?
- A.用尽量多的数据点拟合曲线← 正确答案
- B.外推范围越大越需要谨慎← 正确答案
- C.把外推结果当作精确数值
- D.以外推结果辅助资源决策← 正确答案
答案:ABD。外推是工程上的有力工具,但只是趋势参考。用多点拟合减少偶然误差、超出拟合范围时保持谨慎、以外推指导资源规划,都是正确做法。C 把统计外推当成精确预言,是典型误区。
Q9. Chinchilla 研究发现,算力预算翻倍时最优数据量应如何变化?
- A.保持不变,只扩大模型即可
- B.乘 1.41 倍,与模型一起涨← 正确答案
- C.乘四倍,数据优先扩展
- D.减一半,节省训练成本
答案:B。Chinchilla 的结论是 D_opt ∝ C^0.5,预算翻倍时 2^0.5 ≈ 1.41,数据与模型应同比例增长,所以 B 正确。A/C/D 都违背了“数据与模型共同扩展”的算力最优结论。
Q10. 数据采集预算有限时,最有价值的决策依据是?
- A.缩放曲线与质量评估结果← 正确答案
- B.训练代码的注释详细程度
- C.服务器机房的装修风格
- D.团队成员的个人编程喜好
答案:A。缩放曲线能估算增加数据带来的收益,质量评估决定数据是否值得进入训练,两者结合是预算分配的核心依据。B/C/D 与模型性能或数据价值毫无关系。