本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
FSx 使用 kubectl 部署来自亚马逊 S3 和亚马逊的自定义微调模型
以下步骤向您展示了如何使用 kubectl 将存储在 Amazon S3 或亚马逊上的模型部署 FSx 到亚马逊 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"
-
初始化集群命名空间。您的集群管理员应该已经在您的命名空间中创建了 hypod-Inference 服务账户。
cluster_namespace="<namespace>"
-
使用以下选项之一创建 CRD:
从 Amazon S3 或亚马逊部署您的模型 FSx
-
从集群 ARN 中获取用于 kubectl 身份验证的 Amazon EKS HyperPod 集群名称。
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