Amazon SageMaker で Hugging Face モデルを簡単にデプロイする

推論 DLC によるモデルデプロイの簡素化

Amazon SageMaker は現在、Hugging Face Inference Deep Learning Containers (DLC) をサポートしており、完全にテストされ最適化されたディープラーニング環境を提供し、手動でのインストールや設定が不要です。これらのコンテナは、AWS 環境内でスケール可能な本番向けエンドポイントを迅速に作成でき、組み込みのモニタリングやエンタープライズ機能を備えています。

ユーザーは SageMaker Python SDK の HuggingFaceModel クラスを使用してモデルをデプロイできます。デプロイプロセスは簡素化されており、訓練済みモデルを推論用にデプロイする際に、コードを 1 行追加するだけで済みます。

SageMaker Hugging Face 推論ツールキット

デプロイの摩擦をさらに減らすため、Hugging Face は SageMaker Hugging Face 推論ツールキットを作成しました。このツールキットは transformers ライブラリの pipelines を活用し、いわゆる「ゼロコード」デプロイを可能にします。つまり、ユーザーは前処理や後処理のためにカスタムコードを書く必要がありません。

API とリクエスト構造

推論ツールキットは Hugging Face Accelerated Inference API に似た API を使用します。リクエストは inputs キー内に入力を定義し、オプションのパイプラインパラメータは parameters キーで追加できます。

例として以下のリクエスト構造があります:

  • Text Classification: inputs 文字列を含む JSON 本文。
  • Question Answering: questioncontext キーの両方を含む inputs オブジェクト。
  • Zero-Shot Classification: inputs 文字列と candidate_labels を含む parameters オブジェクト。

カスタマイズと「Bring Your Own Code」

ゼロコードデプロイが主な機能ですが、推論ツールキットは「Bring Your Own Code」方式もサポートしています。これにより、開発者はデフォルトのメソッドをオーバーライドしてカスタム推論ロジックを実装できます。

デプロイワークフロー

Transformer モデルを Amazon SageMaker にデプロイするための主要なワークフローは 3 つあります。

1. 訓練直後に直接デプロイ

Estimator クラスを使用して SageMaker でモデルを訓練する場合、.fit() メソッドの直後にモデルをデプロイできます。このアプローチにより、SageMaker のモデルコンテナメタデータが訓練ジョブからデプロイされたモデルまでの系譜を保持します。

2. 事前学習済みチェックポイントからデプロイ

すでに訓練済みで Amazon S3 にアーティファクトとして保存されているモデルについては、model_data 引数(モデルへの S3 パス)と IAM ロール、使用した transformerspytorch のバージョンを指定して HuggingFaceModel クラスを使用できます。

3. Hugging Face Model Hub からデプロイ

ユーザーは Model Hub で公開されている 10,000 以上のモデルを、HuggingFaceModel 設定で 2 つの環境変数を定義するだけで SageMaker に直接デプロイできます。

  • HF_MODEL_ID: huggingface.co/models の特定のモデル ID。
  • HF_TASK: Transformers パイプラインに対応する NLP タスク(例: question-answering)。

技術仕様と互換性

  • Supported Models: このシステムは、SageMaker(または他の互換プラットフォーム)で訓練された任意の Transformer モデル、Hugging Face Model Hub の公開モデル、プレミアム Hugging Face アカウントでホストされているプライベートモデルをすべてサポートします。
  • Supported Tasks: 推論ツールキットと DLC は、transformers パイプラインで利用可能なすべてのタスクをサポートします。
  • Deployment Tools: SageMaker Python SDK が主なインターフェースですが、Hugging Face DLC は AWS CLI、boto3、Terraform、CloudFormation テンプレートなどの他のツールでもデプロイ可能です。
  • Security: デプロイは AWS の仕組みで保護されており、保存時および転送時の暗号化、Virtual Private Cloud (VPC) 接続、Identity and Access Management (IAM) などが含まれます。

Sources