English interface selected · this article is currently written in Chinese.
中英文数据怎样混合:从语料比例到实际训练分布
English overview →具备清晰骨架、初步数学推导或工程验证,持续补充论据与实测。
数字花园
🌿 什么是数字花园与思想演进?
遵循 Maggie Appleton 与 Andy Matuschak 的常青笔记理念:这里不是按时间沉底的流水账,而是持续修剪打磨的知识生态。文章按成熟度经历:
- 🌱 萌芽 (Seedling): 发散灵感、读书摘录、开放猜想
- 🌿 演进 (Budding): 结构渐明、初步代码推导、积极修正
- 🌳 常青 (Evergreen): 逻辑闭环、持久经得起检验的基石
- 🔬 实验待证 (Speculative): 结合沙盒与仿真探针的理论探索
假设中文和英文数据都已经清洗、筛选、去重。现在写训练配置:中文 70%,英文 30%。
这看上去很明确。但如果中文平均一千个 token 一篇,英文平均两千个 token 一篇,按篇数抽七成中文,模型读到的中文 token 并不是七成。
混合数据不是把几个文件放在一起,而是分配有限的训练机会。 我们要说明按什么单位分配、同一份内容会重复几次,以及训练时有没有真的按计划读取。
这是第一卷第五篇,接着去重与评测污染,最后会交给语料构建统一记录。
先把百分比的单位说清楚
“中文占一半”至少可能指四件事:文件大小一半、文档数量一半、抽到中文来源的概率一半,或者真正参与训练的 token 一半。
这些比例没有理由天然相同。压缩文件大小还受格式与压缩率影响,更不适合直接代表训练量。
对假设中的中文技术模型,可以先把目标写成“有效训练 token 的占比”。有效 token 指真正参与损失计算的预测位置,不包括 padding 等不参与训练的位置。后面再看实现怎样达到这个目标。
还要区分库存与用量:库存是可用文本有多少,用量是训练读了多少。库存可以只读一部分,也可以被重复使用。
一个例子看懂文档比例与 token 比例
先把比例简化成中英文各抽一半。假设中文平均一千 tokens,英文平均两千 tokens,并且每篇都完整读取。
抽一百篇时,平均会得到五十篇中文和五十篇英文:中文贡献约五万 tokens,英文贡献约十万 tokens。于是中文只占三分之一。
把这个关系写成公式:来源 的文档采样概率是 ,平均长度是 ,对应的 token 占比为:
分子是该来源“被抽中的机会乘以每次贡献的长度”,分母是所有来源的相应总和。这个关系假设文档完整读取、平均长度稳定、没有截断或额外 mask;样本足够多时,实际比例才会接近它。
反过来,希望中英文 token 各一半,就要更频繁地抽较短的中文文档。反推公式是:
代入上面的长度,中文文档应约占抽样次数的三分之二,英文约占三分之一。中文六十七篇、英文三十三篇左右,贡献的 token 才大致相同。
这不是推荐的中英文比例,只是解释“按篇抽样”和“按 token 分配”为什么不同。过滤规则改变了平均长度以后,旧换算也需要重新估计。
为什么许多流程先切成固定长度块
如果每次都取同样长度、同样有效位置数的块,每个块贡献的训练量接近一致,比例会更容易控制。
但“固定长度”仍不能省掉检查。末尾不足一块怎么办?短文是否拼接?padding 是否参与损失?一个来源的尾块如果经常被丢弃,最终比例仍会偏。
还要检查损失怎样平均。先对每条长短不同的序列取平均,再对序列平均,相当于每条序列有相近权重;把所有有效 token 的损失相加,再除以有效 token 总数,则让每个预测位置有相近权重。两种实现不等价。
形式上,可以写出混合目标:
它表示先按权重选来源,再从来源中取样。使用这个式子时,一定要交代 是文档还是固定块、损失按什么平均,否则漂亮的公式也不能说明实际训练配方。
分词器会影响每份文本占多少预算
token 不是固定长度的“字”。同一句话换一个分词器,token 数可能不同;同一分词器处理中文与英文时,切分效率也可能不同。
因此,“训练一亿 tokens”必须与分词器版本一起记录。可以用固定样本观察每字符或每字节被切成多少 token,以及文档长度变化。切得更少可以减少序列长度,但不直接证明模型质量更好,还要考虑词表大小与训练效果。
如果自行训练分词器,只用划分后的训练集拟合,再用于验证和测试。如果使用现成分词器,就记录它的版本和来源,不能声称它完全没见过任何评测相关材料。
同样,不同分词器的每 token 困惑度不宜直接比较。按字符或字节归一化能提供另一种视角,但仍需统一文本与边界处理。
三种常见分配方式各有什么代价
为避免把长短问题混进来,下面先假设使用等长、有效位置数相同的训练块。 表示来源 的库存量。
按库存分配。 哪个来源有得多,就多抽哪个。大来源不容易被反复读取,但可能压过其他领域。
各来源平均分配。 每个来源都有同样机会,小来源却可能很快用完,然后反复循环。
折中平滑。 不完全按库存,也不完全平均,可以使用幂次权重:
就是库存比例; 时,所有非空来源同权。中间值会提高小来源的相对份额。
比如库存是 90:10,取 ,权重变成 ,也就是 75:25。小来源从一成提高到了四分之一,但它拥有的独立内容没增加。
有些实现用温度 ,把指数写成 。因此记录公式比只写“温度设为 2”更清楚。无论选择哪种形式,都没有一个不看任务就通用的中英文最佳比例。
小来源会被重复使用多少次
假设训练总预算是 1B 有效 tokens,中文技术内容占 40%,但去重后这个领域只有 100M tokens。那么它分到 400M 的训练量,大致相当于把库存用四遍。
一般可以用:
来估计等效遍历次数。 是总预算, 是目标 token 比例, 是该来源的独立库存。
现在提高质量阈值,库存删掉一半,配比和总预算不变,等效遍历就从四遍变成八遍。所以“筛得更严格”不仅改变文本质量,也增加了重复使用。实验结果变化时,两件事都要检查。
抽够一遍的量 不等于每份内容都见过
如果每次有放回地随机抽一个块,抽过的还可能再抽到。设一共 个块,抽 次,期望看到的不同块数是:
推导只需看一个块:一次没抽中它的概率为 ,连续 次没抽中的概率为 。用 1 减去它,再乘总块数,就得到期望覆盖量。
当 且 很大时,大约只覆盖 63.2% 的不同块。另一些块被重复抽中了。若先打乱后逐个无放回读取,一整轮才会覆盖全部块。这两种加载方式不能都含糊写成“训练一遍”。
不要把语言变化与领域变化混成一个结论
假设 A 方案加中文百科,B 方案加英文代码,结果 B 的代码能力更好。这不能直接证明“英文更有用”,因为内容类型也变了。
可以分别记录语言、领域、文体、质量分段、自然或生成、长度区间。不必把所有维度都做成复杂采样器,但日志应保留足够信息。
想研究语言比例,就尽量固定领域;想研究技术内容比例,就先固定语言。中英混排也要说明口径:如果整篇标为中文,那么“中文 token 数”实际上是中文标签文档贡献的 token,不是逐 token 判断出的语言数量。
能不能让训练反馈帮助选择比例
手工尝试所有配比很贵。DoReMi 的思路是先利用较小的模型寻找域权重,再把得到的权重用于较大模型。它关注相对于参考模型的超额损失,而不只是哪个领域的原始损失最大。DoReMi 论文
为什么需要参考?某个领域损失高,可能只是充满噪声,不表示多投入预算就一定有价值。参考模型提供了一个比较基准,帮助识别代理模型还没学好的部分。
这可以启发小项目先按领域观察损失,而不是只看总平均。但完整 DoReMi 还涉及具体损失处理、权重更新和平滑,不能把“哪里 loss 高就多喂哪里”叫作复现。
小模型找到的比例也不保证适合任何大模型。模型容量、训练时长、分词器和领域划分变了,都可能改变结果。额外代理训练的成本同样需要计算。
先通用后专业 要怎样公平比较
可以先训练广泛内容,再提高目标领域比例。这种分阶段方案不只改变比例,还改变了内容出现的时间。
若要研究“顺序有没有帮助”,可以让两套方案的各领域累计 token 相同,一套始终按固定比例,一套改变阶段顺序,并固定总学习率日程等条件。这样更容易把差异归到顺序上。
如果新方案最后还额外增加了一大段训练,就不能把收益全归因于顺序。对于继续预训练,还要检查原有通用能力是否下降,不能只报告目标领域的进步。
每个阶段至少记录数据版本、token 预算、比例、学习率和切换位置。
最后用实际读取记录核对配方
配置正确,不代表加载器正确。建议至少分开记录:从磁盘读出的 token、送进模型的 token、参与损失的有效 token,以及内容重复使用情况。
拼接短文能减少 padding,但 EOS 只是边界符号,不会自动阻止跨文档注意力。是否需要 attention mask、是否重置位置、尾块如何处理,都要与训练程序一致。
一组可解释的小实验,可以从少数几种中英文比例开始,固定候选池、模型、分词器、有效训练 token 和优化设置。同时报告中文、英文与技术任务,不只看总平均。任务如果对小模型太难、成绩接近随机,微小波动也可能无法区分方案。
比较效率时可分别看同 token 预算和同计算预算的结果。两者回答不同问题。选择配比使用开发集,最后测试集留到方案确定以后,避免不断围绕测试题调配方。
| 判断 | 依据与条件 |
|---|---|
| 按篇数的比例不等于按 token 的比例 | 完整读取且长度稳定时的推导 |
| 上采样增加的是重复机会 | 库存不变,训练份额提高 |
| 小模型反馈可以用于研究域权重 | DoReMi 提供具体方法,迁移仍受条件限制 |
| 某个中英文比例最适合当前模型 | 需要同条件实验,没有通用固定答案 |
两个检查问题:中文平均更短时,怎样调整文档抽样概率才能达到相同 token 份额?如果严格筛选之后模型变差,你会怎样区分内容覆盖减少与重复次数增加?
最后一篇会把这些选择落到文件、配置和检查记录里,让下一次训练知道自己到底用了哪份数据。
文章概念网络
从章节进入正文概念。实线表示所属层级,虚线连接跨章节重复出现的概念,不代表因果关系。
50 / 51 个节点 · 正文标记术语与关键词概念
中英文数据怎样混合:从语料比例到实际训练分布
回到原文 ↗最后更新于 2026-10-20
引用本文
@article{2026-10-15-llm-training-data-05-mixture,
author = {枫语},
title = {中英文数据怎样混合:从语料比例到实际训练分布},
journal = {枫语},
year = {2026},
month = {oct},
url = {https://meiluosi.github.io/posts/2026-10-15-llm-training-data-05-mixture/}
}