OpenBMB 开源社区/BitCPM4-CANN-1B-gguf
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

GitHub 代码库 | 技术报告

👋 加入我们的 Discord 和 微信 社群

本仓库托管 BitCPM4-CANN-1B 的 GGUF (llama.cpp) 量化版本。 有关伪量化权重和完整模型卡片,请参阅 BitCPM4-CANN-1B。

简介

BitCPM4-CANN 是首个基于华为昇腾 NPU 原生构建的端到端 1.58 位(三值)大语言模型训练系统。该系统将量化感知训练(QAT)集成到 Megatron-LM 框架中,并借助 MindSpeed 加速,覆盖了从自定义三值算子到昇腾 910B 分布式并行训练的完整训练栈。

我们训练了 BitCPM4-CANN-0.5B/1B/3B/8B 四个模型,并在 11 个基准测试上与它们的全精度 MiniCPM4 对应模型进行了评估。1B/3B/8B 模型保留了全精度性能的 95.7%–97.2%,同时在推理时实现了约 6 倍的内存减少。量化感知训练仅带来 5% 的训练吞吐量开销(每 NPU 148 vs. 155 TFLOP/s)。

核心特性

  • 🔬 1.58 位三值量化:将模型权重压缩为三值 {-1, 0, 1},与 BF16 相比实现约 90% 的位宽减少。
  • 🖥️ 原生昇腾 NPU 训练:首个公开报道的在国产 NPU 平台上进行 8B 规模 1.58 位训练的成果,为昇腾生态系统建立了可复用的低位训练基础设施。
  • ⚡ 极低训练开销:与昇腾 910B 上的全精度训练相比,吞吐量仅下降 5%。
  • 📦 约 6 倍推理内存减少:支持更长上下文、更多服务副本以及在消费级设备上的边缘部署。

重要说明

本仓库中的模型采用伪量化(假量化)格式。这意味着权重以标准浮点格式存储,三元值已在训练过程中应用。您可以完全按照全精度模型的方式加载并运行这些模型进行推理——无需特殊的量化库或自定义内核。

BitCPM4-CANN 模型系列

模型HuggingFaceGGUF
BitCPM4-CANN-0.5Bopenbmb/BitCPM4-CANN-0.5Bopenbmb/BitCPM4-CANN-0.5B-gguf
BitCPM4-CANN-1Bopenbmb/BitCPM4-CANN-1Bopenbmb/BitCPM4-CANN-1B-gguf
BitCPM4-CANN-3Bopenbmb/BitCPM4-CANN-3Bopenbmb/BitCPM4-CANN-3B-gguf
BitCPM4-CANN-8Bopenbmb/BitCPM4-CANN-8Bopenbmb/BitCPM4-CANN-8B-gguf

使用方法

使用 Transformers 进行推理

由于 BitCPM4-CANN 模型采用伪量化格式,您可以完全像使用标准全精度模型一样使用它们:

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
torch.manual_seed(0)

path = 'openbmb/BitCPM4-CANN-0.5B'
device = "cuda"
tokenizer = AutoTokenizer.from_pretrained(path)
model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.bfloat16, device_map=device, trust_remote_code=True)

# User can directly use the chat interface
responds, history = model.chat(tokenizer, "Write an article about Artificial Intelligence.", temperature=0.7, top_p=0.7)
print(responds)

# User can also use the generate interface
# messages = [
#     {"role": "user", "content": "Write an article about Artificial Intelligence."},
# ]
# prompt_text = tokenizer.apply_chat_template(
#     messages,
#     tokenize=False,
#     add_generation_prompt=True,
# )
# model_inputs = tokenizer([prompt_text], return_tensors="pt").to(device)

# model_outputs = model.generate(
#     **model_inputs,
#     max_new_tokens=1024,
#     top_p=0.7,
#     temperature=0.7
# )
# output_token_ids = [
#     model_outputs[i][len(model_inputs[i]):] for i in range(len(model_inputs['input_ids']))
# ]

