本页面介绍了 BitNet.cpp 官方支持的模型和硬件平台。BitNet.cpp 是一个推理框架,旨在高效运行 1 位(三元)大型语言模型。有关不同配置的性能指标信息,请参阅性能基准。
BitNet.cpp 官方支持以下模型
| 模型 | 参数 | 描述 |
|---|---|---|
| BitNet-b1.58-2B-4T | 2.4B | 微软官方 1.58 位模型,在 4T 词元上训练 |
来源: README.md41-65
除了官方模型外,BitNet.cpp 还兼容多种第三方 1 位模型
| 模型 | 参数 | 描述 |
|---|---|---|
| bitnet_b1_58-large | 0.7B | 来自 1bitLLM 的 1.58 位模型 |
| bitnet_b1_58-3B | 3.3B | 来自 1bitLLM 的 1.58 位模型 |
| Llama3-8B-1.58 | 8.0B | Llama3 的 1.58 位版本,在 100B 词元上训练 |
| Falcon3 系列 | 1B-10B | 各种尺寸的 1.58 位 Falcon3 模型集合 |
来源: README.md67-139 setup_env.py13-47
BitNet.cpp 为两种主要的 CPU 架构提供优化内核
来源: 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_S | TL1 | I2_S | TL2 | ||
| BitNet-b1.58-2B-4T | 2.4B | ✅ | ✅ | ✅ | ✅ |
| bitnet_b1_58-large | 0.7B | ✅ | ✅ | ✅ | ✅ |
| bitnet_b1_58-3B | 3.3B | ❌ | ✅ | ❌ | ✅ |
| Llama3-8B-1.58 | 8.0B | ✅ | ✅ | ✅ | ✅ |
| Falcon3 系列 | 1B-10B | ✅ | ✅ | ✅ | ✅ |
来源: README.md38-139
BitNet.cpp 支持模型权重的不同量化方法
来源: setup_env.py49-52 setup_env.py114-134
BitNet.cpp 中的模型准备过程涉及多个步骤,这些步骤取决于目标硬件和量化类型
来源: setup_env.py97-138 setup_env.py144-188
BitNet.cpp 生成具有模型特定参数的优化内核
要为特定硬件平台准备模型,请使用 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
该脚本会自动检测您的硬件架构并应用相应的优化。如果您指定了硬件不支持的量化类型,系统将显示错误消息。