zip2zip:推理时通过在线压缩实现自适应分词
原题:zip2zip: Inference-Time Adaptive Tokenization via Online Compression
作者:Saibo Geng、Nathan Ranchin、Yunzhen Yao、Maxime Peyrard、Chris Wendler、Michael Gastpar、Robert West;前两位共同一作。
原文版本:arXiv:2506.01084v2,2025-10-24 修订;获取与研读日期:2026-11-12。
材料:本地原文 PDF · 作者 TeX 主文件 · 英文汇报 PDF · 可编辑 Beamer。下文页码均为从 1 开始的 PDF 页码,与论文印刷页码一致。
- 发表:已发表于 NeurIPS 2025 主会,Advances in Neural Information Processing Systems 38;官方论文集,DOI:10.52202/085713-5077(查证于 2026-11-12)。
- 代码:作者官方实现 epfl-dlab/zip2zip,已有模型、分词器、训练与评测相关实现;官方压缩组件另行提供。仓库仍有旧版论文题名,但作者与 arXiv 编号对应同一工作。
论文总览
zip2zip 要解决的问题是:能否让 LLM 在一次推理会话中,根据当前文本反复出现的片段创建新 token,并立即把它用于输入和输出? 普通 BPE 的词表来自离线训练,一次推理中不能改变。遇到陌生术语、代码标识符或非英语文本时,一个重复片段可能始终需要多个 token 表示,既占上下文,也增加串行解码步数。
作者在原始 BPE token 流之上增加 Lempel–Ziv–Welch(LZW)在线字典压缩,把已经出现的片段组织为超词元(hypertoken)。小型 hyper-encoder 从其组成 token 计算输入向量,hyper-unembedding 则把新 token 加入输出候选;经过压缩序列上的继续预训练,模型可以直接生成一个代表多个基础 token 的 ID。推理时改变的是字典、候选词表和缓存,不需要对每个新领域再次更新参数。
实验中,分词层面的序列缩短约为 13–41%,结构化代码和数学文本收益最大;H100 上多数吞吐指标明显改善。不过,压缩模型的 byte-level perplexity 全面升高,GSM8K 准确率较同预算普通继续预训练进一步下降 25–27 个百分点。这篇论文的价值在于打通“在线字典压缩—动态表示—直接输出长 token”的完整链条,实际取舍则是效率与任务质量。(Sec. 2–3,pp. 3–9,Tables 2、3、5、9。)
结构地图
| 原文章节 | 作用 | PDF 页码与主要证据 |
|---|---|---|
| 1 Introduction | 固定词表的局限与三项设计 | pp. 1–3;Fig. 1 |
| 2.1 Dynamic Token Vocabulary | 会话级动态词表、LZW、最大合并长度 | p. 3 |
| 2.2 Hyper-Embedding and Hyper-Unembedding | 从组成基础 token 构造新 token 的向量 | pp. 3–4;Fig. 2(a) |
| 2.3 Architecture | 输入、主干、联合输出、字典一致性与缓存 | pp. 4–5;Fig. 3 |
| 2.4 zip2zip Pretraining | 压缩序列 CLM 与重构损失 | pp. 5–6;Eqs. (1)–(3) |
| 2.5 Efficiency Advantage;2.6 Entropy Invariance under Lossless Compression | 效率直觉与分布搬运定理 | p. 6 |
| 3.1–3.3 Training Setup / Qualitative Examples and Hypertoken Patterns / Token Efficiency | 训练、生成样例、分词紧凑性 | pp. 6–8;Fig. 4,Tables 1–2 |
| 3.4–3.6 Perplexity / Evaluation on NLP Benchmarks / Inference Efficiency | 质量、下游能力与推理收益 | pp. 8–9;Tables 3–5 |
| 4 Related Work;5 Discussion and Limitations;6 Conclusion | 与已有路线的关系及限制 | pp. 9–10 |
| Appendices A–D | 更多相关工作、合并大小、编码器、压缩统计 | pp. 16–19;Tables 6–9,Figs. 5–6 |
| Appendices E–G | FLOPs 估算、分词延迟、熵不变性证明 | pp. 19–21;Table 10,Figs. 7–8 |
| Appendices H–K | 翻译与多语言 QA、技术配置、数据混合、token 可视化 | pp. 22–25;Tables 11–14,Figs. 9–10 |
一:动机——把词表适配从离线训练移到当前会话
1.1 更长的 token 为什么能省计算
假设某段代码反复使用一个由三个基础 token 组成的标识符。固定词表模型每次都要处理三个位置,生成时还需要三个串行步骤。如果当前会话中已有一个 token 指代这个片段,后续一次预测便能输出整个片段。输入压缩减少 Transformer 的序列长度;输出压缩减少解码循环次数。对低 batch 的自回归推理,后者尤其直接。
这里的“更大有效上下文”指同样数量的模型位置能容纳更多原始文本,不是把模型的位置编码上限直接改大。收益取决于文本内的可复用模式和压缩模块的额外成本。(Sec. 1、2.5,pp. 1–3、6。)
1.2 与相邻路线的差别
| 路线 | 何时确定表示单元 | 主要取舍 |
|---|---|---|
| 扩大固定词表/领域词表适配 | 训练或领域适配时 | 需要提前知道目标分布;每个领域可能要单独处理 |
| 输入提示压缩 | 输入预处理时 | 可大幅缩短输入,但不直接缩短后续输出 token 流 |
| zip2zip | 会话中随 token 流持续更新 | 输入和输出都使用新 token;需要训练动态表示模块并管理字典 |
作者把 Dynamic Vocab 视为概念上接近的工作,区别集中在词表构造算法与训练流程。zip2zip 保留原始 BPE,并在其上增加在线压缩层;它不是重新训练一个全新的基础分词器。(Sec. 4 与 App. A,pp. 9–10、16。)
二:方法——动态字典与语言模型必须共同闭环
2.1 符号与状态
| 符号 | 含义 |
|---|---|
| $\mathcal V$ | 原始固定词表;其中元素称 base token |
| $\mathcal V_h$ | 当前会话创建的 hypertoken 集合;会话开始为空 |
| $M$ | 一个 hypertoken 最多包含的基础 token 数,主实验取 3 |
| $d$ | 基础模型 embedding 的维度 |
| $\mathcal C$ | 从基础 token 序列到压缩 token 序列的可逆映射 |
| $f_\phi$、$f_\psi$ | hyper-encoder 与训练时的重构 decoder |
| $\theta$ | 语言模型参数;采用 LoRA 时只更新其中的适配参数 |
| $\eta$、$\rho$ | bytes/token;压缩后 token 数与压缩前之比 |
会话状态既包括 Transformer KV cache,也包括 codebook 和 hyper-embedding cache。一个 hypertoken 的局部 ID 本身没有跨会话固定语义,必须结合本次会话中它对应的基础 token 序列解释。(Sec. 2.1–2.3,pp. 3–5。)
2.2 在线 LZW:先在字典中建立,再在后续位置复用
LZW 用已有字典匹配当前 token 流,并逐步把新片段加入字典。它是在线字典解析,并不需要像离线 BPE 那样遍历整份语料、统计全局最高频 pair。片段的再次出现使已有条目发挥压缩作用;合并后的 hypertoken 也能参与后续更长片段的构造,最终长度受 $M$ 限制。

