Cartesia 发布 H-Net 扩缩律研究:字节级层级网络比 BPE 提升最高 3-5x 计算效率
AI 全文翻译,未经原作者审校;可切换原文对照。
自 Richard Sutton 于 2019 年发表其颇具影响力的论文以来,苦涩的教训(bitter lesson)这一概念指引了 AI 领域的诸多现代进展。该理念主张采用利用算力、并随规模扩展而学习的通用方法,尽可能摆脱人为设计的先验。我们的理解是,从根本上说,智能关乎从原始数据中学习:从杂乱的低层输入中自主发现模式、构建抽象概念并发展意义,理想情况下是端到端的,并尽可能高效地利用数据。随着 AI 进入科学、机器人学和生物学等复杂领域——在这些领域中数据稀缺,且往往难以被人类理解,更不用说为其设计工程——内化这一哲学以开发更通用的学习算法,比以往任何时候都更加重要。
语言模型或许是当今 AI 最大的成功案例,并且在很大程度上践行了苦涩的教训。它们的能力主要归功于对若干简单算法的规模化,例如 Transformer 架构、下一词元预测、强化学习以及测试时计算。然而,它们仍然依赖手工设计的编码步骤,例如分词器(tokenizer),这严重阻碍了它们从底层数据中进行端到端学习的能力。为了释放规模化的又一次阶跃式进步,我们相信开发字节级语言模型是 AI 进步的基石——这不仅是为了改进独立的 LLM,也是作为通用学习方法的试金石。如果我们甚至无法从字符和字节中很好地学习语言,我们又有什么资格在下一个前沿领域取得进展呢?
2025 年,我们提出了分层网络(H-Nets)的概念,它不仅解决了语言模型中的分词问题,还朝着更通用的架构迈进了一步,使其能够跨不同模态从原始数据中学习。此后,我们显著改进了 H-Nets 技术,并很高兴能分享它们的能力!在这个由两篇文章组成的系列中,我们将深入探讨新结果并讨论其影响。
在这个由两部分组成系列的第一篇文章中,我们将探讨 H-Nets 的缩放定律及其定性行为。
- 我们构建了针对分词 Transformer 的标准缩放阶梯,并表明经过精心控制的 1 阶段 H-Nets 仅通过学习到的分词就能带来显著的计算效率提升(高达 3-5 倍)。
- 我们展示了扩展更灵活的 2 阶段 H-Net 的实证结果,其中它以极高的效率提升(计算量和数据量减少 10 倍)超越了相匹配的开源模型。
- 我们分析了 H-Nets 所学习到的模式,它们展现了丰富多样的新行为,这些行为在语言模型中前所未见,例如上下文内分词。
- 我们讨论了 H-Nets 如何超越语言建模,并介绍了在生物学和视觉领域正在进行的研究成果,展示了其作为跨模态通用架构的潜力。
在下一篇文章中,我们将更深入地探索更大范围的模型,以更好地理解为什么 H-Nets 在语言建模上能如此高效。
总的来说,我们的结果提供了证据,表明 H-Nets 是一种基础架构,真正契合了苦涩的教训,能够直接从原始数据中学习意义,并显著提升效率和可扩展性。这一研究方向代表着推动 AI 从所有数据中学习方式的重大机遇,我们对推进这一前沿领域无比兴奋!
分层网络(H-Nets)
我们于去年提出了分层网络(论文、博客),这是一种新的端到端架构,能够对数据中的多个抽象层次进行建模,在语言建模及其他领域展现出良好前景。简而言之:
这一术语的灵感来源于认知心理学中已有的 组块化(chunking)概念,它是人类智能的重要组成部分。我们相信,它对于人工智能的前沿发展同样不可或缺。
在语言建模的语境下,这一思路是构建新的学习原语,使模型能够递归地将低层数据组块化为更高层次的意义:字符组成词,词组成短语,短语组成概念。
在本文的语境下,大体上可以将分层网络理解为取代分词(tokenization)。H-Nets 不再将数据从字节预处理为 token(固定的字节块),而是动态地在模型内部直接执行组块化。此外,H-Nets 的标志性特征在于,它们以端到端的方式分层执行这种组块化。相比之下,标准的分词语言模型乃至其他替代方案(其中一些我们将在第二部分中看到)采用多阶段训练,而对数据进行组块化/分词的过程完全在离线状态下完成。
细节:分词与 BPE
语言模型并不直接阅读文本,而是接收来自固定词表的 token 序列作为输入。一个自然的词表是 256 个字节值,即每个 UTF-8 字节作为一个 token。然而,字节级序列很长,对标准语言模型来说处理成本很高。分词旨在通过将字节序列压缩为高频出现的块来缓解这一问题。最常见的方法是字节对编码(BPE),它从 256 个字节出发,在固定的训练语料上反复合并出现频率最高的相邻 token 对,直到词表达到预设大小(例如 Llama-3.2 的 128k)。在我们的数据混合中,每个 BPE token 大约覆盖 4.57 个字节,使得序列远短于字节级序列。然而,这种压缩是固定的,分词仍然是语言建模流程中少数由人工设计而非学习得到的部分之一。
我们将在本系列文章中看到,即使在取代分词这一更狭窄的语境下,H-Nets 的端到端特性也能带来切实的性能提升。除了分词之外,H-Nets 作为一种基础架构具有广泛的用途:
- H-Nets 可以递归嵌套,从而构建多个抽象层次。本文的主要结果是一个更大的两阶段分层网络与一个开源基线的对比。
- H-Nets 可以处理任何类型的数据,不仅是字节,也不仅是离散数据。相比之下,对连续数据进行分词是一个严峻的挑战。在本文的最后一部分,我们将预览一些将 H-Nets 应用于文本之外的未来研究。
H-Net 架构
两阶段字节 H-Net
解码器
去组块化
解码器
去分块
主网络
分块
编码器
分块
编码器
图 1展示了一个两阶段 H-Net,并定义了模型的主要组件:编码器、主网络和解码器。我们有时将编码器/解码器合称为外层网络,而将主模型称为内层网络。
在本文中,我们展示的是经过大幅改进的 H-Net 版本的结果,我们计划发布该版本。我们将在本文后面更多地讨论它与早期架构的差异。
第一部分:BPE 与 H-Net 扩展阶梯
与许多架构论文一样,关于分层网络的原始论文侧重于针对特定固定规模和数据范围的语言模型进行调优(例如,使用来自 FineWeb-Edu 的 100B token 训练约 1.3B 参数的模型一直非常普遍)。尽管它们看起来非常有前景,但缺少的一环是缺乏计算最优的扩展定律(scaling law),而如今这已成为衡量预训练创新的标准方式。例如,Kimi 在 Kimi Delta Attention (KDA) 和注意力残差方面的流行创新分别测得 1.16 倍和 1.25 倍的计算量增益。
为了验证我们改进后的 H-Net 架构的收益,我们首先着手构建一个现代 LLM 扩展阶梯,然后用一个经过精心控制的分层网络替换其中的 tokenization 组件。
- 我们建立了一个训练混合数据集,以便在同等条件下比较字节级和 BPE 的扩展定律,仔细匹配处理过程,甚至为基线重新训练了一个 BPE tokenizer。
- 我们按照标准实践为基线 BPE Transformer 语言模型建立了一个扩展阶梯,复现了文献中的结果。
- 然后我们将每一级转换为字节级 H-Net 作为直接替换,复用 BPE 的骨干架构和超参数。
这一方案直接在验证损失上显示出更强的结果(1.3 倍),在代码等子领域的增益更大(2 倍),并且在分布外数据上也有所改善(评估上 2 倍,分布外代码上最高 5 倍)。
数据受控的比较
由于字节级模型和 BPE 模型以不同的粒度处理相同的数据,因此需要格外小心以保持方法的可控性。
数据混合:我们的训练数据集按字节数计算,由 70% 英语、20% 代码、5% 数学和 5% 多语言内容组成。
数据处理:每个样本同时以字节和 BPE token 的形式处理,并在相同的边界处分割;因此,字节处理和 BPE 处理的数据集包含完全相同的文本,且文档边界对齐。
指标:我们使用标准的每字节比特数(bpb)指标来衡量下一 token 预测损失,该指标在不同 tokenizer 之间进行了归一化。
语料内 BPE 分词器:LLM 通常使用现成的 BPE 分词器;H-Nets 的一个优势在于它们直接在训练分布上学习分块。为稳妥起见,我们也在该语料上训练了一个 BPE 分词器。我们用它来拟合下文的 BPE 缩放律,最终在验证损失和下游评测上都带来了约 1.1 倍的算力收益(因此 H-Net 相对于标准现成分词器的算力倍数还会更高!)
该 BPE 分词器的词表大小为 128k,与我们所基于的 Llama-3.2 分词器一致。语料内分词器对数据集的压缩略好,将平均 BPE token 长度从 4.45(Llama-3.2 分词器)提高到 4.57。以语料内 BPE 分词器的 token 计量,训练数据集包含 64.7% 英文、23.7% 代码、6.1% 数学和 5.5% 多语言内容。
每个 BPE token 的字节数
来源每个 BPE token 的 UTF-8 字节数
目标混合 4.57
构建一个稳健的 BPE 基线
对于我们的基线,我们为标准 BPE Transformer 拟合了一条经过良好调优的缩放律。为此,我们构建了一个缩放阶梯,遵循 Kimi 和 MAI 等现代缩放方案,通过层数 L 完整定义了一族模型。我们将隐藏维度 D 设为 128 的倍数,使得宽深比 D/L 约为 75。对于所有模型,我们使用多头注意力,头数等于层数,头维度固定为 128。对于 MLP,我们使用 SwiGLU 层,中间维度设为 3.6D,同样四舍五入到最接近的 128 的倍数。1
| 模型 | 总参数量 | 骨干参数量 | 层数 | 隐藏维度 | 注意力头数 | 头维度 | FFN 维度 |
|---|---|---|---|---|---|---|---|
| L08 | 221M | 56.4M | 8 | 640 | 8 | 128 | 2304 |
| L12 | 399M | 169M | 12 | 896 | 12 | 128 | 3200 |
| L16 | 673M | 378M | 16 | 1152 | 16 | 128 | 4096 |
| L20 | 1.22B | 822M | 20 | 1536 | 20 | 128 | 5504 |
| L24 | 1.81B | 1.35B | 24 | 1792 | 24 | 128 | 6400 |
| L28 | 2.62B | 2.10B | 28 | 2048 | 28 | 128 | 7424 |
随后,我们采用标准的等 FLOP 扫描方法拟合了算力最优的缩放律。
- 所有运行均使用 Muon 优化器和 WSD 学习率调度,采用固定比例的预热和衰减。
- 我们在选定的层级上调节了批大小和学习率,并拟合了超参数缩放律以向更大层级外推。
- 我们在所有模型中仔细统计了 FLOPs,包括所有序列混合层和 LM 头。对于 softmax 注意力,我们只统计因果 FLOPs,因为由于二次复杂度,过度统计非因果 FLOPs 会惩罚处理更长序列的字节级模型。
一个等价的 H-Net 阶梯
由于基于字节的 H-Nets 与标准分词模型差异巨大,直接比较它们绝非易事。其中涉及的可变因素众多:分块的阶段数、各自的压缩率、每个阶段的架构配置(外层网络与内层网络),以及每个组件的超参数。
我们决定研究一个更具体的场景:如果把 H-Nets 严格限定为仅替换语言模型中的分词部分,它们与 BPE 模型相比表现如何?
为此,我们将 BPE 阶梯的每一级都转换为一个字节级单阶段 H-Net。单阶段 H-Net 可以看作是一个带有可学习分词的标准语言模型:内部网络在块(chunk,充当 token 的角色)上运行,而外部网络则承担动态分词的角色,将字节编码为块并将其解码回来。每一级都经过了非常仔细的匹配:
- H-Net 的内部网络与 Transformer 架构完全相同。
- H-Net 的外部网络(编码器和解码器)在 FLOPs 和参数量上与分词层(embedding、“unembedding”或投影头)相匹配。
- 通过使用强辅助损失,H-Net 的压缩率与 BPE 的压缩率(4.57)相匹配。
- BPE Transformer 的超参数(批大小和学习率)被直接迁移。
将 BPE 的一级转换为 H-Net
阶梯中的一级
计算倍数:验证集、下游任务
计算最优缩放定律
字节 H-Net 对比 BPE Transformer
1.28
×
验证 BPB
1.83
×
Paloma 平均值
2.06
×
OLMES 平均值
字节 H-NetBPE Transformer
在所有模型规模下,H-Net 的运行结果都比匹配的 BPE Transformer 级别取得了更低的损失——“动态分词”这一解释开箱即用就胜过了静态分词器!
在对两条阶梯分别拟合计算量到损失的幂律之后,我们可以比较两种架构的计算效率,量化方式是 H-Net 达到与 BPE 阶梯相同损失所需的计算量减少了多少(图 4)。
领域内:H-Net 的计算效率比 BPE Transformer 高 1.28 倍。
评测:我们考察了标准的下游评测套件,如 Paloma 和 OLMES,每个套件都由数十个数据集和任务混合组成,涵盖人类语言和各个领域(代码、数学等)。对于每个套件,我们通过模型为正确答案分配的每字节比特数(bits-per-byte)来衡量其“软准确度”。对每个套件重新拟合计算量到 bpb 的缩放定律后,我们发现 H-Nets 与 BPE Transformers 之间的差距进一步扩大到约 2 倍。
在本系列的第二篇文章中,我们更深入地分析了一系列语言模型的分布外行为,为“更灵活、更具语义的分块能带来更强的下游迁移能力”这一假设提供了支持。
计算倍数:代码
有趣的是,H-Nets 在代码上表现尤为出色。对每种训练所用的编程语言拟合相同的定律后,H-Net 的计算倍数在全部 15 种语言上都有所提升:从 Markdown 上的 1.49 倍到 Go 上的 2.40 倍,中位数为 2.04 倍(图 5)。
在训练混合之外的语言上,增益更为显著。在十个不属于数据混合的 Stack v2 语言(包括 OCaml、Prolog、Lean 和 Fortran)上,H-Net 的倍数中位数提升至 3.10 倍,从 Haskell 上的 2.19 倍到 Prolog 上的 5.37 倍。
(为什么这很重要?大语言模型经常被要求处理它们可能没有见过太多数据的代码,并且越来越多地被用于发明或推理新语言,例如 DSL、内核编程语言和硬件抽象层。因此,分布外的代码性能对前沿模型来说实际上可能相当有意义。)
代码上的计算效率增益
1 / 15
Byte H-NetBPE Transformer
直观上,我们假设这些现象的产生有几个原因:
- H-Net 在新的分布上总体表现更好,因为它们学会了如何从更底层的数据中创建语义概念,这些概念的泛化能力更强。这体现在从分布内(1.28 倍)到下游评估(2.06 倍)的提升,以及从领域内编程语言(中位数 2.04 倍)到领域外编程语言(中位数 3.10 倍)的提升。第二篇将更详细地讨论分布外迁移。
- H-Net 在难以分词的数据上表现更好,这里的“难以分词”是指缺乏一小组可重用的模式词表。这在代码中尤为明显,代码非常动态,拥有各种各样的空白符和符号、语法结构以及变量名(即使只用拉丁字符,词表也几乎是无限的!)。预定义的 token 不太可能覆盖全部语义范围。
- 在第 3 部分中,我们展示了 H-Net 在推理时即时学习语义,例如能够将代码中的变量名作为一个 token 来学习;我们假设这是它们在代码上表现出色的一个特定机制。
最后,我们提出了一个有趣的观察:H-Net 在代码上性能的提升并非源于花费了额外的计算。
按数据源划分的压缩率
H-Net 压缩率更高H-Net 压缩率更低
图 6 支持了我们的论点:语言建模能力不仅仅取决于计算量和参数量,还取决于从数据中学习到正确的含义。通过从原始字节中找到语义块,H-Net 在难以分词的领域表现得更好,同时花费的计算更少。
H-Net 阶梯结构的局限性
像我们这样控制 H-Net 以匹配 BPE 分词模型的做法实际上有很强的限制性。分层网络具有极大的灵活性:
- 它们可以包含多个分块阶段,而 BPE 只有一个静态阶段。
- 压缩率是可自由控制的;将其等同于 BPE 所定义的比例,实际上违背了 H-Nets 的精神——H-Nets 理想情况下应当发现数据的自然压缩率(大致由数据的信息含量和语义所决定)。
- 每个网络的超参数都应当可调;事实上,我们发现将它们设为与 BPE 模型相同是次优的。
重要的是,我们通过仅修改 BPE Transformer 的分词部分所定义出的 H-Net 阶梯,根本不是最优的 H-Net 架构。事实上,它可以被视为对 BPE Transformer 基线非常有利。当我们移除这些限制后会发生什么?
第 2 部分:训练一个更大的 H-Net
数据效率 vs. SmolLM3
Byte H-NetSmolLM3-3B(BPE Transformer)
我们致力于将 H-Nets 扩展到比 scaling ladders 和早期版本更大的规模(第一篇论文训练到相当于 1.3B 参数模型、100B token 的规模)。作为基线,我们选择了 SmolLM3,这是 Hugging Face 发布的一个 3B Transformer LLM,拥有完整公开的训练配方。由于 SmolLM3 团队发布了模型架构、训练数据混合以及训练过程中的多个检查点,我们得以复现该配方,并在整个训练过程中比较模型——甚至一直比较到我们训练所达到的 horizon 之后!
数据:SmolLM3 的预训练包含三个阶段,分别使用 8T/2T/1T token,采用 Llama-3.2 分词器,总计 11.1T token。由于我们的目标 horizon 要短得多,我们只使用了第一阶段的数据混合。我们基于相同的公开来源进行了尽力复现。控制数据变量是很微妙的;大多数训练配方以比例形式报告其数据混合(例如 SmolLM3 的英文网页 / 多语言 / 代码 / 数学为 73.2 / 12.1 / 12.0 / 2.7),但这通常是按 token 计的。为了正确控制数据变量,我们决定匹配底层的字节级混合(正如我们为 scaling ladders 所做的那样),结果为 76.5 / 10.9 / 10.3 / 2.2。
优化:我们对 H-Net 与基线完全一致地匹配,未做额外调参:AdamW(0.9, 0.95),权重衰减 0.1,梯度裁剪 1.0,峰值学习率 2e-4,相同的 WSD 调度,预热量为 5B token 等价量。我们在训练的最后 15% 进行冷却;与基线的一个区别是,SmolLM3 的冷却阶段出现在其第 3 个预训练阶段(10T token 之后),且使用了不同的数据混合。
架构:我们在字节之上构建了一个两阶段的分层网络。
- 最外层(字节级)阶段在编码器中使用四层 Mamba-2,在解码器中使用四层。
- 下一层级在两侧各增加一个滑动窗口注意力模块和四层 Mamba-2。
- 主网络是一个 40 层 Transformer,每层形状与 SmolLM3 相同,每一层都使用全局注意力。
- 压缩率按照先前的工作设定(在外侧两个编码器阶段分别以 4x 和 2x 为目标)。
FLOPs 花在了哪里?
与缩放阶梯不同,我们更注重与分层网络的理念保持一致:让模型在多个阶段执行动态分块,并尽可能遵循数据的语义。这使得在所有维度上与基线完全对齐变得不可能,因为参数和算力的消耗方式截然不同。我们力求控制FLOPs/byte,使每个训练小批次看到相同的底层数据,并消耗与基线相同的算力。
- 压缩比的设置使得主网络大约每 8 字节对应一个位置(训练后的模型最终约为 ~7.6×)。相比 Llama-3.2 每个 token 约 ~4.5 字节,这比 SmolLM3 处理相同文本所需的 token 数量少约 40%。
- 这一节省以牺牲外层编码器/解码器阶段为代价,这些阶段占 H-Net 总 FLOPs 的约 43%(而在基于 token 的 Transformer 中,embedding 和 LM head 仅占 8%)。
- 由此得到的模型在 FLOPs/byte 上与基线的匹配误差在 2% 以内。
H-Net 的总参数量最终为 3.67B,而基线为 3.08B。差异主要来自编码器和解码器以及额外的四层主阶段层;byte embedding 非常小。
各组件的参数量与 FLOPs
H-Net 与 SmolLM3 对比
结果
我们使用与官方 SmolLM3 结果相同的基准和评估套件进行了评测,涵盖其“推理与常识”和“知识与理解”评估集。
图 7展示了两个模型在训练过程中的基准分数。H-Net 在约 1T token 后达到 SmolLM3 的最终平均分数,而 SmolLM3 需要约 11T token。由于两个模型按字节计算是算力匹配的,因此训练 FLOPs 的节省是成比例的。
讨论:数据控制
尽管我们努力公平地控制数据和算力,但事后回想,我们意识到什么才是恰当的方法论仍然不明确。例如,看看英语与代码:SmolLM3 的 token 比例为 73.2% / 12.0%,而在字节层面变为 76.5% / 10.3%,原因是分词器对英语的压缩更强(见 图 8b),这本身就是 BPE 分词的产物(它会花更多精力压缩出现频率更高的数据,因此与任意的数据分布绑定)。
另一方面,H-Net 的理念是按照一种“内在”的可压缩性和语义概念来压缩数据。例如,我们发现 H-Net 对代码的压缩程度高得多,因为代码天然易于压缩;我们将 H-Net 在代码上的改进很大程度上归因于这种更好地理解数据的能力。但与此同时,这意味着与 BPE 基线相比,H-Net 在代码上花费的算力更少(因为同一段代码数据被转换成少得多的 chunk 送入主网络)!那么,更好的控制方式是否应该是让模型在每个来源上花费相近的算力呢?
简而言之,BPE 模型和 H-Net 可能以相反的方式压缩子领域——例如,BPE 对代码的压缩程度低于英语,而 H-Net 对代码的压缩程度更高——因此不可能同时做到数据匹配和算力匹配,而比较模型的正确方式是微妙的。这些都是开放的研究问题!
每个来源的压缩与算力
排序方式
H-Net 压缩更多或花费更少H-Net 花费更多与 SmolLM3 相同
将鼠标悬停在某个数据源上即可查看其数值。
第 3 部分:学习行为的定性分析
训练动态
我们展示了 H-Net 如何从训练伊始不断在一段特定的留出文本(原始 H-Net 论文的摘要!)上更新其表示。
训练过程中的分块
留出文本
step 71,856 · 671.0B bytes
H-NetH-Net 摘要 · 208 个 chunk · 每个 8.4 字节
该文本中的 chunkStage 0Stage 1
可视化 H-Net 的动态 token
我们展示了 H-Net 在其数据混合的每个数据源上,对若干示例(训练中未见过)的分块结果。我们还展示了多种基线方法,包括三个 BPE 分词器:
- Llama-3.2 分词器(SmolLM3 所使用的)
- 一个直接在 SmolLM3 训练语料上训练的全新 BPE 分词器,用以展示 BPE 在完全分布内的情况下会学到什么(Corpus)
- 一个不进行预分词的语料内 BPE 分词器(Corpus (NP)),我们将在下一篇文章中更详细地介绍
我们还提供了最初发布的 H-Net(记为 LH-Net)的分块结果,以展示我们内部版本带来的定性改进。
语言
H-Net
对比对象:
图 10a 展示了人类语言的示例。
- H-Net 为各种自然语言呈现连贯且语义有意义的边界,既包括以空格作为分隔符的拉丁语系/日耳曼语言,也包括有无显式分隔符的多字节字符语言(如 CJK、印地语)。
- H-Net merges multiple words into a single chunk that can be naturally grouped together. For example, “a foot”, “quite a few”.
- 有趣的是,不进行预分词的 BPE 分词器所产生的 token 也常常包含多个单词。然而,它们呈现出许多奇怪的边界,例如
beat a bear被拆分为beat abear。
- 有趣的是,不进行预分词的 BPE 分词器所产生的 token 也常常包含多个单词。然而,它们呈现出许多奇怪的边界,例如
- H-Net 的边界不是基于模式的,而是基于上下文的。例如,虽然在英语中 “a” 经常与后面的名词合并,但在意大利语中
a由于含义不同,较少与其他词归为一组。 - 对于所有语言,H-Net 都比 BPE 分词器实现了高得多的压缩率。在某些需要很多字节才能构成一个字符的语言(如印地语)中,这一优势更为明显。
代码
H-Net
对比对象:
图 10b展示了来自编程语言的示例。
- H-Net 在代码语言上的边界也展现出由其基于上下文的特性所衍生出的有趣特点。例如,BPE 分词器严格地以换行符作为边界,而 H-Net 则接受多字符的 {空格/制表符/换行符} 块(示例:
__init__(\n self,)。 - H-Net 通常能比 BPE 更大幅度地压缩代码(另请参见对 图 8b 的讨论)。
- H-Net 可以受益于上下文内分词,从而识别出诸如新的变量名/函数名等反复出现的重复模式。
旁注:这与最初的 H-Net 相比如何?
自 2025 年我们发布分层网络这一概念以来,我们对核心架构和学习机制进行了许多重大改进。我们计划随着时间的推移向社区发布其中一些架构。在此,我们讨论一些具体的定性改进领域。
为了便于比较,我们将早期的模型称为 LH-Net,其中 L 可以理解为“lazy(惰性)”或“lookahead(前瞻)”的含义。简而言之,这个最初的模型旨在看到下一个块的开头之后才绘制块边界。2 这使得 LH-Net 在创建块时拥有更多上下文,但事实证明这会对其执行下一词元(字节)预测以及建模多重层级的能力产生负面影响。
LH-Net 与我们当前内部 H-Net 之间的定性差异,在考察具有多个阶段的递归分层网络时尤为明显。
- In English, consider the first example.
- H-Net 的第 0 层块通常比 LH-Net 的更有意义。例如,当它们出现在英语单词中间时,通常与具有语言学意义的词干对齐得更好。
- H-Net 示例:
trackers→trackers,wondered→wondered,nearby→nearby - LH-Net 示例:
rhino→rhino,from the fact→from thefact,mass→mass,Over→Over,ethical→ethical
- 在字符由多个字节表示的文字系统中,例如 CJK(中文、日文、韩文),多阶段 LH-Net 即使在经过两个分块阶段后,也无法正确地切分字符。
新的涌现行为:上下文内分词
上下文内分词
H-Net 的分词不仅会随着训练时间而变化,还可以在推理过程中演进,我们称之为上下文内分词。我们之前讨论过一些简单的案例,说明 H-Net 的边界是基于上下文而非基于模式的。在图 11中,我们重点展示了上下文内分词的四个有趣示例:
- 新概念:当 H-Net 遇到一个不熟悉的单词或新概念时,它倾向于将该单词拆分为多个块(类似于 BPE 处理不熟悉字符串的方式)。随着它多次遇到同一个单词,它会逐步学会将该单词归并为更少的块。
- 重复格式:如果存在一个重复的短语,我们很容易就能预期接下来会出现什么。类似地,在这种场景下,H-Net 学会进一步压缩输入,绘制出非常大的块以节省算力。
- 重复出现的模式:如图所示,H-Net 学会了发现输入中的隐含模式。在字母块示例中,重复出现的块——
LURD、WHYV和FYB——被归为一组。数字块示例则是一个有趣的案例,展示了 H-Net 如何发现数据背后重复出现的模式(2526、3987和3526)。观察第 0 层与第 1 层的行为差异也很有意思。
H-Net
对比:
域外编程语言
接下来,我们可视化 H-Net 如何处理它未曾见过的编程语言。我们之前已经看到,对于域外编程语言,H-Net 阶梯(相对于基线)尤其有效。图 12 展示了来自这 10 种编程语言的示例。
H-Net
对比:
第 4 部分:从 token 到原子——超越语言的分层网络
到目前为止,本文主要关注分层网络在字节级语言建模中的能力,这在语言领域体现了从原始数据中学习的理想。
我们相信 H-Net 的用途远不止于语言:将低层数据切块(chunking)为更高层模式这一核心概念是智能的基础,它可以应用于任何领域。
其中一个领域是音频,这也是 Cartesia 的核心方向。模型无法自主地将原始音频抽象为音素和单词,这构成了通向多模态语音到语音模型的一大瓶颈(事实上,这也是我们数年前开始研究 H-Net 的动机之一!)。
更广泛地说,字节并不一定是所有领域的通用编码。大多数领域都有“原语构建块”的概念,例如语言中的字符或字节、图像和视频中的像素、音频中的波形、生物学中的核苷酸等等。我们已经开始将不同的模态视为由各种基础原子构成,并将所谓的原子模型视为构建强大多模态基础模型的真正符合“苦涩教训”的方式。我们在此列举一些其他领域的例子。
生物学(DNA)
DNA 是生物学最底层的编程语言。视上下文而定,其自然的抽象层次——因而其自然的原语单元——会发生巨大变化。因此,我们假设 H-Net 的动态分词在 DNA 领域会显著优于静态分词方案。
DNA 扩展阶梯
我们在 DNA 序列的自回归建模上比较了 H-Net 和 Transformer。两个模型都以核苷酸分辨率为输入(因此词表大小为 4,外加一些特殊 token ID)。H-Net 的目标压缩比为 6×:其主网络大约每六个核苷酸看到一个 chunk。
我们使用与第 1 部分类似的流程拟合了计算最优扩展阶梯。H-Net 在所有三组数据上带来了 6–7 倍的计算收益。
详情:DNA 数据集
- 训练数据。来自 OpenGenome(第一阶段)的 GTDB 原核生物基因组集合,约 2740 亿个核苷酸。我们将每条 contig 切分为 8,192 个核苷酸或更短的片段,并对这些片段进行混合。
- 验证集。8,192 个不参与训练的片段(约 5600 万个核苷酸)。同一批基因组的其他片段则包含在训练数据中。
gtdb_valid_small和gtdb_test。OpenGenome 的两个官方留出集:5 条 contig(2.6 万个核苷酸)和 50 条 contig(37.4 万个核苷酸)。所有这些 contig 都来自同一个基因组。我们不在这些 contig 上训练,但该基因组的其他 contig 包含在训练数据中。
DNA 上的计算最优扩展
H-Net 与 Transformer 的对比
5.95
×
验证 BPB
5.83
×
gtdb_valid_small
7.06
×
gtdb_test
H-NetTransformer
DNA 定性分析:生物学中依赖上下文的原子
H-Net 仅在原核生物(细菌和古菌)基因组的下一个字母预测任务上训练,因此 H-Net 的 token 分割与人类基因组中生物学自然结构的吻合完全是涌现行为。这里我们展示其中一些例子:
1 / 5
H-Net 分块人类 6 号染色体,组蛋白基因 H2BC17 · 训练中从未见过
每个条带一个分块密码子第 1 个字母密码子第 2 个字母密码子第 3 个字母起始 / 终止密码子启动子发夹RNA 末端
680 个字母中 86 个分块 · 每个 7.9 个字母
生物学/DNA 快速入门
DNA 和基因。DNA 是由四个字母 A、C、G 和 T 组成的字符串。基因是负责产生 RNA 序列的一段 DNA,而 RNA 通常会被翻译成蛋白质。只有它的编码区真正拼写出蛋白质,而它周围的 DNA 受约束少得多、信息也更稀疏:它前面的启动子区域、它后面终止 RNA 的信号。它们控制的是蛋白质何时以及如何被制造,而不是制造什么。此外,在人类基因中,位于编码区中间的非编码区域——内含子——会被剪接掉,也不贡献于蛋白质序列。
密码子和阅读框。编码区每次读取三个字母,从一个起始密码子(通常是 ATG)到一个终止密码子(TAA、TAG 或 TGA)。每个三字母密码子对应蛋白质序列中的一个氨基酸。阅读从哪里开始决定了阅读框:将其移动一个字母,下游的每个密码子都会改变。
一些值得注意的学习到的行为:
- Inside a gene, the H-Net router settles on a different atomic unit depending on what it is reading; we see biologically aligned treatments of:
- 编码区与非编码区
- 外显子与内含子
- 鲁棒性:H-Net 学到的密码子网格并非固定不变;当两个编码区重叠且第二个发生偏移时,H-Net 的边界会快速自适应
- 在转运 RNA(tRNA)基因中,自然单元缩小为单个字母。H-Net 的边界学会依附于这一新的自然单元
- DNA 中的大段重复序列通常信息稀疏,因此在重复序列中,自然生物单元会增长为整个重复序列
有趣的是,正如人们可能预期的那样,这些生物学上的依附行为很多直到训练后期才被学会,正如学习轨迹动画所示。这些行为的延迟出现凸显了 DNA 领域中“分词任务”的非平凡性,并支持了以下论点:手工设计的分词方案在多模态领域会比在语言领域更困难、效果更差。
视觉
分层网络天然适用于一维序列数据,其中分块和分割是直观的。然而,将它们扩展到更高维的模态带来了重大的技术挑战——同时也带来了巨大的机遇,因为视觉是一个天然适合分层结构的领域。在进行中的研究中,我们开发了新技术,将 H-Net 应用于图像和视频等 N 维数据。当集成到像素空间扩散模型中时,H-Net 不仅提升了生成质量,还能直接从原始数据中发现无监督的语义概念——这与我们在语言中看到的涌现行为如出一辙。
更详细地说,我们采用标准的像素空间流匹配基线 JiT,并用多维 H-Net 替换其骨干网络。与一维 H-Net 一样,模型既学习在哪里分块,也学习压缩多少。这使得它能够在三个轴上动态重新分配计算:空间上(关注细节丰富的区域而非简单区域)、积分时间(根据去噪步骤调整投入)以及样本(在复杂图像上分配更多计算)。因此,模型会合并同质或低信息区域并聚焦于显著细节,且完全无监督地发现图像的语义分割。最后一个有趣的细节是,与依赖相邻 patch 相似性的现有 token 合并方法不同,我们的 2D H-Net 不强制进行局部成组。正因如此,模型常常看起来能从平面的 2D 投影中推断出潜在的 3D 结构。例如,它经常将不连续的背景区域归入一个连贯的块中,即使它们在图像中被遮挡的前景物体分隔开来。
图像上的学习分块
留出图像
红脚鹬
177 个块
下一篇:Post II
在下一篇中,我们将更详细地深入探讨计算效率结果。我们研究了 loss-to-loss 缩放定律,并找到经验证据表明,H-Net 性能的提升确实源于其端到端从原始字节中学习的能力。
引用
请按如下方式引用本工作:
Cartesia Research, "From Tokens to Bytes: Scaling Hierarchical Networks", Cartesia Blog, October 2026.或使用 BibTeX 引用:
@article{cartesia2026hnet,
author = {{Cartesia Research}},
title = {From Tokens to Bytes: Scaling Hierarchical Networks},
journal = {Cartesia Blog},
year = {2026},
month = {October},
note = {https://www.cartesia.ai/blog/from-tokens-to-bytes-part-1}
}脚注
详细展示了如何在严格控制数据与算力的条件下评估一种新架构的扩缩律,方法论本身可迁移。
Cartesia 发布两部分系列博文的第一篇,介绍其层级网络 H-Net 的扩缩律研究结果。在严格控制数据与算力的对比中,1-stage H-Net 相比 BPE Transformer 在验证集上实现 1.28x 计算效率提升,下游评测提升至约 2x,在代码任务上最高达 5.37x(Prolog),在训练分布外代码上中位数为 3.10x。
来源:AIHOT 论文解读 · cartesia.ai
原文链接:https://www.cartesia.ai/blog/from-tokens-to-bytes-part-1