菜单

支持的模型和硬件

相关源文件

本页面介绍了 BitNet.cpp 官方支持的模型和硬件平台。BitNet.cpp 是一个推理框架,旨在高效运行 1 位(三元)大型语言模型。有关不同配置的性能指标信息,请参阅性能基准

官方模型

BitNet.cpp 官方支持以下模型

模型参数描述
BitNet-b1.58-2B-4T2.4B微软官方 1.58 位模型,在 4T 词元上训练

来源: README.md41-65

兼容模型

除了官方模型外,BitNet.cpp 还兼容多种第三方 1 位模型

模型参数描述
bitnet_b1_58-large0.7B来自 1bitLLM 的 1.58 位模型
bitnet_b1_58-3B3.3B来自 1bitLLM 的 1.58 位模型
Llama3-8B-1.588.0BLlama3 的 1.58 位版本,在 100B 词元上训练
Falcon3 系列1B-10B各种尺寸的 1.58 位 Falcon3 模型集合

来源: README.md67-139 setup_env.py13-47

支持的硬件平台

BitNet.cpp 为两种主要的 CPU 架构提供优化内核

ARM64 平台 (Apple Silicon, 基于 ARM 的 CPU)

  • 使用 TL1 内核优化 (表查找 1)
  • 相较于基准,速度提升 1.37 倍至 5.07 倍
  • 能耗降低 55.4% 至 70.0%

x86_64 平台 (Intel, AMD CPU)

  • 使用 TL2 内核优化 (表查找 2)
  • 相较于基准,速度提升 2.37 倍至 6.17 倍
  • 能耗降低 71.9% 至 82.2%

来源: README.md11-14 setup_env.py49-57

硬件-内核兼容性

BitNet.cpp 根据检测到的硬件架构决定使用哪个内核

架构检测图

来源: setup_env.py49-70 setup_env.py72-73 setup_env.py191-204

模型-内核兼容性矩阵

下表显示了不同硬件平台上哪些模型与哪些优化内核兼容

模型参数ARM64 平台x86_64 平台
I2_STL1I2_STL2
BitNet-b1.58-2B-4T2.4B
bitnet_b1_58-large0.7B
bitnet_b1_58-3B3.3B
Llama3-8B-1.588.0B
Falcon3 系列1B-10B

来源: README.md38-139

量化类型

BitNet.cpp 支持模型权重的不同量化方法

I2_S 量化

  • 2 位有符号整数量化(通用)
  • 支持 ARM64 和 x86_64 平台
  • 与大多数模型兼容

TL1 量化 (ARM64)

  • 专为 ARM64 架构设计的表查找 1 优化
  • 针对 Apple Silicon 和其他基于 ARM 的处理器进行优化
  • 参数根据模型架构进行调整

TL2 量化 (x86_64)

  • 专为 x86_64 架构设计的表查找 2 优化
  • 针对 Intel/AMD 处理器进行优化
  • 参数根据模型架构进行调整

来源: setup_env.py49-52 setup_env.py114-134

模型准备流程

BitNet.cpp 中的模型准备过程涉及多个步骤,这些步骤取决于目标硬件和量化类型

来源: setup_env.py97-138 setup_env.py144-188

架构特定内核配置

BitNet.cpp 生成具有模型特定参数的优化内核

ARM TL1 内核配置

来源: setup_env.py162-168

x86 TL2 内核配置

来源: setup_env.py179-186

使用硬件选择界面

要为特定硬件平台准备模型,请使用 setup_env.py 脚本并带上相应的量化标志

# For I2_S quantization (works on both ARM and x86)
python setup_env.py -hr microsoft/BitNet-b1.58-2B-4T -q i2_s

# For TL1 optimization (ARM64 only)
python setup_env.py -hr microsoft/BitNet-b1.58-2B-4T -q tl1

# For TL2 optimization (x86_64 only)
python setup_env.py -hr microsoft/BitNet-b1.58-2B-4T -q tl2

该脚本会自动检测您的硬件架构并应用相应的优化。如果您指定了硬件不支持的量化类型,系统将显示错误消息。

来源: setup_env.py212-221 README.md180-204