一篇新教程详细记录了从基本原理出发构建和训练字节级 BPE 分词器的逐步过程。该指南涵盖了关键的实现细节,例如 Unicode 感知的预分词、增量对频率更新以及使用惰性删除的最大堆。
- 训练从 256 个原始字节 token 开始,并在多语言文本上学习合并操作。
- 实现了“对到预token”的倒排索引以优化训练过程。
- 模型在八个语言的 100 MiB mC4 数据上进行了训练。
- 最终得到一个包含 8,192 个 token 的词表,其中包含 7,936 个学习到的合并操作。
- 在配备 32 GB 内存的 12 核 M2 Pro 上,训练耗时约一小时。
作者通过 GitHub 仓库提供了完整的源代码和解释,并包含了一个实时演示,供用户与自定义分词器进行交互。