超越困惑度:面向字节感知语言模型中的UTF-8有效性

arXiv cs.CL 论文

摘要

本文研究了字节级语言模型中训练规模与UTF-8生成可靠性之间的关系,发现UTF-8有效性收敛的速度比困惑度大约慢一倍。作者引入了用于隔离结构有效性的评估协议,并表明可靠的UTF-8生成是一种需要单独评估的独特能力。

arXiv:2606.14122v1 Announce Type: new 摘要:字节级分词使语言模型能够处理任何Unicode输入,但在遇到罕见或未见字符时,模型可能会生成无效的UTF-8序列。我们使用一个355M参数的模型,在包含英语、日语、韩语和中文的平衡多语言语料库上训练了80B token,研究了训练规模与UTF-8生成可靠性之间的关系。我们引入了多种评估协议,将UTF-8结构有效性与语言建模分离开来。UTF-8有效性收敛的速度比困惑度大约慢一倍:困惑度在2.1B token后稳定,而UTF-8有效性则需要4.2B token。在无上下文生成中,罕见字符的结构有效性高于常见字符,这表明常见字符的表示存在过度专业化。通过实验,我们观察到可靠的UTF-8生成是一种独特的能力,需要在困惑度之外进行评估。
查看原文
查看缓存全文

缓存时间: 2026/06/15 08:57

# 超越困惑度:字节感知语言模型中的 UTF-8 有效性

来源:https://arxiv.org/html/2606.14122

###### 摘要

字节级分词使语言模型能够处理任何 Unicode 输入,但当遇到罕见或未见过的字符时,模型可能生成无效的 UTF-8 序列。我们研究训练规模与 UTF-8 生成可靠性之间的关系,使用一个 355M 参数的模型,在包含英语、日语、韩语和中文的平衡多语言语料库(80B 个 token)上进行训练。我们引入了多种评估协议,将 UTF-8 结构有效性与语言建模分离。UTF-8 有效性收敛比困惑度收敛慢约两倍:困惑度在 2.1B token 后稳定,但 UTF-8 有效性需要 4.2B token。在无上下文生成中,常见字符的结构有效性高于罕见字符,且字节长度暴露成为除频率之外的另一个困难维度。我们的实验表明,可靠的 UTF-8 生成是一种独特能力,需要超越困惑度的评估。

