4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

1-bit LLM「Bonsai」活用ガイド — 1.15GB で動く 8B モデルをローカルで使い倒す

4
Last updated at Posted at 2026-07-19

はじめに

2026年3月31日、Caltech 発のスタートアップ PrismML が 1-bit LLM ファミリー Bonsai を発表しました。8B クラスのモデルがわずか 1.15GB、必要メモリ約 1.5GB で動作し、GPU なしの普通の PC でも実用的な速度で推論できるとして大きな話題になっています。

Bonsai の注目ポイントは次の3つです。

  • 真の 1-bit モデル — 量子化ではなく、最初から 1-bit(+1 / -1 のみ)で学習
  • 圧倒的な省フットプリント — 8B モデルで 1.15GB。同クラスの 16-bit モデルの約 1/14
  • Apache 2.0 ライセンス — 商用利用も含め制限なし

この記事では、Bonsai の概要とセットアップ手順を押さえたうえで、ローカルチャット・OpenAI 互換 API でのアプリ組み込み・ツール呼び出し・コーディングエージェント連携といった活用法を、現時点での「向き・不向き」も含めてまとめます。

Bonsai の概要

「真の 1-bit」とは何が新しいのか

従来の軽量化は、16-bit や 32-bit で学習したモデルの重みを後から 4-bit などに丸める**学習後量子化(Post-Training Quantization)**が主流でした。これに対して Bonsai は、埋め込み層・アテンション層・MLP 層・LM ヘッドまでネットワーク全体を 1-bit のままスクラッチで学習しています。高精度のまま残す「逃げ道」のレイヤーが存在しないのが特徴です。

その結果、8B クラスでありながらファイルサイズ 1.15GB という極小サイズを実現しつつ、標準ベンチマークでは同クラスのフル精度モデルと競合する性能を出しています。

モデルラインナップ

モデル パラメータ ファイルサイズ 特徴
Bonsai 1.7B 1.7B 数百 MB 最軽量。組み込み・実験向け
Bonsai 4B 4B ~600MB 軽量とバランスの中間
Bonsai 8B 8.2B 1.15GB 日常用途のメインモデル
Bonsai 27B 27B — 画像入力・ツール呼び出し対応、最大 262K コンテキスト

さらに 2026年4月16日には、サイズを少し犠牲にして品質を高めた 1.58-bit 版の「Ternary Bonsai」(重みが -1 / 0 / +1 の3値)ファミリーも発表されています。公式デモではこちらがデフォルトになっており、iPhone クラスのデバイスでも動作報告があります。

ベンチマーク

Bonsai 8B は MMLU-R で 65.7、主要ベンチマーク平均で 70.5 と、16GB 級の Mistral 8B や Olmo 7B とほぼ同等の位置につけています。「14倍小さくて同等精度」というのが PrismML の主張です。

現時点のベンチマークは PrismML 自身が公表した数値が中心で、独立した評価プラットフォームでの検証はまだ限定的です。導入前に自分のユースケースで品質を確認することをおすすめします。

セットアップ — まず動かす

注意:通常の llama.cpp / Ollama / LM Studio では動かない

Bonsai は特殊な 1-bit フォーマットを使うため、専用の推論カーネルが必要です。2026年7月時点では、通常の llama.cpp・Ollama・LM Studio はまだ対応しておらず、PrismML の llama.cpp フォークか公式デモリポジトリを使う必要があります。ここが最初のつまずきポイントです。

公式デモリポジトリ(Bonsai-demo)を使う

いちばん簡単なのは、公式の Bonsai-demo リポジトリです。setup.sh が依存関係のインストール・モデルのダウンロード・バイナリの取得までまとめて行ってくれます。

# macOS / Linux
git clone https://github.com/PrismML-Eng/Bonsai-demo.git
cd Bonsai-demo
./setup.sh
# Windows (PowerShell)
git clone https://github.com/PrismML-Eng/Bonsai-demo.git
cd Bonsai-demo
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup.ps1

モデルファミリーとサイズは環境変数で切り替えます。

環境変数 値 意味
BONSAI_FAMILY ternary(デフォルト) / bonsai 1.58-bit 版か 1-bit 版か
BONSAI_MODEL 27B(デフォルト) / 8B / 4B / 1.7B モデルサイズ
BONSAI_TOKEN Hugging Face のリードトークン 27B(非公開リポジトリ)に必要

