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 は大幅なパフォーマンス向上とコスト最適化を提供できます。