🤗 Optimum は Hugging Face が提供する、専門的な機械学習モデル最適化ライブラリであり、🤗 Transformers と Diffusers の拡張ツールです。このプロジェクトは、使いやすさを維持しながら、さまざまなターゲットハードウェアに対して最大限の効率を実現するモデルのトレーニングおよび実行最適化ツールを提供することに重点を置いています。
プロジェクトアドレス: https://github.com/huggingface/optimum
Optimum は、さまざまな主要ハードウェアアクセラレーションプラットフォームをサポートしています。
最適化されたトレーニングラッパーを提供し、以下をサポートします。
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
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/
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)
さまざまな量子化スキームをサポートします。
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()
optimum-cli
コマンドラインツールを提供Hugging Face Optimum は、強力で使いやすい機械学習モデル最適化ツールライブラリです。開発者に、AI モデルをさまざまなハードウェアプラットフォームに効率的にデプロイするための完全なソリューションを提供し、現代の AI アプリケーション開発およびデプロイメントにとって重要なツールです。エッジデバイスへのデプロイメントでも、大規模なクラウドサービスでも、Optimum は大幅なパフォーマンス向上とコスト最適化を提供できます。