プロンプトを投げてみる

# llama.cpp 経由で1回だけ推論(Mac / Linux)
./scripts/run_llama.sh -p "日本の首都はどこですか?"

# サイズを変えて実行
BONSAI_MODEL=8B ./scripts/run_llama.sh -p "1-bit LLM の利点を3つ挙げてください"

Apple Silicon の Mac なら MLX 版も使えます。

source .venv/bin/activate
./scripts/run_mlx.sh -p "こんにちは"

対応バックエンドは Mac(Metal)、Linux / Windows(CUDA・Vulkan・ROCm)、そして CPU です。実測では GPU なしの Windows PC(CPU のみ)で約 11〜12 トークン/秒、Vulkan 経由の内蔵 GPU で 14〜15 トークン/秒という報告があり、チャット用途なら十分な速度が出ます。

活用法 1 — ローカルチャット・要約・文書処理

Bonsai 8B の本命の用途は、「速いローカル応答が遅い API 呼び出しに勝つ」タイプの日常タスクです。PrismML 自身も、チャット・要約・文書検索であれば 8B が「デイリードライバーとして実用」と位置づけています。

チャットサーバーを立ち上げると、ブラウザから Web UI で使えます。

# http://localhost:8080 で Web チャット UI が起動
./scripts/start_llama_server.sh

# 軽くしたい場合は 4B に切り替え
BONSAI_MODEL=4B ./scripts/start_llama_server.sh

日本語もかなり自然で、「私は PrismML が開発した AI アシスタント Bonsai です」と自己認識する程度にはインストラクションチューニングが効いています。以下のような用途は 8B で実用ラインです。

  • 議事録・記事の要約
  • メールや文章の下書き・リライト
  • 機密文書をクラウドに出さずに扱うローカル RAG の生成部
  • ネットワークが使えないオフライン環境での相棒

活用法 2 — OpenAI 互換 API でアプリに組み込む

start_llama_server.sh が立ち上げるサーバーは OpenAI 互換 API を提供します。つまり、既存の OpenAI SDK のコードの向き先を変えるだけで、自作アプリの推論エンジンを Bonsai に差し替えられます。

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8080/v1",
    api_key="dummy",  # ローカルサーバーなので任意の文字列で OK
)

response = client.chat.completions.create(
    model="bonsai-8b",
    messages=[
        {"role": "user", "content": "この文章を3行で要約してください。\n\n(本文)"},
    ],
)

print(response.choices[0].message.content)

API コストがゼロ・レイテンシが小さい・データが外に出ない、という3点がそろうので、次のような組み込みに向いています。

  • 社内ツールの要約・分類・タグ付けなどの高頻度・低単価タスク
  • クラウド LLM の前段に置くルーター / 前処理(簡単な質問はローカルで完結させる)
  • SaaS のコスト削減のためのフォールバック先

活用法 3 — ツール呼び出し・MCP 連携

27B モデル(および Ternary-Bonsai 27B)は OpenAI スタイルの Function Calling をネイティブサポートしており、MCP サーバーとの連携や、Open WebUI + コードインタープリタを組み合わせたエージェントデモも公式に用意されています。

  • 画像入力: 27B はチャット UI・API 経由で画像を受け付ける
  • ツール呼び出し: OpenAI 形式のツール定義がそのまま使える
  • 推論モード: 会話ごとに reasoning effort を調整可能
  • 最大 262,144 トークンのロングコンテキスト(27B)

27B でも推定ピークメモリは **約 5.2GiB(10K コンテキスト時)〜 14.4GiB(Ternary 27B・100K コンテキスト時)**と、一般的なノート PC のメモリに収まる範囲です。「ローカルで完結する小さなエージェント」を組む土台として現実的なラインに入ってきました。

活用法 4 — コーディングエージェントのバックエンド(現状は厳しい)

OpenAI 互換 API があるので、Claude Code や Aider のバックエンドに Bonsai を指定すること自体は可能です。ただし、実際に試した検証記事では現時点では実用的とは言い難いという結果が出ています。

  • Claude Code はトークン消費量が膨大で、Bonsai 8B の生成速度ではエージェントループが回りきらない
  • Aider は比較的軽量で「まだマシ」だが、直接 API を呼ぶ場合と比べて明確な優位はない

