bitnet.cpp完全ガイド — GPUなしでLLMを動かす1ビット推論フレームワーク

目次

bitnet.cppとは

bitnet.cppは、Microsoft Researchが開発し2024年10月17日にv1.0をリリースしたオープンソースの推論フレームワークだ。「1ビットLLM」と呼ばれる超低ビット量子化モデルを、CPUの整数演算だけで高速に動作させることに特化している。

公式リポジトリ: microsoft/BitNet – GitHub

従来のLLMは16ビット(FP16)や32ビット(FP32)の浮動小数点演算で重みを保持し、推論にはGPUの並列計算能力が不可欠だった。bitnet.cppはこの常識を破り、重みを{-1, 0, 1}の3値に圧縮することで、浮動小数点演算を整数演算に置き換えるというアプローチを取る。

主な特徴

  • GPU不要: CPUの整数演算だけで推論が完結する
  • 超省メモリ: FP16比で約14分の1のメモリ使用量
  • 低消費電力: 最大82%の電力削減(x86環境)
  • ロスレス推論: 1.58ビットモデルの品質を劣化なく再現
  • クロスプラットフォーム: x86(Intel/AMD)、ARM(Apple Silicon含む)に対応

2026年1月にはCPU推論最適化アップデートがリリースされ、並列カーネル実装やネイティブI2_S GEMM/GEMVサポートにより、さらに1.15〜2.1倍の追加高速化を達成している。

1ビット量子化の仕組み — BitNet b1.58とは

「1ビット」と聞くと0と1の2値を想像するかもしれない。実際にはbitnet.cppが扱うのは1.58ビット量子化、通称BitNet b1.58だ。

3値量子化 {-1, 0, 1}

BitNet b1.58では、モデルの各重みを以下の3つの値のいずれかで表現する。

  • -1: 負の方向に影響
  • 0: 影響なし(スパース化)
  • +1: 正の方向に影響

3つの値を表現するのに必要な情報量はlog2(3) ≈ 1.58ビット。これが「1.58ビット」の由来だ。

なぜCPUだけで動くのか

従来のLLM推論は、16ビットや32ビットの浮動小数点数同士の行列積演算が中心だった。これはGPUの並列浮動小数点演算ユニットが得意な領域であり、CPUでは非常に遅い。

一方、BitNet b1.58では重みが{-1, 0, 1}しかないため、行列積の計算が実質的に加算と減算だけで完結する。

  • 重みが+1 → 入力値をそのまま足す
  • 重みが-1 → 入力値を引く
  • 重みが0 → 何もしない(スキップ)

GPUが得意な浮動小数点の乗算が一切不要になるため、CPUの整数演算ユニットだけで十分な速度が出る。これがbitnet.cppの根本的な設計思想だ。

後量子化(PTQ)との違い

llama.cppなどで使われるGGUF形式の量子化(Q4_K_M、Q8_0など)は、FP16で学習済みのモデルを後から低ビットに圧縮する「後量子化(Post-Training Quantization)」だ。この方法では、ビット数を下げるほど品質が劣化する。

BitNet b1.58は根本的に異なる。モデルの学習段階から1.58ビットで訓練されているため、低ビットであっても品質の劣化が最小限に抑えられる。これが「ネイティブ1ビットモデル」と呼ばれる理由だ。

パフォーマンスデータ — 数字で見るbitnet.cppの実力

以下のデータはMicrosoft公式、PrismML公式、および第三者ベンチマークから取得したファクトチェック済みの数値だ。

速度向上(llama.cpp比)

環境速度向上倍率
x86(Intel/AMD)2.37〜6.17倍
ARM(Apple Silicon含む)1.37〜5.07倍

注意: 6.17倍はx86環境での最大値。ARM環境の上限は5.07倍であり、「全環境で6倍速い」わけではない。

メモリ使用量の比較

モデル形式メモリ使用量
FP16(16ビット)16.38GB
BitNet b1.58(1.58ビット)1.15GB

FP16と比較して約14分の1のメモリで済む。

エネルギー効率

指標BitNetQwen2.5(FP16)
1トークンあたりエネルギー0.028J0.347J
効率比約12倍

出典: emelia.io 等の第三者検証

消費電力削減

環境削減率
x86(Intel/AMD)71.9%〜82.2%
ARM(Apple Silicon)55%〜70%

重要: 「消費電力82%削減」というデータはx86環境の最大値だ。ARM環境(Apple Silicon含む)では55〜70%にとどまる。この点は多くの紹介記事で正確に伝えられていないため注意してほしい。

100Bモデルの推論速度

bitnet.cppのREADMEには「100Bパラメータモデルを単一CPUで5〜7トークン/秒」という記載がある。ただし、これは理論値/シミュレーション結果であり、実機で誰でも試せる100Bの1ビットモデルは2026年4月時点で公開されていない。この点は明確に区別する必要がある。

対応モデル一覧(2026年4月時点)

bitnet.cppが公式にサポートするモデルは以下の通りだ。

Microsoft公式モデル

