Beschriftung von Trainingsdaten für Machine Learning

TUTORIAL

Übersicht

In diesem Tutorial lernen Sie, wie Sie einen Beschriftungsauftrag in Amazon SageMaker Ground Truth einrichten, um Trainingsdaten für Ihr Machine Learning (ML)-Modell zu beschriften. 

Ein gekennzeichneter Datensatz ist entscheidend für das überwachte Training eines ML-Modells. Viele Unternehmen verfügen über riesige Datensätze, aber es fehlt an Beschriftungen für die Daten. Mit Amazon SageMaker Ground Truth können Sie Daten ganz einfach beschriften, wobei Sie die Möglichkeit haben, menschliche Annotatoren über Amazon Mechanical Turk, Drittanbieter oder Ihre eigenen Mitarbeiter einzusetzen. 

In diesem Tutorial verwenden Sie SageMaker Ground Truth, um eine Reihe von Bildern von Fahrzeugen zu beschriften, einschließlich Flugzeugen, Autos, Fähren, Hubschraubern und Motorrädern. Da dieses Tutorial einen nicht-sensiblen Datensatz verwendet, nutzen Sie die Option Amazon Mechanical Turk.

Was Sie erreichen werden

In diesem Leitfaden werden Sie:

  • Einen Daten-Labeling-Auftrag erstellen und konfigurieren
  • Die Ergebnisse des Labeling-Auftrags überprüfen

Voraussetzungen

Bevor Sie mit diesem Leitfaden beginnen, benötigen Sie:

  • Ein AWS-Konto: Wenn Sie noch keins haben, folgen Sie der Anleitung zum Einrichten Ihrer Umgebung, um einen schnellen Überblick zu erhalten. 

 Erfahrung mit AWS

Einsteiger

 Benötigte Zeit

30 Minuten

 Veranschlagte Kosten

Siehe SageMaker-Preise, um die Kosten für dieses Tutorial abzuschätzen.

 Erfordert

Sie müssen bei einem AWS-Konto angemeldet sein.

 Verwendete Services

Amazon SageMaker Ground Truth

 Letzte Aktualisierung

6. Juli 2022

Implementierung

Schritt 1: Einrichten einer Notebook-Instance für Amazon SageMaker

Geben Sie SageMaker in die Suchleiste der AWS-Konsole ein und wählen Sie Amazon SageMaker aus, um die SageMaker-Konsole zu öffnen.

Wählen Sie im linken Navigationsbereich „Notebook“ aus.  Wählen Sie Notebook-Instances und dann Notebook-Instances erstellen aus.

Geben Sie auf der Seite Notebook-Instance erstellen im Feld Notebook-Instance-Einstellungen für Notebook-Instance-Name den Eintrag SageMaker-Ground-Truth-Tutorial ein. Als Notebook-Instance-Typ wählen Sie ml.t2.medium

Wählen Sie im Abschnitt Berechtigungen und Verschlüsselung für die IAM-Rolle die Option Neue Rolle erstellen. Wählen Sie im Dialogfeld IAM-Rolle erstellen die Option Beliebiger S3-Bucket aus und wählen Sie Rolle erstellen. Als bewährte Methode empfiehlt es sich, in Produktionsumgebungen den Zugriff auf S3-Buckets auf eine bestimmte IAM-Rolle mit den erforderlichen Mindestberechtigungen zu beschränken. Notieren Sie sich den Namen dieser Rolle, um sie am Ende zu bereinigen.

SageMaker erstellt die Rolle AmazonSageMaker-ExecutionRole-<role-id>. Behalten Sie für die anderen Optionen die Standardeinstellungen bei und klicken Sie auf Notebook-Instance erstellen.

Im Bereich Notebook-Instances wird die neu angelegte Notebook-Instance SageMaker-Ground-Truth-Tutorial mit dem Status Ausstehend angezeigt. Das Notebook ist fertig, wenn der Status auf InService wechselt.

Schritt 2: Erstellen eines Beschriftungsauftrags

