Home
Login

为Transformers、Diffusers、TIMM和Sentence Transformers提供硬件优化工具的加速推理和训练库

Apache-2.0Python 2.9khuggingface Last Updated: 2025-06-19

Hugging Face Optimum 项目详细介绍

项目概述

🤗 Optimum 是 Hugging Face 推出的一个专业机器学习模型优化库,是 🤗 Transformers 和 Diffusers 的扩展工具。该项目专注于为各种目标硬件提供最大效率的模型训练和运行优化工具,同时保持易于使用的特点。

项目地址: https://github.com/huggingface/optimum

核心特性

1. 多硬件平台支持

Optimum 支持多种主流硬件加速平台:

  • ONNX/ONNX Runtime - 跨平台机器学习推理
  • ExecuTorch - PyTorch 边缘设备推理方案
  • TensorFlow Lite - 移动和边缘设备优化
  • OpenVINO - Intel 硬件优化
  • NVIDIA TensorRT-LLM - NVIDIA GPU 加速
  • AWS Trainium & Inferentia - AWS 专用芯片
  • Habana Gaudi - Habana 处理器
  • AMD Instinct GPUs - AMD 硬件支持
  • Intel Neural Compressor - Intel 神经网络压缩
  • FuriosaAI - FuriosaAI 硬件平台

2. 模型导出和优化

  • 格式转换:支持将 Transformers 和 Diffusers 模型导出为 ONNX、ExecuTorch、TensorFlow Lite 等格式
  • 图优化:自动进行模型计算图优化
  • 量化技术:提供多种量化方案降低模型大小和推理延迟
  • 性能调优:针对特定硬件进行性能优化

3. 训练加速

提供优化的训练封装器,支持:

  • Habana Gaudi 处理器训练
  • AWS Trainium 实例训练
  • ONNX Runtime GPU 优化训练

安装方式

基础安装

python -m pip install optimum

特定加速器安装

根据需要的硬件平台选择对应的安装命令:

# ONNX Runtime
pip install --upgrade --upgrade-strategy eager optimum[onnxruntime]

# ExecuTorch
pip install --upgrade --upgrade-strategy eager optimum[executorch]

# Intel Neural Compressor
pip install --upgrade --upgrade-strategy eager optimum[neural-compressor]

# OpenVINO
pip install --upgrade --upgrade-strategy eager optimum[openvino]

# NVIDIA TensorRT-LLM
docker run -it --gpus all --ipc host huggingface/optimum-nvidia

# AMD 硬件
pip install --upgrade --upgrade-strategy eager optimum[amd]

# AWS Trainium & Inferentia
pip install --upgrade --upgrade-strategy eager optimum[neuronx]

# Habana Gaudi
pip install --upgrade --upgrade-strategy eager optimum[habana]

# FuriosaAI
pip install --upgrade --upgrade-strategy eager optimum[furiosa]

从源码安装

python -m pip install git+https://github.com/huggingface/optimum.git

主要功能模块

1. 模型导出 (Export)

ONNX 导出示例:

# 安装依赖
pip install optimum[exporters,onnxruntime]

# 导出模型
optimum-cli export onnx --model bert-base-uncased --output ./bert-onnx/

ExecuTorch 导出:

# 安装依赖
pip install optimum[exporters-executorch]

# 导出模型用于边缘设备
optimum-cli export executorch --model distilbert-base-uncased --output ./distilbert-executorch/

TensorFlow Lite 导出:

# 安装依赖
pip install optimum[exporters-tf]

# 导出并量化
optimum-cli export tflite --model bert-base-uncased --output ./bert-tflite/

2. 推理优化

使用 ONNX Runtime 进行优化推理:

from optimum.onnxruntime import ORTModelForSequenceClassification
from transformers import AutoTokenizer

# 加载优化后的模型
model = ORTModelForSequenceClassification.from_pretrained("./bert-onnx/")
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

# 进行推理
inputs = tokenizer("Hello world!", return_tensors="pt")
outputs = model(**inputs)

3. 量化技术

支持多种量化方案:

  • 动态量化 - 运行时量化
  • 静态量化 - 基于校准数据的量化
  • QAT (Quantization Aware Training) - 量化感知训练

4. 训练优化

使用 Habana Gaudi 进行优化训练:

from optimum.habana import GaudiTrainer, GaudiTrainingArguments

# 配置训练参数
training_args = GaudiTrainingArguments(
    output_dir="./results",
    use_habana=True,
    use_lazy_mode=True,
    gaudi_config_name="Habana/bert-base-uncased"
)

# 创建优化训练器
trainer = GaudiTrainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
)

# 开始训练
trainer.train()

关键优势

1. 易用性

  • 统一接口:与 Transformers 库保持一致的 API 设计
  • 命令行工具:提供 optimum-cli 命令行工具简化操作
  • 自动优化:智能选择最优的优化策略

2. 性能提升

  • 推理加速:显著提升模型推理速度
  • 内存优化:减少内存占用
  • 能耗降低:优化能源消耗

3. 生产就绪

  • 稳定性:经过大量测试和验证
  • 可扩展性:支持大规模部署
  • 兼容性:与现有 Hugging Face 生态系统完美集成

应用场景

1. 边缘设备部署

  • 移动端 AI 应用
  • IoT 设备智能化
  • 嵌入式系统优化

2. 云端服务优化

  • 大规模 API 服务
  • 批量推理任务
  • 实时响应系统

3. 专用硬件加速

  • GPU 集群优化
  • TPU 加速
  • 专用 AI 芯片适配

社区生态

相关项目

  • optimum-intel - Intel 硬件专用优化
  • optimum-habana - Habana Gaudi 处理器支持
  • optimum-neuron - AWS Neuron 芯片支持
  • optimum-nvidia - NVIDIA 硬件优化
  • optimum-benchmark - 性能基准测试工具
  • optimum-quanto - PyTorch 量化后端

文档资源

技术架构

核心组件

  1. 导出器 (Exporters) - 负责模型格式转换
  2. 优化器 (Optimizers) - 执行各种优化策略
  3. 量化器 (Quantizers) - 实现模型量化
  4. 运行时 (Runtimes) - 提供优化的推理运行时
  5. 训练器 (Trainers) - 硬件优化的训练封装

设计原则

  • 模块化 - 各功能模块独立可组合
  • 可扩展 - 易于添加新的硬件支持
  • 向后兼容 - 保持与原有 API 的兼容性
  • 性能优先 - 以性能优化为核心目标

总结

Hugging Face Optimum 是一个功能强大、易于使用的机器学习模型优化工具库。它为开发者提供了将 AI 模型高效部署到各种硬件平台的完整解决方案,是现代 AI 应用开发和部署的重要工具。无论是边缘设备部署还是大规模云端服务,Optimum 都能提供显著的性能提升和成本优化。