当前位置: 首页 > article >正文

微软的重大突破:bitnet.cpp 开启 AI 本地CPU运行新时代

目录

  • 引言
  • 一、卓越的性能表现
  • 二、保障隐私安全
  • 三、广泛的应用前景与未来规划
  • 四、本地使用指南
    • 1、安装准备
    • 2、从源代码构建
    • 3、推理使用
  • 结语


引言

在人工智能飞速发展的今天,微软的一项创举如同一颗璀璨的新星,照亮了 AI 领域的新征程。10 月 18 日,科技界迎来了一个令人瞩目的重磅消息:微软开源了 bitnet.cpp,这一具有革命性意义的 1 - bit 大语言模型(LLM)推理框架,为 AI 技术的应用带来了全新的可能性。

一直以来,传统的大语言模型在运行时往往高度依赖庞大的 GPU 基础设施以及大量的电力供应。这不仅导致了高昂的部署和维护成本,还如同一道无形的门槛,限制了众多小型企业和个人用户对先进 AI 技术的探索与应用。然而,bitnet.cpp 的横空出世,犹如一把神奇的钥匙,彻底打破了这一僵局。它具备独特的能力,能够直接在 CPU 上顺畅运行,让用户无需借助 GPU 的强大算力,便可在自己的本地设备上轻松运行具有 1000 亿参数的大语言模型。这一突破意味着,更多的用户能够以更为亲民的成本,亲身领略到强大 AI 技术所带来的无尽便利与魅力。

一、卓越的性能表现

bitnet.cpp 在性能方面的表现堪称卓越,为用户带来了意想不到的惊喜。基准测试的数据犹如一份有力的成绩单,清晰地展示了它的强大实力。在 ARM CPU 上,它可实现 1.37 倍到 5.07 倍的加速,这意味着原本需要较长时间处理的任务,如今能够在更短的时间内高效完成。而在 x86 CPU 上,其加速效果更是高达 2.37 倍到 6.17 倍,进一步彰显了其在不同硬件平台上的出色适应性和优化能力。
在这里插入图片描述

与此同时,能源消耗方面的大幅降低更是让人眼前一亮。与传统方式相比,bitnet.cpp 减少了 55.4%到 82.2%的能源消耗。这一显著成果不仅为用户节省了能源成本,更为环保型 AI 应用树立了典范。在全球倡导节能减排的大背景下,bitnet.cpp 的出现无疑是顺应时代潮流的创新之举,为 AI 技术的可持续发展提供了有力支撑。

二、保障隐私安全

在当今这个信息高度发达的时代,数据隐私安全已成为人们关注的焦点。bitnet.cpp 在这方面也表现出色,为注重隐私的用户带来了安心之选。通过实现 LLM 的本地运行,它最大限度地减少了向外部服务器发送数据的需求,从而有效地保障了用户的隐私安全。用户无需担心自己的数据在传输过程中可能面临的泄露风险,能够更加放心地使用 AI 技术进行各种任务处理。在数据隐私日益受到重视的当下,这一优势无疑成为了吸引众多用户的重要因素。

三、广泛的应用前景与未来规划

目前,bitnet.cpp 已经成功支持 ARM 和 x86 CPU,为广大用户提供了多样化的选择。然而,微软的雄心壮志不止于此。未来,他们还计划将 bitnet.cpp 扩展至 NPU、GPU 和移动设备等更多平台,这一前瞻性的规划将进一步拓展其应用范围,让更多的设备能够受益于这一先进的技术。

在微软的“1 - bit AI Infra”计划中,bitnet.cpp 无疑扮演着举足轻重的角色。它有望重塑 LLM
的计算范式,打破传统硬件限制的束缚,为本地 LLM 的蓬勃发展开辟出一条宽广的道路。这不仅将推动 AI 技术在各个领域的深度渗透,还将激发更多开发者的创新热情,共同探索 AI 技术的无限可能。

四、本地使用指南

1、安装准备

1)系统要求
确保你的操作系统满足以下要求:

  • 对于 Windows 用户,需安装 Visual Studio 2022。在安装过程中,至少勾选以下选项(这也会自动安装所需的额外工具,如 CMake):
    • Desktop - development with C++
    • C++ - CMake Tools for Windows
    • Git for Windows
    • C++ - Clang Compiler for Windows
    • MS - Build Support for LLVM - Toolset (clang)
  • 对于 Debian/Ubuntu 用户,可以使用自动安装脚本下载相关工具:
    • 在终端中运行 bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"

2)软件依赖
确保已安装以下软件:
python>=3.9
cmake>=3.22
clang>=18

2、从源代码构建

1)克隆仓库
打开终端或命令提示符,运行以下命令克隆 bitnet.cpp 仓库:

git clone --recursive https://github.com/microsoft/BitNet.git

进入克隆后的目录:

cd BitNet

2)安装依赖项
(推荐)创建一个新的 conda 环境:

conda create -n bitnet-cpp python=3.9

激活该环境:

conda activate bitnet-cpp

安装项目所需的 Python 依赖项:

pip install -r requirements.txt