モデル名パラメータ数備考
BitNet b1.58-2B-4T2.4BMicrosoft公式のフラッグシップ。4兆トークンで訓練。GGUF版あり
bitnet_b1_58-large初期リリースモデル
bitnet_b1_58-3B3.3Bコミュニティ派生を含む

コミュニティモデル

モデル名パラメータ数備考
Llama3-8B-1.58-100B-tokens8BLlama 3ベースの1.58ビット変換
Falcon3-1B-Instruct-1.58bit1BTIIのFalcon3を1.58ビット化
Falcon3-3B-Instruct-1.58bit3B同上
Falcon3-7B-Instruct-1.58bit7B同上
Falcon3-10B-Instruct-1.58bit10B同上

PrismML Bonsai-8B(注目モデル)

bitnet.cppではなくllama.cppフォーク版で動作するが、1ビットLLMの代表格として紹介する。

項目スペック
パラメータ8B
ファイルサイズ1.15GB
アーキテクチャネイティブ1ビット({-1, +1}の2値。0なし)
M4 Pro速度131トークン/秒
RTX 4090速度368トークン/秒
推論エンジンPrismML製llama.cppフォーク / MLX
ベンチマーク平均70.5(Llama 3 8Bの67.1を上回る)
知能密度1.06/GB(他の7-8Bモデルは0.10/GB以下)
リリース日2026年3月31日

出典: PrismML公式

Bonsai-8BはBitNet b1.58とは異なるアーキテクチャ({-1, +1}の2値で、0を含まない)だが、「1ビットLLM」というカテゴリでは最も注目されているモデルだ。推論にはPrismML公式のllama.cppフォーク版が必要であり、bitnet.cppでは動作しない点に注意。

インストール・セットアップ手順

ここではbitnet.cpp公式のセットアップ手順を解説する。

動作要件

要件詳細
Python3.9以上
CMake3.22以上
パッケージ管理Conda推奨
WindowsVisual Studio 2022(C++ビルドツール)
LinuxClang 18+ / LLVMツールチェイン
macOSXcode Command Line Tools

Step 1: 環境構築

conda create -n bitnet-cpp python=3.9
conda activate bitnet-cpp

git clone https://github.com/microsoft/BitNet.git
cd BitNet

pip install -r requirements.txt

Step 2: モデルのダウンロード

Microsoft公式の2Bモデルをダウンロードする。

huggingface-cli download microsoft/BitNet-b1.58-2B-4T-gguf \
  --local-dir models/BitNet-b1.58-2B-4T

Step 3: ビルド環境のセットアップ

python setup_env.py -md models/BitNet-b1.58-2B-4T -q i2_s

このスクリプトが自動的にCMakeビルドを行い、1.58ビットモデル向けに最適化されたカーネルを生成する。

Step 4: 推論の実行

python run_inference.py \
  -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf \
  -p "You are a helpful assistant" \
  -n 100 \
  -temp 0.8

主なオプション:

オプション説明
-mモデルファイルのパス
-pプロンプト文
-n生成トークン数
-temp温度パラメータ(創造性の制御)
-t使用スレッド数

Bonsai-8Bを動かす場合

Bonsai-8Bはbitnet.cppではなく、PrismML製のllama.cppフォーク版が必要だ。

git clone https://github.com/PrismML-Eng/llama.cpp
cd llama.cpp

cmake -B build -DGGML_METAL=ON && cmake --build build

cmake -B build && cmake --build build

huggingface-cli download prism-ml/Bonsai-8B-gguf \
  --local-dir models/Bonsai-8B

./build/bin/llama-cli -m models/Bonsai-8B/Bonsai-8B.gguf \
  -p "Explain quantum computing in simple terms" \
  -n 200

重要: 標準のllama.cpp(brew install llama.cppやOllama経由)ではBonsai-8Bは動作しない。1ビット専用テンソル形式に対応したPrismMLフォーク版のビルドが必須だ。Ollamaでの起動は「500 Internal Server Error」、標準llama.cppでは「invalid ggml type 41」エラーとなる。

実際に動かしてみた — 正直な感想

note記事で公開した検証結果を要約する。テスト環境はApple M2 MacBook Air(8GB RAM)。

Bonsai-8Bのリアルな動作状況

  • メモリ使用量: 実測約3.1GB(モデル1,099MB + コンテキスト3,096MB + コンピュート304MB)。公式の「1.15GB」はモデル重みだけの数値であり、実行時には3倍近いメモリが必要だった
  • 体感速度: ChatGPTの無料版よりやや遅い程度。実用的な速度ではある
  • 日本語: 事実知識が弱い傾向(「東京タワーの高さ」を東京スカイツリーの634mと回答)
  • 英語コーディング: FizzBuzzの構造は概ね正しいが、else節の欠落など不完全な部分あり

動作までのハードル

ネット上の「簡単3ステップ」系の記事は、2026年4月時点ではほとんど機能しない。

  1. Ollama → 500 Internal Server Error
  2. 標準llama.cpp → invalid ggml type 41 エラー
  3. 標準MLX → 1ビット非対応エラー

