微软开源爆火1bit大模子推理框架!千亿参数模子量化后单CPU可跑

发布日期:2024-10-23 06:35    点击次数:178

西风 发自 凹非寺

量子位 | 公众号 QbitAI

微软开源1bit大模子推理框架!

当今1000亿参数大模子量化后单CPU可跑,速率可达每秒5-7个token。

即是本年爆火论文The Era of 1-bit LLMs的官方代码竣事,开源不到一周GitHub已揽获7.9k Star。

传统大模子参数以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 LLM

1 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

— 完 —

量子位 QbitAI · 头条号签约

关心咱们,第一技术获知前沿科技动态