Die Beispielbilder, die in diesem Tutorial beschriftet werden, stammen aus dem öffentlich zugänglichen Caltech 101 Datensatz (Li, F.-F., Andreeto, M., Ranzato, M. A., & Perona, P. (2022). Caltech 101 (Version 1.0) [Data set]. CaltechDATA), welcher Bilder in 101 Objektkategorien enthält. Um die Kosten dieses Tutorials auf ein Minimum zu beschränken, verwenden Sie einen Beispielsatz von 10 Bildern; zwei Bilder aus jeder der folgenden Kategorien: Flugzeuge, Autos, Fähren, Hubschrauber und Motorräder. Die Schritte zum Starten eines Beschriftungsauftrags für einen größeren Datensatz sind jedoch die gleichen wie in diesem Tutorial. Der Beispielsatz von 10 Bildern ist bereits im Amazon-S3-Bucket sagemaker-sample-files verfügbar.

In diesem Schritt verwenden Sie Ihre SageMaker-Notebook-Instance, um Python-Code zu schreiben, der die Beispielbilder aus dem S3-Bucket sagemaker-sample-files in Ihr Standard-S3-Bucket sagemaker-<your-Region>-<your-aws-account-id> hochlädt. Nachdem die Notebook-Instance SageMaker-Ground-Truth-Tutorial den Status auf InService geändert hat, wählen Sie Jupyter öffnen.

Wählen Sie im Jupyter-Notebook unter Neu die Option conda_python3.

Klicken Sie auf Untitled.ipynb, um das Notebook zu öffnen. Kopieren Sie den folgenden Code in eine neue Codezelle in Ihr Jupyter-Notebook und führen Sie die Zelle aus.

import sagemaker

sess = sagemaker.Session()
bucket = sess.default_bucket()

!aws s3 sync s3://sagemaker-sample-files/datasets/image/caltech-101/inference/ s3://{bucket}/ground-truth-demo/images/

print('Copy and paste the below link into a web browser to confirm the ten images were successfully uploaded to your bucket:')
print(f'https://s3.console.aws.amazon.com/s3/buckets/{bucket}/ground-truth-demo/images/')

print('\nWhen prompted by Sagemaker to enter the S3 location for input datasets, you can paste in the below S3 URL')

print(f's3://{bucket}/ground-truth-demo/images/')

print('\nWhen prompted by Sagemaker to Specify a new location, you can paste in the below S3 URL')

print(f's3://{bucket}/ground-truth-demo/labeled-data/')

Nachdem der Code erfolgreich ausgeführt wurde, öffnen Sie die Amazon-S3-Konsole und navigieren Sie zum Speicherort sagemaker-<your-Region>-<your-aws-account-id>/ground-truth-demo/images, um zu bestätigen, dass die zehn Bilder hochgeladen wurden.

Öffnen Sie die SageMaker-Konsole. Wählen Sie im linken Navigationsbereich Ground Truth, Beschriftungsaufträge. Anschließend wählen Sie Beschriftungsauftrag erstellen.

Geben Sie auf der Seite Auftragsdetails angeben unter Auftragsübersicht in das Feld Auftragsname den Eintrag vehicle-labeling-demo ein. Wählen Sie unter Einrichtung der Eingabedaten die Option Automatisierte Dateneinrichtung

Die automatische Dateneinrichtung kann verwendet werden, um Manifestdateien für Ihre Beschriftungsaufträge in der SageMaker Ground Truth-Konsole zu erstellen, wobei Bilder, Videos, Videoframes, Textdateien (.txt) und Dateien mit kommagetrennten Werten (.csv) verwendet werden, die in Amazon S3 gespeichert sind. Wenn Sie die automatische Dateneinrichtung verwenden, geben Sie einen Amazon-S3-Speicherort an, an dem Ihre Eingabedaten gespeichert werden, und geben den Eingabedatentyp an, und SageMaker Ground Truth sucht am angegebenen Speicherort nach den Dateien, die diesem Typ entsprechen.

Im Abschnitt Dateneinrichtung: Wählen Sie unter S3-Speicherort für Eingabedatensätze die Option S3 durchsuchen und wählen Sie dann den S3-Speicherort s3://sagemaker-<your-Region>-<your-aws-account-id>/ground-truth-demo/images/ (dies ist der Speicherort, an den Sie die Bilder in einem früheren Schritt hochgeladen haben). Wählen Sie für S3-Speicherort für Ausgabedatensätze die Option Einen neuen Speicherort angeben. Geben Sie dann den Pfad an, unter dem die beschrifteten Bilder gespeichert werden sollen: s3://sagemaker-<your-Region>-<your-aws-account-id>/ground-truth-demo/labeled-data/.. Für Datentyp wählen Sie Bild. Für IAM-Rolle wählen Sie Neue Rolle erstellen. Alternativ können Sie auch die entsprechenden Werte aus der Druckanweisung im Jupyter-Notebook verwenden, die wir zuvor ausgeführt haben.

