Graphcore IPU統合のためのHugging Face Optimum
Hugging FaceはGraphcoreと提携し、OptimumライブラリをGraphcore Intelligence Processing Units (IPUs)と統合することで、AIワークロード向けに特別に設計されたハードウェア上でTransformerモデルの加速を可能にしました。この統合により、開発者は最小限のコード変更で、予測レイテンシを削減し、最先端モデルのトレーニングとファインチューニングを最適化できます。
Optimized BERT for IPU
BERTは、このパートナーシップを通じてIPU向けに最適化された最初のモデルです。Graphcoreのエンジニアは、Hugging Face Transformersを使用してBERTを実装および最適化し、IPUシステム上でのモデルのトレーニングと加速のプロセスを簡素化しました。Hugging Faceは、今後数ヶ月以内に、ビジョン、音声、翻訳、およびテキスト生成のモデルへとこのサポートを拡大する予定です。
Technical Setup and Environment
Graphcoreハードウェア上でOptimumを活用するには、Poplar SDKとPopTorchを含む特定のソフトウェアスタックを構成する必要があります。
Poplar SDK and PopTorch Configuration
ユーザーはまず、PoplarとPopART (Poplar Advanced Runtime)用のenableスクリプトを実行して、Poplar SDK環境をセットアップする必要があります。Ubuntu 18.04上でPoplar SDKバージョン2.3を実行しているシステムの場合、環境変数は通常 /opt/gc/ ディレクトリ内に設定されます。
Installing Optimum Graphcore
optimum[graphcore] パッケージは、Hugging Face TransformersライブラリとGraphcore IPUsの間のインターフェースとして機能します。このパッケージは、有効化されたPopTorch仮想環境内にインストールする必要があります。
Fine-Tuning BERT on SQuAD 1.1
Optimumは、run_qa.py スクリプトを使用してSQuAD 1.1データセット上でBERTをファインチューニングするための、合理化されたワークフローを提供します。このプロセスには、高速なトークナイザー(Hugging Face Tokenizersライブラリによってサポート)と、IPUハードウェアを構成するための ipu_config.json ファイルが必要です。
Training Workflow
トレーニングはOptimumの IPUTrainer クラスによって促進され、これによりモデルはGraphcoreのハードウェアおよびソフトウェアスタックを活用できます。このプロセスには、事前学習済みモデル(bert-base-uncased など)のロードと、SQuAD v1.1のトレーニングおよび検証ファイルを管理するためのHugging Face Datasetsライブラリの使用が含まれます。
Performance Results
デバイスあたりバッチサイズ2、学習率6e-5でBERTモデルを3エポックにわたってファインチューニングした結果、以下の結果が得られました:
- Training Metrics:
- Train Loss: 0.9465060763888888
- Train Runtime: 368.4015
- Train Samples: 88,524
- Train Samples per Second: 720.877
- Train Steps per Second: 2.809
- Validation Metrics:
- Exact Match: 80.6623
- F1 Score: 88.2757
- Eval Samples: 10,784
Sources
関連
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch