Verwenden eines Algorithmus zum Ausführen eines Hyperparameter-Optimierungsauftrags - Amazon SageMaker

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.

Verwenden eines Algorithmus zum Ausführen eines Hyperparameter-Optimierungsauftrags

Ein Hyperparameteroptimierungsauftrag sucht die beste Version eines Modells durch Ausführen vieler Trainingsaufträge in Ihrem Datensatz. Dabei werden der Algorithmus und Bereiche der Hyperparameter, die Sie angeben, verwendet. Anschließend werden die Hyperparameter-Werte ausgewählt, die ein Modell ergeben, das gemessen an einer von Ihnen ausgewählten Metrik die beste Leistung erzielt. Weitere Informationen finden Sie unter Führen Sie eine automatische Modelloptimierung durch mit SageMaker.

Sie können mithilfe der SageMaker Amazon-Konsole, der SageMaker Low-Level-Amazon-API oder des Amazon SageMaker Python-SDK eine Algorithmusressource erstellen, um einen Hyperparameter-Tuning-Job zu erstellen.

Verwenden eines Algorithmus zum Ausführen eines Hyperparameteroptimierungsauftrags (Konsole)

So verwenden Sie einen Algorithmus zum Ausführen eines Hyperparameteroptimierungsauftrags (Konsole)
  1. Öffnen Sie die SageMaker Konsole unter https://console.aws.amazon.com/sagemaker/.

  2. Wählen Sie Algorithmen aus.

  3. Wählen Sie einen Algorithmus, den Sie aus der Liste auf der Registerkarte Meine Algorithmen erstellt haben, oder wählen Sie auf der Registerkarte AWS Marketplace -Abonnements einen Algorithmus aus, den Sie abonniert haben.

  4. Wählen Sie Create hyperparameter tuning job (Hyperparameteroptimierungsauftrag erstellen) aus.

    Der Algorithmus, den Sie ausgewählt haben, wird automatisch markiert.

  5. Geben Sie auf der Seite Create hyperparameter tuning job (Hyperparameteroptimierungsauftrag erstellen) die folgenden Informationen an:

    1. Wählen Sie für Warm start (Warmstart) die Option Enable warm start (Warmstart aktivieren) aus, um die Informationen aus vorherigen Hyperparameteroptimierungsaufträgen als Startpunkt für diesen Hyperparameteroptimierungsauftrag zu verwenden. Weitere Informationen finden Sie unter Durchführen eines Hyperparameter-Optimierungsauftrags mit Warmstart.

      1. Wählen Sie Identical data and algorithm (Identische Daten und Algorithmus) aus, wenn Ihre Eingabedaten mit den Eingabedaten für die übergeordneten Aufträge dieses Hyperparameteroptimierungsauftrags identisch sind. Sie können auch Transfer Learning (Lernen übertragen) auswählen, um zusätzliche oder andere Eingabedaten für diesen Hyperparameteroptimierungsauftrag zu verwenden.

      2. Wählen Sie für Parent hyperparameter tuning job(s) (Übergeordnete Hyperparameteroptimierungsaufträge) bis zu 5 Hyperparameteroptimierungsaufträge aus, die als übergeordnete Aufträge für diesen Hyperparameteroptimierungsauftrag verwendet werden sollen.

    2. Geben Sie für Hyperparameter tuning job name (Name des Hyperparameteroptimierungsauftrags) einen Namen für den Optimierungsauftrag ein.

    3. Wählen Sie für die IAM-Rolle eine IAM-Rolle aus, die über die erforderlichen Berechtigungen zum Ausführen von Hyperparameter-Tuning-Jobs verfügt SageMaker, oder wählen Sie Neue Rolle erstellen, um eine Rolle SageMaker zu erstellen, der die AmazonSageMakerFullAccess verwaltete Richtlinie zugeordnet ist. Weitere Informationen finden Sie unter Wie verwendet man SageMaker Ausführungsrollen.

    4. Wählen Sie für VPC eine Amazon VPC aus, auf die die Trainingsaufträge, die der Tuning-Auftrag startet, zugreifen können sollen. Weitere Informationen finden Sie unter Geben Sie SageMaker Schulungsjobs Zugriff auf Ressourcen in Ihrer Amazon VPC.

    5. Wählen Sie Weiter.

    6. Wählen Sie für Objective metric (Objektive Metrik) die Metrik aus, mit der der Hyperparameteroptimierungsauftrag die bestmögliche Kombination von Hyperparametern bestimmen soll, und geben Sie an, ob diese Metrik minimiert oder maximiert werden soll. Weitere Informationen finden Sie unter Anzeigen des optimalen Trainingsauftrags.

    7. Wählen Sie für Hyperparameter configuration (Hyperparameter-Konfiguration) Bereiche für die optimierbaren Hyperparameter aus, die der Optimierungsauftrag suchen soll. Legen Sie statische Werte für Hyperparameter fest, die in allen Trainingsaufträgen, die vom Hyperparameteroptimierungsauftrag gestartet werden, konstant bleiben sollen. Weitere Informationen finden Sie unter Definieren von Hyperparameter-Bereichen.

    8. Wählen Sie Weiter.

    9. Geben Sie für Input data configuration (Eingabedatenkonfiguration) die folgenden Werte für jeden Eingabedatenkanal ein, der für den Hyperparameteroptimierungsauftrag verwendet werden soll. Im Abschnitt Channel specification (Kanalspezifikation) der Seite Algorithm summary (Algorithmusübersicht) können Sie sehen, welche Kanäle der von Ihnen verwendete Algorithmus für die Hyperparameteroptimierung unterstützt, sowie den Inhaltstyp, den unterstützten Komprimierungstyp und unterstützte Eingabemodi für jeden Kanal.

      1. Geben Sie unter Kanalname den Namen des Eingabekanals ein.

      2. Geben Sie für Content type (Content-Type) den Inhaltstyp der Daten ein, die der Algorithmus für den Channel erwartet.

      3. Wählen Sie für Komprimierungstyp den Datenkomprimierungstyp aus, falls vorhanden.

      4. Wählen Sie für Wrapper aufzeichnen die Option RecordIO aus, wenn der Algorithmus Daten im RecordIO-Format erwartet.

      5. Geben Sie für S3 data type (S3-Datentyp), S3 data distribution type (S3-Verteilungstyp) und S3 location (S3-Speicherort) die entsprechenden Werte ein. Weitere Informationen zur Bedeutung dieser Werte finden Sie unter S3DataSource.

      6. Wählen Sie für Eingabemodus die Option Datei aus, um die Daten aus dem bereitgestellten ML-Speicher-Volume herunterzuladen, und mounten Sie das Verzeichnis in ein Docker-Volume. Wählen Sie Pipe aus, um Daten direkt von Amazon S3 in den Container zu streamen.

      7. Um einen weiteren Eingabekanal hinzuzufügen, wählen Sie Kanal hinzufügen aus. Wenn Sie mit dem Hinzufügen von Eingabekanälen fertig sind, wählen Sie Fertig aus.

    10. Geben Sie für den Speicherort Ausgabe die folgende Werte an:

      1. Wählen Sie für S3 output path (S3-Ausgabepfad) den S3-Speicherort aus, an dem die Trainingsaufträge, die dieser Hyperparameteroptimierungsauftrag startet, Ausgaben wie z. B. Modellartefakte speichert.

        Anmerkung

        Sie verwenden die Modellartefakte an diesem Speicherort zum Erstellen eines Modells oder Modellpakets aus diesem Hyperparameteroptimierungsauftrag.

      2. Für den Verschlüsselungsschlüssel, wenn Sie einen AWS KMS Schlüssel verwenden möchten SageMaker , um die am S3-Speicherort gespeicherten Ausgabedaten zu verschlüsseln.

    11. Geben Sie für Ressourcenkonfiguration die folgenden Informationen an:

      1. Wählen Sie für Instance type (Instance-Typ) den Instance-Typ für jeden Trainingsauftrag aus, der von diesem Hyperparameteroptimierungsauftrag gestartet wird.

      2. Geben Sie für Instance count (Instance-Anzahl) die Anzahl von ML-Instances für jeden Trainingsauftrag an, der von diesem Hyperparameteroptimierungsauftrag gestartet wird.

      3. Geben Sie für Additional volume per instance (GB) (Zusätzliches Volume pro Instance (GB)) die Größe des ML-Speicher-Volumes ein, die Sie für jeden Trainingsauftrag bereitstellen möchten, der vom Hyperparameteroptimierungsauftrag gestartet wird. ML-Speicher-Volumes speichern Modellartefakte und inkrementelle Zustände.

      4. Geben Sie unter Encryption key den Schlüssel an, wenn Sie möchten, dass Amazon SageMaker einen AWS Key Management Service-Schlüssel verwendet, um Daten auf dem ML-Speichervolume zu verschlüsseln, das an die Trainingsinstanzen angehängt ist.

    12. Geben Sie für Resource limits (Ressourcenlimits) die folgenden Informationen an:

      1. Geben Sie für Maximum training jobs (Maximale Zahl Trainingsaufträge) die maximale Anzahl der Trainingsaufträge an, die der Hyperparameteroptimierungsauftrag starten soll. Ein Hyperparameteroptimierungsauftrag kann maximal 500 Trainingsaufträge starten.

      2. Geben Sie für Maximum parallel training jobs (Maximale Anzahl paralleler Trainingsaufträge) die maximale Anzahl gleichzeitiger Trainingsaufträge an, die der Hyperparameteroptimierungsauftrag starten kann. Ein Hyperparameteroptimierungsauftrag kann maximal 10 Trainingsaufträge gleichzeitig starten.

      3. Geben Sie für Stopping condition (Stopp-Bedingung) die maximale Zeit in Sekunden, Minuten, Stunden oder Tagen an, die jeder Trainingsauftrag, der vom Hyperparameteroptimierungsauftrag gestartet wird, ausgeführt werden soll.

    13. Geben Sie für Tags ein oder mehrere Tags an, um den Hyperparameteroptimierungsauftrag zu verwalten. Jedes Tag besteht aus einem Schlüssel und einem optionalen Wert. Tag-Schlüssel müssen in einer Ressource eindeutig sein.

    14. Wählen Sie Create jobs (Aufträge erstellen) aus, um den Hyperparameteroptimierungsauftrag auszuführen.

