

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.

# Den Trainingsoperator installieren
<a name="sagemaker-eks-operator-install"></a>

In den folgenden Abschnitten erfahren Sie, wie Sie den Trainingsoperator installieren.

## Voraussetzungen
<a name="sagemaker-eks-operator-prerequisites"></a>

 Bevor Sie den HyperPod Training Operator einsetzen können, müssen Sie die folgenden Voraussetzungen erfüllt haben: 
+  [Es wurde ein HyperPod Cluster mit Amazon EKS-Orchestrierung](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html) erstellt. 
+ Das neueste AMI wurde auf Ihrem HyperPod Cluster installiert. Weitere Informationen finden Sie unter [SageMaker HyperPod AMI-Versionen für Amazon EKS](sagemaker-hyperpod-release-ami-eks.md).
+ [Cert-Manager wurde installiert](https://cert-manager.io/docs/installation/).
+  [Richten Sie den EKS Pod Identity Agent über die Konsole](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-agent-setup.html) ein. Wenn Sie das verwenden möchten AWS CLI, verwenden Sie den folgenden Befehl: 

  ```
  aws eks create-addon \ 
   --cluster-name {{my-eks-cluster}} \
   --addon-name eks-pod-identity-agent \
   --region {{AWS-Region}}
  ```
+ (Optional) Wenn Sie Ihre HyperPod Clusterknoten in einer privaten VPC ausführen, müssen Sie PrivateLinks VPC-Endpunkte für die Amazon SageMaker AI API (`com.amazonaws.{{aws-region}}.sagemaker.api`) und Amazon EKS Auth Services (com.amazonaws) einrichten. {{aws-region}}.eks-auth). Sie müssen auch sicherstellen, dass Ihre Clusterknoten mit Subnetzen betrieben werden, die sich in einer Sicherheitsgruppe befinden, die es ermöglicht, dass der Datenverkehr über die VPC-Endpunkte geleitet wird, um mit SageMaker KI und Amazon EKS zu kommunizieren. Wenn diese nicht richtig eingerichtet sind, kann die Installation des Add-ons fehlschlagen. Weitere Informationen zum Einrichten von VPC-Endpoints finden Sie unter [VPC-Endpoint erstellen](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).

## Den Trainingsoperator installieren
<a name="sagemaker-eks-operator-install-operator"></a>

 Sie können den HyperPod Training Operator jetzt über die SageMaker AI-Konsole, die Amazon EKS-Konsole oder mit den Konsolenmethoden installieren. AWS CLI Die Konsolenmethoden bieten vereinfachte Funktionen, die Ihnen bei der Installation des Operators helfen. Das AWS CLI bietet einen programmatischen Ansatz, mit dem Sie Ihre Installation weiter anpassen können.

Zwischen den beiden Konsolenanwendungen bietet SageMaker KI eine Installation mit einem Klick, erstellt die IAM-Ausführungsrolle, erstellt die Pod-Identitätszuordnung und installiert den Operator. Die Installation der Amazon EKS-Konsole ist ähnlich, aber diese Methode erstellt nicht automatisch die IAM-Ausführungsrolle. Während dieses Vorgangs haben Sie die Wahl, eine neue IAM-Ausführungsrolle mit Informationen zu erstellen, die die -Konsole vorab ausfüllt. Standardmäßig haben diese erstellten Rollen nur Zugriff auf den aktuellen Cluster, in dem Sie den Operator installieren. Wenn Sie den Operator entfernen und erneut installieren, müssen Sie eine neue Rolle erstellen, es sei denn, Sie bearbeiten die Berechtigungen der Rolle, um andere Cluster einzubeziehen. 

------
#### [ SageMaker AI console (recommended) ]

