微软开源 BitNet:1 比特大模型,让 CPU 也能跑 LLM!

大家都知道,大语言模型(LLM)越来越强,但想自己跑一个模型?动不动就需要昂贵的显卡集群。许多人只能望“卡”兴叹。

最近,微软研究院开源了一个新项目:BitNet,直接把模型的权重量化到了 1.58 比特!这意味着什么?——即使没有显卡,也能在普通 CPU 上运行大模型!


BitNet 有啥特别的?

  1. 1.58 比特量化
    不再用 16bit/32bit 浮点数,而是用三值权重(-1、0、+1)。模型更小,速度更快。
  2. 训练即量化
    它不是“训练完再压缩”,而是从一开始训练就用 1bit 权重,性能损失超级小。
  3. CPU 也能跑
    在一台普通 CPU 上,BitNet 就能跑百亿参数模型,速度能达到
    5~7 tokens/s,接近人类阅读速度。
  4. 能效惊人
    相比常见的 BF16 推理,能耗直接降低
    70% 左右!对数据中心和边缘设备来说都是巨大优势。

怎么用?

0)准备环境(macOS / Linux / Windows)

  • 需要:Python ≥ 3.9、CMake ≥ 3.22、Clang ≥ 18(Windows 用 VS2022 自带的 Developer Command Prompt 打开再编译)。GitHub
  • 强烈提议用 Conda 做隔离:
conda create -n bitnet-cpp python=3.9 -y
conda activate bitnet-cpp
  • 克隆并安装依赖:
  • git clone --recursive https://github.com/microsoft/BitNet.git
    cd BitNet
    pip install -r requirements.txt
    
  • (Windows 请务必在 “Developer Command Prompt for VS2022” 中执行上述命令。)GitHub

  • 1)下载并配置模型

    BitNet 的官方开源权重(2B 参数规模)在 Hugging Face:

    # 安装 HF CLI(若未安装)
    pip install -U "huggingface_hub[cli]"
    
    # 拉取官方推荐的 GGUF 版模型到本地 models 目录
    huggingface-cli download microsoft/BitNet-b1.58-2B-4T-gguf --local-dir models/BitNet-b1.58-2B-4T
    

    然后用官方脚本写入内核预设、量化类型等运行所需配置:

    python setup_env.py -md models/BitNet-b1.58-2B-4T -q i2_s
    # -md: 模型所在目录
    # -q : 量化类型(i2_s / tl1),一般先用 i2_s
    

    (README 中给出了等价示例与脚本说明。)GitHub

    补充:模型权重卡(model card)及说明见 Hugging Face 条目 “
    microsoft/bitnet-b1.58-2B-4T”。


    2)跑一次最小可用推理(单轮生成)

    官方提供了 run_inference.py 脚本,最小命令如下:

    python run_inference.py 
      -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf 
      -p "You are a helpful assistant. 请用中文总结:BitNet 的特点是什么?" 
      -n 128 
      -t 8 
      -c 4096
    

    常用参数速记:

    • -m 模型路径(GGUF)
    • -p prompt 文本
    • -n 生成 token 数
    • -t 线程数(一般设为物理核或逻辑核数量)
    • -c 上下文窗口
      脚本参数释义与用法见 README「Basic usage」。

    3)开启聊天模式(对指令更友善)

    加上 -cnv 会把 -p 作为 system prompt,进入对话模式:

    python run_inference.py 
      -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf 
      -p "你是一个精炼的中文技术助理,回答尽量短小但给出可操作步骤。" 
      -cnv -n 128 -t 8
    

    (聊天开关 –conversation/-cnv 详见 README。)


    4)性能参数调优提议(CPU 场景)

    • 线程数 -t:从 $(nproc) 开始测,逐步微调观察 tokens/s 与能耗。
    • 量化类型 -q:i2_s vs tl1 可在 setup_env.py 里切换;不同 CPU(x86/ARM)和模型布局的最佳组合不同。GitHub
    • 上下文 -c:越大越吃内存,按需求权衡。
    • 核函数/内核预设:–use-pretuned 有时能带来小幅增益(见 setup_env.py -h)。GitHub

    官方给出:在 x86 上可见 2.37×–6.17× 的提速与 72%–82% 的能耗下降;ARM 上 1.37×–5.07× 和 55%–70% 的能耗下降(不同规模与布局略有差异)。


    5)做一次标准化基准测试(吞吐/延迟)

    官方提供了端到端压测脚本:

    python utils/e2e_benchmark.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf 
      -n 200 -p 256 -t 8
    # -n 生成 tokens 数;-p prompt 长度;-t 线程数
    

    用于比较不同线程、不同量化布局(i2_s / tl1)的性能差异。参数与示例见 README「Benchmark」。


    6)把 safetensors 转成 GGUF(自有/研究模型常用)

    如果你手里是 BF16 的 .safetensors 检查点,可用官方转换脚本变为 GGUF:

    # 例:下载 BF16 检查点
    huggingface-cli download microsoft/bitnet-b1.58-2B-4T-bf16 
      --local-dir ./models/bitnet-b1.58-2B-4T-bf16
    
    # 执行转换(会输出 .gguf)
    python utils/convert-helper-bitnet.py ./models/bitnet-b1.58-2B-4T-bf16
    

    (转换流程与命令同样写在 README 的「Convert from .safetensors Checkpoints」。)


    7)没有权重也想压机?用“假模型”生成器

    只测内核与平台性能时,可生成“假 BitNet 模型”做基准:

    # 生成 125M 的假模型(TL1 布局)
    python utils/generate-dummy-bitnet-model.py models/bitnet_b1_58-large 
      --outfile models/dummy-bitnet-125m.tl1.gguf --outtype tl1 --model-size 125M
    
    # 直接拿去压测
    python utils/e2e_benchmark.py -m models/dummy-bitnet-125m.tl1.gguf -p 512 -n 128 -t 8
    

    (官方 README 提供了等价示例与参数说明。)


    8)想跑服务?(可选)

    仓库包含 run_inference_server.py,可作为入门级的本地推理服务脚本(适合二次封装为 REST 形态)。提议先完成单机 CLI 跑通,再阅读脚本源码按需改造。GitHub


    9)常见坑与排查

    • Windows 构建报编译器或标准库路径错:务必用 Developer Command Prompt for VS2022 打开后再执行 CMake/编译步骤(README 专门强调)。GitHub
    • 模型加载失败(路径/布局不匹配):确认 -m 指向的是与 setup_env.py -q 一致布局的 GGUF 文件。
    • 性能不达预期
    1. 检查是否启用了正确的 CPU 内核(x86/ARM);
    2. 调整线程数与上下文;
    3. 尝试 –use-pretuned;
    4. 升级 Clang/CMake。

    能干啥?

    • 边缘设备 AI:树莓派、ARM 设备跑 LLM,不再依赖云端。
    • 本地私有部署:企业用 CPU 服务器就能跑大模型,安全又省钱。
    • 节能减碳:大幅降低 AI 的能耗和成本,真正做到绿色 AI。

    ✨ 总结

    BitNet 的出现,说明大模型的发展方向并不只是“更大更强”,而是 更高效、更普惠
    未来,也许你家里的电脑,甚至手机,都能轻松跑 LLM。

    © 版权声明
    THE END
    如果内容对您有所帮助,就支持一下吧!
    点赞0 分享
    阿锋的头像 - 宋马
    评论 共3条

    请登录后发表评论