Bereitstellen von Dataset-Metadaten für Schulungsaufträge mit einer erweiterten Manifestdatei - 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.

Bereitstellen von Dataset-Metadaten für Schulungsaufträge mit einer erweiterten Manifestdatei

Um Metadaten zu Ihrem Dataset in einem Schulungsauftrag hinzuzufügen, verwenden Sie eine erweiterte Manifestdatei. Bei der Verwendung einer erweiterten Manifestdatei muss Ihr Dataset in Amazon Simple Storage Service (Amazon S3) gespeichert sein. Außerdem müssen Sie Ihren Schulungsauftrag so konfigurieren, dass er den dort gespeicherten Dataset verwendet. Sie geben den Speicherort und das Format dieses Datasets für einen oder mehrere Channel an. Erweiterte Manifeste können nur den Pipe-Eingabemodus unterstützen. Weitere Informationen zum Pipe-Eingabemodus finden Sie im Abschnitt InputMode in Channel.

Bei der Angabe der Parameter für einen Channel geben Sie einen Pfad zu der Datei an, der als bezeichnet wird.S3Uriaus. Amazon SageMaker interpretiert diesen URI basierend auf dem angegebenenS3DataTypeinS3DataSourceaus. Die Option AugmentedManifestFile definiert ein Manifestformat, das Metadaten mit den Eingabedaten enthält. Die Verwendung einer erweiterten Manifestdatei ist eine Alternative zur Vorverarbeitung bei bezeichneten Daten. Bei Schulungsaufträgen, die bezeichnete Daten verwenden, müssen Sie das Dataset vorbereiten, um Eingabedaten vor der Schulung mit Metadaten zu kombinieren. Wenn Ihr Schulungsdataset sehr groß ist, kann eine Vorverarbeitung zeitaufwendig und kostspielig sein.

Format der erweiterten Manifestdatei

Eine erweiterte Manifestdatei muss im JSON Lines-Format vorliegen. Im JSON Lines-Format stellt jede Zeile in der Datei ein vollständiges JSON-Objekt dar, gefolgt von einem Zeilenumbruch.

Während des Trainings SageMaker analysiert jede JSON-Zeile und sendet einige oder alle Attribute an den Schulungsalgorithmus. Mithilfe des Parameters AttributeNames der CreateTrainingJob-API legen Sie fest, welche Attributinhalte übergeben werden sollen und in welcher Reihenfolge. DieAttributeNamesparameter ist eine geordnete Liste von Attributnamen, die SageMaker sucht im JSON-Objekt, das als Trainingseingabe verwendet wird.

Wenn Sie zum Beispiel ["line", "book"] als AttributeNames aufführen, müssen die Eingabedaten die Attributnamen line und book in der angegebenen Reihenfolge enthalten. In diesem Beispiel gilt der folgende Inhalt der erweiterten Manifestdatei:

{"author": "Herman Melville", "line": "Call me Ishmael", "book": "Moby Dick"} {"line": "It was love at first sight.", "author": "Joseph Heller", "book": "Catch-22"}

SageMaker ignoriert nicht aufgeführte Attributnamen, selbst wenn sie vor, nach oder zwischen aufgeführten Attributen stehen.

Bei der Verwendung von erweiterten Manifestdateien gelten die folgenden Richtlinien:

  • Die Reihenfolge der aufgeführten Attribute im Parameter AttributeNames bestimmt die Reihenfolge der Attribute, die an den Algorithmus im Schulungsauftrag übergeben werden.

  • Die gelisteteAttributeNameskann eine Teilmenge aller Attribute in der JSON-Zeile sein. SageMaker ignoriert nicht aufgeführte Attribute in der Datei.

  • Sie können jeden beliebigen Datentyp, der vom JSON-Format unterstützt wird, in AttributeNames angeben, darunter Text, numerische Daten, Daten-Arrays oder Objekte.

  • Um eine S3-URI als Attributnamen hinzuzufügen, hängen Sie das Suffix -ref an.

Wenn ein Attributname das Suffix -ref enthält, muss der Wert des Attributs eine S3-URI für die Datendatei sein, die dem Schulungsauftrag zur Verfügung steht. Beispiel, wennAttributeNamesenthält["image-ref", "is-a-cat"]zeigt das folgende Beispiel eine gültige erweiterte Manifestdatei:

