跳转至

Byte Latent Transformer: Patches Scale Better Than Tokens

会议: ACL 2025 (Outstanding Paper)
arXiv: 2412.09871
代码: https://github.com/facebookresearch/blt
领域: 模型架构 / LLM / 高效训练
关键词: 字节级模型, 动态分组, 基于熵的分段, tokenizer-free, scaling law

一句话总结

Meta FAIR提出BLT——首个在大规模(8B参数/4T字节)上匹配基于tokenizer的LLM性能的字节级架构,通过基于下一字节熵的动态分组(patching)将字节聚合为可变长度patch,在保持性能的同时实现最高50%推理FLOP节省,并开辟了"同时增大模型和patch尺寸"的全新scaling维度。

背景与动机

几乎所有现代LLM都包含一个非端到端的预处理步骤——tokenization(如BPE),它将原始字节压缩为固定词表的token。这种方法存在本质缺陷:对领域/模态敏感、对输入噪声脆弱、缺乏正字法知识、造成多语言不公平。此前的字节级模型因序列过长导致计算成本远超token模型。MegaByte等方法用固定步长分组(strided patching)缓解了部分问题,但在大规模上性能仍落后于Llama 3等SOTA。

核心挑战:Transformer的计算瓶颈不在注意力机制(长序列时确实如此),而在于大型前馈网络层——它们在每个位置上都运行。因此,减少位置数量(即智能分组字节)比改进注意力更关键。

核心问题

  1. 如何设计一种无需固定词表、直接在原始字节上训练的LLM架构,并在8B参数规模上匹配基于tokenizer的SOTA?
  2. 如何根据数据复杂度动态分配计算——对可预测的字节(如单词后续字母)用更少计算,对不可预测的字节(如新句子开头)用更多计算?
  3. 基于patch的模型是否能开辟tokenizer模型不具备的新scaling维度?

方法详解

整体框架

BLT由三个模块组成: - Local Encoder(轻量级):将输入字节序列编码为patch表示,通过hash n-gram嵌入和cross-attention - Latent Global Transformer(重量级):在patch表示上做自回归建模,消耗绝大部分FLOP - Local Decoder(轻量级):将patch表示解码回字节序列

关键机制:Global Transformer的调用次数由patch数决定,而非字节数。patch越大,Global Transformer运行越少,计算量越小。

关键设计

  1. 基于熵的动态分段(Entropy Patching)
  2. 训练一个小型字节级LM(100M参数)估计每个字节位置的下一字节熵H(x_i)
  3. 当H(x_i)超过阈值θ_g时,在该位置创建新patch边界
  4. 直觉:高熵=不确定=难以预测=需要更多计算→分配更多Global Transformer步骤
  5. 例如"George R.R. Martin"中,"G"的熵高(新实体开始),其后字母可预测(低熵),所以"eorge"被合并为一个大patch
  6. 满足增量分段(incremental patching)属性:不依赖未来字节,兼容自回归生成

  7. Hash N-gram嵌入

  8. 对每个字节位置计算3-gram到8-gram的滚动多项式哈希
  9. 映射到固定大小的嵌入表(500K哈希),无需维护显式n-gram表
  10. 这是BLT匹配tokenizer模型性能的关键因素(消融实验中移除后BPB显著下降)

  11. Perceiver式Cross-Attention

  12. Encoder中:patch表示作为query,字节表示作为key/value → 将字节信息聚合到patch
  13. Decoder中:角色互换,字节表示作为query → 将patch信息展开回字节
  14. mask策略:每个patch query只attend到构成该patch的字节

  15. 新Scaling维度:同时增大patch和模型

  16. 传统token模型中,固定推理预算=固定模型大小
  17. BLT中,增大patch size → 减少Global Transformer步数 → 节省的FLOP可用于增大模型
  18. 实验证明:patch size 8 + 更大模型在固定推理预算下超越了更小patch + 更小模型

实验关键数据

设置 BLT-Entropy (ps4.5) BPE Llama 3 差异
平均基准 61.1% 60.0% +1.1%
CUTE(字符理解) 54.1% 27.5% +26.6%
HellaSwag噪声版 64.3% 56.9% +7.4%
低资源翻译(→English avg) 14.0 BLEU 12.1 BLEU +1.9
拼写任务 99.9% 1.1% +98.8%

消融实验要点

  • Hash n-gram嵌入是最关键的组件,提供0.024 BPB改进(相比无嵌入),比cross-attention更重要
  • Entropy patching > Space patching > Strided patching,在scaled实验中差距进一步放大
  • Decoder比Encoder更需要层数:在总参数不变时,1层Encoder+9层Decoder优于5+5
  • 从Llama 3初始化BLT的Global Transformer可以显著利用已有预训练知识("字节化"已有模型)
  • 固定推理FLOP scaling:BLT在超过compute-optimal点~2.5x后即超越BPE模型

亮点

  • 首次字节级模型大规模可行性证明:8B参数+4T字节,匹配并在多项指标超越Llama 3,彻底回答了"字节级模型能否在大规模上work"
  • "Patches Scale Better Than Tokens"是本文最深刻的洞察:tokenizer模型的模型大小和推理成本强耦合(词表越大→嵌入表越大→模型越大),而BLT解耦了这种关系——patch大小可自由选择
  • 字符级理解能力的飞跃:CUTE基准上99.9% spelling vs BPE的1.1%,说明tokenization对底层字符知识造成了不可逆的信息丢失
  • BLT从Llama 3初始化的实验暗示了一条"先tokenizer训练、后byte化"的实际路线,避免从零训练的成本

局限性 / 可改进方向

  • Scaling law是基于BPE模型的最优比例(来自Llama 3),BLT可能有不同的最优参数-数据比
  • 训练效率(wall-clock time)还未完全优化到tokenizer级别,需要更多工程工作
  • Entropy model目前是单独训练的,未与BLT端到端联合优化
  • 固定推理scaling中,BLT在small training budget时不如BPE——需要超过compute-optimal约2.5倍才crossover

与相关工作的对比

  • vs MegaByte:MegaByte用固定步长(如4字节一组),BLT用动态熵分段。BLT在flop-controlled比较中大幅领先
  • vs ByT5:ByT5直接在每个字节上跑全transformer,计算成本极高。BLT通过patching将全局transformer步数大幅减少
  • vs SpaceByte:SpaceByte在空格处分段,BLT在高熵处分段。空格分段无法处理非空格语言,且不能控制patch大小
  • vs Llama 3:在同等训练FLOP下,BLT匹配Llama 3通用性能,在鲁棒性和字符理解上大幅领先

启发与关联

  • BLT与NSA(Native Sparse Attention,同会Best Paper)理念呼应:两者都在质疑"标准做法是否最优"——前者质疑tokenization,后者质疑full attention
  • 动态计算分配的思想可迁移到视觉领域——对简单区域用大patch、复杂区域用小patch
  • 如果字节级模型在低资源翻译上天然更好,可能改变多语言模型的设计范式

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次大规模证明字节级模型的可行性,开辟全新scaling维度
  • 实验充分度: ⭐⭐⭐⭐⭐ 8B规模+4T训练字节,FLOP-controlled比较、大量消融、鲁棒性测试
  • 写作质量: ⭐⭐⭐⭐⭐ 论文组织精美,每个设计选择都有清晰的动机和消融支持
  • 价值: ⭐⭐⭐⭐⭐ 可能改变下一代LLM的基础架构设计,对多语言和鲁棒性研究有深远影响