原图 Fig. 1,PDF p. 2。左侧纵轴是 decoding step;蓝色为基础 token、绿色为 hypertoken、粉色为特殊 token。中间静态词表不变,动态词表扩展;右侧解释每个新 ID。
按图从左到右读:基础 ID 1 和 2 分别代表 to 与 be,新 ID 7 代表 to be;随后 ID 11 由 7 和 3 形成,代表 to be or。左侧后续上下文直接追加 7 或 11,而不是展开成多个模型位置;底部再还原成基础 token 流。这也说明“动态”涉及输入表示与输出候选两端,而不仅是给已有文本重新编码。
图 1 是机制示意,包含长度为 4 的字典条目;主实验采用 $M=3$,不能把示意图的所有条目都当成该配置下实际启用的候选。
LZW 的三个用途是:新条目可以在线复用;压缩流能够通过确定性字典更新还原;训练数据有确定的规范压缩表示。生成接口仍须保证输入侧和输出侧的字典视图一致,否则会出现 ID 不存在或不可解码的问题。(Sec. 2.1、2.3,pp. 3–5。)
2.3 动态 embedding:为从未训练过的具体片段计算向量
若 hypertoken 对应 $y_{1:m}$,$m\le M$,作者令
不足 $M$ 的位置补齐。实现思路是先查基础 token 的原始 embedding,得到 $M\times d$ 的向量序列,再经小型网络映射成一个 $d$ 维向量。函数共享于所有新条目,所以模型可以表示训练阶段没有作为独立词表项出现过的片段。顺序和组合关系由 hyper-encoder 学习;简单均值只能提供很弱的组合表示。
输入端需要 hyper-embedding,输出端同样需要 hyper-unembedding。若原模型绑定输入与输出权重,可以复用同一 hyper-encoder;否则应分别训练。仅在输入端加一个压缩器,而不扩展 LM head,模型仍然不能直接输出 hypertoken。(Sec. 2.2,pp. 3–4;Fig. 2(a)。)
2.4 联合 softmax 与完整生成循环

