Retrofitting Large Language Models with Dynamic Tokenization
作者: Darius Feher, Ivan Vulić, Benjamin Minixhofer
分类: cs.CL
发布日期: 2024-11-27 (更新: 2025-06-11)
💡 一句话要点
提出动态Token化方法,提升大语言模型在多语言场景下的效率与公平性。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 动态Token化 大语言模型 多语言处理 子词合并 嵌入预测超网络
📋 核心要点
- 现有语言模型采用静态子词分词器,导致效率降低,尤其在非英语语言中表现更差。
- 提出动态Token化方法,基于输入文本动态决定token边界,并使用超网络计算token嵌入。
- 实验表明,该方法在降低token序列长度的同时,对性能影响很小,提升了推理速度和公平性。
📝 摘要(中文)
当前语言模型(LM)使用固定的静态子词分词器。这种默认选择通常会导致效率和语言能力下降,尤其是在英语以外的语言中。为了解决这个问题,我们挑战了静态设计,并提出了用动态token化改造LM:一种基于输入文本,通过受字节对编码启发的子词合并算法动态决定token边界的方法。我们在一个批次中合并频繁的子词序列,然后应用预训练的嵌入预测超网络来动态计算token嵌入。对于编码器风格的模型(例如,XLM-R),这平均降低了超过20%的token序列长度,同时在14种语言上的性能下降小于2%。同样的方法应用于解码器风格模型(例如,Mistral-7B)的预填充和评分,在序列长度减少高达17%的情况下,性能下降最小。总的来说,我们发现动态token化可以通过显著提高推理速度和促进跨语言的公平性来缓解静态token化的局限性,从而实现更公平和适应性更强的LM。
🔬 方法详解
问题定义:现有的大语言模型通常采用固定的、静态的子词分词器。这种静态分词方式无法根据输入文本的特性进行调整,导致在处理不同语言时效率低下,尤其是在非英语语言中,会产生更长的token序列,增加计算负担。此外,静态分词器也可能引入偏差,影响模型在不同语言上的公平性。
核心思路:论文的核心思路是引入动态Token化,即根据输入文本的内容动态地调整token的边界。具体来说,通过一种受字节对编码(BPE)启发的子词合并算法,在每个批次中合并频繁出现的子词序列,从而减少token序列的长度。这种动态调整使得模型能够更好地适应不同语言的特性,提高效率和公平性。
技术框架:该方法主要包含两个阶段:1) 子词合并阶段:对输入文本进行子词级别的划分,然后在一个批次内统计子词序列的频率,并合并最频繁的子词序列,从而动态地调整token边界。2) 嵌入预测阶段:使用一个预训练的嵌入预测超网络,根据动态调整后的token序列,实时计算token的嵌入表示。这个超网络能够将合并后的token映射到高维的嵌入空间,为后续的模型计算提供输入。
关键创新:该方法最重要的创新点在于将动态Token化的思想引入到大语言模型中。与传统的静态分词方法不同,该方法能够根据输入文本的特性动态地调整token边界,从而更好地适应不同语言的特性,提高效率和公平性。此外,使用预训练的嵌入预测超网络能够保证token嵌入的质量,避免因动态Token化而导致的信息损失。
关键设计:子词合并算法采用了一种类似于BPE的策略,即每次合并最频繁出现的子词序列。嵌入预测超网络的设计需要保证能够有效地将合并后的token映射到高维的嵌入空间,并且能够保留token的语义信息。具体的网络结构和训练方式需要根据具体的模型和任务进行调整。论文中可能使用了特定的损失函数来优化超网络的性能,例如对比学习损失或掩码语言模型损失。
🖼️ 关键图片
📊 实验亮点
实验结果表明,对于编码器风格的模型(如XLM-R),动态Token化平均降低了超过20%的token序列长度,同时性能下降小于2%。对于解码器风格的模型(如Mistral-7B),在序列长度减少高达17%的情况下,性能下降最小。这些结果表明,动态Token化能够在显著提高效率的同时,保持模型的性能。
🎯 应用场景
该研究成果可广泛应用于各种自然语言处理任务中,尤其是在多语言场景下。通过动态Token化,可以显著提高大语言模型在不同语言上的推理速度和效率,降低计算成本。此外,该方法还有助于提升模型在不同语言上的公平性,促进更普惠的AI应用。未来,该技术有望应用于机器翻译、跨语言信息检索、多语言文本生成等领域。
📄 摘要(原文)
Current language models (LMs) use a fixed, static subword tokenizer. This default choice typically results in degraded efficiency and language capabilities, especially in languages other than English. To address this issue, we challenge the static design and propose retrofitting LMs with dynamic tokenization: a way to dynamically decide on token boundaries based on the input text via a subword-merging algorithm inspired by byte-pair encoding. We merge frequent subword sequences in a batch, then apply a pre-trained embedding-prediction hypernetwork to compute the token embeddings on-the-fly. For encoder-style models (e.g., XLM-R), this on average reduces token sequence lengths by >20% across 14 languages while degrading performance by less than 2%. The same method applied to pre-filling and scoring in decoder-style models (e.g., Mistral-7B) results in minimal performance degradation at up to 17% reduction in sequence length. Overall, we find that dynamic tokenization can mitigate the limitations of static tokenization by substantially improving inference speed and promoting fairness across languages, enabling more equitable and adaptable LMs.