概要
Raspberry Pi 5台を使った 分散型LLM推論環境 のセットアップ例。 Qwen3_30B モデルを分散推論で実行。 ネットワーク構成 と主要なCLIコマンドの解説。 ベンチマーク結果 やトークン生成速度の紹介。 推論実行時のログ とパフォーマンス指標の記録。
分散型LLM推論環境のセットアップ概要
- デバイス構成 :Raspberry Pi 5(8GBモデル)を4台使用
- raspberrypi2(ROOT、10.0.0.2)
- raspberrypi1(WORKER 1、10.0.0.1)
- raspberrypi3(WORKER 2、10.0.0.3)
- raspberrypi4(WORKER 3、10.0.0.4)
- スイッチ :TP-Link LS1008Gで全台を接続
- モデル :Qwen3_30B(MoE構成、バージョン0.16.0)
- 実行コマンド例 :
./dllama inference --prompt "<|im_start|>user Please explain me where is Poland as I have 1 year<|im_end|> <|im_start|>assistant " --steps 128 --model models/qwen3_30b_a3b_q40/dllama_model_qwen3_30b_a3b_q40.m --tokenizer models/qwen3_30b_a3b_q40/dllama_tokenizer_qwen3_30b_a3b_q40.t --buffer-float-type q80 --nthreads 4 --max-seq-len 4096 --workers 10.0.0.1:9999 10.0.0.3:9999 10.0.0.4:9999
- 主なパラメータ :
--prompt:入力プロンプト--steps:推論ステップ数--model:モデルファイルパス--tokenizer:トークナイザファイルパス--workers:ワーカーノードのIPとポート指定
モデル・ネットワーク情報
- モデル詳細 :
- Arch: Qwen3 MoE
- HiddenAct: Silu
- Dim: 2048
- HeadDim: 128
- QDim: 4096
- KvDim: 512
- HiddenDim: 6144
- VocabSize: 151936
- nLayers: 48
- nHeads: 32
- nKvHeads: 4
- OrigSeqLen: 262144
- nExperts: 128
- nActiveExperts: 8
- MoeHiddenDim: 768
- SeqLen: 4096
- NormEpsilon: 0.000001
- RopeType: Falcon
- RopeTheta: 10000000
- RequiredMemory: 5513 MB
- ネットワーク接続 :
- 各ワーカーに対して ソケット接続 で分散推論を実現
- 非ブロッキングモードで通信最適化
ベンチマーク・パフォーマンス
- 推論速度 :
- 4台構成時:14.33 tok/s(評価時)、13.04 tok/s(生成時)
- 通信量 :
- 送信:12084 kB(評価)、636 kB(生成/トークン)
- 受信:20085 kB(評価)、1057 kB(生成/トークン)
- トークン生成のタイムスタンプ :
- 1トークンあたり約50~70ms
実行ログ・注意点
- トークナイザとモデルの語彙数不一致 の警告
- Tokenizer vocab size (151669) does not match the model vocab size (151936)
- 各種ID :
- BosId: 151643
- EosId: 151645
- SpecialVocabSize: 26
- 推論開始から終了までのネットワーク・メモリ・CPU情報 の表示
- ネットワーク終了時 に正常にクローズされることを確認
分散推論環境構築のポイント
- Raspberry Pi 5の分散利用 で大規模なLLMモデルの推論が可能
- ネットワーク帯域とメモリ要件 に注意
- CLIコマンドで柔軟なプロンプト・モデル指定 が可能
- 推論速度と通信量のバランス が重要
- 分散推論のログ解析 でボトルネックや最適化ポイントを特定