Cartesia 发布 H-Net 缩放研究:字节级分层网络比 BPE 省 3-5 倍算力
Scaling Hierarchical Networks
Cartesia 发布《From Tokens to Bytes》系列第一篇,系统测量分层网络 H-Net 的缩放规律。
自 Richard Sutton 在 2019 年发表那篇颇具影响力的文章以来,苦涩的教训这一理念指导了现代 AI 的诸多进展。这一理念主张采用利用计算能力、随规模扩展而学习的通用方法,尽可能不依赖人工设计的先验。我们的理解是,从根本上说,智能就是从原始数据中学习:自主发现模式、构建抽象,并从杂乱的底层输入中提炼意义,理想情况下是端到端且尽可能数据高效地进行。随着 AI 进入科学、机器人学和生物学等复杂领域——这些领域数据稀缺,且往往连人类都难以理解,更不用说为工程化而设计——内化这一理念以开发更通用的学习算法,比以往任何时候都更加重要。
语言模型或许是当今 AI 最成功的案例,并且很大程度上践行了苦涩的教训。它们的能力主要归功于对少数简单算法的规模化,例如 Transformer 架构、下一 token 预测、强化学习和测试时计算。然而,它们仍然依赖手工设计的编码步骤,例如分词器,这严重阻碍了它们从底层数据中端到端学习的能力。为了开启下一次规模化跃迁,我们认为开发字节级语言模型是 AI 进步的基础——不仅是为了改进独立的 LLM,也是作为通用学习方法的试金石。如果我们连从字符和字节中很好地学习语言都做不到,我们又凭什么在下一个前沿取得进展?
2025 年,我们提出了分层网络(H-Nets)的概念,它不仅解决了语言模型中的分词问题,还朝着更通用的架构迈出了一步,这种架构可以从不同模态的原始数据中学习。此后,我们显著改进了 H-Nets 的技术,并很高兴分享它们的能力!在这个由两篇文章组成的系列中,我们将深入探讨新结果并讨论其意义。
在这个由两部分组成的系列的第一篇文章中,我们将探讨 H-Nets 的缩放定律及其定性行为。
- 我们为分词 Transformer 构建了标准的缩放阶梯,并表明经过精心控制的单阶段 H-Nets 仅通过学习式分词就能带来有意义的计算效率提升(最高 3-5 倍)。
- 我们展示了扩展更灵活的两阶段 H-Net 的实证结果,它优于匹配的开源模型,并实现了极致的效率提升(计算量和数据量减少 10 倍)。
- 我们分析了 H-Nets 学到的模式,它们展现出丰富多样的新行为,这些行为此前在语言模型中未曾出现,例如上下文内分词。
- 我们讨论了 H-Nets 如何超越语言建模,在生物学和视觉领域的持续研究结果显示出其作为跨模态通用架构的潜力。
在下一篇文章中,我们将更深入地探索更广泛的模型范围,以更好地理解为什么 H-Nets 在语言建模方面能如此高效。
总而言之,我们的结果提供了证据,表明 H-Net 是一种基础性架构,真正契合苦涩教训,能够直接从原始数据中学习意义,并显著提升效率与可扩展性。这一研究议程代表着推进 AI 如何从所有数据中学习的重大机遇,我们无比兴奋能够推动这一前沿!
分层网络(H-Net)
我们去年推出了分层网络(论文、博客),作为一种新的端到端架构,它对数据中多个层次的抽象进行建模,在语言建模及其他领域展现出潜力。简而言之:
该术语的灵感来自认知心理学中已有的组块化概念,它是人类智能的重要组成部分。我们相信,它对于人工智能的前沿发展同样必不可少。
在语言建模的语境下,其思路是构建新的学习原语,使模型能够递归地将低层数据组块化为更高层的意义:字符组块化为词,词组块化为短语,短语组块化为概念。
在本文的语境下,大多数情况下,可以将分层网络理解为对分词(tokenization)的替代。H-Net 并非将数据从字节预处理为 token(固定的字节块),而是在模型内部动态地执行组块化。此外,H-Net 的标志性特征在于它们端到端地分层执行这种组块化。相比之下,标准的 token 化语言模型乃至其他替代方案(其中一些我们将在第二篇中看到)采用多阶段训练,而数据的组块化/ token 化过程完全在离线状态下进行。
细节:分词与 BPE
语言模型并不直接读取文本,而是以来自固定词表的 token 序列作为输入。一种自然的词表是 256 个字节值,每个 UTF-8 字节产生一个 token。然而,字节级序列对于标准语言模型来说过长且处理成本高昂。分词旨在通过将字节序列压缩为频繁出现的组块来缓解这一问题。最常见的方法是字节对编码(BPE),它从 256 个字节出发,在固定的训练语料上反复合并最频繁的相邻 token 对,直到词表达到设定大小(例如 Llama-3 的 128k)。在我们的数据混合上,每个 BPE token 覆盖约 4.57 个字节,使序列比字节级短得多。然而,这种压缩是固定的,分词仍然是语言建模流程中最后几个由人工设计而非学习得到的环节之一。
我们将在本系列文章中看到,即使在替代分词这一较窄的语境下,H-Net 的端到端特性也带来了实实在在的性能提升。除分词之外,H-Net 作为一种基础性架构还具有广泛的用途:
- H-Net 可以递归嵌套,从而构建多个层次的抽象。本文的主要结果是一个更大的两阶段分层网络与一个开源基线的对比。
- H-Net 可以处理任何类型的数据,不仅是字节,也不仅是离散数据。相比之下,对连续数据进行 token 化是一项严峻挑战。在本文的最后一部分,我们将预览一些将 H-Net 应用于文本之外的未来研究。
H-Net 架构
两阶段字节 H-Net
解码器
解组块化
解码器
去分块
主网络
分块
编码器
分块
编码器
图 1 展示了一个 2 阶段 H-Net,并定义了模型的主要组件:编码器、主网络和解码器。我们有时将编码器/解码器合称为外部网络,将主模型称为内部网络。
在本文中,我们展示的是 H-Net 大幅改进版本的结果,我们计划将其发布。关于与早期架构的差异,我们将在本文后面进一步说明。
第 1 部分:BPE 与 H-Net 缩放阶梯
与许多架构论文一样,关于分层网络的原始论文侧重于调优特定固定规模和数据范围的语言模型(例如,在来自 FineWeb-Edu 的 100B token 上训练约 1.3B 参数的模型非常常见)。尽管它们看起来非常有前景,但缺失的一环是缺乏计算最优缩放定律,而后者现在是衡量预训练创新的标准方法。例如,Kimi 在Kimi Delta Attention(KDA)和注意力残差上的热门创新分别测得了 1.16 倍和 1.25 倍的计算乘数。
为了验证我们改进后的 H-Net 架构的收益,我们首先着手构建一个现代 LLM 缩放阶梯,然后用一个精心控制的分层网络替换其分词组件。
- 我们设置了一个训练混合方案,以便在同等条件下比较字节级和 BPE 缩放定律,仔细匹配处理过程,甚至为基线重新训练了一个 BPE 分词器。
- 我们按照标准实践为基线 BPE Transformer 语言模型设置了一个缩放阶梯,复现了文献中的结果。
- 然后,我们将每一级转换为字节级 H-Net 作为直接替换,复用 BPE 骨干架构和超参数。
这一方案直接在验证损失上显示出更强的结果(1.3 倍),在代码等子领域收益进一步增加(2 倍),同时改善了分布外表现(评估上 2 倍,域外代码上最高 5 倍)。
数据受控比较
由于字节级和 BPE 模型以不同粒度处理相同数据,需要格外小心以保持方法受控。
数据混合:我们的训练数据集由 70% 英语、20% 代码、5% 数学和 5% 多语言组成,按字节数衡量。
数据处理:每个样本都同时作为字节和 BPE token 处理,并在相同边界处切分;因此,字节处理和 BPE 处理的数据集包含完全相同的文本,且文档边界对齐。
指标:我们使用标准的每字节比特数(bpb)指标来衡量下一 token 预测损失,这种方式在不同分词器之间进行了归一化。
语料内 BPE 分词器:LLM 通常使用现成的 BPE 分词器;H-Net 的一个优势在于它们直接在训练分布上学习分块。为格外谨慎起见,我们还在该语料上训练了一个 BPE 分词器。我们将它用于下文的 BPE 缩放定律,最终在验证损失和下游评测上均带来约 1.1 倍的计算增益(因此 H-Net 相对于标准现成分词器会有更大的计算乘数!)。
该 BPE 分词器的词表大小为 128k,与我们参考的 Llama-3 分词器一致。语料内分词器对数据集的压缩略高,将平均 BPE token 长度从 4.45(Llama-3 分词器)提升至 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-Net 与标准分词模型差异巨大,直接比较它们非常困难。涉及的因素太多:分块阶段数、各自的压缩率、每个阶段的架构配置(外层与内层网络),以及每个组件的超参数。
我们决定研究一个更窄的设定:如果仅限于被解释为纯粹替换语言模型的分词部分,H-Net 与 BPE 模型相比如何?
为此,我们将 BPE 阶梯的每一级转换为字节级 1 阶段 H-Net。1 阶段 H-Net 可以看作具有学习型分词的标准语言模型:内部网络在块(扮演 token 的角色)上运行,外部网络执行动态分词的角色,将字节编码为块并解码回来。每一级都经过非常仔细的匹配:
- H-Net 的内部网络与 Transformer 架构完全相同。
- H-Net 的外部网络(编码器和解码器)在 FLOP 和参数上与分词层(嵌入和“反嵌入”或投影头)匹配。
- 通过使用强辅助损失,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,每个套件由数十个数据集和任务组成,涵盖人类语言和领域(代码、数学等)。对于每个套件,我们测量模型的“软准确率”,即其分配给正确答案的每字节比特数。将计算-bpb 缩放定律重新拟合到每个套件,我们看到 H-Net 与 BPE Transformer 之间的差距进一步扩大到约 2 倍。
在本系列的第二篇文章中,我们更深入地分析了一系列语言模型的分布外行为,为更灵活和语义化的分块导致更强的下游迁移这一假设提供了支持。
计算倍数:代码
有趣的是,H-Net 在代码上尤其出色。将相同的定律拟合到其训练过的每种编程语言,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 倍。
(为什么这很重要?LLM 经常被要求处理它们可能没见过多少数据的代码,并且越来越多地被用于发明或推理新的语言,如 DSL、内核编程语言和硬件抽象层。因此,OOD 代码性能可能对前沿模型相当有意义。)
代码上的计算效率增益
1 / 15
Byte H-NetBPE Transformer
直观地说,我们假设这些现象出现有几个原因:
- H-Net 在新分布上总体表现更好,因为它们学习如何从低级数据中创建语义概念,这些概念泛化得更好。这反映在从分布内(1.28x)到下游评估(2.06x)的上升,以及从域内编程语言(中位数 2.04x)到域外编程语言(中位数 3.10x)的上升。Post II 将更详细地讨论分布外迁移。
- H-Net 在难以分词的数据上表现更好,即缺乏可重用模式的小词汇表。这在代码中尤为明显,代码非常动态,具有广泛的空白和符号、语法结构和变量名(本质上即使仅拉丁字符也是无限词汇表!)。预定义标记不太可能捕捉到全部语义。
- 在 Part 3 中,我们展示了 H-Net 在推理时即时学习语义,例如能够将代码中的变量名学习为一个标记;我们假设这是让它们擅长代码的一种特定机制。
最后,我们观察到有趣的現象:H-Net 在代码上的改进性能不是由于花费了额外计算。
按数据源压缩
H-Net 压缩更多H-Net 压缩更少
图 6 支持我们的论点:语言建模能力不仅关乎计算和参数,还关乎从数据中学习正确的意义。通过从原始字节中找到语义块,H-Net 在难以分词的领域表现更好,同时花费更少计算。
H-Net 阶梯的局限性
以我们的方式控制 H-Net 匹配 BPE 分词模型实际上非常严格。分层网络具有极大的灵活性:
- 它们可以涉及多个分块阶段,相比 BPE 的单一静态阶段。
- 压缩率可以自由控制;将它们等同于 BPE 定义的比率实际上违背了 H-Net 的精神,H-Net 理想情况下应当找到数据的自然压缩率(大致由数据的信息量和语义决定)。
- 每个网络的超参数都应当可调;事实上,我们发现将它们设为与 BPE 模型相等是次优的。
重要的是,我们仅通过改变 BPE Transformer 的 tokenization 部分所定义的 H-Net 阶梯,完全不是一个最优的 H-Net 架构。事实上,可以认为它非常有利于 BPE Transformer 基线。当我们移除这些限制时会发生什么?
第 2 部分:训练一个更大的 H-Net
数据效率 vs. SmolLM3
Byte H-NetSmolLM3-3B(BPE Transformer)
我们的目标是将 H-Net 扩展到比缩放阶梯和早期版本更大的规模(第一篇论文训练到了相当于 1.3B 参数模型、100B token 的规模)。作为基线,我们选择了 SmolLM3,这是 Hugging Face 发布的一个 3B Transformer LLM,其训练配方有完整文档记录。由于 SmolLM3 团队发布了模型架构、训练数据混合以及训练过程中的多个检查点,我们得以复现该配方并在整个训练过程中比较模型——甚至超出了我们训练的时间范围!
数据:SmolLM3 的预训练包含三个阶段,分别为 8T/2T/1T token,使用 Llama-3 tokenizer,总计 11.1T token。由于我们的目标时间范围短得多,我们只使用了第 1 阶段的数据混合。我们基于相同的公开来源做了尽力复现。控制数据是很微妙的;大多数训练配方以比例形式报告其数据混合(例如 SmolLM3 的是英文网页/多语言/代码/数学的 73.2 / 12.1 / 12.0 / 2.7),但这通常是以 token 计的。为了妥善控制数据,我们决定匹配底层的字节级混合(正如我们对缩放阶梯所做的那样),最终为 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 相同,每一层都使用全局注意力。
- 压缩比根据先前工作设定(两个外层编码器阶段的目标分别为 4 倍和 2 倍)。
FLOPs 花在哪里了?
与扩展阶梯不同,我们更注重与分层网络的理念保持一致:让模型在多个阶段进行动态分块,理想情况下遵循数据的语义。这使得将所有轴与基线对齐变得不可能,因为参数和计算以非常不同的方式消耗。我们旨在控制 FLOPs/byte,以便每个训练小批次看到相同的底层数据,并消耗与基线相同的计算量。
- 压缩比被设定为主网络大约每 8 个字节看到一个位置(训练后的模型最终约为 7.6 倍)。与 Llama-3 每个 token 约 4.5 字节相比,这比 SmolLM3 在相同文本上处理的 token 少约 40%。
- 这一节省被外层编码器/解码器阶段所抵消,这些阶段约占 H-Net FLOPs 的 43%(相比之下,分词 Transformer 中嵌入和 LM 头占 8%)。
- 所得模型在 FLOPs/byte 上的计算匹配误差在 2% 以内。
H-Net 的总参数数量最终为 3.67B,而基线为 3.08B。差异主要来自编码器和解码器以及四个额外的主阶段层;字节嵌入很小。
各组件参数与 FLOPs
H-Net 与 SmolLM3
结果
我们使用基准测试和与官方 SmolLM3 结果 相同的评估套件进行评估,涵盖其“推理与常识”和“知识与理解”评估集。
图 7 显示了两个模型在训练过程中的基准分数。H-Net 在约 1T token 后达到 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 在代码上花费更少的计算(因为同一段代码数据被转换成远更少的分块送入主网络)!那么,更好的控制方式是否是让模型对每个源花费相似的计算量?
简而言之,BPE 模型和 H-Net 可以以相反的方式压缩子领域——例如,BPE 对代码的压缩少于英语,而 H-Net 对代码的压缩更多——因此不可能同时实现数据和计算匹配,比较模型的正确方式很微妙。这些都是开放的研究问题!
各源的压缩与计算
排序方式
H-Net 压缩更多或花费更少H-Net 花费更多与 SmolLM3 相等
将鼠标悬停在某个来源上即可查看其数字。
第 3 部分:学习行为的定性分析
训练动态
我们展示 H-Net 如何从训练一开始就学习,并在一段特定的留出文本(原始 H-Net 论文的摘要!)上不断更新其表示。
训练过程中的分块
留出文本
第 71,856 步 · 671.0B 字节
H-NetH-Net 摘要 · 208 个块 · 每块 8.4 字节
本文本中的块阶段 0阶段 1
可视化 H-Net 的动态 token
我们展示了一个 H-Net 在其数据混合的每个来源上对若干示例(这些示例未参与训练)的分块结果。我们还展示了多种基线,包括三种 BPE 分词器:
- Llama-3 分词器(SmolLM3 使用的分词器)
- 一个直接在 SmolLM3 训练语料上训练的新 BPE 分词器,用以展示 BPE 在完全分布内(Corpus)会学到什么
- 一个语料内、无预分词的 BPE 分词器(Corpus (NP)),我们将在下一篇博文中进一步介绍
我们还提供了最初发布的 H-Net(记为 LH-Net)的分块结果,以说明我们内部版本带来的定性改进。
语言
H-Net
对比:
图 10a 展示了人类语言的示例。
- H-Net 为自然语言呈现出连贯且具有语义意义的边界,包括以空格为分隔符的拉丁语系/日耳曼语系语言,以及带或不带显式分隔符的多字节字符语言(例如中日韩文字、印地语)。
- 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 在创建块时拥有更多上下文,但事实证明,这对其执行下一 token(字节)预测以及建模多个层级的能力产生了负面影响。
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 ladder 对于域外编程语言特别有效(相对于基线)。图 12 展示了这 10 种编程语言的示例。
H-Net
对比:
第 4 部分:从 token 到原子:超越语言的分层网络
本文到目前为止聚焦于分层网络应用于字节级语言建模的能力,这体现了在语言语境下从原始数据中学习的理想。
我们相信 H-Net 的用途远不止于语言:将低层数据分块为高层模式的核心概念是智能的基础,并且可以应用于任何领域。
其中一个领域是音频,这是 Cartesia 的核心关注点。模型无法自主将原始音频抽象为音素和单词,这构成了迈向多模态语音到语音模型的主要瓶颈(事实上,这正是我们多年前开始研究 H-Net 的动机!)。
更广泛地说,字节未必是所有领域的通用编码。大多数领域都有“原始构建块”的概念,例如语言中的字符或字节、图像和视频中的像素、音频中的波形、生物学中的核苷酸等等。我们已开始将不同模态视为由各种基础原子构建而成,并将所谓的原子模型视为构建强大多模态基础模型的真正“苦涩教训”式方法。我们重点介绍一些其他领域的示例。
生物学(DNA)
DNA 是生物学中最底层的编程语言。根据上下文的不同,其自然抽象层级以及自然原始单元会发生剧烈变化。因此,我们假设 H-Net 的动态分词在 DNA 领域会比静态分词方案显著更有效。
DNA 缩放阶梯
我们在 DNA 序列的自回归建模上比较了 H-Net 和 Transformer。两个模型都以核苷酸分辨率作为输入(因此词汇表大小为 4,外加一些特殊 token ID)。H-Net 的目标压缩比为 6×:其主网络大约每六个核苷酸看到一个块。
我们使用与第 1 部分类似的流程拟合计算最优缩放阶梯。H-Net 在全部三个数据集上都带来了 6–7× 的计算增益。
详情:DNA 数据集
- 训练数据。来自 OpenGenome(第 1 阶段)的 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 分割在人类基因组中与生物学自然结构的吻合完全是涌现行为。这里我们展示其中一些例子:
5 个中的 1 个
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:
- 编码区 vs. 非编码区
- 外显子 vs. 内含子
- 鲁棒性:H-Net 学到的密码子网格并非固定不变;当两个编码区重叠且第二个发生偏移时,H-Net 的边界会快速适应。
- 在转移 RNA(tRNA)基因中,自然单元缩小为单个字母。H-Net 的边界学会遵循这一新的自然单元。
- DNA 中的大段重复序列通常是信息稀疏的,因此在重复序列中,自然生物单元会扩展为整个重复序列。
有趣的是,正如人们所料,许多这类符合生物学规律的行为直到训练后期才被学到,学习轨迹动画展示了这一点。这些行为的延迟出现凸显了 DNA 领域中“分词任务”的非平凡性,并支持了这样一个论点:手工设计的分词方案在多模态领域中会比在语言中更加困难且效果更差。
视觉
分层网络天然是为一维序列数据定义的,其中分块和分割都很直观。然而,将它们扩展到更高维度的模态会带来重大的技术挑战——同时也带来巨大的机遇,因为视觉是一个天然适合分层结构的领域。在正在进行的研究中,我们开发了新技术,将 H-Net 应用于图像和视频等 N 维数据。当集成到像素空间扩散模型中时,H-Net 不仅提高了生成质量,还能直接从原始数据中发现无监督的语义概念——这与我们在语言中看到的新兴行为如出一辙。
更具体地说,我们采用标准的像素空间流匹配基线 JiT,并将其主干替换为多维 H-Net。与一维 H-Net 一样,该模型同时学习在哪里分块以及压缩多少。这使其能够在三个轴上动态重新分配计算资源:空间上(优先关注细节丰富的区域而非简单区域)、积分时间上(根据去噪步骤调整投入)、以及样本上(在复杂图像上分配更多计算)。因此,模型会合并同质或低信息区域,聚焦于显著细节,并在完全无监督的情况下发现图像的语义分割。最后一个有趣的细节是,与依赖相邻图块相似性的现有 token 合并方法不同,我们的二维 H-Net 并不强制局部聚合。正因如此,模型常常表现出从平面二维投影中推断底层三维结构的能力。例如,它经常将不相连的背景区域归入单个连贯的块中,即使这些区域在图像中被遮挡的前景物体隔开。
图像上学到的块
留出图像
redshank
177 个块
下一篇:Post II
在下一篇博文中,我们将更详细地深入探讨计算效率结果。我们研究损失对损失的缩放定律,并找到实证证据表明 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}
}脚注
来源:Hacker News · cartesia.ai