Amazon SageMaker AI で Hugging Face を使用するためのリソース - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SageMaker AI で Hugging Face を使用するためのリソース

Amazon SageMaker AI では、SageMaker AI で自然言語処理 (NLP) 向け Hugging Face モデルを使ってトレーニング、ファインチューニング、推論を実行できます。Hugging Face はトレーニングと推論の両方に使用できます。次のセクションでは、Hugging Face モデルに関する情報と、SageMaker AI で Hugging Face を使用する方法を学ぶために使用できるリファレンス資料を提供しています。

Hugging Face AWS Deep Learning Containers の開発を通してこの機能を利用できます。これらのコンテナには、Hugging Face Transformers、Tokenizers、データセットライブラリが含まれ、これらのリソースをトレーニングや推論のジョブに使用できます。使用可能な Deep Learning Containers イメージのリストについては、「使用可能な Deep Learning Containers イメージ」を参照してください。これらの Deep Learning Containers イメージは保守されており、セキュリティパッチで定期的に更新されています。

SageMaker Python SDK で Hugging Face Deep Learning Containers をトレーニングに使うには、「Hugging Face SageMaker AI 推定ツール」を参照してください。Hugging Face 推定ツールを使うと、Hugging Face モデルを他の SageMaker AI 推定ツールと同じように使用できます。ただし、SageMaker Python SDK の使用は任意です。 AWS CLI および を使用して Hugging Face Deep Learning Containers の使用を調整することもできます AWS SDK for Python (Boto3)。

Hugging Face とその中で利用可能なモデルの詳細については、Hugging Face のドキュメントを参照してください。

トレーニング

トレーニングを実行するには、Hugging Face で利用可能な数千ものモデルのいずれかを使用し、追加のトレーニングを行って特定のユースケースに合わせてファインチューニングできます。SageMaker AI では、標準のトレーニングを使用するか、SageMaker AI データの分散トレーニングとモデルの並列トレーニングを活用できます。

カスタムコードを使用する他の SageMaker トレーニングジョブと同様に、メトリクス定義を SageMaker Python SDK に渡すことで、独自のメトリクスを取得できます。例については、「Defining Training Metrics (SageMaker Python SDK)」を参照してください。キャプチャしたメトリクスには、CloudWatch を介して、また、TrainingJobAnalytics メソッドを利用して pandas DataFrame としてアクセスできます。モデルのトレーニングとファインチューニングが完了したら、そのモデルを他のモデルと同様に使用して推論ジョブを実行できます。

Hugging Face 推定ツールを使用してトレーニングを実行する方法

SageMaker AI Python SDK を使って、トレーニングジョブ用の Hugging Face 推定ツールを実装できます。SageMaker Python SDK は、SageMaker AI で機械学習モデルをトレーニングおよびデプロイするためのオープンソースライブラリです。Hugging Face 推定ツールの詳細については、SageMaker AI Python SDK のドキュメントを参照してください。

SageMaker Python SDK を使うと、次の環境で Hugging Face 推定器を使って、トレーニングジョブを実行できます。

  • Amazon SageMaker Studio Classic: Studio Classic は、機械学習 (ML) 向けの初の完全な統合開発環境 (IDE) です。Studio Classic は、以下を行ううえで必要なすべての ML 開発ステップを実行することができる、単一のウェブベースのビジュアルインターフェイスを提供します。

    • 準備

    • ビルド

    • トレーニングとチューニング

    • モデルのデプロイと管理

    Studio Classic で Jupyter Notebooks を使用する方法については、「Amazon SageMaker Studio Classic ノートブックを使用する」を参照してください。

  • SageMaker ノートブックインスタンス: Amazon SageMaker ノートブックインスタンスは、Jupyter ノートブックアプリを実行する機械学習 (ML) コンピューティングインスタンスです。このアプリケーションでは、ノートブックインスタンスで Jupyter Notebooks を実行して次を実行できます。

    • データの準備と処理

    • モデルをトレーニングするためのコードの記述

    • SageMaker AI ホスティングにモデルをデプロイする

    • デバッガー、モデルモニタリング、ウェブベースの IDE などの SageMaker Studio 機能を使用しないモデルのテストと検証

  • ローカル: への接続があり AWS 、適切な SageMaker AI アクセス許可がある場合は、SageMaker Python SDK をローカルで使用できます。ローカルで使用する場合、 AWSの SageMaker AI で Hugging Face のリモートトレーニングと推論ジョブを起動できます。これは、ローカルマシンだけでなく、接続された SageMaker Python SDK と適切なアクセス許可を持つ他の AWS サービスでも機能します。

推論