{"image-ref": "s3://mybucket/sample01/image1.jpg", "is-a-cat": 1} {"image-ref": "s3://mybucket/sample02/image2.jpg", "is-a-cat": 0}

Im Falle der ersten JSON-Zeile dieser Manifestdatei SageMaker ruft dasimage1.jpg-Datei auss3://mybucket/sample01/und die Zeichenfolgendarstellung desis-a-catAttribut"1"für die Bildklassifikation.

Tipp

Verwenden Sie Amazon, um eine erweiterte Manifestdatei zu erstellen SageMaker Erden Ground Truth und erstellen Sie einen Kennzeichnungsauftrag. Weitere Informationen zur Ausgabe eines Kennzeichnungsauftrags finden Sie unterAusgabedatenaus.

Streamen der Daten einer erweiterten Manifestdatei

Im erweiterten Manifestformat können Sie Schulungen im Pipe-Modus mithilfe von Dateien vornehmen, ohne RecordIO-Dateien erstellen zu müssen. Sie müssen sowohl den train- als auch den und validation-Kanal als Werte für den InputDataConfig-Parameter der CreateTrainingJob-Anforderung angeben. Erweiterte Manifestdateien werden nur für Kanäle unterstützt, die den Pipe-Eingabemodus nutzen. Für jeden Kanal werden die Daten aus der erweiterten Manifestdatei extrahiert und (in derselben Reihenfolge) über die Named Pipe des Kanals an den Algorithmus gestreamt. Im Pipe-Modus wird die FIFO-Methode (first in first out) angewandt. Datensätze werden also in der Reihenfolge verarbeitet, in der sie die Warteschlange erreichen. Informationen zum Pipe-Eingabemodus finden Sie unterInput Modeaus.

Attributnamen mit dem Suffix "-ref" verweisen auf vorformatierte binäre Daten. In einigen Fällen weiß der Algorithmus, wie die Daten geparst werden müssen. In anderen Fällen müssen Sie die Daten möglicherweise umschließen, sodass Datensätze für den Algorithmus voneinander getrennt werden. Wenn der Algorithmus mit RecordIO-formatierten Daten kompatibel ist, löst die Angabe von RecordIO für RecordWrapperType dieses Problem. Wenn der Algorithmus nicht mit dem RecordIO-Format kompatibel ist, geben Sie None für RecordWrapperType an und stellen Sie sicher, dass Ihre Daten für Ihren Algorithmus korrekt geparst werden.

Wenn Sie im Beispiel ["image-ref", "is-a-cat"] einen RecordIO-Wrapper verwenden, wird der folgende Datenstream an die Warteschlange gesendet:

