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 都能提供顯著的性能提升和成本優化。