本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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"
-
初始化叢集命名空間。您的叢集管理員應該已在命名空間中建立 Hyperpod-inference 服務帳戶。
cluster_namespace="<namespace>"
-
使用下列其中一個選項建立 CRD:
從 Amazon S3 或 Amazon FSx 部署您的模型
-
從 HyperPod 叢集 ARN 取得 Amazon EKS 叢集名稱,以進行 kubectl 身分驗證。
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