翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
kubectl を使用して Amazon S3 および Amazon FSx からカスタム微調整モデルをデプロイする
次のステップでは、kubectl を使用して Amazon S3 または Amazon FSx に保存されているモデルを Amazon SageMaker HyperPod クラスターにデプロイする方法を示します。
次の手順には、ターミナルで実行するように設計されたコードセルとコマンドが含まれています。これらのコマンドを実行する前に、 AWS 認証情報を使用して環境が設定されていることを確認してください。
前提条件
開始する前に、以下を確認してください。
-
Amazon SageMaker HyperPod クラスターで推論機能を設定します。詳細については、「モデルデプロイ用の HyperPod クラスターのセットアップ」を参照してください。
セットアップと設定
すべてのプレースホルダー値を実際のリソース識別子に置き換えます。
-
環境内のリージョンを選択します。
export REGION=<region>
-
クラスター名を初期化します。これにより、モデルがデプロイされる HyperPod クラスターが識別されます。
注記
クラスター管理者に確認して、このロールまたはユーザーに許可が付与されていることを確認します。を実行して
!aws sts get-caller-identity --query "Arn"
、ターミナルで使用しているロールまたはユーザーを確認できます。# Specify your hyperpod cluster name here HYPERPOD_CLUSTER_NAME="<Hyperpod_cluster_name>" # NOTE: For sample deployment, we use g5.8xlarge for deepseek-r1 1.5b model which has sufficient memory and GPU instance_type="ml.g5.8xlarge"
-
クラスター名前空間を初期化します。クラスター管理者は、名前空間にハイパーポッド推論サービスアカウントを既に作成している必要があります。
cluster_namespace="<namespace>"
-
次のいずれかのオプションを使用して CRD を作成します。
Amazon S3 または Amazon FSx からモデルをデプロイする
-
kubectl 認証用の HyperPod クラスター ARN から Amazon EKS クラスター名を取得します。
export EKS_CLUSTER_NAME=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \ --query 'Orchestrator.Eks.ClusterArn' --output text | \ cut -d'/' -f2) aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $REGION
-
次のいずれかのオプションを使用して、InferenceEndpointConfig モデルをデプロイします。
デプロイのステータスを確認する
-
モデルが正常にデプロイされたかどうかを確認します。
kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
-
エンドポイントが正常に作成されたことを確認します。
kubectl describe SageMakerEndpointRegistration $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
-
デプロイされたエンドポイントをテストして、正しく動作していることを確認します。このステップでは、モデルが正常にデプロイされ、推論リクエストを処理できることを確認します。
aws sagemaker-runtime invoke-endpoint \ --endpoint-name $SAGEMAKER_ENDPOINT_NAME \ --content-type "application/json" \ --body '{"inputs": "What is AWS SageMaker?"}' \ --region $REGION \ --cli-binary-format raw-in-base64-out \ /dev/stdout
デプロイを管理する
デプロイのテストが完了したら、次のコマンドを使用してリソースをクリーンアップします。
注記
続行する前に、デプロイされたモデルや保存されたデータが不要になったことを確認します。
リソースのクリーンアップ
-
推論デプロイと関連する Kubernetes リソースを削除します。これにより、実行中のモデルコンテナが停止し、SageMaker エンドポイントが削除されます。
kubectl delete inferenceendpointconfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
-
クリーンアップが正常に完了したことを確認します。
# # Check that Kubernetes resources are removed kubectl get pods,svc,deployment,InferenceEndpointConfig,sagemakerendpointregistration -n $CLUSTER_NAMESPACE
# Verify SageMaker endpoint is deleted (should return error or empty) aws sagemaker describe-endpoint --endpoint-name $SAGEMAKER_ENDPOINT_NAME --region $REGION
トラブルシューティング
デプロイが想定どおりに機能しない場合は、これらのデバッグコマンドを使用します。
-
Kubernetes デプロイのステータスを確認します。
kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
-
InferenceEndpointConfig ステータスをチェックして、高レベルのデプロイ状態と設定の問題を確認します。
kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
-
すべての Kubernetes オブジェクトのステータスを確認します。名前空間内のすべての関連 Kubernetes リソースの包括的なビューを取得します。これにより、実行中のものと不足している可能性のあるものの概要を簡単に確認できます。
kubectl get pods,svc,deployment,InferenceEndpointConfig,sagemakerendpointregistration -n $CLUSTER_NAMESPACE