Stellen Sie Modelle JumpStart mithilfe von kubectl bereit - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Stellen Sie Modelle JumpStart mithilfe von kubectl bereit

Die folgenden Schritte zeigen Ihnen, wie Sie mithilfe von kubectl ein JumpStart Modell in einem HyperPod Cluster bereitstellen.

Die folgenden Anweisungen enthalten Codezellen und Befehle, die für die Ausführung in einem Terminal konzipiert sind. Stellen Sie sicher, dass Sie Ihre Umgebung mit AWS Anmeldeinformationen konfiguriert haben, bevor Sie diese Befehle ausführen.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie:

Einrichtung und Konfiguration

  1. Wählen Sie Ihre Region aus.

    export REGION=<region>
  2. Sehen Sie sich alle SageMaker Public-Hub-Modelle und HyperPod -Cluster an.

  3. Wählen Sie einen JumpstartModel von JumpstartPublic Hub aus. JumpstartPublic In einem Hub ist eine große Anzahl von Modellen verfügbar, sodass NextToken Sie schrittweise alle verfügbaren Modelle im öffentlichen Hub auflisten können.

    aws sagemaker list-hub-contents --hub-name SageMakerPublicHub --hub-content-type Model --query '{Models: HubContentSummaries[].{ModelId:HubContentName,Version:HubContentVersion}, NextToken: NextToken}' --output json
    export MODEL_ID="deepseek-llm-r1-distill-qwen-1-5b" export MODEL_VERSION="2.0.4"
  4. Konfigurieren Sie die Modell-ID und den Clusternamen, die Sie ausgewählt haben, in den folgenden Variablen.

    Anmerkung

    Erkundigen Sie sich bei Ihrem Cluster-Administrator, ob für diese Rolle oder diesen Benutzer Berechtigungen erteilt wurden. Sie können ausführen!aws sts get-caller-identity --query "Arn", um zu überprüfen, welche Rolle oder welchen Benutzer Sie in Ihrem Terminal verwenden.

    aws sagemaker list-clusters --output table # Select the cluster name where you want to deploy the model. export HYPERPOD_CLUSTER_NAME="<insert cluster name here>" # Select the instance that is relevant for your model deployment and exists within the selected cluster. # List availble instances in your HyperPod cluster aws sagemaker describe-cluster --cluster-name=$HYPERPOD_CLUSTER_NAME --query "InstanceGroups[].{InstanceType:InstanceType,Count:CurrentCount}" --output table # List supported instance types for the selected model aws sagemaker describe-hub-content --hub-name SageMakerPublicHub --hub-content-type Model --hub-content-name "$MODEL_ID" --output json | jq -r '.HubContentDocument | fromjson | {Default: .DefaultInferenceInstanceType, Supported: .SupportedInferenceInstanceTypes}' # Select and instance type from the cluster that is compatible with the model. # Make sure that the selected instance is either default or supported instance type for the jumpstart model export INSTANCE_TYPE="<Instance_type_In_cluster"
  5. Bestätigen Sie mit dem Cluster-Administrator, welchen Namespace Sie verwenden dürfen. Der Administrator sollte ein hyperpod-inference Dienstkonto in Ihrem Namespace erstellt haben.

    export CLUSTER_NAMESPACE="default"
  6. Geben Sie einen Namen für den Endpunkt und das zu erstellende benutzerdefinierte Objekt ein.

    export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test"
  7. Im Folgenden finden Sie ein Beispiel für eine deepseek-llm-r1-distill-qwen-1-5b Modellbereitstellung von Jumpstart. Erstellen Sie eine ähnliche YAML-Datei für die Bereitstellung, die auf dem im obigen Schritt ausgewählten Modell basiert.

    cat << EOF > jumpstart_model.yaml --- apiVersion: inference.sagemaker.aws.amazon.com/v1alpha1 kind: JumpStartModel metadata: name: $SAGEMAKER_ENDPOINT_NAME namespace: $CLUSTER_NAMESPACE spec: sageMakerEndpoint: name: $SAGEMAKER_ENDPOINT_NAME model: modelHubName: SageMakerPublicHub modelId: $MODEL_ID modelVersion: $MODEL_VERSION server: instanceType: $INSTANCE_TYPE metrics: enabled: true environmentVariables: - name: SAMPLE_ENV_VAR value: "sample_value" maxDeployTimeInSeconds: 1800 autoScalingSpec: cloudWatchTrigger: name: "SageMaker-Invocations" namespace: "AWS/SageMaker" useCachedMetrics: false metricName: "Invocations" targetValue: 10 minValue: 0.0 metricCollectionPeriod: 30 metricStat: "Sum" metricType: "Average" dimensions: - name: "EndpointName" value: "$SAGEMAKER_ENDPOINT_NAME" - name: "VariantName" value: "AllTraffic" EOF

Bereitstellen Ihres Modells

Aktualisieren Sie Ihre Kubernetes-Konfiguration und stellen Sie Ihr Modell bereit
  1. Konfigurieren Sie kubectl für die Verbindung mit dem von Amazon HyperPod EKS orchestrierten Cluster.

    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
  2. Stellen Sie Ihr Modell bereit. JumpStart

    kubectl apply -f jumpstart_model.yaml
Überwachen Sie den Status Ihrer Modellbereitstellung
  1. Stellen Sie sicher, dass das Modell erfolgreich bereitgestellt wurde.

    kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
  2. Stellen Sie sicher, dass der Endpunkt erfolgreich erstellt wurde.

    aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table
  3. Rufen Sie Ihren Modellendpunkt auf. Sie können programmgesteuert Beispiel-Payloads aus dem Objekt abrufen. JumpStartModel

    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

Verwalten Sie Ihre Bereitstellung

Löschen Sie Ihre JumpStart Modellbereitstellung, sobald Sie sie nicht mehr benötigen.

kubectl delete JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
Fehlerbehebung

Verwenden Sie diese Debugging-Befehle, wenn Ihre Bereitstellung nicht wie erwartet funktioniert.

  1. Überprüfen Sie den Status der Kubernetes-Bereitstellung. Dieser Befehl überprüft das zugrunde liegende Kubernetes-Bereitstellungsobjekt, das die Pods verwaltet, auf denen Ihr Modell ausgeführt wird. Verwenden Sie diesen Befehl, um Probleme mit der Pod-Planung, der Ressourcenzuweisung und dem Start von Containern zu beheben.

    kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
  2. Überprüfen Sie den Status Ihrer JumpStart Modellressource. Mit diesem Befehl wird die benutzerdefinierte JumpStartModel Ressource untersucht, die die allgemeine Modellkonfiguration und den Bereitstellungszyklus verwaltet. Verwenden Sie diesen Befehl, um modellspezifische Probleme wie Konfigurationsfehler oder Probleme bei der Erstellung von SageMaker KI-Endpunkten zu beheben.

    kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
  3. Überprüfen Sie den Status aller Kubernetes-Objekte. Dieser Befehl bietet einen umfassenden Überblick über alle zugehörigen Kubernetes-Ressourcen in Ihrem Namespace. Verwenden Sie diesen Befehl für einen schnellen Integritätscheck, um den Gesamtstatus der Pods, Dienste, Bereitstellungen und benutzerdefinierten Ressourcen zu überprüfen, die mit Ihrer Modellbereitstellung verknüpft sind.

    kubectl get pods,svc,deployment,JumpStartModel,sagemakerendpointregistration -n $CLUSTER_NAMESPACE