原图 Fig. 3,PDF p. 4。下方是输入压缩与动态 embedding,中部为原 Transformer,上方为基础词表与超词表共同参与的输出投影,右侧为循环和解压路径。
用 $s_t\in\mathbb R^d$ 表示当前 hidden state,$u_v$ 表示候选 $v$ 的输出向量,可把图中的联合输出写成以下教学展开式:
其中基础候选沿用原始输出矩阵,新候选由 hyper-unembedding 提供。生成一个 hypertoken 就完成一次 Transformer 解码,但最终文本中可能增加两个或三个基础 token。
完整流程是:基础分词 → 在线压缩并构造字典 → 计算和缓存新条目的向量 → 在压缩序列上运行原主干 → 对当前联合词表采样 → 追加新 token、继续更新字典 → 还原最终文本。hypertoken 的向量只依赖其组成,不依赖当前上下文,因此同一会话中可缓存;上下文相关性仍由 Transformer 处理。(Sec. 2.3,pp. 4–5。)
2.5 训练:让模型适应压缩后的输入与预测目标
原始 CLM 优化 $\mathbb E_{y\sim\mathcal D}[-\log\pi_\theta(y)]$。zip2zip 先把每篇文档分别压缩为 $z=\mathcal C(y)$,再优化:
逐文档压缩使字典对应一段连贯上下文,不把互不相关文档中的短语错误地当成同一会话的可用记忆。训练仍采用 teacher forcing 和因果注意力,可并行计算各位置的 next-token loss。论文说训练时预先计算整条序列的 codebook;这与推理时逐步增长不同。原文没有清楚展开“未来才建立的字典项”是否被逐位置屏蔽,因果 attention mask 与输出词表可用性是两种约束,复现时需要明确这一接口。(Sec. 2.4,p. 5;此处为实现层面的阅读分析。)
为了让单个 $d$ 维向量保留组成信息,再加入辅助重构项:
$\Delta$ 可用对原基础 token 的交叉熵;$\lambda=0.1$。LM loss 教模型在新表示上预测,重构 loss 教 hyper-encoder 保留内部组成。正文有“重构 embedding”的表述,但 Eq. (3) 和 Fig. 2(c) 的目标明确写为基础 token,应以该公式解释。推理时的精确文本还原依赖符号 codebook,而不是依赖训练中的神经 decoder 猜回原文。

