传统的大语言模型(LLMs)使用 16 位浮点数(FP16)来表示其参数,这需要大量的内存和计算资源,限制了 LLMs 的可访问性和部署选项。为了应对这一挑战,单比特(1-bit)LLMs 应运而生,通过大幅降低模型权重的精度来减少所需的资源,同时保持与全精度模型相当的性能。
微软 BitNet 架构
微软研究院一直在推动 1-bit LLMs 的边界,推出了 BitNet 架构。在最新的研究中,他们推出了 BitNet a4.8,这是一种在不牺牲性能的情况下进一步提高 1-bit LLMs 效率的新技术。
1-bit LLMs 的挑战
- 内存和计算资源:
- 传统的 LLMs 使用 FP16 表示参数,需要大量内存和计算资源。
- 1-bit LLMs 通过降低模型权重的精度来减少这些需求。
- 稀疏化和量化:
- 稀疏化:通过修剪幅度较小的激活来减少计算量,特别适用于 LLMs,因为激活值往往具有长尾分布。
- 量化:使用较少的比特来表示激活,减少处理它们的计算和内存成本。
- 挑战:结合稀疏化和量化具有挑战性,特别是在训练 1-bit LLMs 时会出现特殊问题。
- 梯度计算:
- 量化和稀疏化都引入了不可微分的操作,使得训练期间的梯度计算特别具有挑战性。
- 研究人员必须确保技术可以在现有硬件上高效实现,同时保持稀疏化和量化的优势。
BitNet a4.8 的关键技术
- 混合量化和稀疏化:
- BitNet a4.8 通过设计一种架构来实现这一点,该架构根据激活的具体分布模式,有选择地对模型的不同组件应用量化或稀疏化。
- 注意力层和前馈网络(FFN)层:对输入使用 4 位激活。
- 中间状态:对中间状态使用 8 位稀疏化,仅保留前 55% 的参数。
- 优化现有硬件:
- 通过 4 位激活内核(例如 INT4/FP4)在 GPU 设备上为 LLM 推理带来 2 倍的速度提升。
- 1 位模型权重和 4 位激活的结合有效解决了 LLM 推理中的内存/I/O 和计算约束。
- KV 缓存优化:
- 使用 3 位值来表示注意力机制中的键(K)和值(V)状态。
- KV 缓存是 Transformer 模型的关键组件,存储序列中先前令牌的表示。
- 通过降低 KV 缓存值的精度,进一步减少了内存需求,尤其是在处理长序列时。
实验结果
- 性能:BitNet a4.8 在使用的计算和内存更少的情况下,性能与其前身 BitNet b1.58 相当。
- 与全精度 Llama 模型的比较:BitNet a4.8 将内存使用量减少了 10 倍,并实现了 4 倍的速度提升。
- 与 BitNet b1.58 的比较:通过 4 位激活内核实现了 2 倍的速度提升。
BitNet a4.8 的潜力
- 边缘和资源受限设备:
- BitNet a4.8 的效率使其特别适合在边缘和资源受限的设备上部署 LLMs。
- 这对隐私和安全具有重要意义,用户可以在无需将数据发送到云端的情况下受益于这些模型的强大功能。
- 未来研究方向:
- 模型架构和硬件协同设计:Furu Wei 和他的团队继续致力于 1-bit LLMs 的研究,旨在探索模型架构和硬件的协同设计和协同演进,以充分释放 1-bit LLMs 的潜力。
微软 BitNet a4.8 通过混合量化和稀疏化技术,显著提高了 1-bit LLMs 的效率,同时保持了与全精度模型相当的性能。
这一突破不仅减少了内存和计算资源的需求,还为在边缘和资源受限设备上部署 LLMs 提供了新的可能性。随着研究的深入,1-bit LLMs 有望在未来发挥更大的作用,推动生成式 AI 的广泛应用和发展。