0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LLM 1.58bit BonsaiをROCmで動かす

0
Posted at

Ternary Bonsai 8B セットアップメモ (NucBox EVO X2 / ROCm)

Prism ML の 1.58-bit 三値量子化モデル Ternary-Bonsai-8B を、Ryzen AI MAX+ 395 (gfx1151) 環境の NucBox EVO X2 で動かしたときの作業記録。

環境

項目 内容
マシン GMKtec NucBox EVO X2
CPU/iGPU AMD Ryzen AI MAX+ 395 (gfx1151)
VRAM 49,152 MiB
OS Ubuntu 24.04
ROCm 7.2.1 (--no-dkms + OEM kernel)

1. モデルのダウンロード

Hugging Face リポジトリ: https://huggingface.co/prism-ml/Ternary-Bonsai-8B-gguf

huggingface-cli で取得 (推奨は Q2_0 版、約 2 GiB):

pip install huggingface_hub
huggingface-cli download prism-ml/Ternary-Bonsai-8B-gguf \
  Ternary-Bonsai-8B-Q2_0.gguf \
  --local-dir ~/ternary-bonsai

wget でも可:

wget https://huggingface.co/prism-ml/Ternary-Bonsai-8B-gguf/resolve/main/Ternary-Bonsai-8B-Q2_0.gguf
ファイル フォーマット サイズ 用途
Ternary-Bonsai-8B-Q2_0.gguf Q2_0 (g128) 2.03 GiB 推奨 (三値ロスレス)
Ternary-Bonsai-8B-F16.gguf FP16 16.38 GB ベースライン / 再量子化用

2. llama.cpp (Prism フォーク) のビルド

注意: mainline の llama.cpp は Q2_0 (ggml type 42) を未サポート。必ず Prism フォークを使うこと。
旧 Bonsai 用のビルドを流用すると invalid ggml type 42 でロード失敗する。

# 旧ビルドが残っている場合は退避
mv ~/llama.cpp ~/llama.cpp-old-bonsai

# 最新の Prism フォークを取得
cd ~
git clone https://github.com/PrismML-Eng/llama.cpp
cd llama.cpp

# ROCm/HIP でビルド (gfx1151 を明示)
cmake -S . -B build \
  -DGGML_HIP=ON \
  -DAMDGPU_TARGETS=gfx1151 \
  -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j

3. 実行 (CLI)

export HSA_OVERRIDE_GFX_VERSION=11.5.1

~/llama.cpp/build/bin/llama-cli \
  -m ~/ternary-bonsai/Ternary-Bonsai-8B-Q2_0.gguf \
  -p "Hello" \
  -n 100 \
  -ngl 99 \
  -fa 1
フラグ 意味
-ngl 99 全レイヤーを GPU にオフロード
-fa 1 Flash Attention 有効化
HSA_OVERRIDE_GFX_VERSION=11.5.1 gfx1151 を ROCm に認識させるための保険

4. 動作確認結果

Device 0: AMD Radeon Graphics, gfx1151 (0x1151), VRAM: 49152 MiB
[ Prompt: 299.1 t/s | Generation: 82.2 t/s ]
項目
プロンプト処理 299.1 tok/s
生成スループット 82.2 tok/s
モデル VRAM 使用量 1,918 MiB
コンテキスト 9,216 MiB
全体 VRAM 使用量 約 5.6 GB / 49 GB

参考: モデルカードの Apple M4 Pro (Metal) は 76 tok/s。NucBox の iGPU が上回るスコア

5. サーバーモード (VOICEVOX / WhisperX 連携用)

OpenAI 互換 API として起動:

export HSA_OVERRIDE_GFX_VERSION=11.5.1

~/llama.cpp/build/bin/llama-server \
  -m ~/ternary-bonsai/Ternary-Bonsai-8B-Q2_0.gguf \
  -ngl 99 \
  -fa 1 \
  -c 8192 \
  --host 0.0.0.0 \
  --port 8080

エンドポイント: http://localhost:8080/v1/chat/completions

ずんだもんデモパイプラインの llama.cpp (HSA_OVERRIDE_GFX_VERSION=11.5.1 + Qwen3.6) と差し替え可能。

6. トラブルシューティング

invalid ggml type 42 エラー

gguf_init_from_file_ptr: tensor 'output.weight' has invalid ggml type 42. should be in [0, 41)

→ 旧 llama.cpp で実行している。Prism フォークの最新版 (prism ブランチ) で再ビルドする。

Q2_0 サポート確認

grep -r "GGML_TYPE_Q2_0\|Q2_0" ~/llama.cpp/ggml/src/ | head

ヒットがあれば対応済み。

参考リンク

メモ

  • Bonsai は自己紹介で「1-bit AI assistant」と答えるが、実体は 1.58-bit (三値 {-1, 0, +1})
  • ベース: Qwen3-8B (32 query / 8 KV heads, 36 層, ctx 65,536)
  • ベンチ平均 75.5 で Qwen3-8B (79.3) に肉薄しつつサイズは 1/8
  • VRAM に余裕があるので -c 32768 程度までコンテキスト拡張可能
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?