ChatGPT 人工智能 GPT4 伦理 生成式 医疗 监管 安全 机器学习 深度学习 神经网络 计算机视觉 强化学习 模型 算法 应用 开发 研究 工具 平台 框架 数据集 训练 部署 安全 合规 培训 投资 LLM,llm AI,ai,Ai 大模型 大语言模型 制图 生图 绘图 文生图 文生视频 生成式AI AGI 世界模型 sora chatGPT,chatgpt,ChatGpt claude openai Llama deepseek midjourney 红熊猫模型 Red panda,panda Stable Diffusion,StableDiffusion,stable DALL- E 3 DALL E DALL Flux,flux 扩散模型 混元大模型 文心一言 通义千问 可灵 Pika PixelDance 豆包 月之暗面 零一万物 阶跃星辰 搜索增强 MiniMax Talkie Agent prompt fastai LangChain TTS 微调 提示词 知识库 智能体
# 热门搜索 #
搜索
微软6页论文爆火:三进制LLM,真香!
2228点击    2024-02-29 13:31
现在,大语言模型(LLM)迎来了“1-bit时代”

这就是由微软和中国中科院大学在最新一项研究中所提出的结论——


所有的LLM,都将是1.58 bit的。



具体而言,这项研究提出的方法叫做BitNet b1.58,可以说是从大语言模型“根儿”上的参数下手。


将传统以16位浮点数(如FP16或BF16)形式的存储,统统变成了三进制,也就是 {-1, 0, 1}



值得注意的是,这里的“1.58 bit”并不是指每个参数占用1.58字节的存储空间,而是指每个参数可以用1.58位的信息来表示。


在如此转换之后,矩阵中的计算就只会涉及到整数的加法,因此会让大模型在保持一定精度的同时,显著减少所需的存储空间和计算资源。


例如BitNet b1.58在3B模型大小时与Llama做比较,速度提高了2.71倍的同时,GPU内存使用几乎仅是原先的四分之一。


而且当模型的规模越大时(例如70B),速度上的提升和内存上的节省就会更加显著!


这种颠覆传统的思路着实是让网友们眼前一亮,论文在X上也是受到了高度的关注:



网友们惊叹“改变游戏规则”的同时,还玩起了谷歌attention论文的老梗:


1 bit is all YOU need.


那么BitNet b1.58具体又是如何实现的?我们继续往下看。


把参数都变成三进制


这项研究实则是原班人马在此前发表的一篇论文基础之上做的优化,即在原始BitNet的基础上增加了一个额外的0值。



整体来看,BitNet b1.58依旧是基于BitNet架构(一种Transformer),用BitLinear替换了nn.Linear。


至于细节上的优化,首先就是我们刚才提到的“加个0”,即权重量化(weight quantization)


BitNet b1.58模型的权重被量化为三元值{-1, 0, 1},这相当于在二进制系统中使用了1.58 bit来表示每个权重。这种量化方法减少了模型的内存占用,并简化了计算过程。



其次,在量化函数设计方面,为了将权重限制在-1、0或+1之间,研究者们采用了一种称为absmean的量化函数。



这个函数先会根据权重矩阵的平均绝对值进行缩放,然后将每个值四舍五入到最接近的整数(-1, 0, +1)。


接下来就到了激活量化(activation quantization)这一步。


激活值的量化与BitNet中的实现相同,但在非线性函数之前不将激活值缩放到[0, Qb]的范围内。相反,激活值被缩放到[−Qb, Qb]的范围,以此来消除零点量化。


值得一提的是,研究团队为了BitNet b1.58与开源社区兼容,采用了LLaMA模型的组件,如RMSNorm、SwiGLU等,使得它可以轻松集成到主流开源软件中。


最后,在实验的性能比较上,团队将BitNet b1.58与FP16 LLaMA LLM在不同大小的模型上进行了比较。



结果显示,BitNet b1.58在3B模型大小时开始与全精度LLaMA LLM在困惑度上匹配,同时在延迟、内存使用和吞吐量方面有显著提升。


而且当模型规模越大时,这种性能上提升就会越发显著。


网友:能在消费级GPU跑120B大模型了


正如上文所言,这篇研究独特的方法在网上引发了不小的热议。


DeepLearning.scala作者杨博表示:


BitNet b1.58相比原版BitNet,最大的特点就是允许0参数。我觉得稍微修改一下量化函数,也许可以控制0参数的比例。当0参数的比例很大时,可以用稀疏格式存储权重,使得平均每个参数的显存占用甚至低于1比特。这就相当于权重级别的MoE了。我觉得比一般的MoE更优雅。

与此同时,他也提出了关于BitNet的缺点:


BitNet最大的缺点在于虽然能减少推理时的显存开销,但优化器状态和梯度仍然要用浮点数,训练仍然很费显存。我觉得如果能把BitNet和训练时节省显存的技术结合起来,那么相比传统半精度网络,同等算力和显存下支持更多参数,优势就很大了。

目前能节省优化器状态的显存开销的办法是offloading。能节省梯度的显存占用的办法可能是ReLoRA。但是ReLoRA的论文实验只用了十亿参数的模型,并没有证据表明能不能推广到百亿、千亿参数的模型。


图源:知乎,经授权引用


不过也有网友分析认为:


若论文成立,那么我们就能在24GB消费级GPU上跑120B的大模型了。



那么你觉得这种新方法如何呢?


参考链接:

[1]https://arxiv.org/abs/2402.17764

[2]https://twitter.com/_akhaliq/status/1762729757454618720

[3]https://www.zhihu.com/question/646359036/answer/3413044355


文章来自于 微信公众号“量子位”(ID: QbitAI),作者 “金磊”


AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
AI数据分析

【开源免费】DeepBI是一款AI原生的数据分析平台。DeepBI充分利用大语言模型的能力来探索、查询、可视化和共享来自任何数据源的数据。用户可以使用DeepBI洞察数据并做出数据驱动的决策。

项目地址:https://github.com/DeepInsight-AI/DeepBI?tab=readme-ov-file

本地安装:https://www.deepbi.com/

【开源免费airda(Air Data Agent)是面向数据分析的AI智能体,能够理解数据开发和数据分析需求、根据用户需要让数据可视化。

项目地址:https://github.com/hitsz-ids/airda