

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.

# Konfigurieren und Starten eines Hyperparameter-Optimierungsauftrags
<a name="automatic-model-tuning-ex-tuning-job"></a>

**Wichtig**  
Benutzerdefinierte IAM-Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, SageMaker Amazon-Ressourcen zu erstellen, müssen auch Berechtigungen zum Hinzufügen von Tags zu diesen Ressourcen gewähren. Die Berechtigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM-Richtlinie Studio und Studio Classic das Erstellen von Ressourcen, aber kein Tagging erlaubt, können "AccessDenied" Fehler beim Versuch, Ressourcen zu erstellen, auftreten. Weitere Informationen finden Sie unter [Erteilen Sie Berechtigungen für das Taggen von SageMaker KI-Ressourcen](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS verwaltete Richtlinien für Amazon SageMaker AI](security-iam-awsmanpol.md)die Berechtigungen zum Erstellen von SageMaker Ressourcen gewähren, beinhalten bereits Berechtigungen zum Hinzufügen von Tags beim Erstellen dieser Ressourcen.

Ein Hyperparameter ist ein Parameter auf hoher Ebene, der den Lernprozess beim Modelltraining beeinflusst. Um die besten Modellvorhersagen zu erhalten, können Sie eine Hyperparameterkonfiguration optimieren oder Hyperparameterwerte festlegen. Der Prozess der Suche nach einer optimalen Konfiguration wird als Hyperparameter-Tuning bezeichnet. Zum Konfigurieren und Starten eines Hyperparameter-Tuning-Jobs führen Sie die Schritte in diesen Anleitungen aus.

