GPUなしで大規模言語モデルを手元のPCで動かしたい——そんな要望に応える推論基盤として、Microsoftのbitnet.cppが注目を集めています。

この記事では、bitnet.cppの仕組みと性能、実際に使えるモデルの範囲、ローカル環境での導入手順までを整理します。

この記事でわかること

  • bitnet.cppが解決する課題と、1.58bit推論の基本原理
  • 公式が公表している速度・省電力の数値
  • すぐ試せるモデルと、100Bパラメータに関する注意点
  • ローカルPCへの導入と推論実行の手順

https://github.com/microsoft/BitNet

bitnet.cppとは何か

bitnet.cppは、MicrosoftがMITライセンスで公開している1bit LLM向けの推論フレームワークです。対象はBitNet b1.58と呼ばれる三値(-1、0、+1)の重みを持つモデルで、1パラメータあたり平均1.58bitという極端に小さい表現で学習・推論します。

実装の土台はllama.cppです。さらにMicrosoftのT-MACで実証されたルックアップテーブル(LUT)方式を取り入れ、CPU上の行列演算を高速化しています。2024年10月にbitnet.cpp 1.0が公開され、2025年5月にはGPU向けカーネル、2026年1月にはCPU推論の追加最適化が入っています。

なぜ今注目されているのか

ローカルLLM推論のボトルネックは、計算量よりもメモリ帯域に寄ることが多いです。FP16やINT4の量子化でも、大きなモデルはCPU1台では実用的な速度に届きにくいのが現状です。

bitnet.cppは重みを三値に落とし、TL1・TL2といったLUTカーネルで積和演算を加算中心の処理に置き換えます。Microsoft Researchの技術レポート(1-bit AI Infra: Part 1.1)では、bitnet.cppのカーネルはFP32ベースラインとトークン単位で完全一致する「ロスレス推論」を達成したと報告されています。llama.cppの三値向けカーネル(TQ1_0/TQ2_0)では一致率1.4%だったのに対し、bitnet.cppのI2_S・TL1・TL2はいずれも100%でした。

性能はどの程度か

公式READMEと技術レポートに基づく数値は次のとおりです。

環境 速度向上 消費電力削減
ARM CPU 1.37〜5.07倍 55.4〜70.0%
x86 CPU 2.37〜6.17倍 71.9〜82.2%

モデルが大きくなるほど恩恵が大きく、Apple M2 Ultraでは100B相当の構成で秒あたり6.58トークン、Intel Core i7-13700Hでは1.70トークンというベンチマーク結果が示されています。人が文章を読む速度(秒あたり5〜7トークン)に近い水準です。

2026年1月のCPU最適化では、並列カーネルと埋め込み量子化により、従来実装からさらに1.15〜2.1倍の高速化が加わっています。

100Bモデルは本当に動くのか

ここは誤解しやすいポイントです。bitnet.cppは100Bパラメータ規模のBitNet b1.58モデルをCPU1台で推論できる設計ですが、現時点で公開されている学習済みモデルはそれほど大きくありません。

GitHubのREADMEには、Hugging Face上の既存1bitモデルで推論能力を示している旨が明記されています。Microsoft公式のモデルはBitNet-b1.58-2B-4T(2.4Bパラメータ)が中心で、コミュニティ製として0.7B〜10B級のモデルが動作対象として挙げられています。100Bの数値は、論文付録で定義されたダミー構成を使った研究用ベンチマークに基づくものです。フレームワークは先に整い、超大規模の1bitモデル学習を促す意図があると読めます。

Hacker News上の議論でも、推論基盤は実用段階に入った一方で、100B級の学習済みモデルはまだ存在しないという指摘が複数ありました(参考)。

主な機能とカーネル

bitnet.cppは用途に応じて3種類のカーネルを使い分けます。

  • I2_S: 三値重みを2bitにパックし、通常の積和演算で処理。スレッド数に余裕がある環境向け
  • TL1: ARM向け。2つの重みを4bitインデックスにまとめ、LUTで加算処理
  • TL2: x86向け。3つの重みを5bitインデックスに圧縮し、メモリ帯域の制約が強い環境で有利

Hugging FaceのモデルをGGUF形式に変換するスクリプト、CLI推論、ベンチマーク、会話モード(-cnv)にも対応しています。2025年5月以降はCUDAベースのGPUカーネルも別ディレクトリで提供され、NPU対応は今後の予定とされています。

料金と利用条件

bitnet.cpp本体はMITライセンスで無料です。モデルウェイトはHugging Faceから個別に取得します。Microsoft公式のBitNet-b1.58-2B-4Tも公開されており、オンラインデモも用意されています。

必要な環境はPython 3.9以上、CMake 3.22以上、clang 18以上です。WindowsではVisual Studio 2022、Linux/macOSではconda環境の利用が推奨されています。

llama.cppやOllamaとの違い

llama.cppは汎用の量子化推論エンジンで、INT4など幅広い形式を扱えます。一方bitnet.cppはBitNet b1.58の三値重みに特化し、専用カーネルでCPU効率を追求します。

既存モデルを後から1.58bitに落とすのではなく、BitLinear層を使って最初から三値で学習するのがBitNet系列の前提です。そのため推論エンジンも専用化され、同じllama.cpp系でも用途が分かれます。汎用低bit推論にはMicrosoftはT-MACの利用を推奨しています。

ローカルでの導入手順

公式リポジトリの手順に沿えば、conda環境を作ってからモデルを取得し、推論を実行できます。

git clone --recursive https://github.com/microsoft/BitNet.git
cd BitNet
conda create -n bitnet-cpp python=3.9
conda activate bitnet-cpp
pip install -r requirements.txt
huggingface-cli download microsoft/BitNet-b1.58-2B-4T-gguf --local-dir models/BitNet-b1.58-2B-4T
python setup_env.py -md models/BitNet-b1.58-2B-4T -q i2_s
python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p "You are a helpful assistant" -cnv

-q i2_sは量子化方式の指定、-cnvはチャット形式の対話モードです。ARMマシンではTL1、x86ではTL2の方が速い場合があります。READMEの対応表でCPUアーキテクチャとカーネルの組み合わせを確認してください。

今後の展望

MicrosoftはBitNet b1.58 2B4Tの技術レポートで、GPU向けCUDAカーネルとCPU向けbitnet.cppの両方を公開し、実運用と研究の両面を押し進めています。bitnet.cpp側のロードマップには、モバイル端末・NPU・GPUへの拡張と、1bit LLMの学習最適化が掲げられています。

ローカル推論のコスト削減やエッジ展開を考える開発者にとって、bitnet.cppは「極限量子化の推論を今すぐ試せる公式実装」という位置づけです。超大規模モデルの学習が追いつけば、GPUなしで100B級を手元で回す道も開きます。まずは2B級の公式モデルで動作を確かめ、自環境に合うカーネルを選ぶのが現実的な第一歩です。