検証者の結論は「Bonsai はエージェントの頭脳ではなく、API を直接叩く用途の軽量エンジンとして使うのが正解」というものです。エージェント用途は 27B + ツール呼び出しの成熟や、今後のモデル強化を待つ段階と言えます。

現時点の制約と注意点

  • エコシステム未対応: LM Studio や通常の Ollama はまだ 1-bit フォーマット非対応。PrismML フォークのビルドが必要(Ollama にモデルを pull すること自体はできても実行できない)
  • ベンチマークは自社公表中心: 独立検証はこれから。特に日本語の込み入ったタスクは要事前確認
  • 小さいサイズには注意: 1.7B は品質面で用途を選ぶという報告が多く、まず 8B から試すのが無難
  • ファインチューニング: 1-bit 形式ゆえに既存のチューニングツールチェーンがそのまま使えず、コミュニティで検証が進んでいる段階

Ternary Bonsai — 1.58-bit という現実解

4月16日に追加された Ternary Bonsai は、重みを -1 / 0 / +1 の3値(1.58-bit)にすることで、わずかなサイズ増と引き換えに 1-bit 版より品質を高めたファミリーです。公式デモのデフォルトがすでに Ternary になっており、「品質の Ternary、極小の 1-bit」という住み分けが進みそうです。メモリ 8GB クラスのマシンや iPhone での動作報告もあり、エッジデバイスへの本格展開はこちらが本命と見られます。

Bonsai 8B をローカルで確認した最小検証

ここでは、Bonsai 8B の 1 回ずつの短い CLI スモーク実行と、ロード済みローカルサーバーへの 1 回の API 試行を記録します。比較ベンチマークや品質評価ではなく、同じ短い日本語プロンプトがこの構成で動いたことを確認するための記録です。

実行条件

項目 値
実施日 2026-09-06(JST)
OS macOS 26.6.2、arm64
端末 Apple M2 Pro、物理メモリ 32 GB
GPU Apple M2 Pro、19 コア、Metal 4
モデル Bonsai-8B-Q1_0.gguf
モデル形式 GGUF Q1_0
モデルファイルサイズ 1,158,654,496 bytes
モデルファイル SHA-256 284a335aa3fb2ced3b1b01fcb40b08aa783e3b70832767f0dd2e3fdfa134bd54
モデルリポジトリ / revision prism-ml/Bonsai-8B-gguf / 48516770dd04643643e9f9019a2a349cf26c5dbd
デモリポジトリ / revision PrismML-Eng/Bonsai-demo / 4d4df0f6a7467d03bfb3014964912d3bd6618ae9
runtime Prism llama.cpp 0.2.0-dev、build 10660、commit e311ed38f
context 4096
GPU 指定 -ngl 99 を要求。実際に offload された層数はログで確認していない。
CLI threads 指定なし。runtime の既定値 -1(自動)。実際の thread 数は未確認。
seed 42
sampling temperature 0.5、top-p 0.85、top-k 20、min-p 0
reasoning budget 0、format none

再現するときは、公式の Bonsai-demo で 1-bit ファミリーと 8B を指定します。環境やランタイムの更新により同じ値になるとは限りません。

git clone https://github.com/PrismML-Eng/Bonsai-demo.git
cd Bonsai-demo
git checkout 4d4df0f6a7467d03bfb3014964912d3bd6618ae9

BONSAI_FAMILY=bonsai BONSAI_MODEL=8B \
  BONSAI_SKIP_MLX=1 BONSAI_OPENWEBUI=0 BONSAI_CODE_INTERPRETER=0 \
  ./setup.sh

BONSAI_FAMILY=bonsai BONSAI_MODEL=8B BONSAI_SKIP_MLX=1 \
  BONSAI_CTX=4096 BONSAI_NGL=99 \
  ./scripts/run_llama.sh \
  -p '「1-bit量子化」の意味を日本語で二文で説明してください。' \
  -n 64 --seed 42 -st --simple-io --no-display-prompt --perf --no-warmup

