Amazon SageMakerとHugging Faceのパートナーシップ

TL;DR

Hugging FaceとAmazonは、Hugging Face TransformersをAmazon SageMakerに統合することで、最先端のNLPモデルのトレーニングとデプロイを簡素化するための戦略的パートナーシップを締結しました。このコラボレーションにより、専用のHugging Face Deep Learning Containers (DLCs)とSageMaker Python SDK用のファーストクラスの拡張機能が導入され、実験のセットアップと実行にかかる時間を数日から数分に短縮します。

Hugging Face Deep Learning Containers (DLCs)

Amazon SageMakerは現在、transformersdatasetstokenizersなどのディープラーニングフレームワークとライブラリを含む、事前インストール済みのDockerイメージであるHugging Face DLCsを提供しています。これらのコンテナを使用することで、ユーザーが環境をゼロから構築および最適化する必要がなくなります。

DLCsの主な特徴は以下の通りです:

  • Framework Support: TensorFlowとPyTorchの両方に対して最適化されたバリアントが利用可能です。
  • Infrastructure Flexibility: シングルGPU、シングルノード・マルチGPU、およびマルチノード・クラスターをサポートしています。
  • Performance: PyTorchとTensorFlow向けの組み込みの最適化により、トレーニング速度を向上させ、コストパフォーマンスを最適化します。
  • Open Source: DLCsはApache 2.0ライセンスの下で提供されています。

SageMaker Python SDK Integration

データサイエンスからプロダクションへの移行を加速させるため、Hugging FaceはSageMaker Python SDK用のファーストクラスの拡張機能の開発を行いました。この統合により、ユーザーはHuggingFace Estimatorを使用して、エンドツーエンドのトレーニングプロセスを管理できます。

Core Capabilities

  • Automatic Model Tuning: SageMakerのAutomatic Model Tuningと統合し、ハイパーパラメータを最適化してモデルの精度を向上させます。
  • Experiment Tracking: SageMaker Studio IDEとの互換性があり、トレーニングのアーティファクトや実験を追跡・比較できます。
  • Managed Infrastructure: SageMakerはAmazon EC2インスタンスを自動的に管理し、トレーニングスクリプト(例:train.py)をアップロードし、Amazon S3からのデータI/Oを処理します。

Advanced Training Features

このパートナーシップにより、大規模なNLPワークロードを処理するための、いくつかの高性能なトレーニング機能が導入されました。

Distributed Training

ユーザーは、配布パラメータを定義することで、HuggingFace Estimatorを通じてSageMakerの分散トレーニングライブラリを直接活用できます:

  • Data Parallelism: Trainer APIに統合されており、大規模なデータセットでのトレーニングを簡素化します。
  • Model Parallelism: モデルを複数のGPU/ノードに分割することで、数千億のパラメータを持つモデルのトレーニングをサポートします。

Cost and Workflow Optimization

  • Managed Spot Instances: ユーザーはEC2スポットインスタンスを利用することで、トレーニングコストを最大90%削減できます。これは、長時間実行されるジョブに対してcheckpoint_s3_uriと併用することが推奨されます。
  • Git Repository Integration: Estimatorのentry_pointsource_dirをGitHubリポジトリに直接指定することができ、スクリプトをローカルにダウンロードする必要がなくなります。
  • SageMaker Metrics: システムは正規表現を使用してログを自動的に解析し、トレーニングメトリクス(例:eval_losseval_accuracy)をAmazon CloudWatchに送信できます。

Deployment and Inference

初期の焦点はトレーニングにありましたが、2021年7月8日に、統合は拡張され、Amazon SageMaker内でのTransformersモデルの簡単なデプロイと推論が追加されました。

Summary of Benefits

Hugging FaceのFAQによると、SageMakerでHugging Faceモデルを使用することには、主に3つの利点があります:

  1. Cost-Effectiveness: インスタンスは秒単位で課金され、ジョブの終了時に自動的に終了します。
  2. MLOps Automation: トレーニングのメタデータ、ログ、およびチェックポイントやアーティファクト用のS3 I/Oが完全に管理されます。
  3. Scalability: 複数の並列トレーニングジョブと大規模な分散トレーニングの開始を可能にします。

Sources