

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.

# Nutzung verteilter Schulungen in AWS Clean Rooms ML
<a name="use-distributed-training"></a>

Voraussetzungen: 
+ Und AWS-Konto mit Zugriff auf AWS Clean Rooms
+ Eine Zusammenarbeit wurde eingerichtet in AWS Clean Rooms
+ Ein konfigurierter Modellalgorithmus, der verteiltes Training unterstützt
+ Ein großer Datensatz, der für die verteilte Verarbeitung geeignet ist 
+ Entsprechende Berechtigungen zum Erstellen und Verwalten von ML-Modellen in der Zusammenarbeit
+ Ausreichendes Amazon EC2 EC2-Kontingent zum Ausführen mehrerer Instances für verteilte Schulungen 

Verteiltes Training nutzt die Leistung vieler parallel arbeitender Rechenknoten, um große Datenmengen zu verarbeiten und Modellparameter effizient zu aktualisieren. 

Weitere Informationen zu verteilten Schulungen finden Sie unter [Konzepte für verteilte Schulungen](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-training.html#distributed-training-basic-concepts) im *Amazon SageMaker AI Developer Guide*.

------
#### [ Console ]

**Um einen verteilten Trainingsjob auszuführen (Konsole)**

1. Melden Sie sich bei [https://console.aws.amazon.com/cleanrooms](https://console.aws.amazon.com/cleanrooms/home) an AWS-Managementkonsole und öffnen Sie die AWS Clean Rooms Konsole.

1. **Wählen Sie im linken Navigationsbereich Collaborations aus.**

1. Wählen Sie auf der Seite **Kollaborationen** die Kollaboration aus, für die Sie ein trainiertes Modell erstellen möchten.

1. Wählen Sie nach dem Öffnen der Kollaboration die Registerkarte **ML-Modelle** aus.

1. Wählen Sie unter **Benutzerdefinierte ML-Modelle** im Abschnitt **Trainierte Modelle** die Option **Trainiertes Modell erstellen** aus.

1. Geben Sie auf der Seite **Trainiertes Modell erstellen** für **Algorithmus für Zugeordnetes Modell** den Algorithmus an

1. Geben Sie für **Details zum trainierten Modell** Folgendes ein:

   1. Geben Sie unter **Name** einen eindeutigen Namen für das Modell in der Kollaboration ein.

   1. (Optional) Geben Sie unter **Beschreibung** eine Beschreibung des trainierten Modells ein.

   1. Wählen Sie für **den Eingabemodus Trainingsdaten** eine der folgenden Optionen:
      + Wählen Sie **Datei** aus, wenn Sie über einen kleineren Datensatz verfügen, der auf das ML-Speichervolumen passt, und Sie für Ihr Trainingsskript den herkömmlichen Dateisystemzugriff bevorzugen.
      + Wählen Sie **Pipe** für große Datensätze, um Daten direkt aus S3 zu streamen, sodass Sie nicht alles auf die Festplatte herunterladen müssen, was die Trainingsgeschwindigkeit verbessern und den Speicherbedarf reduzieren kann.
      + Wählen Sie aus, **FastFile**ob Sie die Vorteile des Streamings von S3 mit dem Dateisystemzugriff kombinieren möchten, insbesondere für sequentiell gelesene Daten oder wenn Sie mit weniger Dateien arbeiten müssen, um die Startzeiten zu verkürzen.

1. Gehen Sie wie folgt vor, um **Einzelheiten zum ML-Eingangskanal** zu erhalten: 

   1. Geben Sie für den **ML-Eingangskanal** den ML-Eingangskanal an, der Daten für den Modellalgorithmus bereitstellt. 

      Um einen weiteren Kanal hinzuzufügen, wählen Sie „**Weiteren ML-Eingangskanal hinzufügen**“. Sie können bis zu 19 zusätzliche ML-Eingangskanäle hinzufügen. 

   1. Geben Sie **als Kanalname** den Namen des ML-Eingangskanals ein.

   1. Wählen Sie für den **Amazon S3 S3-Datenverteilungstyp** eine der folgenden Optionen:
      + Wählen Sie **Vollständig repliziert** aus, um jeder Trainingsinstanz eine vollständige Kopie Ihres Datensatzes zu geben. Dies funktioniert am besten, wenn Ihr Datensatz klein genug ist, um in den Arbeitsspeicher zu passen, oder wenn jede Instanz Zugriff auf alle Daten benötigt.
      + Wählen Sie **Sharded by S3 Key** aus, um Ihren Datensatz anhand von S3-Schlüsseln auf Trainingsinstanzen aufzuteilen. Jede Instanz empfängt etwa 1/n der gesamten S3-Objekte, wobei 'n' für die Anzahl der Instanzen steht. Dies funktioniert am besten für große Datensätze, die Sie parallel verarbeiten möchten.
**Anmerkung**  
Berücksichtigen Sie bei der Auswahl eines Verteilungstyps Ihre Datensatzgröße und Ihre Trainingsanforderungen. **Vollständig repliziert** bietet vollständigen Datenzugriff, benötigt jedoch mehr Speicherplatz, während **Sharded by S3 Key** die verteilte Verarbeitung großer Datensätze ermöglicht.

1. Wählen Sie für **Maximale Trainingsdauer** die maximale Dauer aus, für die Sie Ihr Modell trainieren möchten.

1. Geben Sie für **Hyperparameter** alle algorithmusspezifischen Parameter und ihre beabsichtigten Werte an. Hyperparameter sind spezifisch für das trainierte Modell und werden zur Feinabstimmung des Modelltrainings verwendet.

1. Geben Sie für **Umgebungsvariablen** alle algorithmusspezifischen Variablen und ihre beabsichtigten Werte an. Umgebungsvariablen werden im Docker-Container festgelegt.

1. Um eine benutzerdefinierte **Verschlüsselung** zu verwenden AWS KMS key, aktivieren Sie das Kontrollkästchen **Geheimnis mit einem benutzerdefinierten KMS-Schlüssel verschlüsseln**.

1. Geben Sie für die **EC2-Ressourcenkonfiguration** Informationen zu den Rechenressourcen an, die für das Modelltraining verwendet werden. 

   1. Wählen Sie unter **Instanztyp** den Instanztyp aus, den Sie ausführen möchten. 

      Folgende Instanztypen für verteiltes Training werden unterstützt: 
      + ml.m5.4xlarge
      + ml.m5.12xlarge 
      + ml.m5.2xlarge
      + ml.g5.12xlarge
      + ml.g5.24xlarge

   1. Geben Sie im Feld **Anzahl der Instanzen** die Anzahl der Instanzen ein.

   1. Geben Sie für **Volumengröße in GB** die Größe des ML-Speichervolumens ein.

1. Wählen Sie **Trainiertes Modell erstellen** aus. 

------
#### [ API ]

Um einen verteilten Trainingsjob (API) auszuführen

Führen Sie den folgenden Code mit Ihren spezifischen Parametern aus:

```
import boto3 
acr_ml_client= boto3.client('cleanroomsml')
 
acr_ml_client.create_trained_model(
    membershipIdentifier= '{{membership_id}}',
    configuredModelAlgorithmAssociationArn = 'arn:aws:cleanrooms-ml:{{region:account:membership}}/membershipIdentifier/configured-model-algorithm-association/{{identifier}}',
    name='{{trained_model_name}}',
    trainingInputMode: "File",
    resourceConfig={
        'instanceCount': "3"
        'instanceType': "ml.m5.xlarge",
        'volumeSizeInGB': 3
    },
    dataChannels=[
        {
            "mlInputChannelArn": channel_arn_1,
            "channelName": "{{channel_name}}", 
            "S3DataDistributionType:" "FullyReplicated"
        }
  
    ]
)
```

------

**Anmerkung**  
Nachdem das trainierte Modell erstellt wurde, können Sie es nicht mehr bearbeiten. Um Änderungen vorzunehmen, löschen Sie das trainierte Modell und erstellen Sie ein neues.