alt.freeweights.minicpm / BitCPM-CANN-8B-gguf
From: openbmb <huggingface.co/openbmb>Newsgroups: alt.freeweights.minicpmSubject:

BitCPM-CANN-8B-gguf

Date: 2026-11-15Commit: 4fd99d8Signed: 2DC28CC7B26A283B ✓

Text generation model. Gguf weights, 2.37 GB in all. Published by openbmb under Apache-2.0.

minicpm2.37GBBitCPM-CANN-8B-ggufggufpermissive
FactsParamsnot statedSize2.37 GBFormatsggufTasktext generationLicenseApache-2.0From sourcepermissive
$ fw get openbmb/BitCPM-CANN-8B-gguf
# manifest sha256 a38f22369bef… · 2.37 GB · 3 files
$ fw verify ./BitCPM-CANN-8B-gguf openbmb/BitCPM-CANN-8B-gguf
From sourceHosted (signed)openbmb/BitCPM-CANN-8B-ggufLast check: 2026-11-15 03:49 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Convert with

Overview

Size
2.37 GB
Weights
2.37 GB (GGUF)
Parameters
not stated
Formats
gguf
Task
text generation
License
Apache-2.0 (permissive)
Files
3, each with a sha256
Publisher
openbmb
Added
2026-11-15
Section
alt.freeweights.minicpm
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 03:49 UTCpassed

Model card

From the publisher at commit 4fd99d8. Shown as plain text with links; images open at the publisher.

Image: image

GitHub Repo | Technical Report

👋 Join us on Discord and WeChat

This repository hosts the GGUF (llama.cpp) quantized version of BitCPM-CANN-8B. For the pseudo-quantized weights and the full model card, please refer to BitCPM-CANN-8B.

Introduction#

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).

Key Features#
  • 🔬 1.58-Bit Ternary Quantization: Compresses model weights to ternary values {-1, 0, 1}, achieving ~90% bit-width reduction compared to BF16.
  • 🖥️ Native Ascend NPU Training: First publicly reported 1.58-bit training effort on domestic NPU platform at 8B scale, establishing reusable low-bit training infrastructure for the Ascend ecosystem.
  • ⚡ Minimal Training Overhead: Only 5% throughput degradation compared to full-precision training on Ascend 910B.
  • 📦 ~6× Inference Memory Reduction: Enables longer contexts, more serving replicas, and edge deployment on consumer devices.
Important Note#

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.

BitCPM-CANN Model Family#

Usage#

Inference with Transformers#

Since BitCPM-CANN models are in pseudo-quantized format, you can use them exactly like standard full-precision models:

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

path = 'openbmb/BitCPM-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)

Evaluation Results#

Main Results#

BitCPM-CANN models are evaluated against their full-precision MiniCPM4 counterparts across 11 benchmarks spanning commonsense reasoning, domain knowledge, and mathematics & reasoning.

Task8B 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
Average (11 tasks)81.3177.8474.4272.3265.3063.4257.7151.98
Retention95.7%97.2%97.1%90.1%
Key Observations#
  • 1B and above achieve ≥95.7% retention: The 3B model achieves the highest retention at 97.2%, demonstrating that ternary QAT at this scale introduces minimal capability loss.
  • 0.5B reveals scale-dependent sensitivity: The smallest model retains 90.1%, indicating that quantization perturbation is more damaging when model capacity is limited.
  • 1:1 alignment with MiniCPM4: The matched evaluation enables direct substitution decisions—deployments can replace specific full-precision models with their ternary counterparts with clearly quantified trade-offs.
Training Efficiency#
ConfigurationTFLOP/s per NPUOverhead
Full-precision155—
Ternary QAT1484.5%

System-level throughput on 2-node 16-card Ascend 910B:

  • 3B model: ~2700 tokens/s per card
  • 8B model: ~1340 tokens/s per card

Technical Approach#

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:

  1. QAT Training Logic: Ternary quantizer with STE, pluggable quantization layers in Megatron-LM.
  2. Megatron-LM Quantized Model Layer: Tensor-parallel linear layers with integrated weight/activation quantizers.
  3. Framework Entry Layer: torch_npu and mindspeed.megatron_adaptor injection for NPU execution.
  4. Ascend Software-Hardware Stack: MindSpeed, CANN, HCCL communication, Ascend 910B NPU hardware.

For full technical details, please refer to our Technical Report.

