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.
什麼是 Optimum‑Benchmark?
Optimum‑Benchmark 是一個 Python 庫,可讓您在多種不同的硬體後端上測量 Hugging Face 模型的執行速度與效率。它支援主要的模型家族(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 | 實際執行模型的執行環境 – 例如 pytorch、onnxruntime、vllm、openvino、tensorrt‑llm 等。 |
| Device | 物理硬體目標 – cpu、cuda、rocm、gpu、xpu、hpu 等。 |
| Config | 一個 Hydra 相容的 YAML 檔案(或 Python 物件),將三者連結起來,並允許調整批次大小、輸入形狀、預熱執行、能源追蹤等參數。 |
如何開始
- 安裝 – 此庫在 PyPI 上。最簡單的方式是
pip install optimum-benchmark,或如果您偏好使用快速的uv管理器,則使用uv add optimum-benchmark。 - 選擇後端 – 安裝所需執行環境的可選擴充,例如
pip install optimum-benchmark[onnxruntime]或uv add optimum-benchmark --extra vllm。 - 執行基準測試 – 可選擇以下任一方式:
- Python API – 建立一個
BenchmarkConfig,包含TorchrunConfig、InferenceConfig(或TrainingConfig)以及後端設定(例如PyTorchConfig(model="gpt2", device="cuda"))。呼叫Benchmark.launch(config)並檢查回傳的BenchmarkReport。 - CLI –
optimum-benchmark --config-dir examples/ --config-name cuda_pytorch_bert。使用--multirun可對值進行掃描(例如backend.device=cpu,cuda)。
- Python API – 建立一個
- 檢查結果 – 執行會產生多個檔案(
benchmark_report.json、.md、.txt等),並可選擇性地推送到 Hugging Face Hub。
它為何有用?
- 提供跨數十個後端與設備的統一介面,無需為每個執行環境撰寫獨立腳本。
- 提供精確的指標 – 延遲、吞吐量、記憶體使用量,以及透過
codecarbon整合的可選能源追蹤。 - 可重現性 – 使用 Hydra 設定、Docker 映像(
cpu、cuda、rocm)與 CI 測試,確保相同基準測試可在任何地方重複執行。 - 可擴充性 – 透過擴展提供的設定類別,可新增後端、啟動器或自訂指標。
如何了解更多?
- 上述的 README 包含快速入門指令與受支援後端的完整清單。
- 範例設定檔位於倉儲的
examples/目錄中。 - 庫的 API 文件 由
optimum_benchmark套件生成,安裝後可檢視。 - 對於社群主導的效能比較,請參閱托管於 Hugging Face Hub 上的 LLM‑Perf Leaderboard。
TL;DR
Optimum‑Benchmark 是由 Hugging Face 維護的、用於 Transformer 風格模型的多後端基準測試套件。安裝它,選擇一個後端/設備,定義一個 Hydra 設定(或使用 Python API),執行基準測試,即可獲得可公開分享的詳細延遲/記憶體/能源報告。它適用於任何需要在快速演進的 AI 硬體環境中取得可靠、可重現性能數據的人。
相關
- 專案
- 專案
- 專案
- 專案