美国艾伦人工智能研究所AI2发布了Bolmo 7B(70亿)与Bolmo 1B(10亿)两款新型语言模型,改用UTF-8字节作为输入与生成的基本单位,并在模型内部动态决定文本分段,减少对传统子词分词器和固定词表的依赖。研究人员指出,尽管子词分词被广泛使用,但在字符级理解、空格与罕见字处理,以及多语言支持的公平性等方面仍存在明显局限,因此尝试从字节层面进行设计以弥补这些不足。
大多数大型语言模型仍依赖子词分词机制,将原始文本转换为模型可处理的表示形式。这种方法虽能有效缩短序列长度、降低计算成本,但也带来了字符级语义理解不足、空格和拼写处理不稳定、以及对不同语言支持不均衡等问题。AI2表示,字节级模型能够直接处理原始文本结构,有助于缓解传统分词方法的上述缺陷,但以往此类模型大多需要从零开始训练,成本高昂,难以跟上主流模型的发展步伐。
与多数从头训练的字节级模型不同,Bolmo采用“字节化”已有模型的策略。AI2以开源的Olmo 3 7B检查点为基础构建Bolmo 7B,并将Olmo 2 1B改造为Bolmo 1B,通过较短的增量训练,将原有子词模型的核心架构与能力转化为可在字节层级运行的系统。AI2称Bolmo是首批完全开源的字节级语言模型,并表示其在多数基准任务上的表现与同规模的子词模型相当,而在强调字符级处理的测试中表现显著提升。
AI2已公开模型检查点及相关资源,并将Bolmo纳入其Olmo生态系统,训练数据主要来源于Dolma 3数据混合体,辅以开源代码数据和少量字符导向数据。官方同时提供技术报告、数据集与源代码,便于外界复现将主流子词模型转换为字节模型的完整流程。
研究人员进一步说明,Bolmo首先在模型内部使用轻量级局部编码器处理字节,再由边界预测器动态划分分段位置,将可变长度的字节块(Patch)输入原有的Transformer主干进行处理。该动态池化设计可在字节数量增加时维持推理效率,并可通过调整每个块平均包含的字节数,在速度与性能之间进行权衡。
AI2还展示了Bolmo能够继承原有Olmo 3的后训练成果,例如指令遵循能力,通过权重合并方式迁移,从而降低引入字节级模型的额外成本。