Loading...

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

微软推出 1bit 大规模模型推理框架!

现在,经过量化的 1000 亿参数大模型可以在单个 CPU 上运行,速度可达到每秒 5-7 个 token。

例如,在苹果 M2 的新设备上运行 BitNet b1.58 3B 模型,如下所示:

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

传统的庞大模型参数使用 16 位浮点数(如 FP16 或 BF16)进行存储,而 BitNet b1.58 将其全部转换为三进制,即 {-1, 0, 1}

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

这里的“1.58 bit”意指每个参数能够用 1.58 位的信息表示。

经过转换后,矩阵计算仅涉及到加法,从而在保持一定精度的同时,显著减少所需的存储和计算资源,并大幅提高在本地设备上运行 LLM 的可行性。

项目开源后,在 X 上也引起了一波高度关注。

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

千亿参数模型量化后,在单 CPU 上可运行

bitnet.cpp 是 1bit LLM(如 BitNet b1.58)的官方推理框架。

该框架配备了一系列优化内核,支持在 CPU 上快速且无损的 1.58bit 模型推理,并将在未来扩展对 NPU 和 GPU 的支持。

bitnet.cpp初版主要支持 CPU 推理

在性能改进方面,该框架在 ARM CPU 上可实现1.37 至 5.07 倍的加速,更大的模型将会获得更明显的性能提升。

同时,它能够将能耗降低 55.4% 至 70.0%,进一步提升效率。

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

在 x86 CPU 上,加速效果在 2.37 至 6.17 倍之间能耗减少 71.9% 至 82.2%

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

网民们也注意到,在 x86 上的性能提升更显著。

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

此外,bitnet.cpp 能够使得千亿参数模型经量化后在单 CPU 上运行,速度高达每秒 5-7 个 token,接近于人类的阅读速度。

微软还展示了使用bitnet.cpp推理框架支持的各类 1 bit LLM。

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

6 页论文,引入 1 bit LLM

关于 1 bit LLM 的实现方法,微软一年前就进行了相关研究,命名为 BitNet(作为一种 Transformer),用BitLinear 替换了nn.Linear

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

今年二月,BitNet 原团队在先前论文的基础上进行了优化,提出了 BitNet b1.58,在原始 BitNet 的基础上增加了一个额外的0 值

这篇仅有 6 页的论文引发了广泛关注:

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

BitNet b1.58 模型的权重被量化为三元值 {-1, 0, 1},相当于在二进制系统里使用 1.58 bit 来表示每个权重

采用 absmean 量化函数对权重进行约束,通过其平均绝对值缩放权重矩阵,然后四舍五入至最接近的整数(-1、0 或 1)。

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

在激活量化中,激活值被缩放至 [−Qb, Qb] 的范围,以消除零点量化。

在架构设计方面,BitNet b1.58 参考了 Llama,使用了 RMSNorm、SwiGLU、旋转位置编码等组件,并移除了所有的偏置项。这种设计使其可以轻松集成到主流开源框架中。

实验表明,与 Llama 相比,BitNet b1.58 在矩阵乘法中节省了71.4 倍的计算能耗。

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

这种方法发布后,许多人在这一研究基础上展开了探索。

其中一个问题是,BitNet b1.58 将每个参数仅表示为三元值,但所有这些都需重新训练模型,并不是每个人都有预算来进行 LLM 的预训练。

然而,Huggingface Transformers 最近整合了 BitNet b1.58,并运用一些技巧,使得现有模型能够直接微调为 1.58bit

有兴趣的朋友可以自行查阅。

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

不过,也有网友指出了这种方法的局限性:

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

总而言之,1 bit LLM 具有巨大的潜力。

但正如某些网友所说,1 bit LLM 的关键在于能否在实际应用中证明其有效性。

微软开源 1.58bit 推理框架:千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token

参考链接:

  • [1]https://github.com/microsoft/BitNet

  • [2]https://x.com/rohanpaul_ai/status/1847814379657462201

  • [3]https://x.com/rohanpaul_ai/status/1848172443258728860?s=46&t=iTysI4vQLQqCNJjSmBODPw

  • [4]https://huggingface.co/blog/zh/1_58_llm_extreme_quantization

本文来源于微信公众号:微信公众号(ID:QbitAI),作者:西风,原标题《微软开源爆火 1.58bit 大模型推理框架!千亿参数模型量化后单 CPU 可跑,速度每秒 5-7 个 token》

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...