世界を動かす技術を、日本語で。

BitNet: 100Bパラメータの1ビットモデルをローカルCPU向けに

2026年3月11日原文(github.com)

概要

  • bitnet.cpp は1ビットLLM推論用の公式フレームワーク
  • CPU・GPUで高速かつ省エネな推論 を実現
  • ARM/x86両対応、モデルサイズが大きいほど効果増
  • インストール・実行手順が明確に提供
  • FAQやベンチマーク、変換ツールも充実

bitnet.cppの特徴と概要

  • bitnet.cpp は、BitNet b1.58などの 1ビット大規模言語モデル(LLM) 向け公式推論フレームワーク
  • CPUおよびGPU での高速・損失なし推論をサポート(今後NPUにも対応予定)
  • 最初のリリースはCPU推論対応、ARM CPUで最大5.07倍、x86で最大6.17倍の高速化
  • エネルギー消費も大幅削減 (ARMで最大70%、x86で最大82.2%削減)
  • 100B規模のモデルも単一CPUで人間並みの速度 (5~7トークン/秒)で動作可能
  • 並列カーネルや量子化埋め込み など最新最適化も導入済み
  • llama.cppをベースに開発、T-MACのLookup Table技術も活用

公式モデル・対応モデル

  • BitNet-b1.58-2B-4T など複数の1ビットLLMモデルをサポート
  • Hugging Face公開モデル を利用した推論デモも提供
  • ARM/x86両対応、モデルごとにカーネル最適化状況が異なる
    • 例: bitnet_b1_58-large(0.7B)、bitnet_b1_58-3B(3.3B)、Llama3-8B-1.58-100B-tokens(8.0B)など

インストール要件・セットアップ

  • Python>=3.9、cmake>=3.22、clang>=18 が必要

  • Windowsの場合、Visual Studio 2022 のC++開発ツール一式が必要

  • Debian/Ubuntuでは自動インストールスクリプト を提供

  • 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

コマンドラインオプション

  • setup_env.py

    • --hf-repo:利用するHugging Faceリポジトリ指定
    • --model-dir:モデルディレクトリ指定
    • --quant-type:量子化タイプ指定(i2_s, tl1)
    • --quant-embd:埋め込みの量子化有効化
    • --use-pretuned:事前チューニング済みカーネルパラメータ利用
  • run_inference.py

    • -m:モデルファイル指定(必須)
    • -n:生成トークン数
    • -p:プロンプト指定
    • -t:スレッド数
    • -c:プロンプトコンテキストサイズ
    • -temp:生成テキストのランダム性制御
    • -cnv:チャットモード有効化

ベンチマーク・ダミーモデル生成

  • ベンチマーク実行
    • python utils/e2e_benchmark.py -m /path/to/model -n 200 -p 256 -t 4
  • ダミーモデル生成
    • python utils/generate-dummy-bitnet-model.py models/bitnet_b1_58-large --outfile models/dummy-bitnet-125m.tl1.gguf --outtype tl1 --model-size 125M
    • 生成したダミーモデルでベンチマークが可能

safetensorsからの変換

  • .safetensorsモデルの準備
    • huggingface-cli download microsoft/bitnet-b1.58-2B-4T-bf16 --local-dir ./models/bitnet-b1.58-2B-4T-bf16
  • ggufモデルへの変換
    • python ./utils/convert-helper-bitnet.py ./models/bitnet-b1.58-2B-4T-bf16

FAQ(よくある質問)

  • Q1: llama.cppビルド時にstd::chronoのエラー発生?
    • A: llama.cppのバージョン問題。該当コミットを参照し修正
  • Q2: conda環境のWindowsでclangビルド時にエラー?
    • A: clang -vで環境確認。Visual Studioツールの初期化コマンドを実行
      • コマンドプロンプトの場合: "C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools\VsDevCmd.bat" -startdir=none -arch=x64 -host_arch=x64
      • PowerShellの場合: Import-Module "C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"、Enter-VsDevShell 3f0e31ad -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64"

まとめ

  • bitnet.cppは超軽量・高速な1ビットLLM推論の最先端フレームワーク
  • ローカル環境・エッジデバイスでのLLM運用を大きく前進
  • モデル・OSごとの詳細な導入手順・FAQも完備
  • 今後のGPU/NPU対応やさらなる最適化にも期待

