The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits
TL;DR 精炼摘要
本研究提出了1位大语言模型变体BitNet b1.58,其参数限于三元值{-1, 0, 1}。该模型的困惑度和终端任务性能与同等规模的全精度Transformer LLM相当,同时在延迟、内存、吞吐量和能耗上更具成本效益。这一成果为新一代高性能LLM的训练和针对1位模型的专用硬件设计提供了新视角和方法。
摘要
Recent research, such as BitNet, is paving the way for a new era of 1-bit Large Language Models (LLMs). In this work, we introduce a 1-bit LLM variant, namely BitNet b1.58, in which every single parameter (or weight) of the LLM is ternary {-1, 0, 1}. It matches the full-precision (i.e., FP16 or BF16) Transformer LLM with the same model size and training tokens in terms of both perplexity and end-task performance, while being significantly more cost-effective in terms of latency, memory, throughput, and energy consumption. More profoundly, the 1.58-bit LLM defines a new scaling law and recipe for training new generations of LLMs that are both high-performance and cost-effective. Furthermore, it enables a new computation paradigm and opens the door for designing specific hardware optimized for 1-bit LLMs.
思维导图
论文精读
中文精读
1. 论文基本信息
1.1. 标题
1-bit 大语言模型时代:所有大语言模型都是 1.58 比特 (The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits)
1.2. 作者
Shuming Ma, Hongyu Wang, Lingxiao Ma, Lei Wang, Wenhui Wang, Shaohan Huang, Li Dong, Ruiping Wang, Jilong Xue, Furu Wei。
这些作者隶属于 https://aka.ms/GeneralAI,这通常指向微软研究院或其他大型科技公司的通用人工智能部门。
1.3. 发表期刊/会议
该论文发布于预印本平台 arXiv,论文链接为 https://arxiv.org/abs/2402.17764,PDF 链接为 https://arxiv.org/pdf/2402.17764v1.pdf。发布时间为 UTC 时间 2024年2月27日18:56:19。作为预印本,它尚未经过同行评审,但通常代表了研究的前沿成果。
1.4. 发表年份
2024年
1.5. 摘要
这篇论文介绍了一种名为 BitNet b1.58 的 1-bit 大语言模型 (Large Language Model, LLM) 变体。BitNet b1.58 的核心特点是其所有参数(或称权重)都被量化为三元值 。研究发现,在相同的模型大小和训练词元 (training tokens) 下,BitNet b1.58 在困惑度 (perplexity) 和最终任务性能上能够与全精度(FP16 或 BF16)Transformer LLM 相媲美。同时,它在推理延迟 (latency)、内存占用 (memory)、吞吐量 (throughput) 和能耗 (energy consumption) 方面显著更具成本效益。作者进一步指出,1.58-bit LLM 定义了一种新的缩放定律 (scaling law) 和训练范式,有望训练出兼具高性能和成本效益的新一代 LLM。此外,它还开启了一种新的计算范式,为设计专门针对 1-bit LLM 优化的硬件(如 逻辑处理器单元 (LPU))奠定了基础。
1.6. 原文链接
原文链接: https://arxiv.org/abs/2402.17764
PDF 链接: https://arxiv.org/pdf/2402.17764v1.pdf
发布状态: 预印本 (Preprint)
2. 整体概括
2.1. 研究背景与动机
2.1.1. LLM 发展带来的挑战
近年来,人工智能领域见证了大语言模型 (LLM) 在规模和能力上的快速增长,它们在各种自然语言处理 (Natural Language Processing, NLP) 任务中展现出卓越的性能。然而,LLM 的日益增长的规模也带来了严峻的挑战:
- 部署困难 (Deployment Challenges): 庞大的模型尺寸使得在资源受限的环境中部署 LLM 变得困难。
- 环境和经济影响 (Environmental and Economic Impact): 高能耗带来了环境问题,并增加了运行和维护成本。
2.1.2. 现有解决方案的局限性
为了应对这些挑战,现有研究主要集中在以下几个方向:
- 后训练量化 (Post-Training Quantization, PTQ): 这是一种常见的技术,通过降低权重和激活值的精度来显著减少 LLM 的内存和计算需求,从 16-bit 浮点数转向 4-bit 甚至更低。
- 挑战: 尽管 PTQ 广泛应用于工业界 LLM,但它通常是次优的,可能导致性能下降。
- 低位模型架构 (Low-Bit Model Architectures): 像 BitNet 这样的 1-bit 模型架构为在保持性能的同时降低 LLM 成本提供了一个有前景的方向。
- 传统 LLM 的计算瓶颈: 香草 (Vanilla) LLM 使用 16-bit 浮点值(FP16 或 BF16),其大部分计算成本来源于浮点加法和乘法运算。
- 能耗和内存带宽瓶颈: 许多芯片的计算性能受限于功耗。此外,从 动态随机存取存储器 (DRAM) 到片上加速器(如 静态随机存取存储器 (SRAM))传输模型参数的成本也很高,而 SRAM 比 DRAM 昂贵得多。
2.1.3. 本文的切入点与创新思路
本文通过引入 BitNet b1.58 来解决上述挑战,它在原始 1-bit BitNet 的基础上进行了改进:
- 引入
0值: BitNet b1.58 将权重限制为三元值 ,相较于原始 BitNet 仅有的 ,额外引入了0。这个0值在二元系统中对应 1.58 比特。 - 旨在兼顾性能与效率: 期望在实现极致低比特的同时,通过引入
0值增强模型表达能力,使其能够匹配甚至超越全精度 LLM 的性能,并带来显著的成本效益。 - 新的计算范式: 1-bit LLM 的矩阵乘法只涉及整数加法,这有望大幅节约能耗,并将能耗节约转化为更快的计算速度。同时,更低的内存占用可以减少权重加载成本,从而提高推理效率。
2.2. 核心贡献/主要发现
这篇论文的核心贡献和主要发现可以总结如下:
- 提出了 BitNet b1.58 LLM 变体: 引入了一种新的 1.58 比特 LLM 变体 BitNet b1.58,其所有权重被量化为三元值 。
- 匹配全精度 LLM 性能: 实验证明,BitNet b1.58 从 3B 模型尺寸开始,在困惑度 (perplexity) 和最终任务性能上能够与相同模型大小和训练词元的 FP16 LLaMA LLM 相匹配。这解决了低比特量化通常导致性能显著下降的问题。
- 显著的成本效益:
- 内存: 比 FP16 LLM 节省 3.32 到 3.55 倍的 GPU 内存。
- 延迟: 比 FP16 LLM 快 2.4 到 2.71 倍的推理延迟。
- 能耗: 在 7nm 芯片上,矩阵乘法的算术运算能耗节省 71.4 倍。端到端能耗也随模型规模增大而显著降低。
- 吞吐量: 70B 模型的吞吐量比 LLaMA LLM 高出 8.9 倍,支持 11 倍的批处理大小 (batch size)。
- 定义新的缩放定律 (Scaling Law): 1.58 比特 LLM 揭示了一种新的缩放定律,即在相同性能下,其模型规模可以远小于全精度模型,从而提供更高的效率。例如,70B 的 BitNet b1.58 在效率上甚至优于 13B 的 FP16 LLM。
- 增强模型能力: 引入
0值使得模型能够实现特征过滤 (feature filtering),增强了 1-bit LLM 的建模能力。 - 支持 LLaMA-alike 组件: BitNet b1.58 采用了 LLaMA 架构的关键组件,如
RMSNorm、SwiGLU、Rotary Embedding,并移除了所有偏差项 (biases),使其易于集成到开源社区。 - 开启新计算范式和硬件设计: BitNet b1.58 提出的新计算范式(几乎无需乘法运算)为设计专门优化的 1-bit LLM 硬件(如 逻辑处理器单元 (LPU))打开了大门。
- 支持 MoE 和长序列: 讨论了 1.58-bit LLM 在混合专家模型 (Mixture-of-Experts, MoE) 和长序列处理方面的潜力,因为它能显著降低内存和传输开销。
- 赋能边缘和移动设备: 由于其极低的内存和能耗,BitNet b1.58 使 LLM 能够在边缘和移动设备上部署,极大地扩展了 LLM 的应用范围。
3. 预备知识与相关工作
3.1. 基础概念
3.1.1. 大语言模型 (Large Language Models, LLMs)
大语言模型是基于海量文本数据训练的深度学习模型,通常采用 Transformer 架构,具有数十亿甚至数万亿参数。它们通过学习语言的统计规律和语义信息,能够执行文本生成、摘要、翻译、问答等多种任务。LLMs 的核心在于其能够理解并生成人类语言,并通过在预训练阶段学习到的广泛知识,在各种下游任务中展现出强大的泛化能力。
3.1.2. Transformer 架构
Transformer 是一种神经网络架构,由 Vaswani 等人于 2017 年提出,是目前 LLM 的主流架构。其核心思想是完全依赖自注意力机制 (self-attention mechanism) 来捕捉输入序列中不同位置之间的关系,而无需使用循环神经网络 (Recurrent Neural Network, RNN) 或卷积神经网络 (Convolutional Neural Network, CNN)。
Transformer 的主要组成部分包括:
-
多头自注意力 (Multi-Head Self-Attention): 允许模型同时关注输入序列的不同部分,并从不同的“表示子空间”中提取信息。
-
前馈网络 (Feed-Forward Network): 对自注意力层的输出进行非线性变换。
-
位置编码 (Positional Encoding): 由于 Transformer 没有循环或卷积结构来处理序列顺序信息,因此需要引入位置编码来表示词元在序列中的相对或绝对位置。
-
层归一化 (Layer Normalization): 在每个子层连接后应用,有助于训练的稳定性和加速。
-
残差连接 (Residual Connections): 允许信息在层之间直接传递,有助于缓解梯度消失问题。
Transformer 架构的灵活性和并行计算能力使其成为训练大规模语言模型的理想选择。
3.1.3. 量化 (Quantization)
量化是一种模型压缩技术,旨在将模型的权重和/或激活值从高精度(如 32-bit 浮点数)降低到低精度(如 8-bit 整数、4-bit 整数或 1-bit 二进制数),以减少模型的内存占用、计算需求和能耗,同时尽量保持模型性能。
量化的主要类型包括:
- 后训练量化 (Post-Training Quantization, PTQ): 模型在完成全精度训练后进行量化。优点是无需重新训练,简单易行;缺点是可能导致较大的性能损失。
- 量化感知训练 (Quantization-Aware Training, QAT): 在模型训练过程中模拟量化操作,使模型在训练时就适应量化噪声。优点是性能损失小,甚至可能略有提升;缺点是需要修改训练流程。
3.1.4. 1-bit 模型
1-bit 模型是指模型的权重被量化到极致,通常只取 两个值。这种极端量化带来了巨大的内存和计算优势:
- 内存: 每个权重只需要 1 比特存储。
- 计算: 矩阵乘法可以被转换为位运算(如
XNOR和popcount),或简单的整数加法,从而避免浮点乘法,大幅降低能耗和延迟。 原始的 BitNet 属于 1-bit 模型,其权重为 。
3.1.5. 困惑度 (Perplexity, PPL)
困惑度是评估语言模型性能的常用指标,尤其是在语言建模任务中。它衡量一个语言模型预测样本的能力,困惑度越低,说明模型对样本的预测能力越强,即模型对数据分布的拟合越好。 概念定义: 困惑度是一个衡量语言模型预测序列(如句子)能力的指标。直观上,它表示模型在预测下一个词时“有多困惑”。一个困惑度为 的模型大致可以被理解为在每个预测点都有 个等概率的选项可供选择。困惑度越低,模型预测的确定性越高,性能越好。 数学公式: 对于一个给定词元序列 ,其困惑度定义为: 在实践中,通常通过对数似然计算: 符号解释:
- : 输入的词元序列。
- : 序列中词元的数量。
- : 模型对整个序列的联合概率。
- : 模型在给定前
i-1个词元的条件下,预测第 个词元的概率。 - : 自然对数函数 。
- : 自然对数。
3.2. 前人工作
3.2.1. 后训练量化 (PTQ) 方法
- XLS+23, FAHA23, CCKS23, TCS+24: 这些文献代表了 PTQ 领域的研究进展,旨在通过降低权重和激活值的精度来减小 LLM 的内存和计算需求。其中一些工作可能专注于 4-bit 量化,如 [FAHA23, LTT+23]。PTQ 的主要优点是无需重新训练模型,可以直接应用于预训练好的全精度模型,但缺点是其性能通常是次优的,可能导致一定程度的模型退化。
3.2.2. BitNet [WMD+23]
这是 BitNet b1.58 的前身,是 1-bit 模型架构的代表性工作。原始 BitNet 的核心思想是将 Transformer 中的全精度线性层替换为 1-bit 线性层 (BitLinear),其权重被限制为 。它通过将矩阵乘法转换为位运算和整数加法,显著降低了计算成本和能耗。BitNet b1.58 正是在此基础上引入了 0 值,以期进一步提升模型性能。
3.2.3. LLaMA 架构 [TLI+23, TMS+23]
LLaMA (Large Language Model Meta AI) 是 Meta AI 发布的一系列开源基础语言模型,因其卓越的性能和开源性质,已成为开源 LLM 社区的事实标准。LLaMA 架构采用了一些特定的组件,如:
- RMSNorm [ZS19]: 均方根归一化 (Root Mean Square Layer Normalization),一种层归一化变体,具有更好的数值稳定性。
- SwiGLU [Sha20]: 一种门控线性单元 (Gated Linear Unit, GLU) 变体,用于前馈网络中,有助于提升模型性能。
- Rotary Embedding [SAL+24]: 旋转位置编码 (Rotary Position Embedding, RoPE),一种能够有效地将相对位置信息编码到自注意力机制中的方法。
- 移除偏差项 (Remove Biases): LLaMA 架构在设计上移除了大部分线性层中的偏差项。 BitNet b1.58 采用 LLaMA-alike 组件,旨在兼容开源生态系统,并利用这些组件已被验证的有效性。
3.2.4. FasterTransformer (FT)
FasterTransformer 是 NVIDIA 开源的用于 Transformer 模型推理的高性能库,它针对 GPU 设备进行了深度优化,能够显著降低 LLM 的推理延迟。本文使用 FasterTransformer 评估了 BitNet b1.58 和 LLaMA LLM 的运行时 GPU 内存和延迟。
3.2.5. Ladder [WMC+23]
Ladder 是一项关于定制数据格式上的高效张量编译 (efficient tensor compilation) 的工作。本文提到 BitNet b1.58 集成了 Ladder 的 2-bit 核 (kernel),这表明其在低比特计算优化方面可能借鉴了 Ladder 的技术,进一步提升了性能。
3.3. 技术演进
LLM 的发展大致可以分为几个阶段:
-
早期序列模型: RNN、LSTM 等模型处理序列数据。
-
注意力机制与 Transformer 时代: Transformer 的出现彻底改变了 NLP 领域,其并行化能力和强大的建模能力使得模型规模得以迅速扩大。
-
大规模预训练与微调 (Pre-training and Fine-tuning): 随着计算资源的增长,模型参数量从数千万发展到数百亿、数千亿,GPT-3、LLaMA 等模型的出现展现了强大的通用语言理解和生成能力。
-
模型压缩与效率优化: 随着模型规模的爆炸式增长,部署成本成为瓶颈。量化、剪枝 (pruning)、知识蒸馏 (knowledge distillation) 等技术应运而生,旨在降低模型大小和运行成本。
-
低比特 LLM 时代: 传统的量化主要关注 8-bit 或 4-bit,而 1-bit 模型的出现代表了量化技术的极致探索,如 BitNet 系列,旨在从根本上改变 LLM 的计算范式。
BitNet b1.58 正是处于这一技术演进的第五阶段,它在极致量化(1.58-bit)的同时,通过引入
0值和 LLaMA-alike 架构,努力弥合低比特模型与全精度模型之间的性能差距,并提出了一种新的缩放定律和计算范式。
3.4. 差异化分析
BitNet b1.58 与相关工作的主要区别和创新点在于:
-
与全精度 LLM (FP16/BF16 Transformer) 的区别:
- 精度: 全精度 LLM 使用 16-bit 浮点数,而 BitNet b1.58 使用 1.58-bit 三元整数 。
- 计算范式: 全精度 LLM 依赖浮点乘法和加法,而 BitNet b1.58 主要依赖整数加法,从而带来巨大的能耗和延迟优势。
- 成本效益: BitNet b1.58 在内存、延迟、吞吐量和能耗方面均显著优于全精度 LLM,尤其在大模型尺寸下优势更明显。
- 性能匹配: 关键在于 BitNet b1.58 能够在显著降低成本的同时,匹配全精度 LLM 的性能(从 3B 模型开始)。
-
与后训练量化 (PTQ) 的区别:
- 量化时机: PTQ 是在模型训练完成后进行的,而 BitNet b1.58 是通过量化感知训练 (Quantization-Aware Training) 或从头开始训练的,其架构本身就是低比特的。
- 优化程度: PTQ 往往是次优的,可能导致性能下降;BitNet b1.58 通过特定的架构设计和训练策略,旨在从根本上消除性能差距。
- 计算范式: 即使 PTQ 到 4-bit,通常仍然涉及浮点或整数乘法,而 BitNet b1.58 的 1.58-bit 设计使其能够采用全新的、更高效的整数加法计算范式。
-
与原始 1-bit BitNet [WMD+23] 的区别:
- 权重值: 原始 BitNet 的权重是二元的 ,而 BitNet b1.58 引入了
0,使其权重变为三元 。 - 模型能力: 引入
0使得 BitNet b1.58 能够更好地实现特征过滤 (feature filtering),从而增强了模型的建模能力,这被认为是其能够匹配全精度性能的关键因素之一。 - 比特数: 原始 BitNet 严格是 1 比特,而 BitNet b1.58 因为
0的引入,其有效比特数是 1.58 比特。
- 权重值: 原始 BitNet 的权重是二元的 ,而 BitNet b1.58 引入了
-
与 LLaMA-alike 组件的集成:
-
BitNet b1.58 兼容 LLaMA 架构的核心组件,这使得它能够利用开源社区的成果,并使其易于集成到现有生态系统中,而非从零开始构建完全独立的架构。
总而言之,BitNet b1.58 的创新在于在极致量化(1.58 比特)的约束下,通过引入
0值和 LLaMA-alike 架构,成功地在性能上与全精度模型持平,并在成本效益上实现了质的飞跃。它不仅仅是简单地降低比特数,更是在探索一种全新的 LLM 训练和部署范式。
-
4. 方法论
4.1. 方法原理
BitNet b1.58 的核心思想是在保持大语言模型 (LLM) 性能的同时,大幅降低其推理成本(包括延迟、内存、吞吐量和能耗)。其实现路径主要通过将模型权重极致量化为三元值 ,从而改变传统的浮点矩阵乘法计算范式。
4.1.1. 引入 0 值的直觉
传统的 1-bit 模型(如原始 BitNet)将权重限制在 。虽然这极大地节省了存储和计算,但模型的表达能力受到限制,因为所有连接要么是激活(权重为 1),要么是抑制(权重为 -1),没有“不连接”或“不重要”的概念。
BitNet b1.58 引入了 0 值,使得权重可以为 。
0的意义: 权重为0的连接意味着该特征被“过滤”掉,不参与计算。这类似于神经网络中的剪枝 (pruning) 或稀疏性 (sparsity)。- 增强建模能力:
0值的引入使得模型能够显式地进行特征过滤 (feature filtering),这被认为显著增强了 1-bit LLM 的建模能力,从而使其能够匹敌全精度模型。 - 比特数 1.58 的来源: 三个状态 需要 比特来表示。,因此被称为 1.58 比特。
4.1.2. 新的计算范式
传统的 LLM(FP16/BF16)中,矩阵乘法是核心操作,涉及大量的浮点乘法和加法。而 BitNet b1.58 的矩阵乘法只涉及整数加法:
-
当权重 为
1时,输入特征 直接加到输出上。 -
当权重 为
-1时,输入特征 的负值加到输出上。 -
当权重 为
0时,输入特征 不参与输出的累加(即乘以 0)。这种纯整数加法的计算大大降低了对处理器乘法单元的需求,从而显著减少能耗,并可能转化为更快的计算速度。同时,低比特的权重也意味着极低的内存占用和带宽需求,加速了模型加载和推理。
4.2. 核心方法详解
BitNet b1.58 是基于 BitNet 架构的,它将 Transformer 中的 nn.Linear 层替换为 BitLinear 层。它从头开始训练,权重为 1.58-bit,激活值为 8-bit。
4.2.1. 权重离散化:BitLinear 中的量化函数
在 BitNet b1.58 中,关键在于如何将全精度的权重 约束到三元值 。作者采用了 absmean 量化函数。
该函数首先通过权重的平均绝对值 (average absolute value) 对权重矩阵进行缩放,然后将每个值四舍五入到 中最接近的整数。
以下是 BitNet b1.58 的权重量化函数: 符号解释:
- : 原始的全精度权重矩阵。
- : 量化后的权重矩阵,其元素取值于 。
- : 一个函数,它将输入 四舍五入到最接近的整数 (
round(x)),然后将结果截断到范围[a, b]内。- : 将 四舍五入到最近的整数。
- : 将四舍五入后的值限制在不大于 。
- : 将上述结果限制在不小于 。
- 在这里,,所以
RoundClip函数将值截断到 范围,并且四舍五入到最近的整数。这意味着最终的输出值只能是 。
- : 是权重矩阵 中所有元素的平均绝对值 (average absolute value)。
- : 权重矩阵 的行数。
- : 权重矩阵 的列数。
- : 权重矩阵 中所有元素的绝对值之和。
- : 一个非常小的正数,用于防止除以零的数值稳定性问题。
量化过程分解:
- 计算缩放因子 : 首先计算原始全精度权重矩阵 中所有元素的平均绝对值 。
- 归一化: 将原始权重 除以 。这一步的目的是将权重 的值域归一化到一个更适合后续四舍五入的范围。例如,如果原始权重的值域很大,通过除以平均绝对值,可以将大部分权重集中到 某个小区间内,使得在 范围内更容易出现
0。 - 四舍五入并截断: 对归一化后的值应用
RoundClip函数,将其四舍五入到最近的整数,并确保结果在 之间。这样,所有权重都被强制转换为 。
4.2.2. 激活值量化
激活值的量化方式与原始 BitNet 略有不同:
- 与 BitNet 相同之处: 激活值被量化为 8-bit。
- BitNet b1.58 的修改:
- 原始 BitNet 在非线性函数之前将激活值缩放到 范围。
- BitNet b1.58 不进行这种缩放,而是将所有激活值按每个词元 (per token) 缩放到 范围,去除了零点量化 (zero-point quantization)。
- 目的和影响: 这种改变使得实现和系统级优化更加方便和简单,并且根据实验,对性能的影响可以忽略不计。
4.2.3. LLaMA-alike 组件集成
为了更好地融入开源社区并利用已验证的先进组件,BitNet b1.58 采用了 LLaMA 架构的关键特性:
-
RMSNorm [ZS19]: 使用均方根归一化 (Root Mean Square Layer Normalization) 代替传统的层归一化。
-
SwiGLU [Sha20]: 在前馈网络中使用 SwiGLU 激活函数。
-
Rotary Embedding [SAL+24]: 使用旋转位置编码 (Rotary Position Embedding, RoPE) 处理序列的位置信息。
-
移除所有偏差项 (Remove all biases): 模型中所有的线性层都移除了偏差项。
这些设计选择使得 BitNet b1.58 能够在流行开源软件(如 Huggingface, vLLM, llama.cpp)中以最小的努力进行集成。
4.3. 训练策略
论文明确指出 BitNet b1.58 是“从头开始训练 (trained from scratch)”的,并且是在 RedPajama 数据集上训练了 100 亿词元 (billion tokens)。这意味着量化操作是在训练过程中进行的(量化感知训练或其变体),而不是在模型训练完成后进行(后训练量化)。这种从头训练的策略是确保低比特模型能够匹配甚至超越全精度模型性能的关键。
融合讲解 - BitLinear 层的完整计算流程:
-
输入接收: 接收 8-bit 量化的激活值 和全精度的权重 。
-
权重离散化: 对 应用上述
absmean量化函数,将其转换为 1.58-bit 的三元权重 。这个过程在训练中是可导的(通过直通估计器 (Straight-Through Estimator, STE) 等技术),允许梯度回传到 。 -
矩阵乘法: 执行 的矩阵乘法。由于 是三元的,这个乘法本质上是整数加法和减法:
- 对于输出的每个元素 :
- 如果 ,则 被加到 。
- 如果 ,则 被加到 。
- 如果 ,则 不参与 的计算。 这种计算在硬件层面可以高度优化,显著降低浮点运算的能耗和延迟。
- 对于输出的每个元素 :
-
后续操作: 将矩阵乘法的结果 传递给
RMSNorm、SwiGLU等 LLaMA-alike 组件,并继续 Transformer 层的计算。 -
激活值再次量化: 在每个
BitLinear层之后,激活值会被再次量化到 8-bit,以便作为下一个BitLinear层的输入。这种融合了低比特量化、新计算范式和成熟架构组件的方法,是 BitNet b1.58 能够同时实现高性能和高效率的关键。
5. 实验设置
5.1. 数据集
5.1.1. 预训练数据集
- RedPajama Dataset [Com23]:
- 来源与特点: 这是一个大型的开源数据集,旨在复现 LLaMA 模型的训练数据。它包含了各种类型的文本数据,如网络爬取数据、书籍、代码、维基百科等,旨在提供高质量和多样化的训练语料。
- 规模: 本文中的模型都在 RedPajama 数据集上预训练了 100 亿词元 (billion tokens)。
- 目的: 选择 RedPajama 旨在与 LLaMA 进行公平比较,确保模型在相同的数据分布上进行训练。
5.1.2. 评估数据集
论文使用了多个基准数据集来评估模型的零样本 (zero-shot) 性能和困惑度。
5.1.2.1. 零样本任务数据集 (Zero-shot Task Datasets)
这些数据集用于评估模型在没有特定任务微调情况下的泛化能力和理解能力。
- ARC-Easy [YBS19] 和 ARC-Challenge [YBS19]:
- 概念: ARC (AI2 Reasoning Challenge) 是一套科学问答数据集,旨在测试模型在科学领域内的推理能力。ARC-Easy 包含相对容易的题目,而 ARC-Challenge 则包含需要更深入推理的困难题目。
- 特点: 这些问题通常需要理解科学事实、概念和因果关系。
- Hellaswag [ZHB+19]:
- 概念: 一个常识推理数据集,旨在测试模型选择自然、连贯的句子结尾的能力。数据集中的选项设计得非常具有迷惑性,要求模型具备深刻的常识理解。
- 特点: 包含一个给定情境和几个可能的续写,模型需要选择最合理的一个。
- Winogrande [SBBC20]:
- 概念: Winogrande 是 Winograd Schema Challenge 的一个大规模变体,旨在测试模型解决代词消解问题中的常识推理能力。
- 特点: 问题通常包含两个实体和一个代词,代词的指代取决于常识。例如,“The city councilmen refused the demonstrators a permit because they feared violence.” (市议员拒绝了示威者的许可,因为他们害怕暴力。) 这里的
they指的是谁?如果feared替换为advocated,they的指代又会改变。
- PIQA [BZB+19]:
- 概念: PIQA (Physical Interaction Question Answering) 是一个关于物理常识推理的数据集。
- 特点: 问题围绕物理世界中的日常交互展开,每个问题有两个可能的答案,模型需要选择正确的物理行为。
- OpenbookQA [MCKS18]:
- 概念: 一个开放领域的问答数据集,问题设计为需要结合常识和背景知识才能回答。
- 特点: 通常需要模型在给定“开放书籍”(知识库)的情况下,对问题进行推理。
- BoolQ [CLC+19]:
- 概念: 一个布尔问答数据集,问题通常以“是/否”形式回答,需要模型理解上下文并进行二元分类推理。
- 特点: 问题基于文本段落,模型需要判断问题陈述是否为真。
5.1.2.2. 困惑度数据集 (Perplexity Datasets)
这些数据集用于评估模型在语言建模任务中的基础能力。
- WikiText2 [MXBS16]:
- 概念: 一个相对较小的,高质量的维基百科文章数据集,通常用于评估语言模型的困惑度。
- 特点: 包含完整的文章,文本质量高,但规模较小。
- C4 [RSR+19]:
- 概念: C4 (Colossal Clean Crawled Corpus) 是一个非常大的、经过清理的网页文本数据集,是 T5 模型的主要训练数据。
- 特点: 规模庞大,内容多样,但可能不如 WikiText2 那么“干净”。
5.1.3. 2T tokens 训练数据集
- StableLM-3B 的数据配方:
- 概念: 为了测试 BitNet b1.58 在更大训练词元量下的可扩展性,作者按照 StableLM-3B [TBMR] 的数据配方训练了一个 2 万亿词元 (2T tokens) 的 BitNet b1.58 模型。
- 目的: 这使得 BitNet b1.58 可以与 StableLM-3B 这个先进的 3B 开源模型进行公平比较。
- 评估基准:
- Winogrande [SBBC20]
- PIQA [BZB+19]
- SciQ [WLG17]
- LAMBADA [PKL+16]
- ARC-easy [YBS19]
5.2. 评估指标
5.2.1. 困惑度 (Perplexity, PPL)
概念定义: 困惑度是一个衡量语言模型预测序列(如句子)能力的指标。直观上,它表示模型在预测下一个词时“有多困惑”。一个困惑度为 的模型大致可以被理解为在每个预测点都有 个等概率的选项可供选择。困惑度越低,模型预测的确定性越高,性能越好。 数学公式: 对于一个给定词元序列 ,其困惑度定义为: 在实践中,通常通过对数似然计算: 符号解释:
- : 输入的词元序列。
- : 序列中词元的数量。
- : 模型对整个序列的联合概率。
- : 模型在给定前
i-1个词元的条件下,预测第 个词元的概率。 - : 自然对数函数 。
- : 自然对数。
5.2.2. 零样本准确率 (Zero-shot Accuracy)
概念定义: 零样本准确率是指模型在没有针对特定任务进行微调的情况下,直接在任务数据集上进行评估的正确率。它衡量模型在不熟悉任务上的泛化能力和对通用知识的掌握程度。对于分类任务(如多项选择),准确率是正确分类样本数与总样本数的比值。 数学公式: 符号解释:
- : 模型在给定任务上正确预测的样本数量。
- : 给定任务上的总样本数量。
5.2.3. 推理延迟 (Latency)
概念定义: 推理延迟是指模型从接收输入到生成完整输出所需的时间。在 LLM 推理中,通常关注的是生成每个输出词元所需的时间(time per output token),因为它直接影响用户体验。 度量单位: 毫秒 (ms)。 目标: 越低越好。
5.2.4. 内存消耗 (Memory Consumption)
概念定义: 内存消耗是指模型在运行时(尤其是推理时)占用的 GPU 内存量。这包括模型参数、激活值、KV 缓存 (KV cache) 等所需的内存。 度量单位: GB。 目标: 越低越好。
5.2.5. 吞吐量 (Throughput)
概念定义: 吞吐量是指模型在单位时间内能够处理(生成)的词元数量。它通常受限于批处理大小 (batch size) 和每个请求的延迟。 度量单位: 词元/秒 (tokens/s)。 目标: 越高越好。
5.2.6. 能耗 (Energy Consumption)
概念定义: 能耗是指模型在进行计算和数据传输时消耗的能量。在大规模 LLM 中,主要关注矩阵乘法等核心运算的算术能耗和端到端的整体能耗。 度量单位: 焦耳 (J) 或以相对倍数表示。 目标: 越低越好。
5.3. 对比基线
论文将 BitNet b1.58 与其复现的 FP16 LLaMA LLM 进行了比较。选择 LLaMA LLM 作为基线有以下原因:
-
事实标准: LLaMA 架构是当前开源 LLM 社区的事实标准,具有很高的代表性。
-
公平比较: 通过复现 LLaMA LLM 并使用相同的预训练数据集 (RedPajama) 和训练词元数量 (100 亿),确保了比较的公平性,排除了数据差异带来的影响。
-
不同尺寸: 比较了不同模型尺寸下的性能,包括 700M、1.3B、3B、3.9B(BitNet b1.58 特有)、7B、13B 和 70B,以展示 BitNet b1.58 在不同规模下的表现和可扩展性。
此外,在 2T 词元训练的实验中,BitNet b1.58 3B 模型与 StableLM-3B 进行了比较,因为 StableLM-3B 被认为是当时最先进的开源 3B 模型之一。
6. 实验结果与分析
6.1. 核心结果分析
6.1.1. 困惑度与成本效益分析
以下是原文 Table 1 的结果:
| Models | Size | Memory (GB)↓ | Latency (ms)↓ | PPL↓ |
| LLaMA LLM | 700M | 2.08 (1.00x) | 1.18 (1.00x) | 12.33 |
| BitNet b1.58 | 700M | 0.80 (2.60x) | 0.96 (1.23x) | 12.87 |
| LLaMA LLM | 1.3B | 3.34 (1.00x) | 1.62 (1.00x) | 11.25 |
| BitNet b1.58 | 1.3B | 1.14 (2.93x) | 0.97 (1.67x) | 11.29 |
| LLaMA LLM | 3B | 7.89 (1.00x) | 5.07 (1.00x) | 10.04 |
| BitNet b1.58 | 3B | 2.22 (3.55x) | 1.87 (2.71x) | 9.91 |
| BitNet b1.58 | 3.9B | 2.38 (3.32x) | 2.11 (2.40x) | 9.62 |
分析:
- 性能匹配: BitNet b1.58 从 3B 模型尺寸开始,其困惑度 (PPL) 能够与全精度 LLaMA LLM 相匹配甚至略优(BitNet b1.58 3B 的 PPL 为 9.91,LLaMA LLM 3B 为 10.04)。这意味着在保持性能的前提下,低比特模型是可行的。
- 内存效益: BitNet b1.58 在所有模型尺寸上都显著降低了 GPU 内存消耗。例如,3B 尺寸的 BitNet b1.58 仅需 2.22 GB 内存,而 LLaMA LLM 3B 则需要 7.89 GB,前者是后者的 3.55 倍。即使是 3.9B 的 BitNet b1.58 也比 3B 的 LLaMA LLM 节省了大量内存。
- 延迟效益: BitNet b1.58 也显著降低了推理延迟。3B 尺寸的 BitNet b1.58 的延迟为 1.87ms,比 LLaMA LLM 3B 的 5.07ms 快了 2.71 倍。
- 超越基线: BitNet b1.58 3.9B 模型在困惑度 (9.62) 上显著优于 LLaMA LLM 3B (10.04),同时在内存和延迟上仍保持了 3.32 倍和 2.40 倍的优势。这表明 BitNet b1.58 不仅能匹配性能,甚至能在更低的成本下提供更好的性能。
6.1.2. 零样本任务性能分析
以下是原文 Table 2 的结果:
| Models | Size | ARCe | ARCc | HS | BQ | OQ | PQ | WGe | Avg. |
| LLaMA LLM | 700M | 54.7 | 23.0 | 37.0 | 60.0 | 20.2 | 68.9 | 54.8 | 45.5 |
| BitNet b1.58 | 700M | 51.8 | 21.4 | 35.1 | 58.2 | 20.0 | 68.1 | 55.2 | 44.3 |
| LLaMA LLM | 1.3B | 56.9 | 23.5 | 38.5 | 59.1 | 21.6 | 70.0 | 53.9 | 46.2 |
| BitNet b1.58 | 1.3B | 54.9 | 24.2 | 37.7 | 56.7 | 19.6 | 68.8 | 55.8 | 45.4 |
| LLaMA LLM | 3B | 62.1 | 25.6 | 43.3 | 61.8 | 24.6 | 72.1 | 58.2 | 49.7 |
| BitNet b1.58 | 3B | 61.4 | 28.3 | 42.9 | 61.5 | 26.6 | 71.5 | 59.3 | 50.2 |
| BitNet b1.58 | 3.9B | 64.2 | 28.7 | 44.2 | 63.5 | 24.2 | 73.2 | 60.5 | 51.2 |
分析:
- 性能收敛: 随着模型尺寸的增加,BitNet b1.58 与 LLaMA LLM 之间的零样本准确率差距逐渐缩小。
- 匹配甚至超越: 从 3B 模型尺寸开始,BitNet b1.58 (平均 50.2) 能够匹配 LLaMA LLM (平均 49.7) 的性能,甚至在某些任务上略有优势(如 ARCc, BQ, OQ, WGe)。
- 3.9B 模型的优势: BitNet b1.58 3.9B 模型在所有任务上的平均准确率 (51.2) 都优于 LLaMA LLM 3B (49.7),进一步证实了其在更低成本下实现更高性能的能力。
6.1.3. 内存与延迟随模型大小变化趋势
下图(原文 Figure 2)展示了 BitNet b1.58 在不同模型尺寸下的解码延迟(左)和内存消耗(右):

