ais-bench について
ais-benchは、Ascend NPU上のAIモデルを評価するOpenCompassベースのツールです。テキスト、マルチモーダル、複数ターン対話、関数呼び出しの精度と性能を測定できます。
主な機能
- 01精度と性能の評価
- 02テキスト・マルチモーダルベンチマーク
- 03レイテンシ、スループット、負荷テスト
- 04定常性能テストとトラフィック再現
- 05モデル・データセットの並列評価
活用シーン
- 01ローカルモデルとサービスモデルのQA性能比較
- 02推論サービスのレイテンシとスループット測定
- 03実際の業務トラフィックを模した性能テスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ascend-ai-coding/ awesome-ascend-skills --skill ais-benchインストール後、Claude Code で/ais-benchを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/custom_mcq_template.csvcustom_meta_template.jsoncustom_multimodal_template.jsonlcustom_qa_template.jsonlmodel_config_template.pyreferences/cli-reference.mdmodel-configs.mdscripts/check_env.shparse_results.pyrun_accuracy_test.shrun_performance_test.sh詳細
AISBench ベンチマークツール
AISBench Benchmark は、OpenCompass をベースに構築されたモデル評価ツールです。Ascend NPU 上での AI モデルの精度テストと性能テストの両方の評価シナリオに対応しています。
概要
- 精度評価:さまざまな QA および推論ベンチマークデータセットを使用して、サービスにデプロイされたモデルとローカルモデルの精度を検証します。テキスト、マルチモーダルなどのシナリオに対応しています。
- 性能評価:サービスにデプロイされたモデルのレイテンシとスループットを評価し、ストレステストシナリオで極限性能をテストします。定常状態の性能評価や、実際の業務トラフィックのシミュレーションにも対応しています。
対応シナリオ
| シナリオ | 説明 |
|---|---|
| 精度評価 | テキスト/マルチモーダルデータセットでのモデル精度 |
| 性能評価 | レイテンシ、スループット、ストレステスト |
| 定常状態性能 | システムの真の最適性能を取得 |
| 実トラフィックシミュレーション | 実際の業務トラフィックパターンをシミュレーション |
| マルチターン対話 | マルチターン会話モデルを評価 |
| 関数呼び出し(BFCL) | 関数呼び出し機能を評価 |
対応ベンチマーク
- テキスト:GSM8K、MMLU、Ceval、FewCLUE シリーズ、dapo_math、leval
- マルチモーダル:docvqa、infovqa、ocrbench_v2、omn idocbench、mmmu、mmmu_pro、mmstar、videomme、textvqa、videobench、vocalsound
- マルチターン対話:sharegpt、mtbench
- 関数呼び出し:BFCL(Berkeley Function Calling Leaderboard)
インストール
環境要件
Python バージョン:Python 3.10、3.11、または 3.12 のみサポートしています。
# Create conda environment
conda create --name ais_bench python=3.10 -y
conda activate ais_bench
ソースからインストール
git clone https://github.com/AISBench/benchmark.git
cd benchmark/
pip3 install -e ./ --use-pep517
インストールを確認します:
ais_bench -h
オプションの依存関係
# For service-deployed model evaluation (vLLM, Triton, etc.)
pip3 install -r requirements/api.txt
pip3 install -r requirements/extra.txt
# For Huggingface multimodal / vLLM offline inference
pip3 install -r requirements/hf_vl_dependency.txt
# For BFCL Function Calling evaluation
pip3 install -r requirements/datasets/bfcl_dependencies.txt --no-deps
クイックスタート
基本的なコマンド構成
ais_bench --models <model_task> --datasets <dataset_task> [--summarizer example]
--models:モデルタスクの設定を指定します--datasets:データセットタスクの設定を指定します--summarizer:結果表示タスク(デフォルト:example)
設定ファイルを探す
# List all available task configurations
ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt --search
例:サービスモデルの精度評価
-
vLLM 推論サービスを起動します(vLLM のドキュメントに従ってください)
-
データセットを準備します:
- opencompass から GSM8K をダウンロードします
ais_bench/datasets/gsm8k/に展開します
-
モデル設定を変更します(
vllm_api_general_chat.py):from ais_bench.benchmark.models import VLLMCustomAPIChat models = [ dict( attr="service", type=VLLMCustomAPIChat, abbr='vllm-api-general-chat', path="", model="", stream=False, request_rate=0, retry=2, api_key="", host_ip="localhost", host_port=8080, url="", max_out_len=512, batch_size=1, trust_remote_code=False, generation_kwargs=dict( temperature=0.01, ignore_eos=False, ) ) ] -
評価を実行します:
ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt
出力結果
dataset version metric mode vllm_api_general_chat
----------------------- -------- -------- ----- ----------------------
demo_gsm8k 401e4c accuracy gen 62.50
モデルタスクの種類
サービスにデプロイされたモデル
| モデルタイプ | 説明 |
|---|---|
vllm_api_general_chat | 汎用 vLLM API チャットモデル |
vllm_api_function_call_chat | 関数呼び出しモデル(BFCL) |
triton_api_* | Triton 推論サービス |
ローカルモデル
| モデルタイプ | 説明 |
|---|---|
hf_* | HuggingFace モデル |
vllm_offline_* | vLLM オフライン推論 |
性能評価
主な指標
| 指標 | 説明 |
|---|---|
| TTFT | 最初のトークンが出力されるまでの時間 |
| TPOT | 出力トークンあたりの時間 |
| スループット | 1 秒あたりのトークン数 |
| レイテンシ | リクエストのレイテンシ(P50、P90、P99) |
性能テストの例
ais_bench --models vllm_api_general_chat --datasets custom_performance \
--mode performance --concurrency 100
定常状態性能
システムの真の最適性能を取得するには:
ais_bench --models vllm_api_general_chat --datasets sharegpt \
--stable-stage --duration 300
実トラフィックシミュレーション
ais_bench --models vllm_api_general_chat --datasets custom \
--rps-distribution rps_config.json
マルチタスク評価
複数のモデル
ais_bench --models model1 model2 model3 --datasets dataset1
複数のデータセット
ais_bench --models model1 --datasets dataset1 dataset2 dataset3
並列実行
ais_bench --models model1 model2 --datasets dataset1 dataset2 --parallel 4
カスタムデータセット
性能評価用カスタムデータセット
カスタムリクエストを含む JSONL ファイルを作成します:
{"input": "Your prompt here", "max_output_length": 512}
精度評価用カスタムデータセット
カスタムデータセットガイドを参照してください
出力構成
outputs/default/20250628_151326/
├── configs/ # Combined configuration
├── logs/ # Execution logs
│ ├── eval/ # Evaluation logs
│ └── infer/ # Inference logs
├── predictions/ # Raw inference results
├── results/ # Calculated scores
└── summary/ # Final summaries
├── summary_*.csv
├── summary_*.md
└── summary_*.txt
タスク管理インターフェース
実行中は、リアルタイムのタスク管理インターフェースに次の情報が表示されます:
- タスク名と進捗状況
- 所要時間とステータス
- ログのパス
- 拡張パラメーター
操作方法:
Pキー:画面更新を一時停止/再開Ctrl+C:終了
一般的な CLI オプション
| オプション | 説明 |
|---|---|
--models | モデルのタスク名 |
--datasets | データセットのタスク名 |
--summarizer | 結果の要約ツール |
--search | 設定ファイルのパスを一覧表示 |
--debug | 詳細なログを出力 |
--mode | 評価モード(accuracy/performance) |
--parallel | 並列タスク数 |
--resume | ブレークポイントから再開 |
--failed-only | 失敗したケースのみ再実行 |
高度な機能
ブレークポイントからの再開
ais_bench --models model1 --datasets dataset1 --resume outputs/default/20250628_151326
失敗したケースの再実行
ais_bench --models model1 --datasets dataset1 --failed-only --resume outputs/default/20250628_151326
複数ファイルのデータセットのマージ
MMLU のように複数のファイルがあるデータセットの場合:
ais_bench --models model1 --datasets mmlu_merged
pass@k のための推論の繰り返し実行
ais_bench --models model1 --datasets dataset1 --repeat-n 5
トラブルシューティング
インストール時の問題
- Python のバージョン不一致:Python 3.10/3.11/3.12 を使用してください
- 依存関係の競合:conda 環境を使用してください
- bfcl_eval の pathlib の問題:
--no-depsフラグを使用してください
実行時の問題
- モデルへの接続に失敗:
host_ip、host_port、およびサービスの状態を確認してください - データセットが見つからない:データセットを
ais_bench/datasets/にダウンロードしてください - メモリの問題:
batch_sizeを減らすか、より小さなデータセットを使用してください
ヘルパースクリプト
よく使う操作のための便利なスクリプト:
| スクリプト | 説明 |
|---|---|
| scripts/check_env.sh | 環境設定を確認 |
| scripts/run_accuracy_test.sh | 精度テストをすばやく実行 |
| scripts/run_performance_test.sh | パフォーマンステストをすばやく実行 |
| scripts/parse_results.py | 結果を解析して要約 |
# Check environment
bash scripts/check_env.sh
# Quick accuracy test
bash scripts/run_accuracy_test.sh vllm_api_general_chat demo_gsm8k --host-port 8080
# Quick performance test
bash scripts/run_performance_test.sh vllm_api_general_chat sharegpt --concurrency 100
# Parse results
python scripts/parse_results.py outputs/default/20250628_151326
参考資料
特定のユースケース向けの詳細なドキュメント:
- モデル設定リファレンス:各種モデル(vLLM、MindIE、Triton、TGI、オフライン)とパラメーターの説明
- CLI リファレンス:精度評価とパフォーマンス評価の CLI オプション全般
テンプレート
カスタム評価ですぐに使えるテンプレート:
| テンプレート | 説明 |
|---|---|
| assets/model_config_template.py | モデル設定テンプレート |
| assets/custom_qa_template.jsonl | QA データセットテンプレート |
| assets/custom_mcq_template.csv | 選択式データセットテンプレート |
| assets/custom_meta_template.json | データセットメタデータテンプレート |
コメント
Markdown 対応