# responses = tokenizer.batch_decode(output_token_ids, skip_special_tokens=True)[0]
# print(responses)

评估结果

主要结果

BitCPM4-CANN 模型与全精度的 MiniCPM4 对应模型在 11 项基准测试上进行了对比评估,这些基准涵盖常识推理、领域知识以及数学与推理。

任务8B FP8B Ternary3B FP3B Ternary1B FP1B Ternary0.5B FP0.5B Ternary
ARC-c87.4686.1080.3478.9864.4167.1251.8650.51
ARC-e95.0693.4792.7788.3679.8979.0171.7865.08
BoolQ84.8983.3979.8577.8968.3865.5062.2943.55
PIQA80.5278.7870.5772.6966.1665.4560.9958.49
WinoGrande63.3061.1758.4152.9651.6253.2851.0751.54
CMMLU80.6278.9278.1176.5374.5767.4265.2260.49
C-Eval81.3677.5075.8575.8973.2565.9666.1160.74
MMLU75.8370.6566.9564.4157.7157.7155.5550.73
MMLU-Redux77.1469.8565.8260.0754.8054.1648.0043.79
BBH76.7270.7068.2968.3064.4060.4049.8747.44
GSM8K91.5185.7581.6479.4563.1561.5652.0839.42
平均(11 项任务)81.3177.8474.4272.3265.3063.4257.7151.98
保留率95.7%97.2%97.1%90.1%

主要观察结果

  • 1B 及以上模型实现 ≥95.7% 的保留率:3B 模型实现了最高的 97.2% 保留率,表明在此规模下的三元量化感知训练(ternary QAT)带来的能力损失极小。
  • 0.5B 模型显示出规模相关的敏感性:最小的模型保留率为 90.1%,表明当模型容量有限时,量化扰动的破坏性更大。
  • 与 MiniCPM4 实现 1:1 对齐:匹配的评估支持直接的替代决策——部署时可以用三元模型替换特定的全精度模型,并清楚地量化权衡。

训练效率

配置每NPU的TFLOP/s开销
全精度155—
三元量化QAT1484.5%

2节点16卡Ascend 910B上的系统级吞吐量:

  • 3B模型:每张卡约2700 tokens/s
  • 8B模型:每张卡约1340 tokens/s

技术方案

BitCPM-CANN采用三元量化器,通过按组缩放因子将每个权重组映射到{-1, 0, 1},并使用直通估计器(STE)进行梯度流训练。训练遵循两阶段策略:完整的QAT后接训练后蒸馏,这避免了在早期训练阶段放大训练不稳定性。

该系统在Ascend NPU上构建为四层垂直堆叠:

  1. QAT训练逻辑:带STE的三元量化器,Megatron-LM中可插拔的量化层。
  2. Megatron-LM量化模型层:集成权重/激活量化器的张量并行线性层。
  3. 框架入口层:torch_npu和mindspeed.megatron_adaptor注入以实现NPU执行。
  4. Ascend软硬件栈:MindSpeed、CANN、HCCL通信、Ascend 910B NPU硬件。

完整技术细节,请参考我们的技术报告。

声明

  • 作为语言模型,BitCPM4-CANN通过从海量文本中学习来生成内容。
  • 然而,它不具备理解或表达个人观点或价值判断的能力。
  • BitCPM4-CANN生成的任何内容均不代表模型开发者的观点或立场。
  • 因此,在使用BitCPM4-CANN生成的内容时,用户应自行承担评估和验证的全部责任。

许可证

  • 本仓库和BitCPM4-CANN模型基于Apache-2.0许可证发布。

引用

  • 如果您认为我们的工作有价值,请引用我们的技术报告。
@article{bitcpm4cann,
  title={{BitCPM-CANN}: Native 1.58-Bit Large Language Model Training on Ascend NPU},
  author={BitCPM Team},
  year={2026}
}