Amazon Web Services ブログ

Amazon SageMaker HyperPod が Amazon EKS サポートを導入

9月10日、レジリエンスを中核として基盤モデル (FM) 開発向けに設計された専用インフラストラクチャである Amazon SageMaker HyperPod での Amazon Elastic Kubernetes Service (EKS) のサポートが発表されました。お客様が EKS を使用して HyperPod クラスターをオーケストレーションすることを可能するこの新しい機能は、Kubernetes の力と、大規模モデルのトレーニング用に設計された Amazon SageMaker HyperPod のレジリエントな環境を組み合わせます。Amazon SageMaker HyperPod は、1,000 個を超える AI アクセラレータ全体での効率的なスケーリングに役立つため、トレーニング時間が最大 40% 短縮されます。

Amazon SageMaker HyperPod では、お客様が Kubernetes ベースのインターフェイスを使用してクラスターを管理できるようになりました。この統合により、トレーニング、微調整、実験、推論などのさまざまなワークロードを最適化するために、Slurm と Amazon EKS をシームレスに切り替えることが可能になります。包括的な監視機能を実現する CloudWatch Observability EKS アドオンは、統合されたダッシュボードで CPU、ネットワーク、ディスク、およびその他の低レベルのノードメトリクスに関するインサイトを提供します。この強化されたオブザーバビリティは、クラスター全体でのリソースの活用、ノードレベルのメトリクス、ポッドレベルのパフォーマンス、コンテナ固有の使用率データに拡張されるため、効率的なトラブルシューティングと最適化の促進につながります。

re:Invent 2023 でリリースされた Amazon SageMaker HyperPod は、大規模なモデルを効率的にトレーニングし、デプロイしようとしている AI スタートアップと企業にとっての主力ソリューションになりました。これには、トレーニング時間を最大 20% 短縮するために役立つモデル並列およびデータ並列ソフトウェア最適化を提供する、SageMaker の分散型トレーニングライブラリとの互換性があります。SageMaker HyperPod は、障害のあるインスタンスを自動的に検出して修復または交換するため、データサイエンティストはモデルのトレーニングを数週間または数か月間、中断することなく実行できます。これは、データサイエンティストがインフラストラクチャの管理ではなく、モデル開発に集中することを可能にします。

Amazon EKS と Amazon SageMaker HyperPod の統合は、スケーラビリティと豊富なオープンソースツールを備えていることから機械学習 (ML) ワークロードで人気を集めている Kubernetes の利点を活用します。多くの場合、組織は生成 AI ユースケースに必要なものを含めたアプリケーションを構築するために、Kubernetes で標準化を行っています。Kubernetes では、コンプライアンスやガバナンスの標準を満たしながら、環境全体で機能を再利用できるからです。本日の発表により、お客様は 1000 個を超える AI アクセラレータ全体でリソースの活用をスケールし、最適化できるようになります。この柔軟性は、開発者エクスペリエンス、コンテナ化されたアプリケーションの管理、FM トレーニングと推論ワークロードのための動的なスケーリングを向上させます。

Amazon SageMaker HyperPod での Amazon EKS サポートは、詳細なヘルスチェック、自動化されたノードリカバリ、ジョブの自動再開機能を通じてレジリエンスを強化して、大規模なジョブや長時間実行されるジョブのトレーニングが中断されないことを確実にします。ジョブ管理は、Kubernetes 環境用に設計されたオプションの HyperPod CLI を用いて合理化できますが、お客様は独自の CLI ツールを使用することも可能です。Amazon CloudWatch Container Insights との統合は、高度なオブザーバビリティを提供するので、クラスターのパフォーマンス、正常性、および使用率に関するより深いインサイトを得ることができます。さらに、データサイエンティストは、自動化された ML ワークフローのために Kubeflow といったツールを使用することもできます。この統合には Amazon SageMaker のマネージド MLflow も含まれており、実験追跡とモデル管理のための堅牢なソリューションを提供します。

大まかに説明すると、Amazon SageMaker HyperPod クラスターはクラウド管理者が HyperPod クラスター API を使用して作成するものであり、HyperPod によって完全に管理されるため、ML インフラストラクチャの構築と最適化に関わる差別化につながらない重労働が排除されます。これらの HyperPod ノードのオーケストレーションには Amazon EKS が使用され (Slurm が HyperPod ノードをオーケストレーションする方法と似ています)、お客様に使い慣れた Kubernetes ベースの管理者エクスペリエンスを提供します。

Amazon SageMaker HyperPod での Amazon EKS サポートの使用を開始する方法を見ていきましょう
シナリオを準備することから初めて、前提条件を確認し、Amazon SageMaker HyperPod EKS ワークショップの手順に従って、VPC とストレージリソースで設定されている単一の AWS CloudFormation スタックで Amazon EKS クラスターを作成します。

Amazon SageMaker HyperPod クラスターを作成して管理するには、AWS マネジメントコンソール か AWS コマンドラインインターフェイス (AWS CLI) を使用できます。AWS CLI を使用して、クラスター構成を JSON ファイルで指定します。SageMaker HyperPod クラスターのオーケストレーターには、以前に作成された Amazon EKS クラスターを選択します。次に、プライベートSubnet があり、自動ノードリカバリを有効にするために NodeRecovery が Automatic に設定されている、「worker-group-1」という名前のクラスターワーカーノードを作成します。OnStartDeepHealthChecks には InstanceStressInstanceConnectivity を追加して、詳細なヘルスチェックを有効にします。