Wählen Sie im Popup IAM-Rolle erstellen die Option Beliebiger S3-Bucket aus und wählen Sie Rolle erstellen

SageMaker Ground Truth legt die IAM-Rolle automatisch an und trägt sie in die Box IAM-Rolle ein. Wählen Sie Dateneinrichtung abschließen. Es erscheint die Bestätigungsmeldung Eingangsdatenverbindung war erfolgreich.

Wählen Sie im Abschnitt Aufgabentyp für die Aufgabenkategorie Bild. Wählen Sie für die Aufgabenauswahl die Option Bildklassifizierung (Einzelbeschriftung) und wählen Sie dann Weiter.

Wählen Sie auf der Seite Worker auswählen und Tool konfigurieren für Worker-Typen die Option Amazon Mechanical Turk.

Wählen Sie Der Datensatz enthält keinen jugendgefährdenden Inhalt

Wählen Sie Sie verstehen und stimmen zu, dass die Belegschaft von Amazon Mechanical Turk aus unabhängigen Vertragspartnern besteht, die weltweit ansässig sind, und dass Sie keine vertraulichen Informationen, persönliche Informationen oder geschützte Gesundheitsinformationen an diese Belegschaft weitergeben sollten.

 

Geben Sie im Abschnitt Bildklassifizierung (Einzelbeschriftung) des Beschriftungs-Tools die folgenden Informationen ein:

Für eine kurze Beschreibung der Aufgabe geben Sie Bitte wählen Sie die Bezeichnung aus, die am besten zu dem unten stehenden Bild passt. Sie können nur 1 Beschriftung pro Bild auswählen.

Geben Sie für Option auswählen die folgenden Bezeichnungen in separate Felder ein: Flugzeug, Auto, Fähre, Hubschrauber, Motorrad.

Erweitern Sie Zusätzliche Anweisungen und fügen Sie den folgenden Text an Schritt 3 an: Wenn mehrere Fahrzeuge in einem Bild vorhanden sind, wählen Sie das auffälligste Fahrzeug im Bild aus.

Um zu sehen, wie das Beschriftungstool für die Beschrifter aussieht, wählen Sie Vorschau

Wählen Sie Create (Erstellen).

Der neue Beschriftungsauftrag vehicle-labeling-demo wird in der SageMaker-Konsole im Abschnitt Beschriftungsaufträge mit dem Status In Bearbeitung und dem Aufgabentyp Bildklassifizierung (Einzelbeschriftung) aufgeführt. Der Beschriftungsvorgang kann mehrere Minuten bis zum Abschluss dauern. Nachdem die Daten von der öffentlichen Belegschaft von Amazon Mechanical Turk beschriftet wurden, ändert sich der Status in Abgeschlossen.

Schritt 3: Überprüfen der Ergebnisse des Beschriftungsauftrags

Die Überprüfung der Ergebnisse des Beschriftungsauftrags ist wichtig, um die Qualität der Beschriftung zu beurteilen und festzustellen, ob Sie die Anweisungen und Daten verbessern müssen.

Wählen Sie im linken Navigationsbereich der SageMaker-Konsole Beschriftungsaufträge und dann vehicle-labeling-demo.

 

Auf der Detailseite für vehicle-labeling-demo zeigt der Abschnitt Beschriftete Datensatzobjekte die Miniaturansichten der Bilder aus Ihrem Datensatz mit den entsprechenden Beschriftungen als Legende.

 

Klicken Sie zum Anzeigen der vollständigen Ergebnisse der Beschriftungsaufgabe im Abschnitt Zusammenfassung der Beschriftungsaufgabe auf den Link Speicherort des Ausgabedatensatzes.

Wählen Sie Manifeste, Ausgabe, Ausgabe-Manifest.

 

Wählen Sie Öffnen, um die Beschriftungsergebnisse im JSON-Lines-Format herunterzuladen. JSON Lines ist ein durch Zeilenumbrüche begrenztes Format zur Speicherung strukturierter Daten, wobei jede Zeile einen gültigen JSON-Wert darstellt.

 

