Habana GaudiでのTransformersの始め方

'Habana GaudiでのTransformersの始め方' can be condensed to 'Habana GaudiでのTransformers入門'.

数週間前に、Habana LabsとHugging Faceが協力してTransformerモデルのトレーニングを加速することを発表できたことを喜んでお知らせいたします。

Habana Gaudiアクセラレータは、最新のGPUベースのAmazon EC2インスタンスと比較して、機械学習モデルのトレーニングにおいて最大40%の価格パフォーマンス向上を提供します。私たちはこの価格パフォーマンスの利点をTransformersにもたらすことに非常に興奮しています🚀

この実践的な投稿では、Amazon Web ServicesでHabana Gaudiインスタンスを素早くセットアップし、テキスト分類用にBERTモデルを微調整する方法を紹介します。通常どおり、コードはすべて提供されているため、プロジェクトで再利用できます。

さあ、始めましょう!

AWSでHabana Gaudiインスタンスをセットアップする

Habana Gaudiアクセラレータを使用する最も簡単な方法は、Amazon EC2 DL1インスタンスを起動することです。これらのインスタンスには、Habana SynapseAI® SDKがプリインストールされたHabana Deep Learning Amazon Machine Image(AMI)が搭載されています。また、GaudiアクセラレーションされたDockerコンテナを実行するために必要なツールも含まれています。他のAMIやコンテナを使用したい場合は、Habanaのドキュメントに手順が記載されています。

まず、us-east-1リージョンのEC2コンソールからインスタンスを起動をクリックし、インスタンスに名前を定義します(”habana-demo-julsimon”)。

次に、HabanaのAMIをAmazon Marketplaceで検索します。

Habana Deep Learning Base AMI(Ubuntu 20.04)を選択します。

次に、dl1.24xlargeのインスタンスサイズを選択します(唯一のサイズです)。

次に、sshを使用してインスタンスに接続するために使用するキーペアを選択します。キーペアがない場合は、その場で作成することができます。

次に、インスタンスがsshトラフィックを受信することを確認します。シンプルにするために、ソースアドレスを制限しませんが、アカウントでは必ず制限してください。

デフォルトでは、このAMIはAmazon EBSストレージの8GBのインスタンスを起動しますが、ここでは十分ではありません。ストレージを50GBに増やします。

次に、インスタンスにAmazon IAMロールを割り当てます。実際の環境では、このロールはトレーニングジョブを実行するために必要な最小限の権限を持っている必要があります(たとえば、Amazon S3バケットからデータを読み取る権限など)。このロールはここでは必要ありませんが、データセットはHugging Faceハブからダウンロードされます。IAMに詳しくない場合は、はじめに「Getting Started」ドキュメントを読むことを強くお勧めします。

次に、EC2にインスタンスをSpot Instanceとしてプロビジョニングするように指示します。これは、1時間あたりの$13.11のコストを削減する素晴らしい方法です。

最後に、インスタンスを起動します。数分後、インスタンスが準備され、sshを使用して接続できるようになります。Windowsユーザーは、ドキュメントに従ってPuTTYを使用して同じ操作を行うことができます。

ssh -i ~/.ssh/julsimon-keypair.pem [email protected]

このインスタンスでは、最後のセットアップステップとして、PyTorch用のHabanaコンテナを取得する必要があります。これは、モデルの微調整に使用するフレームワークです。他のプリビルドコンテナや独自のコンテナのビルド方法については、Habanaのドキュメントを参照してください。

docker pull \
vault.habana.ai/gaudi-docker/1.5.0/ubuntu20.04/habanalabs/pytorch-installer-1.11.0:1.5.0-610

画像がインスタンスに取り込まれたら、インタラクティブモードで実行します。

docker run -it \
--runtime=habana \
-e HABANA_VISIBLE_DEVICES=all \
-e OMPI_MCA_btl_vader_single_copy_mechanism=none \
--cap-add=sys_nice \
--net=host \
--ipc=host vault.habana.ai/gaudi-docker/1.5.0/ubuntu20.04/habanalabs/pytorch-installer-1.11.0:1.5.0-610

モデルの微調整に備えています。

Habana Gaudiでテキスト分類モデルを微調整する

最初に、新たに開始したコンテナ内にOptimum Habanaリポジトリをクローンします。