1. Öffnen Sie die Amazon SageMaker AI-Konsole unter [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Gehen Sie zur Detailseite Ihres Clusters.

1. Suchen Sie auf der Registerkarte **Dashboard** das Add-on mit dem Namen **Amazon SageMaker HyperPod Training Operator** und wählen Sie **Installieren**. Während des Installationsvorgangs erstellt SageMaker KI eine IAM-Ausführungsrolle mit Berechtigungen, die der [ AmazonSageMakerHyperPodTrainingOperatorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html)verwalteten Richtlinie ähneln, und erstellt eine Pod-Identitätszuordnung zwischen Ihrem Amazon EKS-Cluster und Ihrer neuen Ausführungsrolle.

------
#### [ Amazon EKS console ]

**Anmerkung**  
Wenn Sie das Add-on über den Amazon EKS-Cluster installieren, stellen Sie zunächst sicher, dass Sie Ihren HyperPod Cluster mit dem Schlüssel-Wert-Paar gekennzeichnet haben. `SageMaker:true` Andernfalls schlägt die Installation fehl.

1. Öffnen Sie die Amazon EKS-Konsole unter [https://console.aws.amazon.com/eks/home\#/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Gehen Sie zu Ihrem EKS-Cluster, wählen Sie **Add-Ons** und dann **Get more Add-Ons**.

1. Wählen Sie Amazon SageMaker HyperPod Training Operator und dann **Weiter**.

1. Unter **Version** verwendet die Konsole standardmäßig die neueste Version. Wir empfehlen Ihnen, diese zu verwenden.

1. Wählen Sie unter **Add-On-Zugriff** eine IAM-Rolle mit Pod-Identität aus, die mit dem Training Operator-Add-on verwendet werden soll. Wenn Sie noch keine Rolle haben, wählen Sie **Empfohlene Rolle erstellen** aus, um eine zu erstellen.

1. Während der Rollenerstellung füllt die IAM-Konsole alle erforderlichen Informationen vorab aus, z. B. den Anwendungsfall, die [ AmazonSageMakerHyperPodTrainingOperatorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html)verwaltete Richtlinie und andere erforderliche Berechtigungen, den Rollennamen und die Beschreibung. **Überprüfen Sie die Informationen, während Sie die Schritte ausführen, und wählen Sie „Rolle erstellen“.**

1. Überprüfen Sie in der EKS-Konsole die Einstellungen Ihres Add-ons und wählen Sie dann **Erstellen** aus.

------
#### [ CLI ]

1. Stellen Sie sicher, dass die IAM-Ausführungsrolle für Ihren HyperPod Cluster über eine Vertrauensbeziehung verfügt, die es EKS Pod Identity ermöglicht, die Rolle zu übernehmen, oder [erstellen Sie eine neue IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) mit der folgenden Vertrauensrichtlinie. Alternativ können Sie die Amazon EKS-Konsole verwenden, um das Add-on zu installieren, wodurch eine empfohlene Rolle erstellt wird.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowEksAuthToAssumeRoleForPodIdentity",
         "Effect": "Allow",
         "Principal": {
           "Service": "pods.eks.amazonaws.com"
         },
         "Action": [
           "sts:AssumeRole",
           "sts:TagSession",
           "eks-auth:AssumeRoleForPodIdentity"
         ]
       }
     ]
   }
   ```

------

1.  Hängen Sie die [ AmazonSageMakerHyperPodTrainingOperatorAccess verwaltete Richtlinie](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html) an Ihre erstellte Rolle an. 

1.  [Erstellen Sie dann eine Pod-Identitätszuordnung zwischen Ihrem EKS-Cluster, Ihrer IAM-Rolle und Ihrer neuen IAM-Rolle](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).

   ```
   aws eks create-pod-identity-association \
   --cluster-name {{my-eks-cluster}} \
   --role-arn {{ARN of your execution role}} \
   --namespace aws-hyperpod \
   --service-account hp-training-operator-controller-manager \
   --region {{AWS-Region}}
   ```

1.  Nachdem Sie den Vorgang abgeschlossen haben, können Sie den ListPodIdentityAssociations Vorgang verwenden, um die von Ihnen erstellte Zuordnung zu sehen. Im Folgenden finden Sie ein Beispiel dafür, wie eine Antwort aussehen könnte. 

   ```
   aws eks list-pod-identity-associations --cluster-name my-eks-cluster
   {
       "associations": [{
           "clusterName": "{{my-eks-cluster}}",
           "namespace": "aws-hyperpod",
           "serviceAccount": "hp-training-operator-controller-manager",
           "associationArn": "arn:aws:eks:us-east-2:123456789012:podidentityassociation/my-hyperpod-cluster/a-1a2b3c4d5e6f7g8h9",
           "associationId": "{{a-1a2b3c4d5e6f7g8h9}}"
       }]
   }
   ```

1. Um den Trainingsoperator zu installieren, verwenden Sie die Operation `create-addon`. Der Parameter `--addon-version` ist optional. Wenn Sie keine angeben, ist die Standardversion die neueste Version. Verwenden Sie den [ DescribeAddonVersions](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html)Vorgang, um die möglichen Versionen abzurufen.

   ```
   aws eks create-addon \
     --cluster-name my-eks-cluster \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --resolve-conflicts OVERWRITE
   ```

------

Wenn Sie den Training Operator bereits auf Ihrem HyperPod Cluster installiert haben, können Sie das EKS-Add-on auf die gewünschte Version aktualisieren. Wenn Sie [Checkpointless-Training oder [elastisches Training](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-elastic-training.html)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless.html) verwenden möchten, sollten Sie Folgendes beachten:
+ Sowohl das Training ohne Checkpoint als auch das elastische Training setzen voraus, dass das EKS-Add-on Version 1.2.0 oder höher installiert ist.
+ Der Amazon SageMaker HyperPod Training Operator gewährleistet die Abwärtskompatibilität für jede EKS-Add-On-Version, sodass Sie ein Upgrade von jeder Add-On-Version auf 1.2.0 oder höher durchführen können.
+ Wenn Sie ein Downgrade von Version 1.2.0 oder höher auf eine niedrigere Version durchführen, müssen Sie zuerst die vorhandenen Jobs vor dem Downgrade löschen und die Jobs nach Abschluss des Downgrades erneut einreichen.

------
#### [ Amazon EKS Console ]

1. Öffnen Sie die Amazon EKS-Konsole unter [https://console.aws.amazon.com/eks/home\#/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. **Gehen Sie zu Ihrem EKS-Cluster und wählen Sie Add-ons.** Wählen Sie dann das Amazon SageMaker HyperPod Training Operator-Add-on und klicken Sie auf **Bearbeiten**.

1. Wählen Sie im Menü **Version** die gewünschte Version des Add-ons aus und klicken Sie dann auf **Änderungen speichern**.

------
#### [ CLI ]

1. Rufen Sie zunächst die Liste der unterstützten Versionen des Add-ons für Ihren Cluster ab.

   ```
   aws eks describe-addon-versions \
     --kubernetes-version $(aws eks describe-cluster --name {{my-eks-cluster}} --query 'cluster.version' --output text) \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --query 'addons[0].addonVersions[].addonVersion' \
     --output table
   ```

1. Aktualisieren Sie dann das Add-on auf die gewünschte Version.

   ```
   aws eks update-addon \
     --cluster-name my-eks-cluster \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --addon-version target-version
     --resolve-conflicts OVERWRITE
   ```

------

 Der Trainingsoperator bietet eine Reihe von Optionen mit Standardwerten, die möglicherweise zu Ihrem Anwendungsfall passen. Wir empfehlen Ihnen, den Trainingsoperator mit Standardwerten auszuprobieren, bevor Sie sie ändern. In der folgenden Tabelle werden alle Parameter und Beispiele dafür beschrieben, wann Sie die einzelnen Parameter konfigurieren sollten.


| Parameter | Description | Standard | 
| --- | --- | --- | 
| hpTrainingControllerManager.Manager.Resources.Requests.CPU | Wie viele Prozessoren müssen dem Controller zugewiesen werden | 1 | 
| hpTrainingControllerManager.Manager.Resources.Requests.Memory | Wie viel Speicher soll dem Controller zugewiesen werden | 2 Gi | 
| hpTrainingControllerManager.Manager.Resources.Limits.CPU | Das CPU-Limit für den Controller | 2 | 
| hpTrainingControllerManager.Manager.Resources.Limits.Memory | Das Speicherlimit für den Controller | 4Gi | 
| hpTrainingControllerManager.NodeSelector | Knotenauswahl für die Controller-Pods | Das Standardverhalten besteht darin, Knoten mit der Bezeichnung auszuwählen sagemaker.amazonaws.com/compute-type: "HyperPod" | 

## HyperPod elastisches Mittel
<a name="sagemaker-eks-operator-elastic-agent"></a>

Das HyperPod elastische Mittel ist eine Erweiterung [PyTorchvon ElasticAgent](https://docs.pytorch.org/docs/stable/elastic/agent.html). Er organisiert die Lebenszyklen der geschulten Mitarbeiter an jedem Container und kommuniziert mit dem Schulungsleiter. HyperPod Um den HyperPod Trainingsoperator verwenden zu können, müssen Sie zuerst den HyperPod Elastic Agent in Ihrem Trainings-Image installieren, bevor Sie Jobs mit dem Operator einreichen und ausführen können. Im Folgenden finden Sie eine Docker-Datei, mit der Elastic Agent installiert und der `hyperpodrun` Job Launcher erstellt wird.

**Anmerkung**  
Sowohl das [Checkpointless-Training](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless.html) als auch das [elastische Training](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-elastic-training.html) setzen voraus, dass Sie HyperPod Elastic Agent Version 1.1.0 oder höher verwenden.

```
RUN pip install hyperpod-elastic-agent