Verwenden eines Algorithmus zum Ausführen eines Hyperparameteroptimierungsauftrags (API)

Um einen Algorithmus zur Ausführung eines Hyperparameter-Tuning-Jobs mithilfe der SageMaker API zu verwenden, geben Sie entweder den Namen oder den Amazon-Ressourcennamen (ARN) des Algorithmus als AlgorithmName Feld des AlgorithmSpecificationObjekts an, an CreateHyperParameterTuningJobdas Sie übergeben. Informationen zur Hyperparameter-Optimierung finden Sie unter SageMaker. Führen Sie eine automatische Modelloptimierung durch mit SageMaker

Verwenden Sie einen Algorithmus, um einen Hyperparameter-Tuning-Job auszuführen (Amazon SageMaker Python SDK)

Verwenden Sie einen Algorithmus, den Sie erstellt oder abonniert haben, AWS Marketplace um einen Hyperparameter-Tuning-Job zu erstellen, ein AlgorithmEstimator Objekt zu erstellen und entweder den Amazon-Ressourcennamen (ARN) oder den Namen des Algorithmus als Wert des algorithm_arn Arguments anzugeben. Initialisieren Sie anschließend ein HyperparameterTuner-Objekt mit dem AlgorithmEstimator, den Sie als Wert des estimator-Arguments erstellt haben. Rufen Sie abschließend die fit-Methode des AlgorithmEstimator auf. Beispielsweise:

from sagemaker import AlgorithmEstimator from sagemaker.tuner import HyperparameterTuner data_path = os.path.join(DATA_DIR, 'marketplace', 'training') algo = AlgorithmEstimator( algorithm_arn='arn:aws:sagemaker:us-east-2:764419575721:algorithm/scikit-decision-trees-1542410022', role='SageMakerRole', instance_count=1, instance_type='ml.c4.xlarge', sagemaker_session=sagemaker_session, base_job_name='test-marketplace') train_input = algo.sagemaker_session.upload_data( path=data_path, key_prefix='integ-test-data/marketplace/train') algo.set_hyperparameters(max_leaf_nodes=10) tuner = HyperparameterTuner(estimator=algo, base_tuning_job_name='some-name', objective_metric_name='validation:accuracy', hyperparameter_ranges=hyperparameter_ranges, max_jobs=2, max_parallel_jobs=2) tuner.fit({'training': train_input}, include_cls_metadata=False) tuner.wait()