
2026/03/11 21:27
ビットネット:ローカルCPU向けの100 Bパラメータ・1ビットモデル
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
BitNet.cpp は、CPU、GPU、および近日中に NPU での 1 ビット低精度言語モデルを高速かつロスレスに実行できるオープンソース推論フレームワークです。最初のリリースは CPU 推論に焦点を当て、ARM プロセッサでは 1.37×–5.07× の速度向上、x86 CPU では 2.37×–6.17× を実現し、電力消費を 55.4%–70.0%(ARM)および 71.9%–82.2%(x86)削減します。約 5〜7 トークン/秒で 100 B BitNet b1.58 モデルを実行でき、これは人間の読み速度に相当し、Apple M2 チップ上でもスムーズに動作する 3 B デモモデルなど、幅広いモデルをサポートします。
フレームワークは llama.cpp をベースにしており、T‑MAC のルックアップテーブル手法を活用しています。また、並列カーネル最適化(追加で 1.15×–2.1× の速度向上)と設定可能なタイル/埋め込み量子化も組み込んでいます。主なマイルストーンは、CPU 最適化(2026年01月15日)、GPU カーネル(2025年05月20日)、Hugging Face 2B パラメータモデルリリース(2025年04月14日)および ternary LLM のエッジ推論効率化(2025年02月18日)です。
今後のアップデートでは NPU 対応、さらなる最適化、CPU カバレッジ拡大、および ternary モデルへのエッジ推論拡張を目指します。ユーザーは Python ≥ 3.9、CMake ≥ 3.22、Clang ≥ 18(Windows では Visual Studio 2022 コンポーネントが必要)をインストールし、リポジトリをクローンして conda 環境を設定し、
models/ にモデルをダウンロードした後、setup_env.py と run_inference.py で推論を実行します。ベンチマークユーティリティ(e2e_benchmark.py)ではカスタムプロンプト、トークン数、およびスレッド設定が可能です。FAQ は、Windows 上の llama.cpp の std::chrono と Visual Studio ツール初期化に関する一般的なビルド問題を扱っています。
この改訂版要約は、主要な定量詳細、マイルストーン日付、モデルサポート情報、および実用的なインストールノートをすべて保持しつつ、メッセージの主旨を明確かつ簡潔に保っています。
本文
bitnet.cpp
デモを試すか、CPUまたはGPUで自分の環境にビルド&実行してみてください。
bitnet.cpp は 1‑bit LLM(例:BitNet b1.58)の公式推論フレームワークです。CPU と GPU(NPU サポートは次回予定)で 1.58‑bit モデルを高速かつロスレスに推論するための最適化カーネルセットが用意されています。
- 初期リリースでは CPU 推論のみ対応しています。
- スピードアップ:
- ARM CPU – 1.37× – 5.07×(大きいモデルほど効果大)
- x86 CPU – 2.37× – 6.17×
- エネルギー削減:
- ARM:55.4% – 70.0%
- x86:71.9% – 82.2%
- 単一の CPU で BitNet b1.58 の 100B モデルを 5‑7 トークン/秒実行可能。人間の読書速度と同等です。
最新最適化では、並列カーネル実装に加え、タイル設定や埋め込み量子化サポートが追加され、プラットフォーム横断で 1.15× – 2.1× のさらなるスピードアップを実現しています。詳細は技術レポートをご覧ください。
デモ
Apple M2 上で BitNet b1.58 3B モデルを走らせる例:
demo.mp4
新機能・リリースノート
| 日付 | リリース |
|---|---|
| 01/15/2026 | BitNet CPU 推論最適化 |
| 05/20/2025 | BitNet GPU 推論カーネル公式版 |
| 04/14/2025 | Hugging Face 上に BitNet 2B パラメータモデル公開 |
| 02/18/2025 | bitnet.cpp:テッセラリ LLM のエッジ推論を効率化 |
| 11/08/2024 | BitNet a4.8:1‑bit LLM 用 4‑bit 活性化 |
| 10/21/2024 | 1‑bit AI インフラ:Part 1.1、CPU 上での高速かつロスレス BitNet b1.58 推論 |
| 10/17/2024 | bitnet.cpp 1.0 公開 |
| 03/21/2024 | 1‑bit LLM の時代 – トレーニングヒント & コード FAQ |
| 02/27/2024 | 1‑bit LLM の時代:全ての大規模言語モデルは 1.58 ビットで構成 |
| 10/17/2023 | BitNet: 大規模言語モデル用 1‑bit Transformer のスケーリング |
謝辞
本プロジェクトは llama.cpp フレームワークをベースにし、T‑MAC が開発した Lookup Table 手法を採用しています。テッセラリ(3‑ビット)以外の低ビット LLM には T‑MAC の使用を推奨します。
公式モデル
| モデル | パラメータ数 | CPU カーネル |
|---|---|---|
| BitNet‑b1.58‑2B‑4T | 2.4 B | ✅ (x86) ❌ (ARM) |
TL1/TL2 は量子化スキームを指します。
対応モデル
| モデル | パラメータ数 | CPU カーネル |
|---|---|---|
| bitnet_b1_58‑large | 0.7 B | ✅ (x86) ❌ (ARM) |
| bitnet_b1_58‑3B | 3.3 B | ❌ (x86) ✅ (ARM) |
| Llama3‑8B‑1.58‑100B‑tokens | 8.0 B | ✅ (x86) ❌ (ARM) |
| Falcon3 Family (1 B–10 B) | 1 B–10 B | ✅ (x86) ❌ (ARM) |
| Falcon‑E Family (1 B–3 B) | 1 B–3 B | ✅ (x86) ❌ (ARM) |
インストール
必要条件
- Python ≥ 3.9
- CMake ≥ 3.22
- Clang ≥ 18
Windows
Visual Studio 2022 をインストールし、以下を有効化してください:
Desktop development with C++ C++ CMake Tools for Windows Git for Windows C++ Clang Compiler for Windows MS Build Support for LLVM Toolset (clang)
Debian/Ubuntu
bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
Conda(推奨):
conda create -n bitnet-cpp python=3.9 conda activate bitnet-cpp pip install -r requirements.txt
ソースからビルド
git clone --recursive https://github.com/microsoft/BitNet.git cd BitNet
Windows での注意点
VS2022 の Developer Command Prompt または PowerShell を必ず使用してください。
# モデルをローカルにダウンロード(例) 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
のオプションsetup_env.py
| オプション | 説明 |
|---|---|
| モデルリポジトリ(例:1bitLLM/bitnet_b1_58-large 等) |
, | モデルを保存/読み込むディレクトリ |
, | ログ用ディレクトリ |
, | 量子化タイプ( または ) |
| 埋め込みを f16 に量子化 |
, | 事前調整済みカーネルパラメータを使用 |
推論実行
python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf \ -p "You are a helpful assistant" -cnv
のオプションrun_inference.py
| オプション | 説明 |
|---|---|
, | モデルファイルへのパス |
, | 予測するトークン数 |
, | プロンプトテキスト |
, | スレッド数 |
, | プロンプトコンテキストサイズ |
, | 温度(乱数性) |
, | チャットモードを有効化 |
ベンチマーク
python utils/e2e_benchmark.py -m /path/to/model \ -n 200 -p 256 -t 4
引数
:必須。モデルファイルへのパス。-m, --model
:生成するトークン数(デフォルト 128)。-n, --n-token
:使用するプロンプトトークン数(デフォルト 512)。-p, --n-prompt
:使用するスレッド数(デフォルト 2)。-t, --threads
サポート外のレイアウトの場合はダミーモデルを生成します:
python utils/generate-dummy-bitnet-model.py models/bitnet_b1_58-large \ --outfile models/dummy-bitnet-125m.tl1.gguf \ --outtype tl1 --model-size 125M # ダミーモデルのベンチマーク python utils/e2e_benchmark.py -m models/dummy-bitnet-125m.tl1.gguf \ -p 512 -n 128
.safetensors
を GGUF に変換
.safetensors# チェックポイントを準備 huggingface-cli download microsoft/bitnet-b1.58-2B-4T-bf16 --local-dir ./models/bitnet-b1.58-2B-4T-bf16 # 変換 python utils/convert-helper-bitnet.py ./models/bitnet-b1.58-2B-4T-bf16
よくある質問(FAQ)
Q1:
が原因で std::chrono
のビルドが失敗する場合は?llama.cpp
A: 最近発生した問題です。該当コミットの修正を参照してください。
Q2: Windows 上の Conda で clang を使ってビルドするには?
A: ビルド前に clang と VS ツールが利用可能か確認します:
-
Command Prompt
"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"
これにより clang を正しく使用できる環境が整います。