微软 BitNet.cpp: 1 位 LLMs 的框架
1比特LLMs时代:所有大型语言模型都在1.58比特。
随着生成式人工智能不断拓展边界,研究人员和开发者面临的最大挑战之一是LLM的巨大规模和复杂性。
这些模型虽然令人印象深刻,但需要大量的内存和计算资源,使它们难以在日常设备上部署。这导致了创新与可访问性之间的巨大鸿沟,只有那些拥有高端硬件的人才能尝试或运行这些模型。
但是如果我们能够大幅减小这些模型的大小而不影响性能呢?
输入1位LLM——这是一种革命性的方法,可以通过使大型模型更加高效、可移植和易获取,从而改变AI的未来。几个月前在一篇革命性的论文中也讨论了相同的想法。
1比特LLM时代:所有大型语言模型都在1.58比特
借助1比特LLM的概念,即其权重仅由1比特表示,从而大大节省内存。如今,微软发布了官方框架BitNet.cpp,用于在本地系统上仅使用CPU运行这些1比特LLM,即BitNet1.58模型。
在跳转到BitNet.cpp之前
什么是1位LM?
1比特LLMs是生成式人工智能的重大突破,旨在解决模型大小和效率不断增长的挑战。
与通常用于存储权重参数的32位或16位不同,1位LLM仅使用一个位(0或1)来表示每个权重,大大减少了内存需求。
例如,一个通常需要约26 GB 的70亿参数模型可以缩减到仅0.815 GB,使其可以在像手机这样的较小设备上运行。
这个领先型号在这个领域,BitNet b1.58,旨在提高性能的同时消耗较少的资源。
在这里获取更详细的说明:
回到本时段的话题
BitNet.cpp
微软的新框架BitNet.cpp处于这一变革的前沿,提供了一种用最少的资源运行大型语言模型的方式。让我们探讨一下这个颠覆性技术是如何运作的,以及为什么它是如此重大的进步。
bitnet.cpp是用于推断1比特LLM(例如,BitNet b1.58)的官方框架。
它包括一组针对在CPU上快速和无损推理1.58位模型进行优化的内核,未来版本计划支持NPU和GPU。
bitnet.cpp 的第一个版本专注于 CPU 推理。
它在ARM CPU上提供了1.37倍到5.07倍的加速,较大的模型看到了更大的收益。
在ARM CPU上的能耗降低了55.4%至70.0%,提高了效率。
在 x86 CPU 上,加速范围从 2.37 倍到 6.17 倍,能量节省率在 71.9% 到 82.2% 之间。
bitnet.cpp可以在单个CPU上运行一个100B的BitNet b1.58模型,每秒处理5-7个标记,类似于人类阅读速度。
目前框架支持3个模型,分别是:
比特币 b1.58 大型:0.7B 参数
比特网络 b1.58–3B: 3.3B 参数
羊驼3-8B-1.58-100B代币:8.0B参数
这些模型经过优化,用于高效推理,并可在各种应用中使用。
安装
有一些东西是必需的,它并不像pip install那样简单。
- 确保您已安装Python 3.9或更高版本、CMake 3.22或更高版本、以及Clang 18或更高版本。
- Windows用户应安装Visual Studio 2022并激活以下功能:使用C++开发桌面应用程序,C++-CMake工具,Git for Windows,C++-Clang编译器以及支持LLVM(Clang)的MS-Build。
- Debian/Ubuntu 用户可以使用 bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" 运行一个自动安装脚本。
官方框架存储库可以在这里探索:
一些1比特LLMs也可以在HuggingFace中探索。像这样的:
坦率地说,我认为这是迄今为止最大的发布,因为LLMs的规模正在成为一个挑战,因此只有少数人能够利用LLMs进行研究和实验。随着1位LLMs和像BitNet.cpp这样的框架的进入,这种差距将会减少,GenAI技术的进步将更容易触及普通大众。
请尝试使用BitNet框架