shasum -a 256 models/gguf/8B/Bonsai-8B-Q1_0.gguf

観測した入出力

入力は「1-bit量子化」の意味を日本語で二文で説明するよう求める一文です。2 回の短いスモークで、次の同一の出力を得ました。

「1-bit量子化」は、データを2つの可能値(通常は0と1)のみで表現する量子化手法です。これは、精度を極めて低いながらも計算を効率化する方法です。

後半の「精度を極めて低いながらも」は不自然な表現です。この一例だけで日本語が自然、または特定用途で実用的とは結論づけません。

モデルの説明にある Bonsai 固有の「重みが ±1」という話と、出力文中の「通常は0と1」は混同しないでください。今回使った Q1_0 GGUF は推論用ファイル形式であり、生成文は一般的な二値量子化を説明しようとした一例です。この出力から Bonsai の重み表現を検証したことにはなりません。

2 回の CLI スモーク結果

実行 prompt 処理速度 生成速度 経過時間 最大 RSS
主測定 276.0 tok/s 67.5 tok/s 2.63 s 1,881,047,040 bytes
再実行 304.3 tok/s 68.3 tok/s 2.18 s 1,891,385,344 bytes

速度は runtime の --perf 出力、経過時間と最大 RSS は /usr/bin/time -l で測定しました。この表は 2 回の単発実行を並べたもので、平均値、ばらつき、他の端末との比較を示すものではありません。CPU/GPU の使用状況、キャッシュ、OS の負荷、ランタイムの更新で値は変わります。

CLI では、実際の生成 token 数を確認していません。<think> の表示までの時間も記録しましたが、テンプレート由来か最初の生成 token かを切り分けられていません。したがって、CLI の初表示までの数値を性能指標として掲載しません。

ロード済みサーバーへの 1 回の API 試行

同じモデルと prompt、sampling、seed、生成上限を使い、モデルを読み込み済みのローカル HTTP サーバーへ 1 回だけ streaming リクエストを送った結果です。リクエスト開始から最初の空でない choices[].delta.content までを測定しました。モデル読込時間は含みません。

項目 値
最初の空でない delta.content まで 0.200 s
完了までの wall time 0.950 s
usage: prompt / completion / total tokens 32 / 51 / 83
サーバーの prompt 処理速度 169.28 tok/s
サーバーの生成速度 66.73 tok/s

最初の空でない断片には <think> と日本語本文の先頭が含まれていました。この計測は本文の最初の日本語文字だけを切り出した TTFT ではありません。51 completion tokens もこの API 試行だけの usage であり、上の CLI 2 回の実際の生成 token 数を示すものではありません。

この検証の限界

  • 同じプロンプト・seed による 2 回の短い CLI 実行と、ロード済みサーバーへの 1 回の API 試行だけであり、反復ベンチマークではない。
  • 日本語の品質、事実性、長文、ツール呼び出し、画像入力は評価していない。
  • 消費電力、温度、実際の GPU offload 層数、MLX runtime は確認していない。
  • 端末や runtime が変わる場合は、モデル、コマンド、測定方法を記録して改めて確認する。

実測に使った資料

まとめ

  • Bonsai は PrismML が2026年3月末に公開した、スクラッチから 1-bit で学習された初の商用実用 LLM ファミリー(1.7B / 4B / 8B / 27B、Apache 2.0)
  • 8B が 1.15GB・必要メモリ約 1.5GB。GPU なし CPU でも 11〜12 トークン/秒で動く
  • 現時点のベストな使いどころは、ローカルチャット・要約・文書処理と、OpenAI 互換 API 経由でのアプリ組み込み
  • 27B は画像入力・Function Calling・MCP 連携・262K コンテキストに対応し、ローカルエージェントの土台になりうる
  • Claude Code / Aider などコーディングエージェントの頭脳としては現状は力不足。「API を直接叩く軽量エンジン」として使うのが正解
  • 通常の llama.cpp / Ollama / LM Studio は未対応のため、公式の Bonsai-demo か PrismML フォークを使う

「推論に GPU はほぼ不要になる」という評まで出ている Bonsai。まずは手元のノート PC で setup.sh を叩いて、1-bit LLM の速度を体感してみてください。

参考

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?