cat > eli-cluster-config.json << EOL
{
    "ClusterName": "example-hp-cluster",
    "Orchestrator": {
        "Eks": {
            "ClusterArn": "${EKS_CLUSTER_ARN}"
        }
    },
    "InstanceGroups": [
        {
            "InstanceGroupName": "worker-group-1",
            "InstanceType": "ml.p5.48xlarge",
            "InstanceCount": 32,
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://${BUCKET_NAME}",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "${EXECUTION_ROLE}",
            "ThreadsPerCore": 1,
            "OnStartDeepHealthChecks": [
                "InstanceStress",
                "InstanceConnectivity"
            ],
        },
  ....
    ],
    "VpcConfig": {
        "SecurityGroupIds": [
            "$SECURITY_GROUP"
        ],
        "Subnets": [
            "$SUBNET_ID"
        ]
    },
    "ResilienceConfig": {
        "NodeRecovery": "Automatic"
    }
}
EOL

InstanceStorageConfigs を追加して、追加の Amazon EBS ボリュームをプロビジョニングし、HyperPod ノードにマウントすることができます。

SageMaker HyperPod API を使用してクラスターを作成するため、以下の AWS CLI コマンドを実行します。

aws sagemaker create-cluster \ 
--cli-input-json file://eli-cluster-config.json

この AWS コマンドは、新しい HyperPod クラスターの ARN を返します。

{
"ClusterArn": "arn:aws:sagemaker:us-east-2:ACCOUNT-ID:cluster/wccy5z4n4m49"
}

次に、SageMaker コンソールで HyperPod クラスターのステータスを確認し、ステータスが InService に変わるまで待ちます。

または、AWS CLI を使用して describe-cluster コマンドを実行することで、クラスターのステータスを確認することも可能です。

aws sagemaker describe-cluster --cluster-name my-hyperpod-cluster

クラスターの準備が整ったら、SageMaker HyperPod クラスターノードにアクセスできるようになります。ほとんどの運用では、開発環境からリソースとジョブを管理するために kubectl コマンドを使用して、SageMaker HyperPod のマネージドインフラストラクチャのメリットを得ながら Kubernetesオーケストレーションを最大限に利用することができます。今回は、高度なトラブルシューティングや直接的なノードアクセスのために、「Access your SageMaker HyperPod cluster nodes」ページにある手順に従って、個々のノードへのログインに AWS Systems Manager (SSM) を使用します。

EKS がオーケストレーションする SageMaker HyperPod クラスターでジョブを実行するには、「Run jobs on SageMaker HyperPod cluster through Amazon EKS」ページに概説されている手順に従います。HyperPod CLI とネイティブ kubectl コマンドを使用して、利用可能な HyperPod クラスターを検索し、トレーニングジョブ (ポッド) を送信できます。ML 実験とトレーニング実行の管理には、Kubeflow Training OperatorKueue、および Amazon SageMaker のマネージド MLflow を使用できます。

最後に、SageMaker コンソールで最近追加された EKS クラスターのステータスKubernetes バージョンを表示して、SageMaker HyperPod 環境の包括的な概要を把握できます。

クラスターのパフォーマンスと正常性のインサイトは、Amazon CloudWatch Container Insights を使用して監視できます。

知っておくべきこと
以下に、Amazon SageMaker HyperPod での Amazon EKS サポートについて知っておく必要のある重要点をいくつか紹介します。

レジリエントな環境 – この統合は、詳細なヘルスチェック、自動化されたノードリカバリ、およびジョブの自動再開機能を備えた、よりレジリエントなトレーニング環境を提供します。SageMaker HyperPod は障害を自動的に検出および診断して回復させるため、基盤モデルのトレーニングを中断することなく数週間または数か月間継続させることができます。これは、トレーニング時間を最大 40% 短縮できます。

強化された GPU オブザーバビリティAmazon CloudWatch Container Insights は、コンテナ化されたアプリケーションとマイクロサービスに関する詳細なメトリクスとログを提供します。これは、クラスターのパフォーマンスと正常性の包括的な監視を可能にします。

サイエンティストが簡単に使用できるツール – このリリースには、ジョブ管理のためのカスタム HyperPod CLI、分散型トレーニングのための Kubeflow Training Operator、スケジューリングのための Kueue、および実験追跡のための SageMaker のマネージド MLflow が含まれています。また、モデル並列およびデータ並列最適化を提供する SageMaker の分散トレーニングライブラリとも連動して、トレーニング時間を大幅に短縮します。これらのライブラリとジョブの自動再開機能を組み合わせることで、大規模モデルの効率的で中断のないトレーニングが可能になります。

柔軟なリソース活用 – この統合により、開発者エクスペリエンスと FM ワークロードのスケーラビリティが向上します。データサイエンティストは、トレーニングタスクや推論タスク全体でコンピューティングキャパシティを効率的に共有できます。既存の Amazon EKS クラスターを使用したり、新しい EKS クラスターを作成して HyperPod コンピューティングにアタッチしたりすることや、ジョブの送信、キュー登録、監視のために独自のツールを使用することができます。

Amazon EKS で Amazon SageMaker HyperPod の使用を開始するには、SageMaker HyperPod EKS ワークショップ、aws-do-hyperpod プロジェクト、および awsome-distributed-training プロジェクトなどのリソースを活用できます。このリリースは、Amazon SageMaker HyperPod を利用できる AWS リージョン (欧州 (ロンドン) リージョンを除く) で一般提供されています。料金の情報については、Amazon SageMaker の料金ページをご覧ください。

このブログ記事は共同で作成されました。この記事で紹介した情報の収集と絞り込みに大きく貢献してくれた、Manoj Ravi、Adhesh Garg、Tomonori Shimomura、Alex Iankoulski、Anoop Saha、そしてチーム全員に感謝しています。この包括的な記事の作成には、彼らの集合的な専門知識がきわめて重要な役割を果たしました。

Eli.

原文はこちらです。