ENTRYPOINT ["entrypoint.sh"]
# entrypoint.sh
...
hyperpodrun --nnodes={{node_count}} --nproc-per-node={{proc_count}} \
            --rdzv-backend hyperpod \ # Optional
            --inprocess-restart \ # Optional (in-process fault recovery with checkpointless training)
            ... # Other torchrun args
            # pre-traing arg_group
            --pre-train-script pre.sh --pre-train-args "pre_1 pre_2 pre_3" \
            # post-train arg_group
            --post-train-script post.sh --post-train-args "post_1 post_2 post_3" \
            {{training.py}} --script-args
```

Sie können jetzt Jobs mit `kubectl` einreichen.

### HyperPod Argumente für elastische Agenten
<a name="sagemaker-eks-operator-elastic-agent-args"></a>

 Der HyperPod elastische Agent unterstützt alle ursprünglichen Argumente und fügt einige zusätzliche Argumente hinzu. Im Folgenden sind alle Argumente aufgeführt, die im HyperPod Elastikmittel verfügbar sind. Weitere Informationen zum PyTorch Elastic Agent finden Sie in der [offiziellen Dokumentation](https://docs.pytorch.org/docs/stable/elastic/agent.html). 


| Argument | Description | Standardwert | 
| --- | --- | --- | 
| --Shutdown-Signal | Signal, das an die Arbeiter zum Herunterfahren gesendet werden soll (SIGTERM oder SIGKILL) | „SIGKILL“ | 
| --shutdowntimeout | Zeitlimit in Sekunden zwischen Shutdown-Signal und SIGKILL-Signalen | 15 | 
| --server-host | Serveradresse des Agenten | "0.0.0.0" | 
| --server-port | Agent-Server-Port | 8080 | 
| --server-log-level | Protokollebene | "info" | 
| --server-shutdown-timeout | Timeout für Server-Shutdown in Sekunden | 300 | 
| --pre-train-script | Pfad zum Vortraining | Keine | 
| --pre-train-args | Argumente für das Vortraining | Keine | 
| --post-train-script | Pfad zum Skript nach dem Training | Keine | 
| --post-train-args | Argumente für das Skript nach dem Training | Keine | 
| --inprocess-restart | Markierung, die angibt, ob die Funktion inprocess\_restart verwendet werden soll | FALSE | 
| --inprocess-timeout | Zeit in Sekunden, in der der Agent darauf wartet, dass Worker eine Synchronisationsbarriere erreichen, bevor er einen Neustart auf Prozessebene auslöst. | Keine | 

## Verwaltung von Aufgaben (optional)
<a name="sagemaker-eks-operator-task-governance"></a>

Der Schulungsoperator ist in [ HyperPod Task Governance](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance) integriert, ein robustes Managementsystem, das entwickelt wurde, um die Ressourcenzuweisung zu optimieren und eine effiziente Nutzung der Rechenressourcen für Ihre Amazon EKS-Cluster zwischen Teams und Projekten sicherzustellen. Informationen zum Einrichten der HyperPod Task-Governance finden Sie unter[Einrichtung für die SageMaker HyperPod Task-Governance](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md). 

**Anmerkung**  
Bei der Installation des HyperPod Task Governance-Add-ons müssen Sie Version v1.3.0-eksbuild.1 oder höher verwenden.

Stellen Sie sicher, dass Sie bei der Übermittlung eines Auftrags Ihren Warteschlangennamen und die Prioritätsklassenbezeichnungen `hyperpod-ns-{{team-name}}-localqueue` und `{{priority-class}}-name-priority` angeben. Beispiel anhand von Kueue erhalten Sie folgende Labels:
+ {{team-name}}kueue.x-k8s.io/Warteschlangenname: hyperpod-ns- -localqueue
+ kueue.x-k8s.io/priority-class: -name-priorität {{priority-class}}

Im Folgenden finden Sie ein Beispiel dafür, wie Ihre Konfigurationsdatei aussehen könnte:

```
apiVersion: sagemaker.amazonaws.com/v1
kind: HyperPodPytorchJob
metadata:
  name: hp-task-governance-sample
  namespace: hyperpod-ns-{{team-name}}
  labels:
    kueue.x-k8s.io/queue-name: hyperpod-ns-{{team-name}}-localqueue
    kueue.x-k8s.io/priority-class: {{priority-class}}-priority
