

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
<a name="sagemaker-hyperpod-model-deployment-deploy-js-kubectl"></a>

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
<a name="kubectl-prerequisites"></a>

Bevor Sie beginnen, stellen Sie sicher, dass Sie: 
+ Richten Sie Inferenzfunktionen auf Ihren SageMaker HyperPod Amazon-Clustern ein. Weitere Informationen finden Sie unter [Einrichtung Ihrer HyperPod Cluster für die Modellbereitstellung](sagemaker-hyperpod-model-deployment-setup.md).
+ [Das [kubectl-Hilfsprogramm](https://kubernetes.io/docs/reference/kubectl/) wurde installiert und jq in Ihrem Terminal konfiguriert.](https://jqlang.org/)

## Einrichtung und Konfiguration
<a name="kubectl-prerequisites-setup-and-configuration"></a>

1. Wählen Sie Ihre Region aus.

   ```
   export REGION=<region>
   ```

1. Sehen Sie sich alle SageMaker Public-Hub-Modelle und HyperPod -Cluster an.

1. 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"
   ```

1. 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"
   ```

1. 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"
   ```

1. Geben Sie einen Namen für den Endpunkt und das zu erstellende benutzerdefinierte Objekt ein.

   ```
   export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test"
   ```

1. Nachfolgend sehen 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.
**Anmerkung**  
Wenn Ihr Cluster die GPU-Partitionierung mit MIG verwendet, können Sie bestimmte MIG-Profile anfordern, indem Sie das `acceleratorPartitionType` Feld zur Serverspezifikation hinzufügen. Weitere Informationen finden Sie unter [Einreichung von Aufgaben mit MIG](sagemaker-hyperpod-eks-gpu-partitioning-task-submission.md).

   ```
   cat << EOF > jumpstart_model.yaml
   ---
   apiVersion: inference.sagemaker.aws.amazon.com/v1
   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
       # Optional: Specify GPU partition profile for MIG-enabled instances
       # acceleratorPartitionType: "1g.10gb"
     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
<a name="kubectl-deploy-your-model"></a>

**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
   ```

1. Stellen Sie Ihr Modell bereit. JumpStart 

   ```
   kubectl apply -f jumpstart_model.yaml
   ```

**Überwachen des Status Ihrer Modellbereitstellung**

1. Überprüfen Sie, ob das Modell erfolgreich bereitgestellt wurde.

   ```
   kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Stellen Sie sicher, dass der Endpunkt erfolgreich erstellt wurde.

   ```
   aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table
   ```

1. Rufen Sie Ihren Modellendpunkt auf. Sie können programmgesteuert Beispiel-Payloads aus dem `JumpStartModel`-Objekt abrufen.

   ```
   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
   ```

## Planen Ihrer Bereitstellung
<a name="kubectl-manage-your-deployment"></a>

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. Prü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
   ```

1. Ü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 diese Option, 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
   ```

1. Ü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
   ```