Quick load
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("Entrit/Qwen2.5-72B-trit-uniform-d4")
tokenizer = AutoTokenizer.from_pretrained("Entrit/Qwen2.5-72B-trit-uniform-d4")
The weights are dequantized to FP16 for stock-transformers compatibility. The on-disk size is therefore the same as the FP16 source. The 6.64-bpw figure refers to the information content of the quantized matrices and is what matters for inference on hardware that consumes the packed trit format directly (see Entrit/tritllm-kernel).
Quantization details
Table with columns: Field, Value| Field | Value |
|---|
| Source model | Qwen/Qwen2.5-72B |
| Depth | d=4 (81 levels) |
| Bits per weight | 6.64 |
| Group size | 16 |
| Scale codebook | 27-entry log-spaced (scale_depth=3) |
| Method | uniform PTQ |
| Quantized layers | all 2D linear matrices |
| Kept FP16 | lm_head, token embeddings, all *_norm layers |
| Codec | tritllm v2 |
What's quantized vs kept FP16
Following standard quantization-paper convention, only the 2D linear weight matrices are ternary-quantized. The token embedding lookup and final classifier (lm_head) stay in FP16. The 6.64-bpw figure is computed over the quantized matrices only, consistent with how GPTQ, AWQ, and NF4 report BPW.
Citation
@article{stentzel2026ternaryptq,
title = {Balanced Ternary Post-Training Quantization for Large Language Models},
author = {Stentzel, Eric},
year = 2026,
note = {Entrit Systems}
}
Reproducibility
git clone https://huggingface.co/Entrit/tritllm-codec
cd tritllm-codec
python quantize_model_v2.py --model Qwen/Qwen2.5-72B --configs uniform-d4 --out ./out
The output at ./out/uniform-d4/model/ matches this repository.