词元与缩放定律
大语言模型读的不是字,是词元。台前,字节对编码在你的浏览器里合并字片;台后是本页训练的 34 个小模型。
向下滚动
模型读的是词元
语言模型的输入是一串编号。每个编号代表一个词元:一个常见的词,一个词的一段,一个标点,或者几个字节。GPT-4o 的分词器有 200,019 个编号;英文的“All human beings are born free and equal in dignity and rights.”在它那里是 13 个词元。
轨上每块瓷片是一个词元。词前面的空格算在词里,所以“ human”和“human”是两个不同的编号。
GPT-4o 分词器(o200k_base)· 63 个字符 → 13 个词元
最常见的一对
字节对编码从单个字节开始:每个字母一个字节,一个汉字三个字节。数一遍训练文字里所有相邻的两个片段,把出现最多的那一对合成一个新片段,记下这条规则;再数,再合,重复几万次。
这台分词器是本页刚刚在你的浏览器里学的,用的是《爱丽丝漫游奇境》的前两章。第 1 条规则是空格加 t(614 次),第 2 条是 h 加 e(559 次),第 8 条把“ t”和“he”合成“ the”。龙门架每压一下,就是执行一条规则。
数相邻的对 → 合并最常见的一对 → 记下规则 → 重复
规则越多,句子越短
这两章共 22,182 个字符,22,791 个字节。学了 100 条规则,它变成 12,044 个词元;250 条,9,340 个;500 条,7,672 个,平均每个词元 2.9 个字符。
规则多了,词表大,句子短,模型每次能读进更多内容;可每个编号都要在模型里占一行数,罕见的编号也学得少。GPT-2 的词表有 50,257 个编号,GPT-4 的 100,277 个,GPT-4o 的 200,019 个。
本页分词器:0 条 22,791 · 100 条 12,044 · 250 条 9,340 · 500 条 7,672 个词元
strawberry 里有几个 r
问 GPT-4o 的分词器“How many r’s are in strawberry?”,它得到 8 个词元,其中“ strawberry”(连着前面的空格)是一整个编号。模型拿到的是这个编号,不是 s、t、r、a、w……这十个字母。
同一个词放在句首、没有空格时,会被切成 st、raw、berry 三段;GPT-4 的分词器切成 str、aw、berry。要数字母,模型得记住每个编号是怎么拼的。这常被拿来解释为什么模型数不清字母,但它只是原因之一。
“ strawberry” → 1 个词元 · “strawberry” → st | raw | berry(GPT-2、GPT-4o)
同一句话的价钱
《世界人权宣言》第一条,英文 170 个字符,在 GPT-2、GPT-4、GPT-4o 的分词器里都是 33 个词元。中文版 43 个字,GPT-2 要 86 个词元,GPT-4 要 50 个,GPT-4o 要 35 个。日文版 84 个字,依次是 116、92、71 个。
GPT-2 的分词器主要从英文网页学来,很多汉字没有自己的编号,只能按 UTF-8 字节拆成两三块。本页这台只读过《爱丽丝》的分词器更极端:中文一个字都没合并,每个字三个词元。词元数决定能读多长、算多少、按词元计费时付多少。
第一条 · 英 33 / 33 / 33 · 中 86 / 50 / 35 · 日 116 / 92 / 71 个词元(GPT-2 / GPT-4 / GPT-4o)
误差按幂律下降
2020 年,OpenAI 的 Kaplan 等人训练了从 768 个到 15 亿个参数(不算词表)的语言模型。测试误差随参数 N、数据 D、算力 C 的增长,各自落在一条幂律上:L(N) = (8.8 × 10¹³ / N)^0.076,L(D) = (5.4 × 10¹³ / D)^0.095。参数多十倍,误差乘以 0.84。
后面这排机器是本页自己的实验:11 种大小,从 2 万到 1000 万个参数。每档算力下最好的那一台,误差从 4.27 降到 3.26(每个词元多少奈特,越低越好)。算力每多十倍,最好的误差乘以 0.87。这只是一个很小的范围;Kaplan 也写明,这些趋势最终必须变平,因为语言本身有不可约的不确定性。
每档算力最好的误差 · 10¹² 4.27 · 3 × 10¹² 3.99 · 10¹³ 3.70 · 3 × 10¹³ 3.46 · 10¹⁴ 3.26 奈特
算力 ≈ 6 × 参数 × 词元
训练一个模型的计算量,可以近似写成 C ≈ 6ND:每个参数、每个词元,正向 2 次浮点运算,反向 4 次(见“神经网络怎样学习”一页)。左后方的拨杆选一档算力,五档从 10¹² 到 10¹⁴ 次。
同一档算力,参数多一倍,能读的词元就少一半。Chinchilla 是 700 亿个参数读 1.4 万亿个词元,约 5.9 × 10²³ 次;本页最大的一档 10¹⁴,相当于它的六十亿分之一。
C ≈ 6 · N · D · 正向 2 + 反向 4 次 / 参数 / 词元
同样的算力,怎么分
拨杆停在 3 × 10¹³。每台机器的料斗里,是它在这档算力下能读的词元:最小的一台读 3019 万个,最大的只读 49 万个。它们同时开始,同时读完;液管里的墨柱是它在没见过的四本书上的误差。
太小的机器学不下,太大的机器没读够,最低的在中间:43 万个参数、1152 万个词元,3.46 奈特。红线是穿过附近几根管顶的抛物线,它的最低点约 41 万个参数。这是 Hoffmann 等人 2022 年用来定 Chinchilla 的第二种办法。
等算力曲线 · 3 × 10¹³ 次 · 最低 43 万参数 / 1152 万词元
一比二十
DeepMind 的 Hoffmann 等人训练了 400 多个模型,从 7000 万到 160 多亿个参数,读 50 亿到 5000 亿个词元。三种办法都得出:算力多了,参数和词元应该按差不多相同的比例一起加,每多一倍参数,就多一倍数据。他们的表 3 里,10 亿参数配 202 亿词元,100 亿配 2051 亿,约 20 个词元一个参数。
用 Gopher 的算力,他们训练了 700 亿参数、1.4 万亿词元的 Chinchilla,对照 2800 亿参数、3000 亿词元的 Gopher。Chinchilla 在大量任务上更好,MMLU 平均 67.5%,比 Gopher 高 7 个百分点以上,推理也更便宜。本页的小模型在最优处是每个参数 25 到 80 个词元,算力越大,比例越低;这么小的模型不该和 20 直接比。
Gopher 2800 亿参数 × 3000 亿词元 · Chinchilla 700 亿 × 1.4 万亿 · 同样的算力
剖开一台
最大的那台剖开来,是 8 圈,每圈一层 Transformer,宽 320。一层的权重约 12d² 个:注意力 4d²(铜黄的薄盘),前馈网络 8d²(紫铜的厚盘)。注意力和前馈网络怎样计算,见“Transformer 的注意力”一页。
它还有一张 1024 行的词表:输入时查表,输出时用同一张表给每个编号打分。小模型里这张表占了大半参数,最小的一台 2 万个参数里有 1.6 万个在词表上。Kaplan 只数层里的参数,Hoffmann 数全部参数,这一点后来被认为是两份结论不同的主要原因之一。
一层 ≈ 12d² · 注意力 4d² · 前馈 8d² · 词表 1024 × d
两条定律的分歧
Kaplan 的结论是算力多了,参数应该涨得比数据快:N_opt ∝ C^0.73。Hoffmann 的是一样快:∝ C^0.50。按前者,GPT-3 这一代模型偏大、读得太少;按后者,它们严重“欠训练”。
2024 年的几篇复核给出了原因:Kaplan 只数非嵌入参数、实验规模小(Pearce 与 Song);最后一层的计算、学习率预热和随规模调的优化器设置(Porian 等)。Epoch AI 重新拟合 Chinchilla 的数据,发现论文里第三种办法的参数和前两种不一致,改正后也约 20 个词元一个参数。本页的小模型族得出 N_opt ∝ C^0.63,更像 Kaplan:规模这么小时,词表占比大,结论偏向他那边。
N_opt ∝ C^a · Kaplan 0.73 · Chinchilla 0.50 / 0.49 / 0.46 · 本页 0.63
数据会用完吗
幂律只说明给多少就涨多少,不保证有那么多可给。Villalobos 等人估计,公开的人类文字有效存量约 3 × 10¹⁴ 个词元(90% 区间 1 到 10 × 10¹⁴);照现在的趋势,训练集大约在 2026 到 2032 年之间追上它。
数据不够时可以重复读。Muennighoff 等人发现,同一份数据读 4 遍,和读 4 份新数据差别很小;读到 16 遍左右,再加算力几乎不再有用。本页的模型大多只读了数据的一部分,读得最多的一台读了 1.09 遍。
有效存量 ≈ 3 × 10¹⁴ 词元 · 重复 4 遍 ≈ 新数据 · 约 16 遍后收益趋零
把算力留到回答时
算力也可以花在回答的时候:让模型多想几步、多写几个答案再挑。Snell 等人 2024 年在数学题上比较:基础模型本来有一定把握的题,多花推理算力,能胜过参数大 14 倍的模型;最难的题上,还是加训练更划算。
训练的缩放定律是在固定的测试文字上量误差;推理时算力的收益随题目难度变化很大,还没有一条同样稳定的曲线。
推理时算力 · 中等难度可抵 14 倍参数 · 最难的题仍靠训练
拆开来看
一台引擎由底座、层叠的环、顶上的料斗和工作灯组成;前面的分词轨上有龙门架和压头,旁边是液管台和算力拨杆。每个部件都可以单独托出来看。
实验台
可以换一档算力,改分词器的规则数,也可以输入一句话,看它被切成几块。读数里的最优尺寸来自本页实测的等算力曲线,右侧是拟合公式给的预测。
试一试在实验台上把合并次数拉到 0,再拉回 500:同一句话少了多少个词元?换一句中文试试。
模型省略了什么
分词器只学了 500 条规则(真实的有几万到二十万条),只读过《爱丽丝》的两章,所以英文以外几乎不合并。预切分照 GPT-2 的思路做了简化:先把空白折成一个空格,再按字母、数字、其他符号切块,缩写不单独处理。模型族很小:最大 1000 万个参数,最多读 3840 万个词元,一次只看 64 个词元,每个设置只训练一次;同一档算力下,大模型读的词元少、训练步数也少(最少约 160 步),这会让大尺寸一侧显得更差。参数数 N 包括词表(输入输出共用),不含 64 个位置的位置表。误差是在四本留出的小说上量的,单位是奈特每词元,和别的分词器的数不能直接比。引擎的大小只是示意:一圈一层,直径随宽度增大,不按参数成比例;料斗里的词元按对数装填(10 万个为空,4000 万个为满)。
一个常见的误解
缩放定律不是自然定律。它是在一种模型、一种数据、一套训练办法里量出来的经验曲线,指数会随这些改变;Kaplan 和 Hoffmann 的分歧就来自做法的不同。它说的也只是测试误差这个数怎样下降,不直接说模型会不会某一项能力。“20 个词元一个参数”是 Chinchilla 那套设置下的结果,现在很多模型故意读得更多,是为了用小一点的模型省推理的钱。
常见问题 · 4
- 模型读的是字还是词元?
语言模型的输入是一串编号。
01模型读的是词元 ↑- 为什么模型数不清 strawberry 里的 r?
模型拿到的是这个编号,不是 s、t、r、a、w……这十个字母。
04strawberry 里有几个 r ↑- 中文比英文更费词元吗?
中文版 43 个字,GPT-2 要 86 个词元,GPT-4 要 50 个,GPT-4o 要 35 个。
05同一句话的价钱 ↑- Chinchilla 的“20 个词元一个参数”从哪来?
他们的表 3 里,10 亿参数配 202 亿词元,100 亿配 2051 亿,约 20 个词元一个参数。
09一比二十 ↑
资料来源
- Sennrich、Haddow、Birch(2016):Neural Machine Translation of Rare Words with Subword Units,arXiv:1508.07909(反复合并最常见的一对、词表 = 初始 + 合并次数、不跨词)
- Gage(1994):A New Algorithm for Data Compression,C Users Journal(字节对编码)
- Radford 等(2019):Language Models are Unsupervised Multitask Learners(字节级 BPE、不跨字符类别合并、50,257 个编号)
- OpenAI:tiktoken(gpt2、cl100k_base、o200k_base;GPT-4 用 cl100k_base,GPT-4o 用 o200k_base)
- Kaplan 等(2020):Scaling Laws for Neural Language Models,arXiv:2001.08361(式 1.1–1.3、N_opt ∝ C^0.73、C ≈ 6N 每词元、趋势终将变平)
- Hoffmann 等(2022):Training Compute-Optimal Large Language Models,arXiv:2203.15556(400 多个模型、三种办法、表 2 与表 3、式 10、Chinchilla 与 Gopher)
- Besiroglu 等(2024):Chinchilla Scaling: A replication attempt,arXiv:2404.10102(重新拟合的 E、A、B、α、β,约 20 个词元一个参数)
- Pearce、Song(2024):Reconciling Kaplan and Chinchilla Scaling Laws,arXiv:2406.12907(非嵌入参数与小规模)
- Porian 等(2024):Resolving Discrepancies in Compute-Optimal Scaling of Language Models,arXiv:2406.19146(最后一层的计算、预热、优化器设置)
- Villalobos 等(2024):Will we run out of data? Limits of LLM scaling based on human-generated data,arXiv:2211.04325(有效存量约 3 × 10¹⁴ 词元,2026–2032)
- Muennighoff 等(2023):Scaling Data-Constrained Language Models,arXiv:2305.16264(重复 4 遍、约 16 遍)
- Snell 等(2024):Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters,arXiv:2408.03314(14 倍、难题上训练更划算)
- 联合国:《世界人权宣言》中文与英文文本
- 联合国新闻中心(东京):《世界人权宣言》日文译本
- Project Gutenberg:《爱丽丝漫游奇境》与训练用的 105 本公版英文书
数据
The tokenizer on the rail is the site’s own byte-pair encoding (src/topics/scaling/bpe.js), learned in the browser from the first two chapters of Lewis Carroll’s Alice’s Adventures in Wonderland (Project Gutenberg, public domain). Byte-pair encoding: Gage (1994), Sennrich, Haddow and Birch (2016); byte-level, split by character class, as in GPT-2. The published tokenizers’ pieces and counts (gpt2, cl100k_base, o200k_base) were computed with OpenAI’s tiktoken (MIT licence) by src/topics/scaling/tokens.py. The model family is the site’s own: 34 GPT-shaped models trained with PyTorch by src/topics/scaling/train.py on 105 public-domain English books from Project Gutenberg, held out four of them for testing. The method follows Hoffmann et al. (2022): fixed compute budgets, isoFLOP profiles and a parametric fit. The sentence in three languages is Article 1 of the Universal Declaration of Human Rights: English and Chinese from un.org, Japanese as published by the United Nations Information Centre, Tokyo. Material presets, parts and the softbox studio of the site’s model kit are ported from AirsupHQ/machine-skill (MIT, © 2026 Air Supply Technologies Inc.).
本页的文字、图片和模型采用 CC BY-NC 4.0 许可:可以免费用于教学和其他非商业用途,可以修改,请注明出自 world.lapla.si。上面列出的第三方素材仍按各自的许可。
引用这幅图版
拉普拉斯的迷你世界,图版 F26《词元与缩放定律》,https://world.lapla.si/zh/scaling/,CC BY-NC 4.0,2026-10-20 更新。