**Topics**
+ [Einstellungen für Hyperparameter-Optimierungsaufträge](#automatic-model-tuning-ex-low-tuning-config)
+ [Konfigurieren der Trainingsaufträge](#automatic-model-tuning-ex-low-training-def)
+ [Benennen und Starten des Hyperparameter-Optimierungsauftrags](#automatic-model-tuning-ex-low-launch)
+ [Überwachen des Fortschritts eines Hyperparameter-Optimierungsauftrags](automatic-model-tuning-monitor.md)
+ [Anzeigen des Status der Trainingsaufträge](#automatic-model-tuning-monitor-training)
+ [Anzeigen des optimalen Trainingsauftrags](#automatic-model-tuning-best-training-job)

## Einstellungen für Hyperparameter-Optimierungsaufträge
<a name="automatic-model-tuning-ex-low-tuning-config"></a>

Um Einstellungen für den Hyperparameter-Abstimmungsauftrag festzulegen, definieren Sie ein JSON-Objekt, wenn Sie den Abstimmungsauftrag erstellen. Übergeben Sie dieses JSON-Objekt als Wert des `HyperParameterTuningJobConfig` Parameters an die [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)-API.

Geben Sie in diesem JSON-Objekt Folgendes an:

In diesem JSON-Objekt geben Sie Folgendes an:
+ `HyperParameterTuningJobObjective`– Die objektive Metrik, die verwendet wird, um die Leistung des Trainingsjobs zu bewerten, der durch den Hyperparameter-Tuning-Job gestartet wurde.
+ `ParameterRanges`– Der Wertebereich, den ein einstellbarer Hyperparameter bei der Optimierung verwenden kann. Weitere Informationen finden Sie unter [Definieren von Hyperparameter-Bereichen](automatic-model-tuning-define-ranges.md).
+ `RandomSeed`– Ein Wert, der zur Initialisierung eines Pseudozufallszahlengenerators verwendet wird. Wenn Sie einen zufälligen Startwert festlegen, können die Suchstrategien für die Hyperparameter-Optimierung konsistentere Konfigurationen für denselben Optimierungsjob erstellen (optional).
+ `ResourceLimits`– Die maximale Anzahl von Trainings- und parallel Trainingsjobs, die der Hyperparameter-Tuning-Job verwenden kann.

**Anmerkung**  
Wenn Sie Ihren eigenen Algorithmus für das Hyperparameter-Tuning anstelle eines in SageMaker KI [integrierten Algorithmus](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html) verwenden, müssen Sie Metriken für Ihren Algorithmus definieren. Weitere Informationen finden Sie unter [Definieren von Metriken](automatic-model-tuning-define-metrics-variables.md#automatic-model-tuning-define-metrics).

[Das folgende Codebeispiel zeigt, wie Sie einen Hyperparameter-Tuning-Job mithilfe des integrierten XGBoost Algorithmus konfigurieren.](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html) Das Codebeispiel zeigt, wie die Bereiche für die `eta`, `alpha`, `min_child_weight`, und `max_depth`-Hyperparameter definiert werden können. [Weitere Informationen zu diesen und anderen Hyperparametern finden Sie unter XGBoost Parameter.](https://xgboost.readthedocs.io/en/release_1.2.0/parameter.html) 

In diesem Codebeispiel findet die Zielmetrik für den Hyperparameter-Tuning-Job die Hyperparameter-Konfiguration, die maximiert. `validation:auc` SageMaker In KI integrierte Algorithmen schreiben die Zielmetrik automatisch in Logs. CloudWatch Das folgende Code-Beispiel zeigt auch, wie man ein `RandomSeed` setzt. 

```
tuning_job_config = {
    "ParameterRanges": {
      "CategoricalParameterRanges": [],
      "ContinuousParameterRanges": [
        {
          "MaxValue": "1",
          "MinValue": "0",
          "Name": "eta"
        },
        {
          "MaxValue": "2",
          "MinValue": "0",
          "Name": "alpha"
        },
        {
          "MaxValue": "10",
          "MinValue": "1",
          "Name": "min_child_weight"
        }
      ],
      "IntegerParameterRanges": [
        {
          "MaxValue": "10",
          "MinValue": "1",
          "Name": "max_depth"
        }
      ]
    },
    "ResourceLimits": {
      "MaxNumberOfTrainingJobs": 20,
      "MaxParallelTrainingJobs": 3
    },
    "Strategy": "Bayesian",
    "HyperParameterTuningJobObjective": {
      "MetricName": "validation:auc",
      "Type": "Maximize"
    },
    "RandomSeed" : 123
  }
```

## Konfigurieren der Trainingsaufträge
<a name="automatic-model-tuning-ex-low-training-def"></a>

Der Hyperparameter-Tuning-Job startet Trainingsjobs, um eine optimale Konfiguration von Hyperparametern zu finden. Diese Trainingsjobs sollten mithilfe der SageMaker [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)KI-API konfiguriert werden. 

Um die Trainingsjobs zu konfigurieren, definieren Sie ein JSON-Objekt und übergeben es als Wert des in `CreateHyperParameterTuningJob` enthaltenen `TrainingJobDefinition` Parameters.

In diesem JSON-Objekt können Sie folgende Formen angeben: 
+ `AlgorithmSpecification`– Der [Registry-Pfad](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html) des Docker-Images, das den Trainingsalgorithmus und die zugehörigen Metadaten enthält. Um einen Algorithmus zu spezifizieren, können Sie Ihren eigenen [benutzerdefinierten Algorithmus](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html) in einem [Docker-Container](https://docs.docker.com/get-started/overview/) oder einen [integrierten SageMaker KI-Algorithmus](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html) (erforderlich) verwenden.
+ `InputDataConfig`– Die Eingabekonfiguration, einschließlich der `ChannelName``ContentType`, und der Datenquelle für Ihre Trainings- und Testdaten (erforderlich).
+ `InputDataConfig`– Die Eingabekonfiguration, einschließlich der `ChannelName``ContentType`, und Datenquelle für Ihre Trainings- und Testdaten (erforderlich).
+ Speicherort für die Ausgabe des Algorithmus. Geben Sie den S3-Bucket an, in dem die Ausgabe der Trainingsaufträge gespeichert werden soll.
+ `RoleArn`— Der [Amazon-Ressourcenname](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) (ARN) einer AWS Identity and Access Management (IAM) -Rolle, die SageMaker KI zur Ausführung von Aufgaben verwendet. Zu den Aufgaben gehören das Lesen von Eingabedaten, das Herunterladen eines Docker-Images, das Schreiben von Modellartefakten in einen S3-Bucket, das Schreiben von Protokollen in Amazon CloudWatch Logs und das Schreiben von Metriken in Amazon CloudWatch (erforderlich).
+ `StoppingCondition`– Die maximale Laufzeit in Sekunden, die ein Trainingsjob ausführen kann, bevor er gestoppt wird. Dieser Wert sollte größer sein als die Zeit, die zum Trainieren Ihres Modells benötigt wird (erforderlich).
+ `MetricDefinitions`– Der Name und der reguläre Ausdruck, der alle Metriken definiert, die von den Trainingsjobs ausgegeben werden. Definieren Sie Metriken nur dann, wenn Sie einen benutzerdefinierten Trainingsalgorithmus verwenden. Das Beispiel im folgenden Code verwendet einen integrierten Algorithmus, für den bereits Metriken definiert sind. Informationen zum Definieren von Metriken finden Sie unter [Definieren von Metriken](automatic-model-tuning-define-metrics-variables.md#automatic-model-tuning-define-metrics).
+ `TrainingImage`– Das [Docker-Container-Image](https://docs.docker.com/get-started/overview/), das den Trainingsalgorithmus spezifiziert (optional).
+ `StaticHyperParameters` – Der Name und die Werte von Hyperparametern, die im Abstimmungsauftrag nicht abgestimmt werden (optional).

Im folgenden Codebeispiel werden statische Werte für die `eval_metric`, `num_round`, `objective`, `rate_drop`, und `tweedie_variance_power` Parameter des [XGBoost Algorithmus mit Amazon SageMaker AI](xgboost.md) integrierten Algorithmus festgelegt.

------
#### [ SageMaker Python SDK v1 ]

```
from sagemaker.amazon.amazon_estimator import get_image_uri
training_image = get_image_uri(region, 'xgboost', repo_version='1.0-1')

s3_input_train = 's3://{}/{}/train'.format(bucket, prefix)
s3_input_validation ='s3://{}/{}/validation/'.format(bucket, prefix)

training_job_definition = {
    "AlgorithmSpecification": {
      "TrainingImage": training_image,
      "TrainingInputMode": "File"
    },
    "InputDataConfig": [
      {
        "ChannelName": "train",
        "CompressionType": "None",
        "ContentType": "csv",
        "DataSource": {
          "S3DataSource": {
            "S3DataDistributionType": "FullyReplicated",
            "S3DataType": "S3Prefix",
            "S3Uri": s3_input_train
          }
        }
      },
      {
        "ChannelName": "validation",
        "CompressionType": "None",
        "ContentType": "csv",
        "DataSource": {
          "S3DataSource": {
            "S3DataDistributionType": "FullyReplicated",
            "S3DataType": "S3Prefix",
            "S3Uri": s3_input_validation
          }
        }
      }
    ],
    "OutputDataConfig": {
      "S3OutputPath": "s3://{}/{}/output".format(bucket,prefix)
    },
    "ResourceConfig": {
      "InstanceCount": 2,
      "InstanceType": "ml.c4.2xlarge",
      "VolumeSizeInGB": 10
    },
    "RoleArn": role,
    "StaticHyperParameters": {
      "eval_metric": "auc",
      "num_round": "100",
      "objective": "binary:logistic",
      "rate_drop": "0.3",
      "tweedie_variance_power": "1.4"
    },
    "StoppingCondition": {
      "MaxRuntimeInSeconds": 43200
    }
}
```

------
#### [ SageMaker Python SDK v2 ]

```
training_image = sagemaker.image_uris.retrieve('xgboost', region, '1.0-1')

s3_input_train = 's3://{}/{}/train'.format(bucket, prefix)
s3_input_validation ='s3://{}/{}/validation/'.format(bucket, prefix)

training_job_definition = {
    "AlgorithmSpecification": {
      "TrainingImage": training_image,
      "TrainingInputMode": "File"
    },
    "InputDataConfig": [
      {
        "ChannelName": "train",
        "CompressionType": "None",
        "ContentType": "csv",
        "DataSource": {
          "S3DataSource": {
            "S3DataDistributionType": "FullyReplicated",
            "S3DataType": "S3Prefix",
            "S3Uri": s3_input_train
          }
        }
      },
      {
        "ChannelName": "validation",
        "CompressionType": "None",
        "ContentType": "csv",
        "DataSource": {
          "S3DataSource": {
            "S3DataDistributionType": "FullyReplicated",
            "S3DataType": "S3Prefix",
            "S3Uri": s3_input_validation
          }
        }
      }
    ],
    "OutputDataConfig": {
      "S3OutputPath": "s3://{}/{}/output".format(bucket,prefix)
    },
    "ResourceConfig": {
      "InstanceCount": 2,
      "InstanceType": "ml.c4.2xlarge",
      "VolumeSizeInGB": 10
    },
    "RoleArn": role,
    "StaticHyperParameters": {
      "eval_metric": "auc",
      "num_round": "100",
      "objective": "binary:logistic",
      "rate_drop": "0.3",
      "tweedie_variance_power": "1.4"
    },
    "StoppingCondition": {
      "MaxRuntimeInSeconds": 43200
    }
}
```

------

## Benennen und Starten des Hyperparameter-Optimierungsauftrags
<a name="automatic-model-tuning-ex-low-launch"></a>

Nachdem Sie den Hyperparameter-Tuning-Job konfiguriert haben, können Sie ihn starten, indem Sie die [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)API aufrufen. Das folgende Codebeispiel verwendet `tuning_job_config` und `training_job_definition`. Diese wurden in den beiden vorherigen Codebeispielen definiert, um einen Hyperparameter-Tuning-Job zu erstellen.

```
tuning_job_name = "MyTuningJob"
smclient.create_hyper_parameter_tuning_job(HyperParameterTuningJobName = tuning_job_name,
                                           HyperParameterTuningJobConfig = tuning_job_config,
                                           TrainingJobDefinition = training_job_definition)
```

# Überwachen des Fortschritts eines Hyperparameter-Optimierungsauftrags
<a name="automatic-model-tuning-monitor"></a>

Verwenden Sie die Amazon SageMaker AI-Konsole, um den Fortschritt eines Hyperparameter-Tuning-Jobs und der damit gestarteten Trainingsjobs zu überwachen.

**Topics**
+ [Anzeigen des Status des Hyperparameter-Optimierungsauftrags](#automatic-model-tuning-monitor-tuning)

## Anzeigen des Status des Hyperparameter-Optimierungsauftrags
<a name="automatic-model-tuning-monitor-tuning"></a>

**So zeigen Sie den Status des Hyperparameter-Optimierungsauftrags an**

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

1. Wählen Sie **Hyperparameter tuning jobs (Hyperparameter-Optimierungsaufträge)** aus.  
![\[Konsole für den Hyperparameter-Optimierungsjob\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/console-tuning-jobs.png)

1. Prüfen Sie in der Liste der Hyperparameter-Optimierungsaufträge den Status des von Ihnen gestarteten Hyperparameter-Optimierungsauftrags. Ein Optimierungsauftrag kann folgende Status haben:
   + `Completed`– Der Hyperparameter-Tuning-Job wurde erfolgreich abgeschlossen.
   + `InProgress`– Der Hyperparameter-Tuning-Job wird ausgeführt. Ein oder mehrere Trainingsaufträge werden derzeit ausgeführt.
   + `Failed`– Der Hyperparameter-Tuning-Job ist fehlgeschlagen.
   + `Stopped`– Der Hyperparameter-Optimierungsauftrag wurde manuell angehalten, bevor er abgeschlossen wurde. Alle Trainingsaufträge, die der Hyperparameter-Optimierungsauftrag gestartet hat, wurden angehalten.
   + `Stopping`– Der Hyperparameter-Tuning-Job wird gerade beendet.

## Anzeigen des Status der Trainingsaufträge
<a name="automatic-model-tuning-monitor-training"></a>

**So zeigen Sie den Status der Trainingsaufträge an, die der Hyperparameter-Optimierungsauftrag gestartet hat**

1. Wählen Sie in der Liste der Hyperparameter-Optimierungsaufträge den Auftrag aus, den Sie gestartet haben.

1. Wählen Sie **Training Jobs (Trainingsaufträge)** aus.  
![\[Speicherort der Trainingsjobs.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/hyperparameter-training-jobs.png)

1. Zeigen Sie den Status der einzelnen Trainingsaufträge an. Um weitere Details zu einem Auftrag einzusehen, wählen Sie ihn aus der Liste der Trainingsaufträge aus. Um eine Übersicht zum Status aller Trainingsaufträge, die der Hyperparameter-Optimierungsauftrag gestartet hat, anzuzeigen, beziehen Sie sich auf den **Training job status counter (Zähler zum Status von Trainingsaufträgen)**.

   Ein Trainingsauftrag kann folgende Status haben:
   + `Completed`– Der Trainingsauftrag wurde erfolgreich abgeschlossen.
   + `InProgress`– Der Trainingsauftrag ist im Gange.
   + `Stopped`– Der Trainingsauftrag wurde manuell angehalten, bevor er abgeschlossen wurde.
   + `Failed (Retryable)`– Der Trainingsauftrag ist fehlgeschlagen, kann aber erneut versucht werden. Ein fehlgeschlagener Trainingsauftrag kann nur wiederholt werden, wenn er aufgrund eines internen Dienstfehlers fehlgeschlagen ist.
   + `Failed (Non-retryable)`– Der Trainingsauftrag ist fehlgeschlagen und kann nicht erneut versucht werden. Ein fehlgeschlagener Trainingsauftrag kann nicht wiederholt werden, wenn ein Client-Fehler auftritt.
**Anmerkung**  
Hyperparameter-Optimierungsaufträge können gestoppt und die zugrunde liegenden Ressourcen [gelöscht werden](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-ex-cleanup.html), aber die Aufträge selbst können nicht gelöscht werden.

## Anzeigen des optimalen Trainingsauftrags
<a name="automatic-model-tuning-best-training-job"></a>

Ein Hyperparameter-Optimierungsauftrag verwendet zur Auswertung von Trainingsaufträgen die objektive Metrik, die jeder Trainingsauftrag zurückgibt. Während der Hyperparameter-Optimierungsauftrag in Bearbeitung ist, ist der optimale Trainingsauftrag derjenige, der bisher die beste objektive Metrik zurückgegeben hat. Sobald der Hyperparameter-Optimierungsauftrag abgeschlossen ist, ist der optimale Trainingsauftrag derjenige, der die beste objektive Metrik zurückgegeben hat.

Um den optimalen Trainingsauftrag anzuzeigen, wählen Sie **Best training job (Optimaler Trainingsauftrag)** aus.

![\[Speicherort des besten Trainingsjobs in der Konsole für Hyperparameter-Optimierungsjobs.\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/best-training-job.png)


Um den besten Trainingsjob als Modell bereitzustellen, das Sie auf einem SageMaker KI-Endpunkt hosten können, wählen Sie **Modell erstellen**.

### Nächster Schritt
<a name="automatic-model-tuning-ex-next-cleanup"></a>

[Bereinigen](automatic-model-tuning-ex-cleanup.md)