mcpField
A
ais-bench

ais-bench

github.com/ascend-ai-codingテスト・品質17864 回インストール2 週間前に更新
リポジトリ

ais-bench について

ais-benchは、Ascend NPU上のAIモデルを評価するOpenCompassベースのツールです。テキスト、マルチモーダル、複数ターン対話、関数呼び出しの精度と性能を測定できます。

主な機能

  1. 01精度と性能の評価
  2. 02テキスト・マルチモーダルベンチマーク
  3. 03レイテンシ、スループット、負荷テスト
  4. 04定常性能テストとトラフィック再現
  5. 05モデル・データセットの並列評価

活用シーン

  1. 01ローカルモデルとサービスモデルのQA性能比較
  2. 02推論サービスのレイテンシとスループット測定
  3. 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.csv
custom_meta_template.json
custom_multimodal_template.jsonl
custom_qa_template.jsonl
model_config_template.py
references/
cli-reference.md
model-configs.md
scripts/
check_env.sh
parse_results.py
run_accuracy_test.sh
run_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
例:サービスモデルの精度評価
  1. vLLM 推論サービスを起動します(vLLM のドキュメントに従ってください)

  2. データセットを準備します:

    • opencompass から GSM8K をダウンロードします
    • ais_bench/datasets/gsm8k/ に展開します
  3. モデル設定を変更します(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,
            )
        )
    ]
    
  4. 評価を実行します:

    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

トラブルシューティング

インストール時の問題
  1. Python のバージョン不一致:Python 3.10/3.11/3.12 を使用してください
  2. 依存関係の競合:conda 環境を使用してください
  3. bfcl_eval の pathlib の問題:--no-deps フラグを使用してください
実行時の問題
  1. モデルへの接続に失敗:host_ip、host_port、およびサービスの状態を確認してください
  2. データセットが見つからない:データセットを ais_bench/datasets/ にダウンロードしてください
  3. メモリの問題: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

参考資料

特定のユースケース向けの詳細なドキュメント:


テンプレート

カスタム評価ですぐに使えるテンプレート:

テンプレート説明
assets/model_config_template.pyモデル設定テンプレート
assets/custom_qa_template.jsonlQA データセットテンプレート
assets/custom_mcq_template.csv選択式データセットテンプレート
assets/custom_meta_template.jsonデータセットメタデータテンプレート

コメント