Das output.manifest enthält die folgenden Daten: 

source-ref: Gibt den Ort des Bildeintrags in der Eingabemanifestdatei an. Weil Sie in Schritt 2 Automatische Dateneinrichtung gewählt haben, hat Amazon SageMaker Ground Truth diese Einträge und die Eingabemanifestdatei automatisch erstellt.

vehicle-labeling-demo: Gibt die Zielbeschriftung als numerischen Wert mit Null-Index an. Für die fünf Bildklassen in diesem Beispiel lauten die Bezeichnungen 0, 1, 2, 3 und 4.

vehicle-labeling-demo-Metadaten: Gibt die Metadaten für die Beschriftung an, beispielsweise den Konfidenzwert, den Auftragsnamen, den Namen der Beschriftungszeichenfolge (z. B. Flugzeug, Auto, Fähre, Hubschrauber und Motorrad) und die von Menschen oder Maschinen vorgenommenen Anmerkungen (aktives Lernen). 

Sie können die Datei output.manifest auswerten, um einen beschrifteten Datensatz für nachgelagerte Anwendungen wie die Bildklassifizierung zu erstellen. Für weitere Informationen über die Verwendung der output.manifest-Datei mit Amazon SageMaker zum Trainieren von Modellen lesen Sie den Blog-Beitrag Einfaches Trainieren von Modellen mit von SageMaker Ground Truth beschrifteten Datensätzen.

Schritt 4: Bereinigung der Ressourcen

Es ist eine bewährte Methode, Ressourcen zu löschen, die Sie nicht mehr verwenden, um unerwünschte Gebühren zu vermeiden.

Um den S3-Bucket zu löschen, machen Sie Folgendes: 

  • Öffnen Sie die Amazon-S3-Konsole. Wählen Sie in der Navigationsleiste Buckets, sagemaker-<your-Region>-<your-account-id>, und aktivieren Sie dann das Kontrollkästchen neben ground-truth-demo. Wählen Sie dann Löschen
  • Im Dialogfeld Objekte löschen vergewissern Sie sich, dass Sie das richtige Objekt zum Löschen ausgewählt haben, und geben Sie dauerhaft löschen im Bestätigungsfeld Objekte dauerhaft löschen ein. 

Öffnen Sie die AWS-IAM-Konsole, indem Sie in der Suchleiste der AWS-Konsole IAM eingeben und IAM auswählen. Wählen Sie in der linken Navigationsleiste der IAM-Konsole die Option Rollen. Um nach der IAM-Rolle zu suchen, die Sie für dieses Tutorial verwendet haben, geben Sie Amazon in die Suchleiste ein. Wählen Sie unter Rollenname die Rolle aus, und wählen Sie Löschen. Beachten Sie, dass diese Aktion Administratorrechte für Ihr Konto erfordert.

Um die SageMaker-Konsole zu öffnen, geben Sie SageMaker in die Suchleiste der AWS-Konsole ein und wählen Sie Amazon SageMaker aus den Suchergebnissen aus. Wählen Sie im linken Bereich der SageMaker-Konsole Notebook-Instances und wählen Sie dann SageMaker-Ground-Truth-Tutorial. Unter Aktionen wählen Sie Anhalten.

Wenn der Status der Instance auf Angehalten wechselt, wählen Sie Aktionen und dann Löschen. Wählen Sie im Bestätigungsdialogfeld die Option Löschen.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Tutorial Beschriftung von Trainingsdaten für Machine Learning abgeschlossen. 

In diesem Tutorial haben Sie Amazon SageMaker Ground Truth und Amazon Mechanical Turk verwendet, um einen Trainingsdatensatz für Machine Learning zu erstellen. 

Sie können Ihre Machine-Learning-Reise mit Amazon SageMaker fortsetzen, indem Sie den Abschnitt Nächste Schritte unten befolgen.

War diese Seite hilfreich?

Automatisches Erstellen eines ML-Modells

Erfahren Sie, wie Sie mit AutoML ML-Modelle entwickeln können, ohne Code schreiben zu müssen.
Weiter »

Bereitstellen eines trainierten Modells

Lernen Sie, wie man ein trainiertes ML-Modell für Inferenzen bereitstellt.
Weiter »

Weitere Praxis-Tutorials finden

Erkunden Sie weitere Tutorials zum Machine Learning, um tiefer einzutauchen.
Weiter »