2024-10-22 www.dnxtw.com
微软开源 1bit 大模型推理框架!
现在 1000 1亿参数的大模型量化 CPU 可跑,速度可达每秒 5-7 个 token。
比如在苹果 M2 新品上运行 BitNet b1.58 3B 模型,be like:
以传统的大模型参数为准 16 位浮点数(如 FP16 或 以BF16的形式存储, BitNet b1.58 所有这些都变成了三进制,即 {-1, 0, 1}。
这里的“1.58 bit指每个参数都可以使用 1.58 表示位置信息。
转换后,矩阵中的计算只涉及加法,使大型模型在保持一定精度的同时显著减少所需的存储空间和计算资源,并显著改善当地设备的运行 LLM 的可能性。
这个项目开源后,在 X 也引起了一波高度关注。
量化千亿参数模型后,订单量化 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%,进一步提高效率。
在 x86 CPU 上,加速效果介于 2.37 至 6.17 两倍之间,能耗降低 71.9% 至 82.2%。
网友也发现了华点,在那里 x86 上性能增益率比 ARM 更大。
此外,bitnet.cpp 量化千亿参数模型后的订单 CPU 可跑,速度可达每秒 5-7 个 token,接近人类的阅读速度。
微软还展示了它的使用 bitnet.cpp 不同的推理框架支持 1 bit LLM。
6 页面论文,介绍 1 bit LLM1 bit LLM 一年前,微软进行了相关研究,称为实现方法 BitNet(一种 Transformer),用 BitLinear 替换了 nn.Linear。
今年二月,BitNet 原班人马在上一篇论文的基础上进行了优化,并提出 BitNet b1.58,在原始 BitNet 在此基础上增加了一个额外的数字 0 值。
然后只有这个内容 6 论文页面引发热议:
BitNet b1.58 模型的权重量化为三元值 {-1, 0, 1}相当于在二进制系统中使用 1.58 bit 表示每一个权重。
采用了 absmean 量化函数约束权重,通过平均绝对值缩放权重矩阵,然后四舍五入最接近的整数值(-1、0 或 1)。
激活值在激活量化中缩放 [−Qb, Qb] 消除零点量化的范围。
在架构设计方面,BitNet b1.58 借鉴了 Llama,使用了 RMSNorm、SwiGLU、旋转位置编码和其他组件,并删除所有偏置项。该设计使其很容易集成到主流的开源框架中。
实验中,与 Llama 相比,BitNet b1.58 节省矩阵乘法 71.4 计算能耗的倍。
这种方法发布后,很多人都在这项研究的基础上进行了探索。
一个问题是,BitNet b1.58 每个参数只用三元值表示,但所有这些都需要从零开始训练模型。不是每个人都有预算 LLM 预训练。
而 Huggingface Transformers 最近整合了 BitNet b1.58.使用一些技能,现有模型可以直接微调 1.58bit。
感兴趣的童鞋可以自己查阅。
但也有网友指出了这种方法的局限性:
总之,1 bit LLM 潜力巨大。
但正如网友所说,1 bit LLM 关键是要在实践中证明自己。
参考链接:
[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》
广告声明:文本中包含的外部跳转链接(包括不限于超链接、二维码、密码等形式)用于传递更多信息,节省选择时间。结果仅供参考。计算机系统网络上的所有文章都包含了本声明。