PrismML公式のllama.cppフォーク版を自分でビルドするのが、2026年4月時点で最も確実な方法だ。ビルド自体は5分程度、モデルのダウンロードも数分で完了する。

llama.cpp(GGUF量子化)との比較

ローカルLLMの定番であるllama.cppとbitnet.cppを比較する。

アーキテクチャの違い

項目bitnet.cppllama.cpp
量子化方式ネイティブ1.58ビット(学習時から)後量子化(PTQ: Q4, Q8等)
演算方式整数演算(加減算中心)浮動小数点演算
GPU不要(CPU専用設計)GPU推奨(CPUでも動作)
モデル形式専用GGUF(i2_s)汎用GGUF
エコシステム発展途上成熟(Ollama, LM Studio等)

パフォーマンス比較

指標bitnet.cpp(1.58bit)llama.cpp(Q4_K_M)
メモリ(8Bモデル)約1.15GB約4.9GB
速度(CPU)2.37〜6.17倍高速(x86)基準
消費電力最大82%削減(x86)基準
プロンプト処理3.4〜5.2倍高速基準

どちらを選ぶべきか

bitnet.cppが向いている人:
– GPUを持っていない、またはGPUなしで動かしたい
– 消費電力やバッテリー寿命を重視する
– エッジデバイス(Raspberry Pi、組み込み機器)での推論を想定している
– 1ビットLLMの技術に興味がある

llama.cppが向いている人:
– GPUを持っている、またはOllama・LM Studioなどの使いやすいツールで動かしたい
– 対応モデルの豊富さを重視する(Llama 3、Gemma、Qwen等、数千モデルが対応)
– 本番プロダクションで安定して使いたい
– 日本語タスクの品質を重視する

2026年4月時点では、一般的な用途ならllama.cppの方が実用的だ。ただし、GPU不要・省電力が必須要件の場合はbitnet.cppに大きなアドバンテージがある。

今後の展望

短期(2026年中)

  • GPU推論カーネルの正式対応: 2025年5月にGPU推論カーネルが公式リリースされており、CPU+GPUのハイブリッド推論が進展する見込み
  • NPU対応: Intel/QualcommのNPU(Neural Processing Unit)向けカーネルの開発が進行中
  • 対応モデルの拡大: Falcon3の1.58ビット版が既にコミュニティから提供されており、今後も主要モデルの1ビット版が増えていく

中期(2026〜2027年)

  • 100B級ネイティブ1ビットモデルの公開: 現時点で公開されている最大モデルは10B(Falcon3-10B-Instruct-1.58bit)。100Bクラスのモデルが公開されれば、「CPUで超大規模モデルを動かす」という当初のビジョンが現実になる
  • エッジAIの普及: スマートフォン、IoTデバイス、車載システムなど、GPU非搭載のデバイスでLLMを動かすユースケースが広がる
  • Bonsai-8Bの後続モデル: PrismMLは$16.25Mの資金調達を完了しており、より大規模な1ビットモデルの開発が期待される

1ビットLLMが変えるもの

1ビットLLMの真のインパクトは「速度」や「メモリ削減」だけではない。AIの民主化だ。

高性能GPUを持たない開発者、クラウド費用を払えない個人、ネットワーク接続が不安定な環境。これまでLLMの恩恵を受けられなかった層に、1ビットLLMは手を差し伸べる。消費電力の劇的な削減は、AI推論の環境負荷を下げるという意味でも重要だ。

まとめ

bitnet.cppは、「GPUがないとLLMは動かせない」という常識を覆すフレームワークだ。

押さえておくべきポイント:

  • Microsoft Researchが開発した1.58ビット推論エンジン。CPUの整数演算だけでLLMを動かせる
  • メモリ使用量はFP16の約14分の1、消費電力は最大82%削減(x86環境)
  • 「100BモデルをCPUで5〜7tok/s」は理論値。公開モデルは最大10B(2026年4月時点)
  • Bonsai-8B(PrismML)は1.15GBで8B級の性能を発揮するが、PrismMLフォーク版のビルドが必要
  • llama.cppと比較して、GPU不要・省電力では圧倒的に有利。ただしエコシステムの成熟度では劣る
  • 日本語タスクの品質はまだ発展途上。英語タスクでは実用レベルに近い

次のステップ:

  1. まずはBitNet b1.58-2B-4Tで手軽に試す(約400MBで体験可能)
  2. 余裕があればBonsai-8B(1.15GB)をPrismMLフォーク版でビルドして体感する
  3. 100B級モデルの公開に備えて、bitnet.cppのセットアップ方法を把握しておく

1ビットLLMは「未来の技術」ではなく、「今日から試せる技術」だ。GPUの呪縛から解放される日は、もうすぐそこまで来ている。


参考リンク:
microsoft/BitNet – GitHub(公式リポジトリ)
BitNet b1.58-2B-4T – Hugging Face(公式2Bモデル)
PrismML Bonsai-8B 公式発表
Bonsai-8B GGUF – Hugging Face
BitNet公式ドキュメント
PrismML llama.cppフォーク版
Getting Started – DeepWiki(セットアップ詳細ガイド)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次