推論では、トレーニング済みの Hugging Face モデルまたは事前トレーニング済みの Hugging Face モデルのいずれかを使って、SageMaker AI に推論ジョブをデプロイできます。この組み合わせにおいて、トレーニング済みのモデルと事前トレーニング済みのモデルの両方を、SageMaker AI にデプロイするのに必要なコードは 1 行だけです。カスタムの推論コードを書かずに推論ジョブを実行することもできます。カスタムの推論コードを使うと、独自の Python スクリプトを提供することで、推論ロジックをカスタマイズできます。

Hugging Face Deep Learning Containers を使って推論ジョブをデプロイする方法

SageMaker AI での推論の実行にはオプションが 2 つあります。トレーニング済みのモデルを使った推論の実行、または事前トレーニング済み Hugging Face モデルのデプロイが可能です。

  • トレーニング済みのモデルで推論を実行する: 独自のトレーニング済みモデルで推論を実行する場合、以下の 2 つのオプションがあります。

    • SageMaker AI Hugging Face Deep Learning Containers で既存の Hugging Face モデルを使用してトレーニングしたモデルで推論を実行します。

    • 独自の既存の Hugging Face モデルを使用して、SageMaker AI でデプロイします。

    SageMaker AI Hugging Face Estimator でトレーニングしたモデルで推論を実行すると、トレーニングが完了したら直ちにモデルをデプロイできます。トレーニング済みのモデルを Amazon S3 バケットにアップロードして、後で推論を実行する際に取り込むこともできます。

    独自の既存の Hugging Face モデルを持ち込む場合は、トレーニング済みのモデルを Amazon S3 バケットにアップロードする必要があります。その後、「Deploy your Hugging Face Transformers for inference example」に記載されているとおり、推論を実行する際にそのバケットを取り込みます。

  • 事前トレーニング済みの Hugging Face モデルで推論を実行する: 数千ある事前トレーニング済みの Hugging Face モデルの 1 つを使って、追加のトレーニングの必要なく推論ジョブを実行できます。「Deploy pre-trained Hugging Face Transformers for inference example」で概説されているとおり、推論を実行するには、Hugging Face モデルのリストから事前トレーニング済みのモデルを選択します。

何をしたいですか?

Hugging Face ノートブックリポジトリの以下のノートブックは、さまざまなユースケースで Hugging Face Deep Learning Containers を SageMaker AI で使用する方法を提供しています。

PyTorch を使う SageMaker AI で、Hugging Face を使ってテキスト分類モデルをトレーニングし、デプロイしたい。

サンプルの Jupyter ノートブックについては、「PyTorch の入門用デモ」を参照してください。

TensorFlow を使う SageMaker AI で、Hugging Face を使ってテキスト分類モデルをトレーニングし、デプロイしたい。

サンプルの Jupyter ノートブックについては、「TensorFlow の入門用サンプル」を参照してください。

Hugging Face と SageMaker AI Distributed を使って、データ並列処理を使った分散トレーニングを実行したい。

サンプルの Jupyter ノートブックについては、「分散トレーニングのサンプル」を参照してください。

Hugging Face と SageMaker AI Distributed を使って、モデル並列処理を使った分散トレーニングを実行したい。

サンプルの Jupyter ノートブックについては、「モデル並列処理のサンプル」を参照してください。

SageMaker AI でHugging Face を使ったモデルのトレーニングとデプロイにスポットインスタンスを使いたい。

サンプルの Jupyter ノートブックについては、「スポットインスタンスのサンプル」を参照してください。

SageMaker AI で Hugging Face を使ってテキスト分類モデルをトレーニングするときに、カスタムメトリクスをキャプチャして SageMaker AI のチェックポイントを使用したい。

サンプルの Jupyter ノートブックについては、「カスタムメトリクスを使ったトレーニングのサンプル」を参照してください。

SageMaker AI で Hugging Face を使って分散型 TensorFlow 質問応答モデルをトレーニングしたい。

サンプルの Jupyter ノートブックについては、「分散型 TensorFlow トレーニングのサンプル」を参照してください。

SageMaker AI で Hugging Face を使用して分散要約モデルをトレーニングしたい。

サンプルの Jupyter ノートブックについては、「分散型要約トレーニングのサンプル」を参照してください。

SageMaker AI で Hugging Face を使ってイメージ分類モデルをトレーニングしたい。

サンプルの Jupyter ノートブックについては、「Vision Transformer トレーニングのサンプル」を参照してください。

SageMaker AI に独自のトレーニング済み Hugging Face モデルをデプロイしたい。

サンプルの Jupyter ノートブックについては、「推論のために Hugging Face Transformers をデプロイする」の例を参照してください。

SageMaker AI に事前トレーニング済みの Hugging Face モデルをデプロイしたい。

サンプルの Jupyter ノートブックについては、「推論のために、事前トレーニング済みの Hugging Face Transformers をデプロイする」の例を参照してください。