BitNet b1.58(1ビットLLM)(ビットネットビーワンテンゴハチ)
Microsoftが2024年に発表した1.58ビット量子化LLMアーキテクチャ。全重みを{-1, 0, +1}の3値で表現し、FP16比でVRAM 1/16・推論コスト大幅削減を実現する。
BitNet b1.58とは
Microsoft Researchが2024年2月に発表した「BitNet b1.58」で提案されたLLMアーキテクチャ。Transformer の全線形層の重みを {-1, 0, +1} という3値(log₂(3) ≈ 1.58ビット)に制約する。浮動小数点の乗算を整数の加算・減算のみに置き換えることで、推論時の演算コストを劇的に削減する。
技術詳細
1.58ビット量子化の仕組み
通常の量子化(GPTQ/AWQ)がFP16の重みを事後的に圧縮するのに対し、BitNetはトレーニング中から量子化を前提とした設計:
通常LLM: W ∈ ℝ^{d×d} (FP16/BF16 浮動小数点)
BitNet: W ∈ {-1, 0, +1}^{d×d} (3値整数)
アブソリュートミーン量子化
重みの量子化にはAbsMean量子化を使用:
W̃ = RoundClip(W / γ + 0.5, 0, 1) × 2 - 1
γ = mean(|W|)
アクティベーションはINT8に量子化して組み合わせる。
BitNet b1.58 vs FP16 性能比較
論文中の主要ベンチマーク(3Bパラメータ同士):
| モデル | ARC-Easy | HellaSwag | VRAM | エネルギー |
|---|---|---|---|---|
| LLaMA 3B (FP16) | 72.1 | 79.3 | 6GB | 100% |
| BitNet b1.58 3B | 73.2 | 78.9 | 0.4GB | 25%以下 |
VRAM は FP16 の 1/15 以下、エネルギーは 1/4 以下で同等性能。
VRAM・メモリ効率
| 規模 | FP16 | INT4 (GPTQ) | BitNet b1.58 |
|---|---|---|---|
| 3B | 6GB | 1.8GB | 0.4GB |
| 7B | 14GB | 4.2GB | 0.9GB |
| 70B | 140GB | 42GB | 9.4GB |
bitnet.cpp(CPU特化推論エンジン)
Microsoftが2024年10月にオープンソースの bitnet.cpp を公開:
- CPU推論特化: AVX2/ARM NEON命令でビット演算を最適化
- Apple M2 MacBook Air (15W TDP): 7Bモデルを人間の読書速度(約6-7 tok/s)で推論
- Raspberry Pi 5: 3Bモデルが実用速度(1-2 tok/s)で動作
git clone https://github.com/microsoft/BitNet
cd BitNet
pip install -r requirements.txt
python setup_env.py -md models/BitNet-b1.58-3B-pt
python run_inference.py -m models/BitNet-b1.58-3B-pt -p "こんにちは" -n 200
現状の課題
- FP16 → BitNet 後量子化は不可。BitNet 対応で事前学習が必要
- vLLM/TGI での直接サポートは2025年時点で限定的
- 既存モデルをBitNet化するには再学習コストが大きい
よくある質問(FAQ)
Q1: 既存のLlama 3やQwenをBitNetに変換できる? A: できない。BitNetは学習中から3値制約をかける設計のため、事後変換は不可。BitNetとして最初から事前学習したモデルを使う必要がある。
Q2: GPTQと比べてどちらが良い? A: 今すぐ利用可能な量子化モデルが必要ならGPTQ/AWQ一択。BitNetは2025年現在まだ大規模な公開モデルが少なく、エコシステムが発展途上。将来の電力効率ではBitNetが圧倒的に有利。
Q3: 1.58ビットで本当に実用的な性能が出るの? A: 3Bクラスでは同等性能が確認されている。70Bクラスでの大規模実験はまだ限られており、タスクによって劣化が大きいケースも報告されている。