git clone https://github.com/huggingface/optimum-habana.git

その後、ソースからOptimum Habanaパッケージをインストールします。

cd optimum-habana
pip install .

次に、テキスト分類の例を含むサブディレクトリに移動し、必要なPythonパッケージをインストールします。

cd examples/text-classification
pip install -r requirements.txt

これで、Hugging Faceハブからbert-large-uncased-whole-word-maskingモデルをダウンロードし、GLUEベンチマークのMRPCタスクで微調整するトレーニングジョブを開始できます。

注意してください。BERTのHabana Gaudi構成をHugging Faceハブから取得していますが、独自の構成も使用できます。さらに、他の人気モデルもサポートされており、その構成ファイルはHabana組織で見つけることができます。

python run_glue.py \
--model_name_or_path bert-large-uncased-whole-word-masking \
--gaudi_config_name Habana/bert-large-uncased-whole-word-masking \
--task_name mrpc \
--do_train \
--do_eval \
--per_device_train_batch_size 32 \
--learning_rate 3e-5 \
--num_train_epochs 3 \
--max_seq_length 128 \
--use_habana \
--use_lazy_mode \
--output_dir ./output/mrpc/

2分12秒後、ジョブは完了し、優れたF1スコア0.9181を達成しました。エポック数を増やすとさらに改善できるでしょう。

***** train metrics *****
  epoch                    =        3.0
  train_loss               =      0.371
  train_runtime            = 0:02:12.85
  train_samples            =       3668
  train_samples_per_second =     82.824
  train_steps_per_second   =      2.597

***** eval metrics *****
  epoch                   =        3.0
  eval_accuracy           =     0.8505
  eval_combined_score     =     0.8736
  eval_f1                 =     0.8968
  eval_loss               =      0.385
  eval_runtime            = 0:00:06.45
  eval_samples            =        408
  eval_samples_per_second =     63.206
  eval_steps_per_second   =      7.901

最後に、不必要な料金を避けるためにEC2インスタンスを終了します。EC2コンソールの節約サマリを見ると、スポットインスタンスのおかげで70%節約でき、1時間あたり13.11ドルではなく3.93ドルしか支払わなくて済みました。

ご覧のように、Transformers、Habana Gaudi、AWSインスタンスの組み合わせは、強力でシンプル、かつコスト効果が高いです。ぜひ試してみて、ご意見をお聞かせください。Hugging Faceフォーラムでは質問やフィードバックをお待ちしています。


Habanaにお問い合わせいただき、GaudiプロセッサでHugging Faceモデルのトレーニングについて詳しくお聞きください。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

「スノーケルAIのCEO兼共同創設者、アレックス・ラットナー - インタビューシリーズ」

アレックス・ラトナーは、スタンフォードAIラボを母体とする会社、Snorkel AIのCEO兼共同創設者ですSnorkel AIは、手作業のAI...

人工知能

ジョシュ・フィースト、CogitoのCEO兼共同創業者 - インタビューシリーズ

ジョシュ・フィーストは、CogitoのCEO兼共同創業者であり、感情と会話AIを組み合わせた革新的なプラットフォームを提供するエ...

人工知能

「Ami Hever、UVeyeの共同創設者兼CEO - インタビューシリーズ」

עמיר חבר הוא המנכל והמייסד של UVeye, סטארט-אפ ראיה ממוחשבת בלמידה עמוקה, המציבה את התקן הגלובלי לבדיקת רכבים עם זיהוי...

データサイエンス

「3つの質問:ロボットの認識とマッピングの研磨」

MIT LIDSのLuca CarloneさんとJonathan Howさんは、将来のロボットが環境をどのように知覚し、相互作用するかについて議論し...

人工知能

「シフトのCEOであるクリス・ナーゲル – インタビューシリーズ」

クリスはSiftの最高経営責任者です彼は、Ping Identityを含むベンチャー支援および公開SaaS企業のシニアリーダーシップポジシ...

人工知能

「トリントの創設者兼CEO、ジェフ・コフマンへのインタビューシリーズ」

ジェフ・コーフマンは、ABC、CBS、CBCニュースで30年のキャリアを持った後、Trintの創設者兼CEOとなりましたジェフは手作業の...