github.com/cynthia/bytecanary (https://github.com/cynthia/bytecanary)

机器学习,ICML,字节序列建模,缩放定律

## 1 引言

多语言 NLP 系统不可避免地会遇到未知字符:有限的词汇表预算无法覆盖所有 Unicode,导致分词器在处理词汇表之外的字符时失败。这个问题在处理使用非拉丁字母的语言(如中日韩(CJK)语言)时尤为突出。为了解决这个问题,大多数流行的大型语言模型(LLM)采用字节后备(byte-fallback)机制,包含与所有字节对应的 token,使分词器能够编码包含未知字符的文本。除了字节后备,一些研究人员还尝试开发具有字节级分词(byte-level tokenization)的模型,该模型允许 token 按字节边界而不是字符边界进行分割 (Gillick et al., 2016 (https://arxiv.org/html/2606.14122#bib.bib4))。值得注意的例子包括 ByT5 (Xue et al., 2022 (https://arxiv.org/html/2606.14122#bib.bib22)),它直接在 UTF-8 字节上运行并展现出竞争性能;以及 Byte Latent Transformer (BLT) (Pagnoni et al., 2024 (https://arxiv.org/html/2606.14122#bib.bib12)),它在使用更少推理 FLOPs 的同时取得了与 Llama 3 相当的结果。

字节级分词的优势在于,我们可以灵活地将多字节字符分词为有意义的最小单元。例如,我们可以从单个汉字/汉字字符或单个韩字(jamo)字符中提取主要部首,形成发音单元。这种灵活性使得准确的多字节字符理解、有效的 token 嵌入学习以及改进的下游任务性能成为可能 (Xue et al., 2022 (https://arxiv.org/html/2606.14122#bib.bib22))。

尽管有这些优势,字节级分词在其解码阶段也存在问题。由于字节级分词中的词汇表允许 token 以字符中间的字节开始或结束,NLP 系统有时会生成无效的 Unicode 序列,其中一些 token 无法适当地连接起来。这会损害需要模型生成文本的 NLP 任务(如机器翻译)的性能 (Wang et al., 2020 (https://arxiv.org/html/2606.14122#bib.bib20))。

LLM 领域的先前工作并未深入讨论这个问题,可能是因为字节级分词主要部署在足够大的系统中,这些系统能够学习有效的 Unicode 序列。然而,考虑到学习有效 Unicode 序列的难度,我们假设字节级分词需要显著更多的训练数据或可训练参数,以便模型能够充分学习生成有效序列。我们通过在一个包含英语(10%)和日语、韩语及中文(各30%)的多语言数据(80B个token)上训练一个 355M 参数的 GPT-2 架构,并在 420 个训练检查点上评估 UTF-8 有效性来研究这一点。UTF-8 有效性收敛比困惑度收敛慢两倍:困惑度在 2.1B token 后稳定,但 UTF-8 有效性需要 4.2B token。常见字符的结构有效性高于罕见字符(96.21% vs. 95.26%);一个控制实验进一步表明,字节长度暴露是与字符频率并列的主要困难维度。结构有效性也超过语义正确性——尽管有效性很高,但术语匹配率(Term Match Rate)达到 60.30%——这表明生成有效字符比生成正确字符更容易。这些结果具有实际意义:看起来通过困惑度训练良好的模型,在上下文稀疏生成时仍可能产生无效的 UTF-8 序列。

## 2 问题陈述

现代大型语言模型在生成有效的 Unicode 字节序列时面临一个基本挑战,尤其是在遇到罕见或未见过的字符时。虽然字节级分词在理论上优于基于字符的方法——包括能够灵活地对多字节字符进行分词并处理任何可能的输入——但它引入了一个关键的失败模式:模型可以生成违反 Unicode 编码约束的无效 UTF-8 序列(图1 (https://arxiv.org/html/2606.14122#S2.F1))。

参照标题

图 1:有效与无效字节序列的示例。无效情况无法被 UTF-8 编解码器解码。

要理解这个问题,考虑 UTF-8 编码的工作原理。每个 Unicode 字符被编码为遵循严格模式的 1 到 4 个字节序列。ASCII 字符(U+0000 到 U+007F)使用单字节模式 `0xxxxxxx`。U+0080 到 U+07FF 的字符需要两个字节,遵循 `110xxxxx 10xxxxxx` 模式;而 U+0800 到 U+FFFF 的字符需要三个字节,模式为 `1110xxxx 10xxxxxx 10xxxxxx`。最后,U+10000 到 U+10FFFF 的字符用四个字节编码,遵循 `11110xxx 10xxxxxx 10xxxxxx 10xxxxxx` 模式。每个后续字节必须以 `10` 开头,并且引导字节决定了后续需要多少个后续字节。

当使用字节级分词训练的模型生成文本时,它必须隐式地学习这些编码规则以产生有效序列。然而,这种学习严重依赖于在训练期间对多样化字节模式的暴露。这个问题在自然语言中普遍存在的长尾字符分布背景下变得尤为严重。考虑一个罕见字符,如 U+2B740(CJK 表意文字),它编码为 `0xF0 0xAB 0x9D 0x80`。如果该字符出现的概率为 $p(c) < \frac{1}{N}$(其中 $N$ 是训练数据中的总 token 数),模型可能从未观察到这个特定的字节序列。当被提示在包含前缀 `0xF0 0xAB` 后生成文本时,模型必须正确预测下一个字节必须匹配模式 `10xxxxxx` 作为后续字节,即 `0x9D` 是有效的而 `0xF0` 无效,并且在 `0x9D` 之后需要另一个后续字节。如果没有充分暴露于类似模式,模型可能生成 `0xF0 0xAB 0xF0`——开始一个新的 4 字节序列,而不是继续当前序列。这创建了一个无法解码的无效 UTF-8 序列,导致下游应用程序出现解码错误或产生替换字符。

这个问题的严重性超出了简单的解码失败。当模型生成无效序列时,它们可能进入不稳定状态,后续生成变得越来越不连贯。我们假设这些失败模式可以通过构造包含罕见字节序列的输入来对抗性地触发,可能导致模型生成显示为乱码文本的无效字节流,陷入尝试“逃离”无效状态的重复模式,由于分词混淆而绕过安全过滤器,或者在出现罕见字符时在下游任务上性能下降。

我们解决的核心研究问题是:

- 训练规模与 UTF-8 生成可靠性之间的经验关系是什么?
- 在训练过程中,UTF-8 有效性收敛与困惑度收敛如何相关?
- 罕见字符和常见字符是否表现出不同的有效性学习模式?
- 语义上下文是否影响 UTF-8 有效性学习?

## 3 评估框架

字节后备(Byte-fallback)分词使语言模型能够表示任意的 Unicode 字符串,但生成仍可能失败,产生不是有效 UTF-8 的字节序列。关键在于,这类失败与标准语言建模指标耦合较弱:模型可以将高概率质量分配给结构上无效的连续片段,并且困惑度可以稳定下来,而 UTF-8 有效性仍在改进。因此,我们提出将 **UTF-8 生成可靠性** 作为一个独立的能力,从三个维度进行评估。给定一个提示 $C$ 和一个生成的 token 序列 $x_{1:T}$,令 $\text{Bytes}(x_{1:T})$ 表示去分词后的相应字节流(包括字节后备 token 产生的字节)。我们测量:

- (G1) **结构有效性**:$\text{Bytes}(x_{1:T})$ 是否构成有效的 UTF-8 字符串(如果不是,则在哪一步失败)。
- (G2) **语义正确性**(当定义目标时):模型是否输出某个特定 OOV 字符的 *正确* 字节序列,而不仅仅是 *某个* 有效的 UTF-8。
- (G3) **概率偏好**:当贪心采样未能输出正确字节时,确定模型是否将更高的似然分配给正确的完成。

我们通过两个互补的设置——Level 0 和 Level 1——以及涵盖结构、语义和概率行为的度量套件来评估这些维度。

### 3.1 评估任务

**Level 0: 无上下文结构有效性。** Level 0 将 UTF-8 结构可靠性与语言理解分离开。我们给模型提供包含罕见或未见字符(在字节后备下)的前缀,生成后续内容,并根据 UTF-8 有效性对产生的字节流进行评分。为了探究泛化能力,我们按字符频率层级(例如,常见或不常见)对目标进行分层。

**Level 1: 上下文引导的字节检索。** Level 1 测试语义和句法上下文是否能引导模型检索并完成一个 OOV 字符的字节序列。给定一个包含目标字符 $c$ 的句子 $S$,我们构建一个前缀,其中包括 $c$ 之前的上下文以及 $c$ 的部分字节前缀。模型必须立即生成 $c$ 的剩余字节作为后续内容。这个任务明确地将语义与字节级输出耦合,同时将评估限制在短完成窗口内。

图 2:简化的 UTF-8 DFA,红色虚线表示错误转移。

### 3.2 度量

我们的评估针对三个不同的目标:(G1) 生成字节流的 *结构* UTF-8 有效性,(G2) 当定义黄金目标字符时的 *语义* 正确性(Level 1),以及 (G3) 诊断错误是来自缺失知识还是解码/校准问题。没有任何单一的度量能同时捕获这三个目标,因此我们报告一个互补的度量套件(表1 (https://arxiv.org/html/2606.14122#S3.T1))。

表 1:我们框架中度量角色。† 间接:困惑度反映平均预测拟合,而不是黄金完成与生成完成之间的成对偏好。

#### 3.2.1 通过 UTF-8 DFA 的结构有效性

UTF-8 有效性是 *去分词后的字节流* 的一个属性。令 $x_{1:T}$ 为生成的 token 序列,$B = \text{Bytes}(x_{1:T})$ 为相应的字节(包括字节后备 token)。由于 UTF-8 在字节上定义了一种正则语言,结构有效性可以通过确定性有限自动机(DFA;图2 (https://arxiv.org/html/2606.14122#S3.F2))精确检查:状态 $S_0$ 表示一个字符边界,中间状态表示部分发出的多字节字符等待后续字节,而 $S_{\text{err}}$ 表示无效转移。我们强制执行标准 UTF-8 约束,拒绝超长编码、代理对以及 U+10FFFF 以上的码点;完整转移细节见附录E (https://arxiv.org/html/2606.14122#A5)。

**部分信用有效性。** 当生成在字符中间停止(结构上一致但不完整)时,二元有效性是脆弱的。为了将 *不完整* 输出与 *无效* 输出区分开来,我们计算一个基于 DFA 的部分信用分数。令 $b_c$ 为属于完整有效字符的字节数;令 $b_i$ 为尾随(可能不完整)字符中的字节数;令 $p \in [0,1]$ 表示根据 DFA 在该尾随字符内的分数进度。我们定义:
$$
V_{\text{partial}}(B) = \frac{b_c + p \cdot b_i}{|B|}.
$$

**跨生成步骤的聚合。** 在多头字节发射期间,每步结构分数会波动(例如,对于3字节字符,在 $V_{\text{partial}}$ 下为 $0.33 \rightarrow 0.67 \rightarrow 1.0$)。为了跨检查点和长度进行稳定监控,我们聚合基于前缀的分数,该分数针对 $B_t = \text{Bytes}(x_{1:t})$ 计算。我们报告运行均值:
$$
V_{\text{cumulative}}(t) = \frac{1}{t} \sum_{i=1}^{t} V_{\text{partial}}(B_i),
$$
并且在强调近期行为时,报告指数移动平均:
$$
V_{\text{ema}}(t) = \alpha V_{\text{partial}}(B_t) + (1 - \alpha) V_{\text{ema}}(t-1).
$$

#### 3.2.2 通过术语匹配的语义正确性

UTF-8 有效性(§3.2.1 (https://arxiv.org/html/2606.14122#S3.SS2.SSS1))并不意味着模型产生了 *预期的* 字符。在 Level 1 中,我们为一个目标字符定义一个黄金字节完成。令目标字节为 $B_c = (B_p, B_r)$,其中 $B_p$ 是提供的字节前缀,$B_r$ 是要生成的剩余后缀。我们报告一个二元的术语匹配(Term Match)指标,只有当模型精确发出 $B_r$ 作为立即后续内容 *并且* 在消耗后返回到 UTF-8 边界时才满足:
$$
M = \mathbb{I}\left[\text{接下来的字节完成 } B_r \text{ 并且 DFA 状态返回到 } S_0\right].
$$
这排除了那些 UTF-8 有效但对应不同字符的情况。

#### 3.2.3 通过似然比较的诊断

为了区分缺失知识与解码/校准失败,我们在相同上下文 $C$ 下比较黄金完成的教师强制对数似然与生成完成的对数似然。对于黄金 token 序列 $X_{\text{gold}}$ 和生成序列 $X_{\text{gen}}$,我们计算:
$$
\Delta_{LL} = \sum_{t=1}^{|X_{\text{gold}}|} \log P_\theta(x_t^{\text{gold}} \mid C, x_{<t}^{\text{gold}}) - \sum_{t=1}^{|X_{\text{gen}}|} \log P_\theta(x_t^{\text{gen}} \mid C, x_{<t}^{\text{gen}}).
$$
$\Delta_{LL} > 0$ 表明即使解码器未能发出正确的完成,模型仍偏好正确的完成(暗示解码/校准问题);$\Delta_{LL} < 0$ 表明模型自信地偏好一个不正确的后续完成。

### 3.3 评估协议

我们在每个保存的检查点上,为 Level 0 和 Level 1 分别评估每语言固定 *试验集*,每个语言 $M=256$ 个样本,从而以最小的评估方差生成学习曲线。除非另有说明,我们跨检查点使用相同的解码配置,并按照 3.2 节定义的计算结构、语义和偏好度量。完整构建细节见附录I (https:...

相似文章

语言模型中跨语言泛化的体外研究

arXiv cs.CL

本文引入了一个使用两种程序生成语言的体外框架,用于研究语言模型中的跨语言泛化,发现分词对可复用子结构的保留能力对于跨语言能力迁移比词汇相似性或数据平衡更为关键。