原图 Fig. 2,PDF p. 4。三个面板分别回答:新 token 如何表示、预测什么、如何约束组成信息。
2.6 无损压缩与质量保持:定理究竟说明什么
令 $g:\mathcal X^*\to\mathcal Z^*$ 在其像上是双射。对原真实分布 $P_X$ 与模型分布 $p_\theta$,定义搬运后的分布:
则
证明的关键是换求和变量:每个合法压缩序列 $z$ 对应唯一原序列 $x$,因此 $-\sum_zP_Z(z)\log p_\gamma(z)$ 与 $-\sum_xP_X(x)\log p_\theta(x)$ 是同一个和式。这里是不按 token 数归一化的整序列熵与交叉熵,不能据此要求 token-level PPL 相等。
定理给出的是“存在一个搬运后的模型分布可以保持 likelihood”。有限规模的 Transformer 加上新模块、有限继续预训练,是否能实现这个分布,仍是模型表达与优化问题。论文把实测退化主要归因于优化困难;本次分析认为,定理本身也没有证明所用固定架构和适配参数足以表示全部搬运模型。(Sec. 2.6,p. 6;App. G,pp. 20–21。)
附录 B.1 还提出最长合并长度为 $O(\sqrt N)$ 的命题,其证明把长度 1 到 $M$ 的出现长度相加。该论证需要具体的 LZW 短语解析来保证相应消耗不能重叠,仅说短语曾出现不足以推出总长度下界;不宜把它直接推广成任意递归合并算法的性质。实际实验使用显式 $M=3$ 上限,并不依赖此命题。(App. B.1,p. 17;此处为证明条件分析。)
2.7 从更短序列到实际成本
对同一份文本,令 $\rho=N_{\rm comp}/N_{\rm orig}$,则 token 减少比例为 $1-\rho$。若 bytes/token 从 $\eta_0$ 增至 $\eta_1$,有
因此 bytes/token 增加 50%,token 数减少的是 $1-1/1.5=33.3\%$。更长的平均 token 不会按同一百分比直接转化为吞吐增长。
附录 E 给出的粗略成本模型是
其中 $l$ 为 hyper-encoder 层数,$L$ 为基础主干层数。直觉是,压缩收益需抵消动态向量计算。例如教学取值 $\rho=0.7$、$\alpha=0.1$,得到相对 FLOPs 约 0.77,节省约 23%。这只是成本分解示例。
原文该估算忽略 attention 二次项,却写出 $12d_{\rm model}\ll\text{sequence length}$ 的条件,方向与“忽略长序列 attention 成本”的直觉相反;此外将参数数目称为可训练参数也不足以涵盖 LoRA 中冻结主干的前向成本。因此这里保留其定性分解,不据此估计精确训练成本。动态词表还会增加 LM head 候选数和缓存空间:缓存新向量避免重复计算,并没有消除增长的输出投影与内存成本。(Sec. 2.3、2.5;App. E,pp. 5–6、19–20。)
三:实验——比较对象、配置与指标
3.1 训练及 baseline 的角色
结果表主要使用 Phi-3.5-4B 与 Phi-3-14B,按原表命名。zip2zip 更新 LoRA 以及 hyper-embedding / hyper-unembedding 模块;主配置为 $M=3$、两层 Transformer hyper-encoder、$\lambda=0.1$。正文不同段落有模型代际或规模的混写,解释结果时以各结果表标签为准。
每个规模有三个对照:Base 是原模型;Cont. pretrain 是在相同训练条件下做普通 LoRA 继续预训练;zip2zip 使用压缩表示和辅助模块。后两者的差异更接近引入压缩体系的代价,Base 到 Cont. pretrain 的变化则揭示普通继续预训练本身造成的能力变化。(Sec. 3.1,pp. 6–7。)
训练混合为代码 25%、数学 20%、对话 20%、Web 20%、多语言 15%,分别来自 Stack 相关数据、NuminaMath-1.5、UltraChat、FineWeb-Edu 和 FineWeb-2。多语言部分包含中文、德语、日语、西班牙语、法语、意大利语、葡萄牙语、荷兰语、阿拉伯语。(App. J,pp. 23–24,Table 14。)
预算与配置的原文冲突会影响复现和成本判断:
| 项目 | 正文或一处报告 | 附录另一处报告 |
|---|---|---|
| GPU-hours | Sec. 3.1:4B 约 10、14B 至多 40 H100-GPU-hours | Table 13:4B 为 14.0、14B 为 63.0 H100-GPU-hours |
| token 预算 | Sec. 3.1:0.1B training tokens | App. J:约 1B 压缩 token 的最终数据集;I.1 的 32768 token/step × 10000 steps 又对应约 0.328B 处理 token |
| LoRA rank / alpha | App. I.1:均为 32 | App. I.2:均为 16 |
| 硬件 | App. I.4:4×A100 | App. I.5、Table 13:H100 |
数据集总量与训练消耗可以不同,但论文没有把这些数字明确对应到各次实验;不能合并成一套唯一配置。概括时可说“轻量继续预训练可行”,不能把摘要的 10 GPU-hours 当成所有报告模型的确切成本。(pp. 7、22–24。)
3.2 四类评估各回答什么
| 评估 | 对象与协议 | 指标解释 |
|---|---|---|
| 分词紧凑性 | Llama-3、Qwen-2、Phi-4、Gemma-3 的 tokenizer;代码、数学、对话、多语言、Web | $\eta=\mathrm{UTF8Bytes}/\mathrm{Tokens}$,越高越好;这是 tokenizer 测试,不等于四类模型都完成训练 |
| 语言建模 | WikiText、Pile、Paloma mC4 与 dC4;1024-token context | byte-level PPL,越低越好;按字节归一化避免不同粒度的 token PPL 直接混比 |
| 下游质量 | Table 3 的七项 two-shot accuracy;WMT14 En–Fr、WMT16 En–De/En–Ro;多语言 QA | accuracy、BLEU、CHRF 越高越好;TER(译文编辑率)越低越好;翻译为双方向平均 |
| 推理效率 | M1/MLX 与 H100/HuggingFace generate;输入长度 256–2048、生成长度 256 的标称设置 | prefill 与 decode 的 tokens/s,越高越好;分阶段、分硬件比较 |
正文列任务时另提到 LAMBADA,但 Table 3 没有该列;本笔记只分析实际报告的七列。Table 3 的 bootstrap 标准差约 0.02;翻译的 bootstrap 结果见 Table 11,不能把它们解释为独立训练多次的方差。(Secs. 3.3–3.6;App. H,pp. 7–9、22。)
四:结果——压缩收益成立,但能力保留需要逐项看
4.1 生成片段确实形成了可解释的 hypertoken
Table 1 中,代码的 tor + ch → torch、生物医学的 m + R + NA → mRNA、法语的 E + iff + el → Eiffel,说明重复片段可以形成接近词或领域实体的表示。Fig. 4 以颜色区分基础 token、二元与三元 hypertoken;App. K 的 Fig. 10 进一步对照了同一文本的默认和自适应 token 边界。(p. 7、p. 25。)
应区分 hypertoken 占比与 token 减少率:Table 8 的代码样例从 344 个 token 变成 265 个,减少 $79/344\approx23.0\%$;其中 hypertoken 数 44,占压缩序列 $44/265\approx16.6\%$。生物医学样例 322→270,减少 16.1%;法语样例 399→367,减少 8.0%。正文对样例另写“代码可达 40%、生物医学 20%”,与 Table 8 的统计未对齐,因此定量说明以明确计数为准。(Sec. 3.2,p. 7;App. D,p. 19。)
4.2 Token efficiency:重复结构越强,收益通常越大
以下节选 Table 2 的原始 bytes/token 数值;最后一列按同文本长度关系计算,因输入数值经过舍入,可能与 Table 9 差 0.1 个百分点。
| tokenizer / 领域 | 基础 $\eta$ | +zip2zip $\eta$ | token 数减少(按表内数值) |
|---|---|---|---|
| Llama-3 / Code | 4.1 | 6.3 | 34.9% |
| Llama-3 / Math | 2.7 | 4.0 | 32.5% |
| Llama-3 / Chat | 5.1 | 6.4 | 20.3% |
| Llama-3 / Multilingual | 3.8 | 4.7 | 19.1% |
| Llama-3 / Web | 4.6 | 5.4 | 14.8% |
| Qwen-2 / Math | 2.3 | 3.7 | 37.8% |
| Gemma-3 / Code | 3.3 | 5.6 | 41.1% |
Table 2 的 bytes/token 增益覆盖 15–70%,对应 Table 9 的 token 数减少约 13–41%。这支持在线复用在较大基础词表上仍有价值:Gemma-3 的词表已有 256K,代码仍由 3.3 增至 5.6 bytes/token。词表规模不是紧凑性的唯一因素,当前文本分布与内部重复结构也重要。(Sec. 3.3,pp. 7–8;Tables 2、9,pp. 8、19。)
4.3 Byte-PPL:质量下降在不同语料上都可见
设序列条件似然 $Q(x)=\prod_iq(x_i\mid x_{模型 / 方法 Wiki ↓ Pile ↓ mC4 ↓ dC4 ↓ 4B Base 1.58 1.79 1.88 1.74 4B Cont. pretrain 1.59 1.81 1.88 1.74 4B zip2zip 1.69 1.95 2.00 1.82 14B Base 1.43 1.72 1.82 1.67 14B Cont. pretrain 1.47 1.79 1.86 1.68 14B zip2zip 1.56 1.90 1.96 1.75
相比同预算普通继续预训练,4B 的 Pile Byte-PPL 从 1.81 升至 1.95,14B 从 1.79 升至 1.90。四个语料都出现同方向变化,因此不能用“符号压缩可逆”推出“训练后的模型质量无损”。同时,固定 1024 个模型 token 使压缩模型通常能看到更多原文本,结果比较包含这种有效上下文差异。(Sec. 3.4,Table 3,p. 8。)
4.4 NLP benchmarks:普通继续预训练与压缩的损失要分开
| 模型 / 方法 | ARC-c | ARC-e | HellaSwag | OBQA | PIQA | WinoGrande | GSM8K |
|---|---|---|---|---|---|---|---|
| 4B Base | .60 | .83 | .66 | .46 | .79 | .75 | .82 |
| 4B Cont. pretrain | .60 | .82 | .63 | .47 | .82 | .75 | .40 |
| 4B zip2zip | .57 | .83 | .61 | .46 | .82 | .75 | .15 |
| 14B Base | .62 | .80 | .70 | .51 | .83 | .76 | .84 |
| 14B Cont. pretrain | .62 | .88 | .66 | .52 | .87 | .80 | .52 |
| 14B zip2zip | .62 | .86 | .68 | .51 | .85 | .79 | .25 |
以上均为准确率,越高越好。一般常识选择题与匹配预算 baseline 接近:4B 的 PIQA/WinoGrande 相同,ARC-c 下降 3 个百分点;14B 的 HellaSwag 提高 2 个百分点,PIQA 下降 2 个百分点。不能把这些小差异概括成稳定的总体提升。
GSM8K 则是决定性失败案例:4B 为 .82→.40→.15,14B 为 .84→.52→.25。普通继续预训练已分别损失 42、32 个百分点,zip2zip 再分别损失 25、27 个百分点。作者推测动态 token 边界可能进一步伤害数值运算,但没有给出定位具体原因的实验。因此,“大部分任务保持接近”只适用于相应表列,不能扩展到数值推理。(Sec. 3.5,Table 3,p. 8。)
4.5 翻译与多语言 QA:保留部分能力,但不能统一说下降很小
| 模型与方法 | En–Fr BLEU ↑ | En–De BLEU ↑ | En–Ro BLEU ↑ | En–Ro TER ↓ |
|---|---|---|---|---|
| 4B Cont. pretrain | 36.5 | 42.3 | 16.7 | 79.7 |
| 4B zip2zip | 34.1 | 39.7 | 14.3 | 93.5 |
| 14B Cont. pretrain | 38.9 | 48.4 | 21.8 | 68.3 |
| 14B zip2zip | 36.4 | 44.8 | 19.5 | 72.9 |
Table 4 的 BLEU、CHRF 多数低于匹配预算 baseline。尤其 4B En–Ro 的 TER 增加 13.8,Table 11 对应 $79.7\pm2.3$ 与 $93.5\pm2.5$,不适合笼统归入“所有指标轻微下降”。与原始 Base 相比,4B En–Fr BLEU 反而从 33.6 到 34.1,这再次说明选哪一个 baseline 会改变描述。(Tables 4、11,pp. 9、22。)
附录 H.2 在法、西、俄、中、阿五种语言上测试 TruthfulQA-2、HellaSwag、Winograd,部分组合为 NA。zip2zip 与普通继续预训练大体相近,例如中文 Winograd 为 .64 对 .61;但两者与 Base 的差距可能更大:西语 HellaSwag 是 Base .66、普通继续预训练 .57、zip2zip .55,阿语是 .44、.27、.27。这里更合理的判断是,压缩相对继续预训练没有在这些项目上额外造成普遍的大幅下降;原模型的跨语言能力并非全部保留。(Table 12,p. 22。)
4.6 推理吞吐:H100 收益显著,M1 prefill 有回退
Table 5 将 prefill 与 decode 分开,下面节选其原始 tokens/s。增益按展示值重算并取近似值;原表部分百分比与展示数值不一致。
| 硬件 / 模型 / 标称长度 | Prefill:Base→zip2zip | Decode:Base→zip2zip |
|---|---|---|
| H100 / 4B / 512+256 | 1347.2→2722.1(约 +102%) | 54.4→79.8(约 +46.7%) |
| H100 / 4B / 2048+256 | 4993.2→9258.1(约 +85.4%) | 53.1→61.9(约 +16.6%) |
| H100 / 14B / 1024+256 | 2328.6→3657.0(约 +57.0%) | 45.1→66.8(约 +48.1%) |
| M1 / 4B / 256+256 | 165.0→145.5(约 −11.8%) | 7.3→7.9(约 +8.2%) |
| M1 / 4B / 1024+256 | 200.9→189.6(约 −5.6%) | 7.1→7.4(约 +4.2%) |
原表部分相对百分比与显示值有几处不完全一致,以上采用绝对值与可复算近似值。结论是 H100 的报告设置中 prefill 和 decode 均受益,M1 上 decode 改善较温和,而 prefill 并非处处更快。正文“all settings”不应被理解为所有硬件、所有阶段均提高。(Sec. 3.6,Table 5,p. 9。)
吞吐增加 $r$ 时,在处理量相同的条件下,时间降低为 $r/(1+r)$。例如 H100 14B 的 decode 45.1→66.8 tokens/s,对相同 token 量对应约 32.5% 的时间减少,不是 48.1%。此外 Table 5 对 zip2zip 的 token/s 究竟按生成的 hypertoken 还是展开后的基础 token 计数没有充分展开;它也没有直接列出统一输出文本长度的端到端时间。因此应保留分阶段吞吐证据,不能直接把它复述成相同幅度的端到端延迟降低。
工程上使用 hyper-embedding cache 和自定义 Triton kernel,避免反复计算同一条目。Rust LZW 的 tokenizer 延迟接近基础 HuggingFace tokenizer;Fig. 7 对每种分词器分别给出分词和反分词两根柱,纵轴为毫秒,Python 实现明显更慢。该图说明高效实现能控制额外开销,并不意味着压缩步骤完全没有成本。(App. F,pp. 20–21,Fig. 7。)
4.7 合并长度消融:$M=3$ 是折中,较大 $M$ 不必更难学
| $M$ | Wiki Byte-PPL ↓ | Pile ↓ | mC4 ↓ | dC4 ↓ | 保留 token 比例 $\rho$ ↓ |
|---|---|---|---|---|---|
| 1 | 1.62 | 1.70 | 2.00 | 1.91 | 100.00% |
| 2 | 1.96 | 2.21 | 2.55 | 2.22 | 75.30% |
| 3 | 1.72 | 1.84 | 2.15 | 2.00 | 71.21% |
| 4 | 1.71 | 1.84 | 2.14 | 1.99 | 68.93% |
| 5 | 1.72 | 1.84 | 2.14 | 1.99 | 68.41% |
此表的 Byte-PPL 用 1024-token context,保留比例则在 2048-token context 的训练语料上统计,不要混成同一测试条件。$M=3$ 相比 $M=2$ 同时提高压缩和质量;$M=3→5$ 只额外减少约 2.8 个百分点的原始 token 数,Byte-PPL 几乎不变。Fig. 5 也显示 $M=2$ 收敛最差。这支持选择中等 $M$,但并不支持“合并越大,所有质量指标必然越差”。该消融的数值来自独立表组,不能与主实验 Table 3 拼接比较。(App. B,pp. 17–18,Table 6、Fig. 5。)
4.8 编码器消融:学习组合有用,加深到两层未显优势
Table 7 的 Wiki/Pile/mC4/dC4 Byte-PPL 分别为:均值池化 1.81/1.97/2.29/2.08,单注意力层 1.73/1.86/2.16/2.01,单 Transformer 层 1.71/1.83/2.13/1.99,双 Transformer 层 1.72/1.84/2.15/2.00。可学习的组合网络明显优于均值,而单层在该表的四项上都略优于双层。正文说双层有额外收益,但表内数值不支持这一方向;更稳妥的结论是 1–2 层轻量 Transformer 已足够,继续加深的收益未显示出来。Fig. 6 展示平均法收敛快但平台较高,可学习架构训练更慢、最终 loss 更低。(App. C,pp. 18–19,Table 7、Fig. 6。)
五:结论——最值得保留的是接口设计
zip2zip 的核心贡献是把动态词表的三个接口同时补齐:在线字典决定“当前有哪些新 token”,组合编码器决定“如何表示从未作为词表项训练过的片段”,压缩 CLM 与联合输出决定“如何真正生成它们”。符号压缩的精确可逆性与神经表示的可学习性在这里分工明确。
实际使用应依据任务与硬件选择:重复结构强的代码和数学文本有较大的分词压缩潜力,但数学推理的质量下降表明“可压缩”不等于“更适合预测”;H100 的吞吐结果也不能直接套用到 M1 的 prefill。若把它作为系统改进方向,应同时比较等原文本处理量的延迟、匹配继续预训练 baseline 的任务质量,以及字典和输出头的额外成本。
论文 Sec. 5 报告只有约 25% 的 hypertoken 在生成中被复用,提示字典维护仍有优化空间。作者提出剪枝、选择性保留与 codebook 预填充,但尚未实验证明收益。结合本文结果,最有价值的后续问题是:如何保留可复用条目而避免无用候选膨胀,如何使训练时和推理时的词表可用性完全一致,以及能否在保留压缩率的同时恢复数值推理与语言建模质量。(p. 10。)