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 硬件环境中获得可靠、可复现性能数据的人。
相关
- 项目
- 项目
- 项目
- 项目