分析:
- 加速比随模型增大而增加: 图表显示,随着模型尺寸的增加,BitNet b1.58 相对于 LLaMA LLM 的加速比(延迟降低)和内存节省比率都在增加。例如,70B 尺寸的 BitNet b1.58 比 LLaMA LLM 快 4.1 倍。这说明
BitLinear层带来的计算优势在模型规模越大时越明显,因为nn.Linear层的计算成本随模型尺寸增长而增大。 - 内存优势持续: 内存消耗也呈现类似趋势。虽然模型的嵌入层 (embedding layer) 仍然是全精度,但随着模型尺寸增大,嵌入层在总内存中的比例减小,使得低比特权重带来的内存优势更加突出。
6.1.4. 吞吐量对比
以下是原文 Table 3 的结果:
| Models | Size | Max Batch Size | Throughput (tokens/s) |
| LLaMA LLM | 70B | 16 (1.0x) | 333 (1.0x) |
| BitNet b1.58 | 70B | 176 (11.0x) | 2977 (8.9x) |
分析:
- 批处理能力: BitNet b1.58 70B 在两张 80GB A100 显卡上,能够支持比 LLaMA LLM 70B 高达 11 倍的批处理大小 (176 vs 16)。这直接归因于其极低的内存占用。
- 吞吐量显著提升: 得益于更大的批处理大小和更低的单次推理延迟,BitNet b1.58 70B 的吞吐量达到了 2977 词元/秒,是 LLaMA LLM 70B (333 词元/秒) 的 8.9 倍。这对于高性能、高并发的 LLM 服务部署具有极其重要的意义。
6.1.5. 能耗对比
下图(原文 Figure 3)展示了 BitNet b1.58 与 LLaMA LLM 在 7nm 工艺节点下的能耗比较:

