huggingface/optimum-benchmark

🏋️ A unified multi-backend utility for benchmarking Transformers, Timm, PEFT, Diffusers and Sentence-Transformers with full support of Optimum's hardware optimizations & quantization schemes.

What is Optimum‑Benchmark?

Optimum‑Benchmark は、さまざまなハードウェアバックエンド上で Hugging Face モデルの実行速度と効率を測定できる Python ライブラリです。主なモデルファミリー(Transformers、Diffusers、PEFT、TIMM など)と幅広いランタイム(PyTorch、ONNX Runtime、OpenVINO、vLLM、TensorRT‑LLM、IPEX、Llama‑Cpp、Py‑TXI など)をサポートしており、CPU、GPU、AMD ROCm、Intel XPU、Habana Gaudi など、さまざまな物理ハードウェア上で動作します。

このツールは 推論(レイテンシ、スループット、メモリ、エネルギー)および 学習(同じメトリクスに加えてデータセット形状の制御)のベンチマークを実行できます。単一プロセスモード、torchrun を用いた分散実行、またはシンプルな Hydra ベースの CLI で動作します。結果は JSON、Markdown、プレーンテキスト形式で保存され、共有のために Hugging Face Hub にプッシュ可能です。


誰が使うべきか?

  • 同じモデルで競合製品と自社チップを比較したい ハードウェアベンダー
  • デプロイ前に特定のバックエンドでのレイテンシ、メモリ使用量、エネルギー消費を把握したい モデル開発者 / 研究者
  • Optimum エコシステムが提供する量子化、プルーニング、その他の最適化の影響を評価したい MLエンジニア
  • 再現可能でカスタマイズ可能な実行と、デバイス、バックエンド、モデルバリアントのスイープが可能な ベンチマーク愛好家

コアコンセプト

コンセプト 意味
Launcher ベンチマークプロセスの起動方法 – process(隔離)、torchrun(分散)、inline(デバッグ専用)。
Scenario 測定対象 – inference(フォワード / 生成)または training(トレーナーループ)。
Backend 実際のモデル実行を行うランタイム – 例:pytorchonnxruntimevllmopenvinotensorrt‑llm など。
Device 物理的なハードウェアターゲット – cpucudarocmgpuxpuhpu など。
Config Hydra互換の YAML ファイル(または Python オブジェクト)で、3つの要素を結びつけ、バッチサイズ、入力形状、ウォームアップ実行、エネルギー追跡などのパラメータを調整可能。

使い始め方

  1. インストール – ライブラリは PyPI にあります。最も簡単な方法は pip install optimum-benchmark または、高速な uv マネージャーを使うなら uv add optimum-benchmark です。
  2. バックエンドの選択 – 必要なランタイム用のオプショナルエクストラをインストールします。例:pip install optimum-benchmark[onnxruntime] または uv add optimum-benchmark --extra vllm
  3. ベンチマークの実行 – 以下のいずれかで実行します:
    • Python APIBenchmarkConfig を作成し、TorchrunConfigInferenceConfig(または TrainingConfig)およびバックエンド設定(例:PyTorchConfig(model="gpt2", device="cuda"))を指定。Benchmark.launch(config) を呼び出し、返された BenchmarkReport を確認します。
    • CLIoptimum-benchmark --config-dir examples/ --config-name cuda_pytorch_bert--multirun を使って値のスイープ(例:backend.device=cpu,cuda)が可能です。
  4. 結果の確認 – 実行により複数のファイル(benchmark_report.json.md.txt など)が出力され、必要に応じて Hugging Face Hub にプッシュできます。

なぜ有用なのか?

  • 数十ものバックエンドとデバイスで一貫したインターフェースを提供するため、各ランタイム用に別々のスクリプトを書く必要がありません。
  • 高精度なメトリクス – レイテンシ、スループット、メモリ使用量、および codecarbon 統合によるオプションのエネルギー追跡。
  • 再現性 – Hydra 設定、Docker イメージ(cpucudarocm)および CI テストにより、同じベンチマークをどこでも再実行可能。
  • 拡張性 – 提供された設定クラスを継承することで、新しいバックエンド、ランチャーやカスタムメトリクスを追加できます。

詳細情報の入手先

  • 上記の README にはクイックスタートコマンドと、サポートされているバックエンドの完全リストが記載されています。
  • 例の設定ファイルはリポジトリの examples/ ディレクトリにあります。
  • ライブラリの APIドキュメントoptimum_benchmark パッケージから生成され、インストール後に確認できます。
  • コミュニティ主導のパフォーマンス比較については、Hugging Face Hub でホストされている LLM‑Perf Leaderboard をご参照ください。

TL;DR

Optimum‑Benchmark は Hugging Face がメンテナンスする、トランスフォーマー系モデル向けのマルチバックエンドベンチマークスイートです。インストールしてバックエンド/デバイスを選択し、Hydra 設定を定義する(または Python API を使う)ことで、詳細なレイテンシ/メモリ/エネルギー報告を得られます。これは、急速に進化する AI ハードウェア環境において、信頼性と再現性のあるパフォーマンス数値が必要なすべての人々を対象としています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト