Model reference · open weights
BitCPM-CANN-unquantized is an open-weight language model from openbmb. BitCPM-CANN-0.5B-unquantized (BF16) weighs 868 MB; the smallest configuration that runs it is RTX 3060 12 GB.
Summary of the openbmb/BitCPM-CANN-0.5B-unquantized model card, 2026-10-01
What it is
| Released by | openbmb |
|---|---|
| Released | 2026-05-18 |
| VRAM | 868 MB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB | 101 | 25 | all 32K | 11.6 GB |
| RTX 4060 Ti 16 GB | 138 | 34 | all 32K | 15.4 GB |
| RTX 3090 24 GB | 218 | 54 | all 32K | 23.4 GB |
| RTX 4090 24 GB | 217 | 54 | all 32K | 23.4 GB |
| RTX 5090 32 GB | 294 | 73 | all 32K | 31.0 GB |
| L40S 48 GB | 422 | 105 | all 32K | 44.0 GB |
| A100 80 GB | 762 | 190 | all 32K | 78.2 GB |
| H100 80 GB | 731 | 182 | all 32K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 887 | 221 | all 32K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 1000+ | 255 | all 32K | 107 GB |
| H200 141 GB | 1000+ | 331 | all 32K | 138 GB |
| B200 180 GB | 1000+ | 425 | all 32K | 176 GB |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 1.5 GB | 1.8 GB |
| 5 | 1.9 GB | 3.4 GB |
| 8 | 2.2 GB | 4.6 GB |
| 16 | 3.0 GB | 7.9 GB |
| 32 | 4.6 GB | 14.3 GB |
| 64 | 7.9 GB | 27.2 GB |
One card, with vLLM's small-card settings.
From the model card
BitCPM-CANN-0.5B-unquantized is the unquantized QAT (Quantization-Aware Training) checkpoint of BitCPM-CANN-0.5B, designed for continued pre-training and fine-tuning. It preserves full-precision latent weights with ternary fake quantizers (weights → {-1, 0, 1} with group-wise scaling, trained via STE) defined in modeling.py, enabling the model to keep learning under quantization constraints. For technical details, see our Technical Report.
⚠️ This model is NOT for direct inference. For inference, use the pseudo-quantized version: openbmb/BitCPM-CANN-0.5B.
The only requirement is that the forward pass must go through the bundled modeling.py (which contains the ternary fake quantizer). Load with trust_remote_code=True and do NOT replace or bypass the model's forward logic.
We provide ready-to-use training scripts in the example directory (using the 1B model as an example):
example/run.sh + example/train.pyexample/run_sft.sh + example/train_sft.pyQuick start:
# Continued pre-training
cd example && bash run.sh
# Supervised fine-tuning
cd example && bash run_sft.sh
Any framework that supports HuggingFace model loading with custom code can be used, such as LLaMA Factory, HuggingFace Trainer, etc. The key is to ensure trust_remote_code=True:
from transformers import AutoModelForCausalLM, AutoTokenizer
path = 'openbmb/BitCPM-CANN-0.5B-unquantized'
tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
path,
torch_dtype=torch.bfloat16,
trust_remote_code=True
)
# Use with your preferred framework (LLaMA Factory, HF Trainer, etc.)
# The ternary fake quantizer in modeling.py is applied automatically during forward pass.
After training, use qat-convert.py to fuse the fake quantizer and produce inference-ready pseudo-quantized weights:
python qat-convert.py \
--input_bin \
--output \
--quant_type ternary \
--group_size -1
The converted model can be loaded for inference in the same way as openbmb/BitCPM-CANN-0.5B—no special quantization libraries required.
┌─────────────────────────────────┐
│ BitCPM-CANN-0.5B-unquantized │ ← This model (QAT checkpoint + fake quantizer in modeling.py)
└───────────────┬─────────────────┘
│
▼ Train (DeepSpeed / LLaMA Factory / HF Trainer / ...)
┌─────────────────────────────────┐
│ Fine-tuned checkpoint │ ← Still contains un-fused QAT parameters
└───────────────┬─────────────────┘
│
▼ python qat-convert.py --quant_type ternary --group_size -1
┌─────────────────────────────────┐
│ Pseudo-quantized model │ ← Ready for inference (same format as BitCPM-CANN-0.5B)
└─────────────────────────────────┘
| Model | HuggingFace (Inference) | HuggingFace (Fine-tuning) |
|---|---|---|
| BitCPM-CANN-0.5B | openbmb/BitCPM-CANN-0.5B | openbmb/BitCPM-CANN-0.5B-unquantized |
| BitCPM-CANN-1B | openbmb/BitCPM-CANN-1B | openbmb/BitCPM-CANN-1B-unquantized |
| BitCPM-CANN-3B | openbmb/BitCPM-CANN-3B | openbmb/BitCPM-CANN-3B-unquantized |
| BitCPM-CANN-8B | openbmb/BitCPM-CANN-8B | openbmb/BitCPM-CANN-8B-unquantized |
@article{bitcpmcann,
title={{BitCPM-CANN}: Native 1.58-Bit Large Language Model Training on Ascend NPU},
author={BitCPM Team},
year={2026}
}
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.