Statement#

  • As a language model, BitCPM-CANN generates content by learning from a vast amount of text.
  • However, it does not possess the ability to comprehend or express personal opinions or value judgments.
  • Any content generated by BitCPM-CANN does not represent the viewpoints or positions of the model developers.
  • Therefore, when using content generated by BitCPM-CANN, users should take full responsibility for evaluating and verifying it on their own.

LICENSE#

  • This repository and BitCPM-CANN models are released under the Apache-2.0 License.

Citation#

  • Please cite our technical report if you find our work valuable.
@article{bitcpmcann,
  title={{BitCPM-CANN}: Native 1.58-Bit Large Language Model Training on Ascend NPU},
  author={BitCPM Team},
  year={2026}
}

Files

3 files · 2.37 GBWeights 2.37 GB (GGUF). Sizes and sha256 from the signed manifest.
Hide all 3 files with their sha256
FileSizesha256
.gitattributes1.58 KBd8d89fa5a0eb694b50d343c0d7f635741f27992d5d04ff24b8e38bfa0afbff29
README.md9.13 KB4b890e2bee8809848fa7ef9c8ce80288176d4a29e79d4bc26641328832612341
bitcpm4-8b-tq2_0.gguf2.37 GBb72d23bf549e90bdfb161a4ed217ba26b9eb3efd19363716e9bfcd265370ac91
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
4fd99d8ae0 pinned now2026-11-15 03:49 UTC3 files · 2.37 GB

Use it

$ fw get openbmb/BitCPM-CANN-8B-gguf
# manifest sha256 a38f22369bef… · 2.37 GB · 3 files
$ fw verify ./BitCPM-CANN-8B-gguf openbmb/BitCPM-CANN-8B-gguf
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/openbmb/BitCPM-CANN-8B-gguf.json --dir ./BitCPM-CANN-8B-gguf $ python3 fw.py verify ./BitCPM-CANN-8B-gguf ./openbmb__BitCPM-CANN-8B-gguf.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download openbmb/BitCPM-CANN-8B-gguf --revision 4fd99d8ae0e3c059004dfcad75ae73108728c2f8 --local-dir ./BitCPM-CANN-8B-gguf
llama.cppDownload one GGUF variant (bitcpm4-8b-tq2_0, 2.37 GB), then serve it.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download openbmb/BitCPM-CANN-8B-gguf --include "bitcpm4-8b-tq2_0*" --local-dir ./BitCPM-CANN-8B-gguf $ llama-server -m ./BitCPM-CANN-8B-gguf/bitcpm4-8b-tq2_0.gguf
OllamaMake an Ollama model from the downloaded file.
$ printf 'FROM ./BitCPM-CANN-8B-gguf/bitcpm4-8b-tq2_0.gguf\n' > Modelfile $ ollama create bitcpm-cann-8b-gguf -f Modelfile

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
4b890e2bee8809848fa7ef9c8ce80288176d4a29e79d4bc26641328832612341
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: openbmb <huggingface.co/openbmb>Newsgroups: alt.freeweights.minicpmSubject: BitCPM-CANN-8B-ggufDate: 2026-11-15Commit: 4fd99d8Signed: 2DC28CC7B26A283B ✓
Upstream
openbmb/BitCPM-CANN-8B-gguf
Pinned commit
4fd99d8ae0e3c059004dfcad75ae73108728c2f8
Manifest
BitCPM-CANN-8B-gguf.json · .minisig
Manifest sha256
a38f22369befeed74f00fc92de821c409aa736eb947c6f1c1c3507083860ee50
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:49 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/openbmb/BitCPM-CANN-8B-gguf.json $ curl -O https://freeweights.allternit.com/manifests/openbmb/BitCPM-CANN-8B-gguf.json.minisig $ minisign -Vm BitCPM-CANN-8B-gguf.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

No related models in this catalog.Nothing here lists this model as its parent, and it names no parent.
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download openbmb/BitCPM-CANN-8B-gguf
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. BitCPM-CANN-8B-gguf.json. Provenance. Takedown history: none.
From: openbmb <huggingface.co/openbmb>Subject: AgentCPM-Explore-GGUF
From: openbmb <huggingface.co/openbmb>Subject: AgentCPM-Report
From: openbmb <huggingface.co/openbmb>Subject: AgentCPM-Report-GGUF
From: openbmb <huggingface.co/openbmb>Subject: BitCPM-CANN-0.5B-gguf
From: openbmb <huggingface.co/openbmb>Subject: BitCPM-CANN-1B-gguf
From: openbmb <huggingface.co/openbmb>Subject: BitCPM-CANN-3B-gguf