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 实际执行模型的运行时 – 例如 pytorchonnxruntimevllmopenvinotensorrt‑llm 等。
Device 物理硬件目标 – cpucudarocmgpuxpuhpu 等。
Config 一个 Hydra 兼容的 YAML 文件(或 Python 对象),将三者连接起来,并允许调整批大小、输入形状、预热运行、能耗跟踪等参数。

如何开始

  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 API – 创建一个 BenchmarkConfig,包含 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 维护的、用于 Transformer 风格模型的多后端基准测试套件。安装它,选择一个后端/设备,定义一个 Hydra 配置(或使用 Python API),运行基准测试,即可获得可公开共享的详细延迟/内存/能耗报告。它适用于任何需要在快速演进的 AI 硬件环境中获得可靠、可复现性能数据的人。

相关

  • 项目
  • 项目
  • 项目
  • 项目