Habana GaudiでTransformerを始める

Hugging Face と Habana Labs は提携し、Transformer モデルのトレーニングを加速します。Habana Gaudi アクセラレータを利用することで、最新の GPU ベースの Amazon EC2 インスタンスと比較して最大 40% の価格性能向上が期待できます。

AWS 上で Habana Gaudi をデプロイする

Habana Gaudi アクセラレータに最も効率的にアクセスできる方法は、8 つの Habana Gaudi プロセッサを搭載した Amazon EC2 DL1 インスタンスを利用することです。環境を構築するには、Habana Deep Learning Amazon Machine Image (AMI) を使用できます。この AMI には Habana SynapseAI® SDK と、Gaudi 加速 Docker コンテナを実行するために必要なツールが事前にインストールされています。

インスタンス構成

Gaudi インスタンスの設定には以下の仕様が必要です:

  • Instance Type: dl1.24xlarge(唯一利用可能なサイズ)
  • Region: us-east-1
  • Storage: デフォルトの 8 GB ではトレーニングに不足するため、最低 50 GB の Amazon EBS ストレージを推奨します
  • Cost Management: Spot インスタンスを活用するとコストを大幅に削減できます。例として、時間単価を $13.11 から $3.93 に下げる(70% の節約)ことが可能です。

ソフトウェア環境

SSH でインスタンスを起動した後、互換性を確保するために特定の Habana Docker コンテナ(PyTorch 用)をプルする必要があります。このセットアップで推奨されるイメージは vault.habana.ai/gaudi-docker/1.5.0/ubuntu20.04/habanalabs/pytorch-installer-1.11.0:1.5.0-610 です。

Optimum Habana で Transformer をファインチューニングする

Habana Gaudi 上で Transformer モデルをトレーニングするには、optimum-habana ライブラリが利用できます。このパッケージにより、テキスト分類などのタスクで Gaudi ハードウェアを活用できます。

実装ワークフロー

モデルをファインチューニングするには、以下の手順が必要です:

  1. Install Optimum Habana: optimum-habana リポジトリをクローンし、ソースからパッケージをインストールします。
  2. Prepare Environment: テキスト分類サンプルディレクトリにある requirements.txt を使用して、必要な Python 依存関係をインストールします。
  3. Execute Training: run_glue.py スクリプトを実行してトレーニングジョブを開始します。

パフォーマンス例:BERT テキスト分類

GLUE ベンチマークの MRPC タスクで bert-large-uncased-whole-word-masking モデルをデモ的にファインチューニングした結果、以下の成果が得られました:

  • Training Time: 2 分 12 秒
  • F1 Score: 0.9181
  • Training Throughput: 82.824 サンプル/秒
  • Evaluation Accuracy: 0.8505

ユーザーは Hugging Face Hub の Habana 組織から、BERT やその他の人気モデル向けの Habana Gaudi 設定を直接取得できます。

Sources