recordio_formatted(s3://mybucket/foo/image1.jpg)recordio_formatted("1")recordio_formatted(s3://mybucket/bar/image2.jpg)recordio_formatted("0")

Bilder, die nicht mit dem RecordIO-Format umschlossen werden, werden mit dem entsprechendenis-a-catAttributwert als ein Datensatz. Dies kann Probleme verursachen, da der Algorithmus die Bilder und Attribute möglicherweise nicht korrekt voneinander trennt. Weitere Informationen zur Verwendung von erweiterten Manifestdateien für die Bildklassifikation finden Sie unterSchulen mit dem erweiterten Manifest-Bildformataus.

Die Größenbeschränkungen von EBS-Volumes gelten generell nicht für erweiterte Manifestdateien und den Pipe-Modus. Dazu zählen auch Einstellungen, die ansonsten die EBS-Volume-Größenbeschränkung beachten müssen, beispielsweiseS3DataDistributionType aus. Weitere Informationen zum Pipe-Modus und dessen Verwendung finden Sie unterVerwenden Ihres eigenen Schulungsalgorithmus - Eingabedatenkonfigurationaus.

Verwenden einer erweiterten Manifestdatei (Konsole)

Für diesen Vorgang ist Folgendes erforderlich:

  • Die URL des S3-Buckets, in dem die erweiterte Manifestdatei gespeichert ist.

  • Speichern der Daten, die in der erweiterten Manifestdatei aufgeführt sind, in einem S3-Bucket.

  • Die URL des S3-Buckets, in dem die Ausgabe des Schulungsauftrags gespeichert werden soll.

So verwenden Sie eine erweiterte Manifestdatei in einem Schulungsauftrag (Konsole)

  1. Öffnen Sie das Amazon SageMaker -Konsole beihttps://console.aws.amazon.com/sagemaker/aus.

  2. Wählen Sie im Navigationsbereich Training (Schulung) und dann Training jobs (Schulungsaufträge) aus.

  3. Wählen Sie Create training job (Schulungsauftrag erstellen) aus.

  4. Legen Sie einen Namen für den Schulungsauftrag fest. Der Name muss innerhalb einerAWSRegion in einemAWSKonto. Er kann 1 bis 63 Zeichen umfassen. Gültige Zeichen: a – z, A – Z, 0 – 9 und . : + = @ _ % - (Bindestrich).

  5. Wählen Sie den Algorithmus, den Sie verwenden möchten. Weitere Informationen zu unterstützten integrierten Algorithmen finden Sie unter Verwenden von Amazon SageMaker Eingebaute Algorithmen oder vortrainierte Modelle. Wenn Sie einen benutzerdefinierten Algorithmus verwenden möchten, stellen Sie sicher, dass er mit dem Pipe-Modus kompatibel ist.

  6. (Optional) Für Resource configuration (Ressourcenkonfiguration) können Sie entweder die Standardwerte übernehmen oder, um die Rechenzeit zu reduzieren, den Ressourcenverbrauch erhöhen.

    1. (Optional) Wählen Sie für Instance type (Instance-Typ) den ML-Compute-Instance-Typ, den Sie verwenden möchten. In den meisten Fällen ist ml.m4.xlarge ausreichend.

    2. Übernehmen Sie bei Instance count (Instance-Anzahl) den Standardwert 1.

    3. (Optional) Wählen Sie unter Additional volume per instance (GB) (Zusätzliches Volume pro Instance (GB)) die Größe des ML-Speicher-Volumes, das Sie bereitstellen möchten. In den meisten Fällen können Sie den Standardwert 1 verwenden. Bei Verwendung eines großen Datasets sollten Sie das Volume vergrößern.

  7. Machen Sie Angaben zu den Eingabedaten für das Trainings-Dataset.

    1. Für Channel name (Kanalname) können Sie entweder den Standardwert (train) übernehmen oder einen aussagekräftigeren Namen wählen, z. B. training-augmented-manifest-file.

    2. Als InputMode (Eingabemodus) wählen Sie Pipe.

    3. Für S3 data distribution type (S3-Datenverteilungstyp) wählen Sie FullyReplicated (Vollständig repliziert). Bei inkrementellen Schulungen führt eine vollständige Replikation dazu, dass jede ML-Compute-Instance eine vollständige Kopie des erweiterten Datasets nutzt. Wählen Sie für neuronale Algorithmen wie Algorithmus für neuronale Themenmodellierung (NTM) die Option ShardedByS3Key.

    4. Wenn die Daten in der erweiterten Manifestdatei unkomprimiert sind, legen Sie den Compression type (Komprimierungstyp) auf None (Kein) fest. Wenn die Daten mithilfe von gzip komprimiert wurden, legen Sie die Option auf Gzip fest.

    5. (Optional) Geben Sie unter Content type (Inhaltstyp) den entsprechenden MIME-Typ an. Der Inhaltstyp ist der MIME-Typ (Multipurpose Internet Mail Extension) der Daten.

    6. Wählen Sie für Record wrapper (Datensatz-Wrapper) das Format RecordIO aus, wenn das in der erweiterten Manifestdatei angegebene Dataset im RecordIO-Format gespeichert wurde. Wenn Ihr Dataset nicht im RecordIO-Format gespeichert ist, wählen Sie None (Kein).

    7. Wählen Sie für S3 data type (S3-Datentyp) die Option AugmentedManifestFile (Erweiterte Manifestdatei) aus.

    8. Geben Sie als S3 location (S3-Speicherort) den Pfad zu dem Bucket ein, in dem die erweiterte Manifestdatei gespeichert ist.

    9. Geben Sie unter AugmentedManifestFile attribute names (Attributnamen für die erweiterte Manifestdatei) den Namen eines Attributs an, das Sie verwenden möchten. Der Attributname muss innerhalb der erweiterten Manifestdatei vorhanden sein. Dabei wird zwischen Groß- und Kleinschreibung unterschieden.

    10. (Optional) Wenn Sie weitere Attributnamen hinzufügen möchten, wählen Sie Add row (Zeile hinzufügen) und geben Sie einen weiteren Attributnamen für jedes Attribut an.

    11. (Optional) Wenn Sie die Reihenfolge der Attributnamen ändern möchten, verwenden Sie die Schaltflächen nach oben oder unten neben den Namen. Bei Verwendung einer erweiterten Manifestdatei spielt die Reihenfolge der angegebenen Attributnamen eine Rolle.

    12. Wählen Sie Done (Erledigt) aus.

  8. Geben Sie unter Output data configuration (Ausgabedatenkonfiguration) die folgenden Informationen ein:

    1. Geben Sie als S3 location (S3-Speicherort) den Pfad zu dem S3-Bucket ein, in dem Sie die Ausgabedaten speichern möchten.

    2. (Optional) Sie können Ihren AWS Key Management Service (AWS KMS)-Verschlüsselungsschlüssel zum Verschlüsseln der Ausgabedaten im Ruhezustand verwenden. Geben Sie unter Encryption key (Verschlüsselungsschlüssel) die Schlüssel-ID oder die entsprechende Amazon-Ressourcennummer (ARN) an. Weitere Informationen finden Sie unter KMS-verwaltete Verschlüsselungsschlüssel.

  9. (Optional) Fügen Sie unter Tags ein oder mehrere Tags zum Schulungsauftrag hinzu. EINTagsind Metadaten, die Sie definieren und zuweisen könnenAWSRessourcen schätzen. In diesem Fall können Sie Tags zur Verwaltung Ihrer Schulungsaufträge verwenden. Ein Tag besteht aus einem Schlüssel und einem Wert, die Sie definieren. Beispielsweise könnten Sie ein Tag mit Project als Schlüssel und einem Wert erstellen, der sich auf ein Projekt bezieht, das mit dem Schulungsauftrag zusammenhängt, z. B. Home value forecasts.

  10. Klicken Sie aufSchulungsauftrag erstellenaus. SageMaker erstellt und führt den Trainingsauftrag aus.

Nachdem der Ausbildungsjob beendet ist, SageMaker speichert die Modellartefakte im Bucket, für dessen Pfad Sie angegeben habenS3-AusgabespfadimKonfiguration der Ausgabedatenfield. Informationen zum Bereitstellen des Modells für Prognosen finden Sie unter Schritt 5: Bereitstellen des Modells auf Amazon EC2.

Verwenden einer erweiterten Manifestdatei (API)

Das folgende Beispiel zeigt, wie Sie ein Modell mit einer erweiterten Manifestdatei schulenVerwendung des SageMaker High-Level-Python-Bibliothek:

import sagemaker # Create a model object set to using "Pipe" mode. model = sagemaker.estimator.Estimator( training_image, role, instance_count=1, instance_type='ml.p3.2xlarge', volume_size = 50, max_run = 360000, input_mode = 'Pipe', output_path=s3_output_location, sagemaker_session=session ) # Create a train data channel with S3_data_type as 'AugmentedManifestFile' and attribute names. train_data = sagemaker.inputs.TrainingInput( your_augmented_manifest_file, distribution='FullyReplicated', content_type='application/x-recordio', s3_data_type='AugmentedManifestFile', attribute_names=['source-ref', 'annotations'], input_mode='Pipe', record_wrapping='RecordIO' ) data_channels = {'train': train_data} # Train a model. model.fit(inputs=data_channels, logs=True)

Nachdem der Ausbildungsjob beendet ist, SageMaker speichert die Modellartefakte im Bucket, für dessen Pfad Sie angegeben habenS3-AusgabespfadimKonfiguration der Ausgabedatenfield. Informationen zum Bereitstellen des Modells für Prognosen finden Sie unter Schritt 5: Bereitstellen des Modells auf Amazon EC2.