3)构建项目
你可以选择从 Hugging Face 下载模型并转换为量化的 gguf 格式,然后构建项目。例如,以下命令将下载 Llama3 - 8B - 1.58 - 100B - tokens 模型并进行量化和构建:

python setup_env.py --hf-repo HF1BitLLM/Llama3 - 8B - 1.58 - 100B - tokens -q i2_s

或者,你也可以手动下载模型并使用本地路径运行。首先手动下载模型,例如将其下载到 models/Llama3 - 8B - 1.58 - 100B - tokens 目录,然后运行:

huggingface-cli download HF1BitLLM/Llama3 - 8B - 1.58 - 100B - tokens --local-dir models/Llama3 - 8B - 1.58 - 100B - tokens
python setup_env.py -md models/Llama3 - 8B - 1.58 - 100B - tokens -q i2_s

3、推理使用

构建完成后,你可以使用以下命令运行推理:

  • python run_inference.py -m models/Llama3 - 8B - 1.58 - 100B - tokens/ggml - model - i2_s.gguf -p "Daniel went back to the the the garden. Mary travelled to the kitchen. Sandra journeyed to the kitchen. Sandra went to the hallway. John went to the bedroom. Mary went back to the garden. Where is Mary?\nAnswer:" -n 6 -temp 0
  • 这里的参数解释如下:
    • -m:指定模型文件的路径。
    • -p:输入的提示文本,用于生成回答。
    • -n:预测生成的令牌数量。
    • -temp:控制生成文本的随机性的温度参数。
  • 上述命令的输出示例为:
    • Daniel went back to the the the garden. Mary travelled to the kitchen. Sandra journeyed to the kitchen. Sandra went to the hallway. John went to the bedroom. Mary went back to the garden. Where is Mary?
    • Answer: Mary is in the garden.

官网提醒:如果使用 Windows 系统,在运行上述命令时,请始终使用 VS2022 的 Developer Command Prompt / PowerShell。

结语

微软开源 bitnet.cpp 的这一举措,无疑为 AI 技术的发展注入了强大的新活力。它让我们真切地看到了在不依赖昂贵硬件的情况下,AI 模型仍然能够高效运行并为用户带来巨大价值的可能性。相信在未来,bitnet.cpp 将如同星星之火,逐渐形成燎原之势,为更多的开发者和用户带来前所未有的便利,推动 AI 技术在各个领域绽放出更加绚丽的光彩。让我们拭目以待,共同见证这一技术为我们的生活和工作带来的翻天覆地的改变。

相关资料
Github地址:https://github.com/microsoft/BitNet
论文地址:https://arxiv.org/pdf/2410.16144

在这里插入图片描述

🎯🔖更多专栏系列文章:AI大模型提示工程完全指南AI大模型探索之路(零基础入门)AI大模型预训练微调进阶AI大模型开源精选实践AI大模型RAG应用探索实践🔥🔥🔥 其他专栏可以查看博客主页📑

😎 作者介绍:我是寻道AI小兵,资深程序老猿,从业10年+、互联网系统架构师,目前专注于AIGC的探索。
📖 技术交流:欢迎关注【小兵的AI视界】公众号或扫描下方👇二维码,加入技术交流群,开启编程探索之旅。
💘精心准备📚500本编程经典书籍、💎AI专业教程,以及高效AI工具。等你加入,与我们一同成长,共铸辉煌未来。
如果文章内容对您有所触动,别忘了点赞、⭐关注,收藏!加入我,让我们携手同行AI的探索之旅,一起开启智能时代的大门!


http://www.kler.cn/a/420877.html

相关文章:

  • 实验三:Mybatis-动态 SQL
  • 微服务的负载均衡可以通过哪些组件实现
  • Rust循环引用与多线程并发
  • 机器学习概述,特征工程简述2.1——2.3
  • PHP RabbitMQ连接超时问题
  • Delphi 12.2.1 idhttpserver的使用方法
  • 【机器学习】Sigmoid函数在深层神经网络中存在梯度消失问题,如何设计一种改进的Sigmoid激活函数,既能保持其概率预测优势,又能避免梯度消失?
  • Linux 系统中常用的命令
  • scroll-view组件,在iOS设备上禁用橡皮筋回弹效果
  • VTK知识学习(16)- 基本数据结构之单元类型
  • React进阶面试题(四)
  • Unity中,Canva的三种渲染模式
  • 数字与字母互换python
  • golang 并发编程,每日一题
  • chrome使用问题记录
  • 【CSP CCF记录】202305-1第30次认证 重复局面
  • 服务器如何划分空间?
  • 【IC验证】systemverilog_函数和任务
  • 杨辉三角形-多语言
  • 气象数据下载服务平台(二)
  • 超文本协议之HTML(泷羽sec)
  • Mysql读写分离分库分表
  • MySQL中的幻读问题
  • Linx下自动化之路:JDK1.8 安装包一键安装脚本实现离线极速部署
  • 高校数字化运营平台解决方案:构建统一的服务大厅、业务平台、办公平台,助力打造智慧校园
  • alpaca 和 sharegpt微调数据格式区别