Hackerたちの意見

でも、トレーニング済みの100Bパラメータモデルはないの?「100B BitNetを実行できる」ってのは推論の実装についての話で、そんなモデルが存在するかどうかの話じゃないよ。

ダミーモデルを使ったんじゃないかな、そうじゃなきゃリンクしてたはずだし。「1-bit 100b model」でググってみて、ダウンロードリンクは一切ないこのプロジェクトの参照しか見つからないよ。

タイトルが誤解を招くね。トレーニング済みの100Bモデルはなくて、ただそれを扱えるって主張してる推論フレームワークがあるだけ。だけど、エンジニアリングには注目する価値があるよ。私はローカルで量子化された70Bモデルを動かしてる(M2 Max 96GB、llama.cpp + LiteLLM)。メモリ帯域幅が常にボトルネックになってる。1.58ビットのアプローチは面白いね。三元重みが行列積を加算に変えるから、一般的なCPUでの計算プロファイルが根本的に違う。もし100Bクラスのモデルで1つのCPUあたり5-7トークン/秒が再現できるなら、デバイス上での推論にとっては本当に大きなマイルストーンだよ。フレームワークは準備できてる。あとは実際にモデルをトレーニングする人が必要だね。

そうだね。2回読み直さなきゃいけなかったけど、ベースモデルがないのは変だなって思ったよ。でも、利用可能な最大モデルは10Bみたい?ちょっと珍しいし、100Bオーダーのモデルをトレーニングするのがどれだけ難しいか気になるな。

カスタムハードウェアの面白い機会だと思ってる。2ビットの加算はハードウェアで非常に安価だから、特に浮動小数点を使うものと比べるとね。安くて巨大なベクター命令を作って、買える中で最速のメモリに接続すれば、十分に能力のある推論チップができるよ。トレーニングにはフルGPUがまだ必要だけど、推論にはNvidiaが作ってるものよりもずっとシンプルなハードウェアで済むはずだよ。

フレームワークは準備完了。今は実際にモデルをトレーニングしてくれる人が必要だね。もしマイクロソフトが自分たちの理論を証明するためにモデルをトレーニングしないなら、他の誰がやるっていうの?彼らは少なくとも何らかの形でBitNetを証明するために2年(だったかな?)も時間があったのに、今まで本当に何も試してないって言うの?個人的には、彼らの言うことをそのまま信じるのはちょっと心配だな。もしこれが本当に価値のある結果につながるなら、なんで自分たちでモデルをトレーニングして公開しないの?

LLMアカウント

コモディティCPUでの根本的に異なる計算プロファイルって、どのように?現代のプロセッサでは、Fused Multiply-Add(FMA)命令は基本的な加算命令と同じ実行スループットを持っているよ。

デモでは3Bモデルを動かしてるみたい。

これは(意図的に?)誤解を招くドキュメントから来てるよね。https://github.com/microsoft/BitNet/issues/391 (こんなに長い間そこにあるから意図的だと思ってる)

テキストも誤解を招くよ。5-7トーク/secは読書速度じゃなくて、ちょっと遅い。少なくとも僕にとっては、経験豊富な読者だけど、特に速読に特化してるわけじゃないし。7.0-7.5トーク/secの出力速度で「生活」してた時期があって、それはイライラする体験だった。ちょっと遅い人の後ろを歩いてる感じだよね。これを解決するために、出力が「バッファリング」されるまでわざと目を逸らして、そっから読み始めた。ローカル設定では10トーク/secを目指したいね。kvキャッシュを少し犠牲にして、GPUにもう少しレイヤーを追加する価値はあるよ。

メモリ帯域幅が常にボトルネックだね。今日の不満が明日のイノベーションにつながることを期待してる。1MBのハードドライブが10万ドルだった頃や、ゲイツが640KBで十分だと言った時を思い出す。今、RAMメーカーが何をしているのか、業界の人にコメントしてもらいたいな。もっと良く、速く、大きくなってるのかな?それとも、もう余裕がなくてマザーボードメーカーやボリュームに依存してるのかな?

Hacker Newsで議論の続きを見る