spec:
  nprocPerNode: "1"
  runPolicy:
    cleanPodPolicy: "None"
  replicaSpecs: 
    - name: pods
      replicas: 4
      spares: 2
      template:
        spec:
          containers:
            - name: ptjob
              image: XXXX
              imagePullPolicy: Always
              ports:
                - containerPort: 8080
              resources:
                requests:
                  cpu: "2"
```

Verwenden Sie dann den folgenden kubectl-Befehl, um die YAML-Datei anzuwenden.

```
kubectl apply -f task-governance-job.yaml
```

## Warteschlange (optional)
<a name="sagemaker-eks-operator-kueue"></a>

Sie können Jobs zwar direkt ausführen, aber Ihr Unternehmen kann den Schulungsleiter auch in Kueue integrieren, um Ressourcen zuzuweisen und Jobs zu planen. Gehen Sie wie folgt vor, um Kueue in Ihrem Cluster zu installieren. HyperPod 

1. Folgen Sie der Installationsanleitung in der [offiziellen Kueue-Dokumentation](https://kueue.sigs.k8s.io/docs/installation/#install-a-custom-configured-released-version). Wenn Sie den Schritt der Konfiguration erreicht haben`controller_manager_config.yaml`, fügen Sie die folgende Konfiguration hinzu:

   ```
   externalFrameworks:
   - "HyperPodPytorchJob.v1.sagemaker.amazonaws.com"
   ```

1. Befolgen Sie die restlichen Schritte in der offiziellen Installationsanleitung. Nachdem Sie die Installation von Kueue abgeschlossen haben, können Sie mit dem `kubectl apply -f sample-queues.yaml`-Befehl einige Beispielwarteschlangen erstellen. Verwenden Sie die folgende YAML-Datei.

   ```
   apiVersion: kueue.x-k8s.io/v1beta1
   kind: ClusterQueue
   metadata:
     name: cluster-queue
   spec:
     namespaceSelector: {}
     preemption:
       withinClusterQueue: LowerPriority
     resourceGroups:
     - coveredResources:
       - cpu
       - nvidia.com/gpu
       - pods
       flavors:
       - name: default-flavor
         resources:
         - name: cpu
           nominalQuota: 16
         - name: nvidia.com/gpu
           nominalQuota: 16
         - name: pods
           nominalQuota: 16
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   kind: LocalQueue
   metadata:
     name: user-queue
     namespace: default
   spec:
     clusterQueue: cluster-queue
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   kind: ResourceFlavor
   metadata:
     name: default-flavor
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   description: High priority
   kind: WorkloadPriorityClass
   metadata:
     name: high-priority-class
   value: 1000
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   description: Low Priority
   kind: WorkloadPriorityClass
   metadata:
     name: low-priority-class
   value: 500
   ```