

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.

# Wie stellt Amazon SageMaker AI Schulungsinformationen zur Verfügung
<a name="your-algorithms-training-algo-running-container"></a>

In diesem Abschnitt wird erklärt, wie SageMaker KI Ihrem Docker-Container Trainingsinformationen wie Trainingsdaten, Hyperparameter und andere Konfigurationsinformationen zur Verfügung stellt. 

Wenn Sie eine [`CreateTrainingJob`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) Anfrage an SageMaker AI senden, um mit dem Modelltraining zu beginnen, geben Sie den Amazon Elastic Container Registry (Amazon ECR) -Pfad des Docker-Images an, das den Trainingsalgorithmus enthält. Sie geben auch den Amazon Simple Storage Service (Amazon S3) -Standort an, an dem die Trainingsdaten gespeichert werden, sowie algorithmusspezifische Parameter. SageMaker AI stellt diese Informationen dem Docker-Container zur Verfügung, damit Ihr Trainingsalgorithmus sie verwenden kann. In diesem Abschnitt wird erklärt, wie wir diese Informationen Ihrem Docker-Container verfügbar machen können. Informationen zum Erstellen eines Trainingsauftrags finden Sie unter `CreateTrainingJob`. Weitere Informationen zur Art und Weise, wie SageMaker AI-Container Informationen organisieren, finden Sie unter[SageMaker Schulungs- und Inferenz-Toolkits](amazon-sagemaker-toolkits.md).