分析:
- 算术运算能耗: 左图显示,BitNet b1.58 的主要能耗来自于 INT8 加法运算,而 LLaMA LLM 则包含 FP16 加法和乘法。根据 [Hor14, ZZL22] 的能耗模型,BitNet b1.58 在矩阵乘法的算术运算能耗方面,可以节省 71.4 倍。这是因为 1.58-bit 权重将乘法简化为加法,浮点运算比整数运算和位运算消耗更多能量。
- 端到端能耗: 右图展示了不同模型尺寸下的端到端能耗。随着模型尺寸的增大,BitNet b1.58 相对于 FP16 LLaMA LLM 的能耗效率优势也越来越显著。这是因为
nn.Linear层(矩阵乘法)在总计算成本中的比例随着模型规模增大而增加,而 BitNet b1.58 正是在这些核心计算上实现了能耗上的巨大优化。
6.1.6. 2T 词元训练下的性能
以下是原文 Table 4 的结果:
| Models | Tokens | Winogrande | PIQA | SciQ | LAMBADA | ARC-easy | Avg. |
| StableLM-3B | 2T | 64.56 | 76.93 | 90.75 | 66.09 | 67.78 | 73.22 |
| BitNet b1.58 3B | 2T | 66.37 | 78.40 | 91.20 | 67.63 | 68.12 | 74.34 |
分析:
- 大训练量下的泛化能力: 在使用 2 万亿词元训练后,BitNet b1.58 3B 在所有评估任务上都取得了优于 StableLM-3B 的性能,平均准确率从 73.22 提升到 74.34。
- 缩放定律的验证: 这进一步证明了 1.58-bit LLM 具有强大的泛化能力和可扩展性,并验证了其定义的新的缩放定律——即使在低比特下,增加训练数据量和模型大小也能带来性能提升。
6.1.7. 新的缩放定律等效性
论文总结了 1.58-bit 和 16-bit 模型之间在性能和推理成本上的等效关系:
- 13B 的 BitNet b1.58 在延迟、内存使用和能耗方面比 3B 的 FP16 LLM 更高效。
- 30B 的 BitNet b1.58 在延迟、内存使用和能耗方面比 7B 的 FP16 LLM 更高效。
- 70B 的 BitNet b1.58 在延迟、内存使用和能耗方面比 13B 的 FP16 LLM 更高效。
分析: 这些等效关系是本文最重要的发现之一,它揭示了低比特 LLM 可以通过更大的模型尺寸来匹配甚至超越全精度小模型,同时还能保持显著的成本优势。这意味着,未来我们可能不再追求绝对的全精度模型尺寸,而是转向在低比特约束下寻找最优的性能与成本平衡点。
6.2. 数据呈现 (表格)
所有表格数据均已在上一节的分析中完整呈现。
6.3. 消融实验/参数分析
论文中没有明确的“消融实验”或“参数分析”章节。然而,通过以下方式间接体现了对模型组件和参数的分析:
-
0值的作用: 论文在方法论和摘要中多次强调引入0值对于增强模型建模能力(特别是特征过滤)的重要性。虽然没有直接对比 和 的消融实验结果,但其性能提升是引入0值带来的结果。 -
模型尺寸的影响: 实验结果展示了不同模型尺寸 (700M, 1.3B, 3B, 3.9B, 7B, 13B, 70B) 下 BitNet b1.58 的性能和成本效益,这本身就是一种对模型规模参数影响的分析。结果表明,性能差距随模型尺寸增大而缩小,且成本效益优势随之增大。
-
训练词元数量的影响: 通过与 StableLM-3B 在 2T 词元训练下的比较,展示了训练词元数量对 BitNet b1.58 泛化能力和性能的影响,证明了其在大训练量下的可扩展性。
-
8-bit 激活值选择: 论文提到激活值量化为 8-bit,并修改了缩放范围,但未详细探讨其他激活值比特数(如 4-bit)的实验结果或消融。
总的来说,论文主要通过与全精度基线模型的横向对比,以及在不同模型规模和训练数据量下的纵向扩展,来验证 BitNet b1.58 整体方法的有效性。
7. 总结与思考
7.1. 结论总结
这篇论文成功地证明了 1.58-bit 大语言模型 BitNet b1.58 可以在保持与全精度 LLM 相当的性能(从 3B 模型尺寸开始)的同时,带来革命性的成本效益提升。其核心创新在于将模型权重量化为 三元值,特别是引入 0 值来增强模型的特征过滤能力。实验结果表明,BitNet b1.58 在内存、推理延迟、吞吐量和能耗方面均远优于全精度 LLaMA LLM,并且这些优势随着模型规模的增大而更加显著。该工作不仅为训练高性能且成本效益高的下一代 LLM 定义了新的缩放定律和范式,还为设计专门针对 1-bit LLM 优化的新硬件开辟了道路,并预示了 LLM 在边缘设备、移动平台以及混合专家模型 (MoE) 等领域的广泛应用前景。
7.2. 局限性与未来工作
论文作者指出了 BitNet b1.58 及其相关研究的局限性并提出了未来工作方向:
- 激活值量化进一步优化: 论文提到激活值当前是 8 比特,并“可以进一步无损压缩到 4 比特甚至更低”,这被作为未来的工作。这意味着当前模型在激活值方面仍有压缩潜力。
- 硬件优化: 尽管论文呼吁设计专门针对 1-bit LLM 优化的新硬件,但 BitNet b1.58 目前的性能数据是基于现有 GPU 和集成了 Ladder 2-bit 核的代码库测量的。未来的工作需要专注于开发真正的 1-bit LLM 专用硬件 (如 LPU),以充分发挥其计算范式的优势。
- 长序列支持的 KV 缓存: 论文提到 1.58-bit LLM 通过将激活值从 16 比特降到 8 比特,可以将上下文长度加倍,但进一步将 KV 缓存无损压缩到 4 比特甚至更低仍是未来的工作。
- 更多模型尺寸和训练数据: 虽然论文已经探索了 70B 模型和 2T 词元训练,但 LLM 的规模还在持续增长。BitNet b1.58 在更大规模模型(例如数千亿甚至万亿参数)和更大数据量下的表现,以及其缩放定律的普适性,仍需进一步验证。
- 不同任务和模态: 论文主要关注语言建模和零样本 NLP 任务。1.58-bit LLM 在其他模态(如多模态 LLM)或更复杂的推理任务上的表现仍待探索。
7.3. 个人启发与批判
7.3.1. 个人启发
这篇论文极具启发性,它挑战了长期以来对“浮点数精度等同于模型性能”的固有观念,展现了在极端量化下也能实现与全精度模型匹敌甚至超越的性能。
- 模型设计的范式转变: 过去,为了性能,我们不断增加模型规模和精度。BitNet b1.58 指出了另一条路径:通过革命性的低比特量化和计算范式,在大幅降低成本的同时,仍能维持高性能。这可能预示着 LLM 设计将从单纯的“大而全”转向“小而精”或“低比特高效率”。
- 计算硬件的未来方向: 论文明确呼吁为 1-bit LLM 设计专用硬件,这无疑将加速 LLM 硬件的创新。一旦 LPU 这样的硬件普及,LLM 的部署成本将大幅降低,从而在更广泛的场景中实现 LLM 的普惠。
- 推动 LLM 普及化: 显著降低的内存、能耗和延迟,使得 LLM 部署到资源受限的边缘设备和移动端成为可能。这将极大拓宽 LLM 的应用边界,例如,个人智能助理、离线翻译、本地化内容生成等,无需依赖云端算力。
- “0”的魔力: 引入
0值带来的特征过滤能力,是模型能够保持性能的关键。这提示我们,在设计神经网络时,除了“激活”和“抑制”,明确的“不连接”或“剪枝”机制可能同样重要,甚至能在低比特约束下发挥更大的作用。
7.3.2. 批判
尽管 BitNet b1.58 取得了突破性进展,但仍有一些潜在问题、未经验证的假设或可以改进的地方:
- “1.58 比特”的定义: 虽然 比特是表示三元值的数学事实,但在实际硬件实现中,一个比特通常是物理上的二进制开关。将三元值编码到物理比特中(例如,用 2 比特表示
000110,然后只使用其中三个状态),仍然可能需要 2 比特存储空间。这可能会影响其在硬件层面的实际内存和计算优势。论文对此的讨论相对较少。 - 量化感知训练的复杂性: 论文指出 BitNet b1.58 是“从头开始训练”的,这通常意味着量化感知训练 (QAT)。QAT 相对于后训练量化 (PTQ) 来说,训练过程更复杂,对超参数敏感度更高,并且需要更多计算资源。虽然结果显示性能优异,但其训练的稳定性和收敛性可能需要更精细的调优。
- 特定任务上的性能细微差异: 尽管在困惑度和平均零样本任务上表现良好,但 Table 2 中 BitNet b1.58 在某些特定任务上(如 ARC-Easy 700M,Hellaswag 700M/1.3B)的绝对性能仍略低于全精度 LLaMA LLM。这些细微的差距可能在某些对性能要求极高的场景下仍然构成挑战。
- 激活值 8-bit 的必要性: 论文提到激活值是 8-bit。如果激活值也能实现更低比特(如 4-bit 或 2-bit)且不损失性能,那么整体的成本效益将更高。未来工作可以深入探讨激活值的极致量化。
- 通用性和泛化能力: 论文主要在英文 LLM 上进行了验证。1.58-bit LLM 在多语言、多模态或特定领域任务上的表现仍需进一步研究。其“新的缩放定律”是否适用于所有类型的 LLM 和所有数据分布,也需要更广泛的验证。
- 实际部署的生态系统: 虽然论文提到可以集成到 Huggingface 等开源框架,但实际部署一个高度量化的模型到生产环境,需要整个软件栈(编译器、运行时、优化库)的协同优化。目前 1.58-bit LLM 的生态系统仍处于早期阶段。
相似论文推荐
基于向量语义检索推荐的相关论文。