openbmb/BitCPM-CANN-3B
- License
- apache-2.0
- Size
- not mirrored yet
No official torrent yet — requesting it tells the flock what to host next. You cannot seed a catalog-only page.
Cataloged from openbmb/BitCPM-CANN-3B
All models by openbmb →No official torrent yet — requesting it tells the flock what to host next. You cannot seed a catalog-only page.
Cataloged from openbmb/BitCPM-CANN-3B
All models by openbmb →
GitHub Repo | Technical Report
👋 Join us on Discord and WeChat
BitCPM-CANN is the first end-to-end 1.58-bit (ternary) large language model training system natively built on Huawei Ascend NPU. The system integrates quantization-aware training (QAT) into the Megatron-LM framework with MindSpeed acceleration, covering the full training stack from custom ternary operators to distributed parallel training on Ascend 910B.
We train a family of four models—BitCPM-CANN-0.5B/1B/3B/8B—and evaluate them against their full-precision MiniCPM4 counterparts across 11 benchmarks. The 1B/3B/8B models retain 95.7%–97.2% of full-precision performance, while enabling approximately 6× memory reduction at inference time. QAT introduces only 5% training throughput overhead (148 vs. 155 TFLOP/s per NPU).
The models in this repository are in pseudo-quantized (fake quantization) format. This means the weights are stored in standard floating-point format with ternary values already applied during training. You can load and run inference with these models exactly the same way as full-precision models—no special quantization libraries or custom kernels are required.
Since BitCPM-CANN models are in pseudo-quantized format, you can use them exactly like standard full-precision models:
BitCPM-CANN models are evaluated against their full-precision MiniCPM4 counterparts across 11 benchmarks spanning commonsense reasoning, domain knowledge, and mathematics & reasoning.
System-level throughput on 2-node 16-card Ascend 910C:
BitCPM-CANN uses a ternary quantizer that maps each weight group to {-1, 0, 1} scaled by a group-wise factor, trained with Straight-Through Estimator (STE) for gradient flow. The training follows a two-stage strategy: complete QAT followed by post-training distillation, which avoids amplifying training instability during early training.
The system is built as a four-layer vertical stack on Ascend NPU:
torch_npu and mindspeed.megatron_adaptor injection for NPU execution.For full technical details, please refer to our Technical Report.
from transformers import AutoModelForCausalLM, AutoTokenizerimport torchtorch.manual_seed(0)
path = 'openbmb/BitCPM-CANN-3B'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 interfaceresponds, 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)@article{bitcpmcann, title={{BitCPM-CANN}: Native 1.58-Bit Large Language Model Training on Ascend NPU}, author={BitCPM Team}, year={2026}}