LLMベンチマーク・評価パイプラインの自動化

✅ 検証済み | 技術 | 優先度:🟠 高

シリーズ: AI・IT実践シリーズ


目的(ゴール)

異なるハードウェアアーキテクチャ(AMD ROCm APU/dGPU・NVIDIA CUDA・Apple Metal・Arm CPU)での LLM 推論性能を一貫した条件で自動計測し、モデル・ハードウェア・コスト最適な配置戦略の根拠データを生成する。

アクター

  • 著者(Manabazu)
  • LLMベンチマークパイプライン
  • 評価データセット

開始条件(起動トリガー)

ベンチマーク対象ハードウェアが稼働中かつ Ollama(または llama.cpp)が導入されている。

事前条件

  • 対象モデルが各ノードにプル済み
  • ベンチマークスクリプト(node2-bench.sh 等)が配置済み

事後条件

全ハードウェアの gen tok/s・VRAM 使用量が一覧化され、アーキテクチャ別の性能比較表が出力される。

メインフロー

  1. 各ノードに対して bench_model() を呼び出し(Ollama /api/generate stream:false)
  2. prompt_eval_duration / eval_duration(ナノ秒)から tok/s を算出
  3. 3 run 平均を記録
  4. rocm-smi / nvidia-smi で VRAM・温度・消費電力を取得
  5. 全ノード結果を比較表に集約

代替フロー

  • Node1(Snapdragon X Plus / Windows): Ollama for Windows ARM(CPU 推論)
  • Node5(M1 Mac): Ollama for macOS(Metal 加速)

例外フロー

  • SSH タイムアウト: nohup + /tmp/bench_*.log ポーリング方式で対処
  • OOM: num_ctx を縮小して再実行(8192 → 4096)

備考

  • KV キャッシュヒット(2 run 目以降の prompt tok/s 膨張)は既知挙動;gen tok/s が一次指標
  • Qwen 3.5 系は "think":false を API トップレベルに付与してシンキングモード無効化
  • Node3 iGPU(Intel UHD 770, ~128MB)は GPU 推論非対応のため評価対象外

シナリオリスト

IDタイトル状態
S1アーキテクチャ別LLM性能ベースライン比較(Qwen 2.5 7B × 全ハードウェア)🔄 進行中

シナリオ記述

S1: アーキテクチャ別LLM性能ベースライン比較(Qwen 2.5 7B × 全ハードウェア)

目的: ラボ全ハードウェア環境を横断して同一モデルの推論速度を定量比較し、用途別の最適配置指針を得る。

対象モデル:

モデルOllama タグサイズ用途
Qwen 2.5 7B Instructqwen2.5:7b-instruct-q4_k_m~4.7GB汎用
Qwen 2.5 Coder 7B Instructqwen2.5-coder:7b-instruct-q4_k_m~4.7GBコーディング

評価ハードウェア(9構成):

#ノードGPU / 推論エンジンVRAMアーキテクチャ状態
1Node2 iGPURadeon 890M23.6GiBAMD ROCm gfx1150 (RDNA 3.5)✅ 完了(qwen3.5:9b 実績あり)
2Node2 dGPURX7900XTX24GBAMD ROCm gfx1100 (RDNA 3)✅ 完了(qwen3.5:9b 実績あり)
3Node3 RTX3060RTX306012GBNVIDIA CUDA sm_86 (Ampere)📋 予定
4Node3 RTX4060TiRTX4060Ti16GBNVIDIA CUDA sm_89 (Ada Lovelace)📋 予定
5Node3 RTX5070TiRTX5070Ti16GBNVIDIA CUDA sm_120 (Blackwell)📋 予定
6Node4Radeon 8060S~96GBAMD ROCm (統合メモリ)📋 予定
7Node1Snapdragon X Plus16GBCPU / llama.cpp📋 予定
8Node5M1 Mac16GBApple Metal📋 予定

ベンチマーク条件:

  • num_ctx: 8192(全環境統一)
  • runs: 3(平均を採用)
  • プロンプト: フィボナッチ数列 Python コード + 解説(和文・約100トークン)
  • 計測指標: prompt tok/s(プリフィル速度)・gen tok/s(生成速度)・VRAM 使用量

Node2 実績(参考・num_ctx=32768、qwen3.5:9b-q4_k_m):

環境prompt tok/sgen tok/s倍率
Node2 iGPU (Radeon 890M)107.513.31.0x
Node2 dGPU (RX7900XTX)370.368.35.1x

成果物:

  1. 各ノード用 bench スクリプト(node3-bench.sh, node4-bench.sh 等)
  2. 全ハードウェア横断 gen tok/s 比較表(Qwen 2.5 7B / Coder 7B 両モデル)
  3. LabLog(50_Lab_Logs/YYYYMMDD-UC260413-005-アーキテクチャ別LLM性能比較.md

実行順序(推奨):

  1. Node4(Radeon 8060S 96GB ROCm)— Ollama 稼働中、即実行可能
  2. Node3 RTX3060/4060Ti/5070Ti — CUDA 環境確認後
  3. Node1(Snapdragon X Plus、Ollama for Windows ARM)
  4. Node5(M1 Mac、Ollama for macOS Metal)

対応リスク

ユースケース一覧に戻る