**Topics**
+ [Hyperparameter](#your-algorithms-training-algo-running-container-hyperparameters)
+ [Umgebungsvariablen](#your-algorithms-training-algo-running-container-environment-variables)
+ [Eingabedatenkonfiguration](#your-algorithms-training-algo-running-container-inputdataconfig)
+ [Trainingsdaten](#your-algorithms-training-algo-running-container-trainingdata)
+ [Konfiguration für verteiltes Training](#your-algorithms-training-algo-running-container-dist-training)

## Hyperparameter
<a name="your-algorithms-training-algo-running-container-hyperparameters"></a>

 SageMaker AI stellt die Hyperparameter in einer `CreateTrainingJob` Anfrage im Docker-Container in der `/opt/ml/input/config/hyperparameters.json` Datei zur Verfügung.

Im Folgenden finden Sie ein Beispiel für eine Hyperparameter-Konfiguration in `hyperparameters.json` zur Angabe der `num_round` und `eta` Hyperparameter bei der `CreateTrainingJob` Operation für [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html). 

```
{
    "num_round": "128",
    "eta": "0.001"
}
```

Eine vollständige Liste der Hyperparameter, die für den in der SageMaker KI integrierten XGBoost-Algorithmus verwendet werden können, finden Sie unter XGBoost-Hyperparameter. [https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost_hyperparameters.html](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost_hyperparameters.html)

Die Hyperparameter, die Sie einstellen können, hängen vom Algorithmus ab, den Sie trainieren. Eine Liste der Hyperparameter, die für einen integrierten SageMaker KI-Algorithmus verfügbar sind, finden Sie unter ** Hyperparameters ** unter dem Algorithmus-Link unter Amazon AI-Algorithmen oder -Modelle verwenden. [ SageMaker Built-in Pre-trained ](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html)

## Umgebungsvariablen
<a name="your-algorithms-training-algo-running-container-environment-variables"></a>

SageMaker AI legt die folgenden Umgebungsvariablen in Ihrem Container fest:
+ TRAINING\_JOB\_NAME – Wird im Parameter `TrainingJobName` der Anforderung `CreateTrainingJob`angegeben.
+ TRAINING\_JOB\_ARN – Der Amazon Resource Name (ARN) des Trainingsjobs, der als `TrainingJobArn` in der `CreateTrainingJob`-Antwort zurückgegeben wird.
+ Alle Umgebungsvariablen, die im Parameter [Environment](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#sagemaker-CreateTrainingJob-request-Environment) in der Anforderung `CreateTrainingJob` angegeben sind.

## Eingabedatenkonfiguration
<a name="your-algorithms-training-algo-running-container-inputdataconfig"></a>

SageMaker AI stellt die Datenkanalinformationen im `InputDataConfig` Parameter aus Ihrer `CreateTrainingJob` Anfrage in der `/opt/ml/input/config/inputdataconfig.json` Datei in Ihrem Docker-Container zur Verfügung.

Angenommen, Sie geben in Ihrer Anfrage drei Datenkanäle (`train``evaluation`, und`validation`) an. SageMaker AI stellt das folgende JSON bereit:

```
{
  "train" : {"ContentType":  "trainingContentType",
             "TrainingInputMode": "File",
             "S3DistributionType": "FullyReplicated",
             "RecordWrapperType": "None"},
  "evaluation" : {"ContentType":  "evalContentType",
                  "TrainingInputMode": "File",
                  "S3DistributionType": "FullyReplicated",
                  "RecordWrapperType": "None"},
  "validation" : {"TrainingInputMode": "File",
                  "S3DistributionType": "FullyReplicated",
                  "RecordWrapperType": "None"}
}
```

**Anmerkung**  
SageMaker AI stellt dem Container nur relevante Informationen über jeden Datenkanal (z. B. den Kanalnamen und den Inhaltstyp) zur Verfügung, wie im vorherigen Beispiel gezeigt. `S3DistributionType`wird so eingerichtet, als `FullyReplicated` ob Sie EFS oder FSxLustre als Eingabedatenquellen angeben würden.

## Trainingsdaten
<a name="your-algorithms-training-algo-running-container-trainingdata"></a>

Der `TrainingInputMode` Parameter in `AlgorithmSpecification` der [`CreateTrainingJob`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)Anfrage gibt an, wie der Trainingsdatensatz Ihrem Container zur Verfügung gestellt wird. Die folgenden Eingabemodi sind verfügbar.
+ **`File` Modus**

  Wenn Sie `File` mode als `TrainingInputMode` Wert verwenden, legt SageMaker AI die folgenden Parameter in Ihrem Container fest.
  + Ihr `TrainingInputMode` Parameter wird `inputdataconfig.json` als „Datei“ geschrieben.
  + Ihr Datenkanalverzeichnis wird in `/opt/ml/input/data/{{channel_name}}` geschrieben.

  Wenn Sie `File` mode verwenden, erstellt SageMaker AI für jeden Kanal ein Verzeichnis. Wenn Sie beispielsweise drei Kanäle mit dem Namen`training`, und haben `validation``testing`, erstellt SageMaker AI die folgenden drei Verzeichnisse in Ihrem Docker-Container: 
  + `/opt/ml/input/data/training`
  + `/opt/ml/input/data/validation`
  + `/opt/ml/input/data/testing`

  `File` Modus unterstützt auch die folgenden Datenquellen:
  + Amazon Simple Storage Service (Amazon-S3)
  + Amazon Elastic File System (Amazon EFS)
  + Amazon FSx für Lustre
**Anmerkung**  
Kanäle, die Dateisysteme wie Amazon EFS und Amazon FSx als Datenquellen nutzen, müssen den `File`-Modus verwenden. In diesem Fall wird der im Kanal angegebene Verzeichnispfad unter `/opt/ml/input/data/{{channel_name}}` bereitgestellt.
+ **`FastFile` Modus**

  Wenn Sie `FastFile` mode als Ihren verwenden`TrainingInputNodeParameter`, legt SageMaker AI die folgenden Parameter in Ihrem Container fest.
  + Ähnlich wie im `File` Modus wird im Modus `FastFile` Ihr Parameter `TrainingInputMode` im `inputdataconfig.json` als „Datei“ geschrieben.
  + Ihr Datenkanalverzeichnis wird in `/opt/ml/input/data/{{channel_name}}` geschrieben.

  `FastFile` unterstützt die folgenden Datenquellen:
  + Amazon S3

  Wenn Sie den `FastFile` Modus verwenden, wird das Kanalverzeichnis nur mit Lesezugriff bereitgestellt.

  Historisch gesehen ging der `File` Modus dem Modus `FastFile` voraus. Um die Abwärtskompatibilität zu gewährleisten, können Algorithmen, die den `File` Modus unterstützen, auch problemlos mit dem `FastFile` Modus arbeiten, sofern der `TrainingInputMode` Parameter auf `File` in `inputdataconfig.json.` gesetzt ist.
**Anmerkung**  
Kanäle, die den `FastFile` Modus verwenden, müssen ein `S3DataType` vom „S3Prefix“ verwenden.  
`FastFile` mode präsentiert eine Ordneransicht, die den Schrägstrich (`/`) als Trennzeichen für die Gruppierung von Amazon S3-Objekten in Ordnern verwendet. `S3Uri` Präfixe dürfen keinem Teil des Ordnernamens entsprechen. Wenn ein Amazon S3-Datensatz beispielsweise `s3://amzn-s3-demo-bucket/train-01/data.csv` enthält, dann sind weder `s3://amzn-s3-demo-bucket/train` noch `s3://amzn-s3-demo-bucket/train-01` Präfixe noch als `S3Uri` Präfixe zulässig.  
Ein abschließender Schrägstrich wird empfohlen, um einen Kanal zu definieren, der einem Ordner entspricht. Zum Beispiel der `s3://amzn-s3-demo-bucket/train-01/` Kanal für den `train-01` Ordner. Ohne den abschließenden Schrägstrich wäre der Kanal mehrdeutig, wenn es einen anderen Ordner `s3://amzn-s3-demo-bucket/train-011/` oder eine andere Datei `s3://amzn-s3-demo-bucket/train-01.txt/` gäbe.
+ **`Pipe` Modus**
  + `TrainingInputMode` Parameter geschrieben in `inputdataconfig.json`: „Pipe“
  + Datenkanal-Verzeichnis im Docker-Container: `/opt/ml/input/data/{{channel_name_epoch_number}}`
  + Unterstützte Datenquellen: Amazon S3

  Sie müssen für jeden Kanal aus einer separaten Pipe lesen. Wenn Sie beispielsweise über drei Kanäle mit den Namen `training`, `validation` und `testing` verfügen, müssen Sie aus den folgenden Pipes lesen:
  + `/opt/ml/input/data/training_0, /opt/ml/input/data/training_1, ...`
  + `/opt/ml/input/data/validation_0, /opt/ml/input/data/validation_1, ...`
  + `/opt/ml/input/data/testing_0, /opt/ml/input/data/testing_1, ...`

  Lesen Sie die Pipes sequenziell. Wenn Sie beispielsweise über einen Kanal mit dem Namen `training` verfügen, lesen Sie die Pipes in dieser Reihenfolge: 

  1. Öffnen Sie `/opt/ml/input/data/training_0` im Lesemodus und lesen Sie es bis zum Ende der Datei (EOF) oder, wenn Sie mit der ersten Epoche fertig sind, schließen Sie die Pipe-Datei vorzeitig. 

  1. Nachdem Sie die erste Pipe-Datei geschlossen haben, suchen Sie nach `/opt/ml/input/data/training_1` und lesen Sie sie bis zum Ende der zweiten Epoche usw.

  Wenn die Datei für eine bestimmte Epoche noch nicht existiert, muss Ihr Code möglicherweise erneut versuchen, bis die Pipe erstellt ist. Sie können zum Beispiel mehrere Epochen für den `training` -Kanal lesen und erst dann mit dem Lesen des `validation`-Kanals beginnen, wenn Sie bereit sind. Oder Sie können sie gleichzeitig lesen, wenn Ihr Algorithmus dies erfordert.

  Ein Beispiel für ein Jupyter-Notizbuch, das zeigt, wie Sie den Pipe-Modus verwenden, wenn Sie Ihren eigenen Container mitbringen, finden Sie unter [ Bringen Sie Ihren eigenen Pipe-Mode-Algorithmus zu Amazon AI. SageMaker ](https://github.com/aws/amazon-sagemaker-examples/blob/main/advanced_functionality/pipe_bring_your_own/pipe_bring_your_own.ipynb)

  

SageMaker Das KI-Modelltraining unterstützt leistungsstarke S3 Express One Zone-Verzeichnis-Buckets als Dateneingabeort für den Dateimodus, den schnellen Dateimodus und den Pipe-Modus. Um S3 Express One Zone zu verwenden, geben Sie den Speicherort des Verzeichnis-Buckets von S3 Express One Zone anstelle eines Allzweck-Buckets von Amazon S3 ein. Stellen Sie den ARN für die IAM-Rolle mit den erforderlichen Zugriffskontroll- und Berechtigungsrichtlinien bereit. Weitere Einzelheiten finden Sie unter [AmazonSageMakerFullAccesspolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html). Sie können Ihre SageMaker KI-Ausgabedaten nur in Verzeichnis-Buckets mit serverseitiger Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln () verschlüsseln. SSE-S3 Server-side Die Verschlüsselung mit AWS KMS Schlüsseln (SSE-KMS) wird derzeit nicht für das Speichern von SageMaker KI-Ausgabedaten in Verzeichnis-Buckets unterstützt. Weitere Informationen finden Sie unter [S3 Express One Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html).

## Konfiguration für verteiltes Training
<a name="your-algorithms-training-algo-running-container-dist-training"></a>

Wenn Sie verteiltes Training mit mehreren Containern durchführen, stellt SageMaker AI Informationen über alle Container in der `/opt/ml/input/config/resourceconfig.json` Datei zur Verfügung.

Um die Kommunikation zwischen Containern zu ermöglichen, enthält diese JSON-Datei Informationen für alle Container. SageMaker AI stellt diese Datei sowohl für als auch `File` für `Pipe` Modus-Algorithmen zur Verfügung. Die Datei enthält die folgenden Informationen:
+ `current_host`–Der Name des aktuellen Containers im Containernetzwerk. Beispiel, `algo-1`. Host-Werte können sich jederzeit ändern. Schreiben Sie keinen Code mit spezifischen Werten für diese Variable.
+ `hosts`–Liste der Namen aller Container im Containernetzwerk, lexikografisch sortiert. Beispiel: `["algo-1", "algo-2", "algo-3"]` für einen Cluster mit drei Knoten. Container können diese Namen verwenden, um andere Container im Containernetzwerk anzugeben. Host-Werte können sich jederzeit ändern. Schreiben Sie keinen Code mit spezifischen Werten für diese Variablen.
+ `network_interface_name`– Der Name der Netzwerkschnittstelle, die für Ihren Container verfügbar ist. Beispielsweise können Container, die das Message Passing Interface (MPI) ausführen, diese Informationen verwenden, um den Namen der Netzwerkschnittstelle festzulegen.
+ Verwenden Sie nicht die Informationen in `/etc/hostname` oder `/etc/hosts`, da sie möglicherweise ungenau sind.
+ Die Informationen zum Hostnamen sind möglicherweise für den Algorithmus-Container nicht sofort verfügbar. Wir empfehlen, eine Wiederholungsrichtlinie für Operationen zur Auflösung des Hostnamens hinzuzufügen, sobald Knoten im Cluster verfügbar werden.

Nachfolgend sehen Sie eine Beispieldatei auf Knoten 1 in einem Cluster mit drei Knoten:

```
{
    "current_host": "algo-1",
    "hosts": ["algo-1","algo-2","algo-3"],
    "network_interface_name":"eth1"
}
```