Erweiterte Manifestdateien für Trainingsjobs
Um Metadaten zu Ihrem Datensatz in einem Trainingsauftrag hinzuzufügen, verwenden Sie eine erweiterte Manifestdatei. Wenn Sie eine erweiterte Manifestdatei verwenden, muss Ihr Datensatz im Amazon Simple Storage Service (Amazon S3) gespeichert sein, und Sie müssen Ihren Trainingsauftrag so konfigurieren, dass er den dort gespeicherten Datensatz verwendet. Sie geben den Speicherort und das Format dieses Datensatzes 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 eines Kanals geben Sie einen Pfad zu der Datei an, die als S3Uri bezeichnet wird. Amazon SageMaker AI interpretiert diesen URI basierend auf den angegebenen S3DataType in S3DataSource. 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 Trainingsaufträgen, die bezeichnete Daten verwenden, müssen Sie den Datensatz vorbereiten, um Eingabedaten vor dem Training mit Metadaten zu kombinieren. Wenn Ihr Trainingsdatensatz sehr groß ist, kann eine Vorverarbeitung zeitaufwendig und kostspielig sein.
Format der erweiterten Manifestdatei
Eine erweiterte Manifestdatei muss im JSON Lines
Während des Trainings parst SageMaker AI jede JSON-Line und sendet einige oder alle Attribute an den Trainingsalgorithmus weiter. Mithilfe des Parameters AttributeNames der CreateTrainingJob-API legen Sie fest, welche Attributinhalte übergeben werden sollen und in welcher Reihenfolge. Der AttributeNames Parameter ist eine geordnete Liste von Attributnamen, nach denen SageMaker AI im JSON-Objekt sucht, um sie als Trainingsinput zu verwenden.
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 AI ignoriert nicht aufgelistete Attributnamen, auch wenn sie vor, nach oder zwischen aufgelisteten Attributen stehen.
Bei der Verwendung von erweiterten Manifestdateien gelten die folgenden Richtlinien:
-
Die Reihenfolge der aufgeführten Attribute im Parameter
AttributeNamesbestimmt die Reihenfolge der Attribute, die an den Algorithmus im Trainingsauftrag übergeben werden. -
Die aufgeführten
AttributeNameskönnen eine Teilmenge aller Attribute in der JSON-Line sein. SageMaker AI ignoriert nicht aufgeführte Attribute in der Datei. -
Sie können jeden beliebigen Datentyp, der vom JSON-Format unterstützt wird, in
AttributeNamesangeben, darunter Text, numerische Daten, Daten-Arrays oder Objekte. -
Um eine S3-URI als Attributnamen hinzuzufügen, hängen Sie das Suffix
-refan.
Wenn ein Attributname das Suffix -ref enthält, muss der Wert des Attributs eine S3-URI für die Datendatei sein, die dem Trainingsauftrag zur Verfügung steht. Wenn beispielsweise AttributeNames enthält["image-ref", "is-a-cat"], zeigt das folgende Beispiel eine gültige erweiterte Manifestdatei:
{"image-ref": "s3://amzn-s3-demo-bucket/sample01/image1.jpg", "is-a-cat": 1} {"image-ref": "s3://amzn-s3-demo-bucket/sample02/image2.jpg", "is-a-cat": 0}
Im Fall der ersten JSON-Line dieser Manifestdatei ruft SageMaker AI die image1.jpg Datei s3://amzn-s3-demo-bucket/sample01/ und die Zeichenkettendarstellung des is-a-cat Attributs "1" für die Bildklassifizierung ab.
Tipp
Um eine erweiterte Manifestdatei zu erstellen, verwenden Sie Amazon SageMaker Ground Truth und erstellen einen Beschriftungsauftrag. Weitere Informationen über die Ausgabe eines Beschriftungsauftrags finden Sie unter Ausgabedaten von Kennzeichnungsaufträgen.
Verwenden einer erweiterten Manifestdatei
In den folgenden Abschnitten erfahren Sie, wie Sie erweiterte Manifestdateien in Ihren Amazon-SageMaker-Trainingsjobs verwenden, entweder mit der SageMaker-AI-Konsole oder programmgesteuert mithilfe des SageMaker Python SDK.
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 Trainingsauftrags gespeichert werden soll.
So verwenden Sie eine erweiterte Manifestdatei in einem Trainingsauftrag (Konsole)
Öffnen Sie die Konsole von Amazon SageMaker AI unter https://console.aws.amazon.com/sagemaker/
. -
Wählen Sie im Navigationsbereich Training (Training) und dann Training jobs (Trainingsaufträge) aus.
-
Wählen Sie Create training job (Trainingsauftrag erstellen) aus.
-
Legen Sie einen Namen für den Trainingsauftrag fest. Der Name muss innerhalb einer AWS-Region und in einem AWS-Konto eindeutig sein. Er kann 1 bis 63 Zeichen umfassen. Gültige Zeichen: a–z, A–Z, 0–9 und . : + = @ _ % – (Bindestrich).
-
Wählen Sie den Algorithmus, den Sie verwenden möchten. Weitere Informationen zu unterstützten integrierten Algorithmen finden Sie unter Integrierte Algorithmen und vortrainierte Modelle in Amazon SageMaker. Wenn Sie einen benutzerdefinierten Algorithmus verwenden möchten, stellen Sie sicher, dass er mit dem Pipe-Modus kompatibel ist.
-
(Optional) Für Resource configuration (Ressourcenkonfiguration) können Sie entweder die Standardwerte übernehmen oder, um die Rechenzeit zu reduzieren, den Ressourcenverbrauch erhöhen.
-
(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.
-
Übernehmen Sie bei Instance count (Instance-Anzahl) den Standardwert
1. -
(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
1verwenden. Bei Verwendung eines großen Datensatzes sollten Sie das Volume vergrößern.
-
-
Machen Sie Angaben zu den Eingabedaten für den Trainingsdatensatz.
-
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. -
Als InputMode (Eingabemodus) wählen Sie Pipe.
-
Für S3 data distribution type (S3-Datenverteilungstyp) wählen Sie FullyReplicated (Vollständig repliziert). Bei inkrementellen Trainings führt eine vollständige Replikation dazu, dass jede ML-Compute-Instance eine vollständige Kopie des erweiterten Datensatzes nutzt. Wählen Sie für neuronale Algorithmen wie Algorithmus für neuronale Themenmodellierung (NTM) die Option
ShardedByS3Key. -
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.
-
(Optional) Geben Sie unter Content type (Inhaltstyp) den entsprechenden MIME-Typ an. Der Inhaltstyp ist der MIME-Typ (Multipurpose Internet Mail Extension) der Daten.
-
Wählen Sie für Record wrapper (Datensatz-Wrapper) das Format RecordIO aus, wenn der in der erweiterten Manifestdatei angegebene Datensatz im RecordIO-Format gespeichert wurde. Wenn Ihr Datensatz nicht im RecordIO-Format gespeichert ist, wählen Sie None (Kein).
-
Wählen Sie für S3 data type (S3-Datentyp) die Option AugmentedManifestFile (Erweiterte Manifestdatei) aus.
-
Geben Sie als S3 location (S3-Speicherort) den Pfad zu dem Bucket ein, in dem die erweiterte Manifestdatei gespeichert ist.
-
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.
-
(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.
-
(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.
-
Wählen Sie Erledigt aus.
-
-
Geben Sie unter Output data configuration (Ausgabedatenkonfiguration) die folgenden Informationen ein:
-
Geben Sie als S3 location (S3-Speicherort) den Pfad zu dem S3-Bucket ein, in dem Sie die Ausgabedaten speichern möchten.
-
(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.
-
-
(Optional) Fügen Sie unter Tags ein oder mehrere Tags zum Trainingsauftrag hinzu. Ein Tag enthält Metadaten, die Sie definieren und AWS-Ressourcen zuweisen können. In diesem Fall können Sie Tags zur Verwaltung Ihrer Trainingsaufträge verwenden. Ein Tag besteht aus einem Schlüssel und einem Wert, die Sie definieren. Beispielsweise könnten Sie ein Tag mit
Projectals Schlüssel und einem Wert erstellen, der sich auf ein Projekt bezieht, das mit dem Trainingsauftrag zusammenhängt, z. B.Home value forecasts. -
Wählen Sie Create training job (Trainingsauftrag erstellen) aus. SageMaker AI erstellt den Trainingsjob und führt ihn aus.
Nach Beendigung des Trainingsjobs speichert SageMaker AI die Modellartefakte in dem Bucket, dessen Pfad Sie im Konfigurationsfeld Ausgabedaten für S3-Ausgabepfad angegeben haben. Informationen zum Bereitstellen des Modells für Prognosen finden Sie unter Bereitstellen des Modells auf Amazon EC2.
Verwenden einer erweiterten Manifestdatei (API)
Im Folgenden wird gezeigt, wie Sie ein Modell mit einer erweiterten Manifestdatei unter Verwendung der allgemeinen Python-Bibliothek von SageMaker AI trainieren:
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)
Nach Beendigung des Trainingsjobs speichert SageMaker AI die Modellartefakte in dem Bucket, dessen Pfad Sie im Konfigurationsfeld Ausgabedaten für S3-Ausgabepfad angegeben haben. Informationen zum Bereitstellen des Modells für Prognosen finden Sie unter Bereitstellen des Modells auf Amazon EC2.