Erstellen eines Kennzeichnungsauftrags (API) - 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.

Erstellen eines Kennzeichnungsauftrags (API)

Um einen Kennzeichnungsauftrag mit der Amazon SageMaker -API zu erstellen, verwenden Sie die -CreateLabelingJobOperation. Spezifische Anweisungen zum Erstellen einer Kennzeichnungsaufgabe für einen integrierten Aufgabentyp finden Sie auf der Seite für den betreffenden Aufgabentyp. Informationen zum Erstellen eines Streaming-Labeling-Jobs, bei dem es sich um einen Labeling-Job handelt, der ständig ausgeführt wird, finden Sie unter Einen Streaming-Labeling-Job erstellen.

Um die Operation CreateLabelingJob zu verwenden, benötigen Sie Folgendes:

  • Eine Worker-Aufgabenvorlage (UiTemplateS3Uri) oder einen UI ARN der menschlichen Aufgaben (HumanTaskUiArn) in Amazon S3.

    • Für 3D-Punktwolkenaufträge, Video-Objekterkennungs- und -verfolgungsaufträge und NER-Aufträge verwenden Sie den in HumanTaskUiArn aufgeführten ARN für Ihren Aufgabentyp.

    • Wenn Sie einen anderen integrierten Aufgabentyp als 3D-Punktwolken-Aufgaben verwenden, können Sie Ihre Worker-Anweisungen einer der vordefinierten Vorlagen hinzufügen und die Vorlage (mit der Erweiterung .html oder .liquid) in Ihrem S3-Bucket speichern. Suchen Sie die Pre-Build-Vorlagen auf der Seite für Ihren Aufgabentyp.

    • Wenn Sie einen benutzerdefinierten Kennzeichnungs-Workflow verwenden, können Sie eine benutzerdefinierte Vorlage erstellen und die Vorlage in Ihrem S3-Bucket speichern. Weitere Informationen zum Erstellen einer benutzerdefinierten Auftragnehmervorlage finden Sie unter Schritt 2: Erstellen Ihrer benutzerdefinierten Worker-Aufgabenvorlage. Informationen zu benutzerdefinierten HTML-Elementen, die Sie zum Anpassen Ihrer Vorlage verwenden können, finden Sie unter Referenz der Crowd-HTML-Elemente. Ein Repository mit Demovorlagen für eine Vielzahl von Kennzeichnungsaufgaben finden Sie unter Amazon SageMaker Ground Truth Beispiel-UIs.

  • Eine Eingabemanifestdatei, die Ihre Eingabedaten in Amazon S3 angibt. Geben Sie den Speicherort Ihrer Eingabemanifestdatei in ManifestS3Uri an. Hinweise zum Erstellen eines Eingabemanifests finden Sie unter Eingabedaten. Wenn Sie einen Streaming-Labeling-Job erstellen, ist dies optional. Wie Sie einen Streaming-Etikettierungsauftrag erstellen können, erfahren Sie unter Einen Streaming-Labeling-Job erstellen.

  • Ein Amazon S3-Bucket zum Speichern Ihrer Ausgabedaten. Sie geben diesen Bucket und optional ein Präfix in S3OutputPath an.

  • Eine Konfigurationsdatei der Beschriftungskategorie. Jeder Etikettenkategoriename muss eindeutig sein. Geben Sie den Speicherort dieser Datei in Amazon S3 mit dem Parameter LabelCategoryConfigS3Uri an. Das Format und die Labelkategorien für diese Datei hängen vom verwendeten Aufgabentyp ab:

    • Für die Bildklassifizierung und die Textklassifizierung (Einzel- und Mehrfachbeschriftung) müssen Sie mindestens zwei Labelkategorien angeben. Für alle anderen Aufgabentypen ist mindestens eine Anzahl von Labelkategorien erforderlich.

    • Für Aufgaben zur Erkennung benannter Entitäten müssen Sie in dieser Datei Anweisungen für Mitarbeiter angeben. Siehe Stellen Sie Anweisungen für Auftragnehmer in einer Konfigurationsdatei für die Beschriftungskategorie bereit für weitere Einzelheiten und ein Beispiel.

    • Für 3D-Punktwolken- und Videobildaufgaben verwenden Sie das Format in Erstellen Sie eine Konfigurationsdatei für Beschriftungskategorien mit Beschriftungskategorie- und Rahmenattributen.

    • Für alle anderen integrierten Aufgabentypen und benutzerdefinierten Aufgaben muss die Konfigurationsdatei für die Bezeichnungskategorie eine JSON-Datei mit dem folgenden Format sein. Sie identifizieren die Bezeichnungen, die Sie verwenden möchten, indem Sie label_1, label_2,..., label_n durch Ihre Bezeichnungskategorien ersetzen.

      { "document-version": "2018-11-28" "labels": [ {"label": "label_1"}, {"label": "label_2"}, ... {"label": "label_n"} ] }
  • Eine AWS Identity and Access Management (IAM)-Rolle mit angefügter AmazonSageMakerGroundTruthExecution verwalteter IAM-Richtlinie und mit Berechtigungen für den Zugriff auf Ihre S3-Buckets. Geben Sie diese Rolle in RoleArn an. Weitere Informationen zu dieser Richtlinie finden Sie unter Verwenden Sie IAM verwaltete Richtlinien mit Ground Truth. Wenn Sie präzisere Berechtigungen benötigen, finden Sie weitere Informationen unter IAMBerechtigungen zur Nutzung von Ground Truth zuweisen.

    Wenn der Name des Eingabe- oder Ausgabe-Buckets sagemaker nicht enthält, können Sie der Rolle, die an den die Operation CreateLabelingJob übergeben wird, eine Richtlinie ähnlich der folgenden anfügen.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my_input_bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::my_output_bucket/*" ] } ] }
  • Der Amazon-Ressourcenname (ARN) einer Funktion für die Vor- und Nachanmerkung (oder Anmerkungskonsolidierung) in AWS Lambda für die Verarbeitung Ihrer Ein- und Ausgabedaten.

    • Lambda-Funktionen sind in jeder AWS Region für integrierte Aufgabentypen vordefiniert. Den Lambda-ARN zur Vorverarbeitung für Ihre Region finden Sie unter PreHumanTaskLambdaArn. Den Lambda-ARN zur Konsolidierung von Anmerkungen für Ihre Region finden Sie unter AnnotationConsolidationLambdaArn.

    • Für benutzerdefinierte Beschriftungs-Workflows müssen Sie einen benutzerdefinierten Lambda-ARN vor und nach der Beschriftung angeben. Wie Sie diese Lambda-Funktionen erstellen können, erfahren Sie unter Schritt 3: Verarbeitung mit AWS Lambda.

  • Ein ARN des Arbeitsteams, den Sie in WorkteamArn angeben. Sie erhalten einen ARN für ein Arbeitsteam, wenn Sie eine Belegschaft eines Lieferanten abonnieren oder ein privates Arbeitsteam gründen. Wenn Sie einen Kennzeichnungsauftrag für einen Videoframe- oder Punktwolken-Aufgabentyp erstellen, können Sie die Amazon Mechanical Turk Belegschaft nicht verwenden. Verwenden Sie für alle anderen Aufgabentypen, um die Belegschaft von Mechanical Turk zu verwenden, den folgenden ARN. Ersetzen Sie durch region die AWS Region, die Sie zum Erstellen des Kennzeichnungsauftrags verwenden.

    arn:aws:sagemaker:region:394669845002:workteam/public-crowd/default

    Wenn Sie die Amazon Mechanical Turk Arbeitskraft verwenden, verwenden Sie den ContentClassifiers-Parameter in DataAttributes von InputConfig, um zu erklären, dass Ihr Inhalt frei von personenbezogenen Daten und Inhalten für Erwachsene ist.

    Ground Truth verlangt, dass Ihre Eingabedaten frei von personenbezogenen Daten (PII) sind, wenn Sie die Belegschaft von Mechanical Turk einsetzen. Wenn Sie Mechanical Turk verwenden und nicht mithilfe der FreeOfPersonallyIdentifiableInformation Markierung angeben, dass Ihre Eingabedaten frei von personenbezogenen Daten sind, schlägt Ihr Labeling-Job fehl. Verwenden Sie das -FreeOfAdultContentFlag, um zu deklarieren, dass Ihre Eingabedaten frei von Inhalten für jugendfreie Personen sind. SageMaker kann die Amazon Mechanical Turk-Mitarbeiter einschränken, die Ihre Aufgabe anzeigen können, wenn sie Inhalte für jugendfreie Personen enthalten.

    Weitere Informationen zu Arbeitsteams und Arbeitskräften finden Sie unter Erstellen und Verwalten von Arbeitskräften.

  • Wenn Sie die Arbeitskräfte von Mechanical Turk nutzen, müssen Sie den Preis angeben, den Sie den Arbeitern für die Ausführung einer einzelnen Aufgabe in PublicWorkforceTaskPrice zahlen.

  • Um die Aufgabe zu konfigurieren, müssen Sie mit TaskDescription und TaskTitle eine Aufgabenbeschreibung und einen Aufgabentitel angeben. Optional können Sie Zeitlimits angeben, mit denen gesteuert wird, wie lange die Mitarbeiter an einer einzelnen Aufgabe arbeiten müssen (TaskTimeLimitInSeconds) und wie lange Aufgaben im Mitarbeiterportal verbleiben, das den Mitarbeitern zur Verfügung steht (TaskAvailabilityLifetimeInSeconds).

  • (Optional) Bei einigen Aufgabentypen können mehrere Worker ein einzelnes Datenobjekt kennzeichnen, indem eine Zahl größer als eins für den Parameter NumberOfHumanWorkersPerDataObject eingegeben wird. Weitere Informationen zur Anmerkungskonsolidierung finden Sie unter Konsolidieren von Anmerkungen.

  • (Optional) Um einen automatisierten Datenbeschriftungsauftrag zu erstellen, geben Sie einen der unter in aufgeführten ARNs LabelingJobAlgorithmSpecificationArn anLabelingJobAlgorithmsConfig. Dieser ARN identifiziert den Algorithmus, der im automatisierten Datenbeschriftungsjob verwendet wird. Der mit diesem ARN verknüpfte Aufgabentyp muss mit dem Aufgabentyp der von Ihnen angegebenen PreHumanTaskLambdaArn und AnnotationConsolidationLambdaArn übereinstimmen. Die automatische Datenbeschriftung wird für die folgenden Aufgabentypen unterstützt: Bildklassifizierung, Begrenzungsrahmen, semantische Segmentierung und Textklassifizierung. Die Mindestanzahl von Objekten für die automatische Datenbeschriftung beträgt 1.250, und wir empfehlen dringend, mindestens 5.000 Objekte bereitzustellen. Weitere Informationen zu automatisierten Datenbeschriftungsaufträgen finden Sie unter Automatisieren des Daten-Labeling.

  • (Optional) Sie können angeben StoppingConditions, dass der Labeling-Job beendet wird, wenn eine der Bedingungen erfüllt ist. Sie können Stoppbedingungen verwenden, um die Kosten des Etikettierungsauftrags zu kontrollieren.

Beispiele

Die folgenden Code-Beispiele zeigen, wie ein Beschriftungsauftrag mit CreateLabelingJob erstellt wird. Für weitere Beispiele empfehlen wir Ihnen, eines der Ground Truth Labeling Jobs Jupyter Notebooks im SageMaker Abschnitt Beispiele einer SageMaker Notebook-Instance zu verwenden. Informationen zur Verwendung eines Notebook-Beispiels aus den SageMaker Beispielen finden Sie unter Beispiel-Notebooks. Sie können diese Beispiel-Notebooks auch auf GitHub im SageMaker Beispiel-Repository sehen.

AWS SDK for Python (Boto3)

Nachfolgend ein Beispiel für eine AWS Python SDK (Boto3) Anfrage zur Erstellung eines Beschriftungsauftrags für einen eingebauten Aufgabentyp in der Region US East (N. Virginia) unter Verwendung einer privaten Arbeitskraft. Ersetzen Sie den gesamten rot kursiv geschriebenen Text durch Ihre Ressourcen und Spezifikationen für die Etikettierung.

response = client.create_labeling_job( LabelingJobName="example-labeling-job", LabelAttributeName="label", InputConfig={ 'DataSource': { 'S3DataSource': { 'ManifestS3Uri': "s3://bucket/path/manifest-with-input-data.json" } }, 'DataAttributes': { 'ContentClassifiers': [ "FreeOfPersonallyIdentifiableInformation"|"FreeOfAdultContent", ] } }, OutputConfig={ 'S3OutputPath': "s3://bucket/path/file-to-store-output-data", 'KmsKeyId': "string" }, RoleArn="arn:aws:iam::*:role/*", LabelCategoryConfigS3Uri="s3://bucket/path/label-categories.json", StoppingConditions={ 'MaxHumanLabeledObjectCount': 123, 'MaxPercentageOfInputDatasetLabeled': 123 }, HumanTaskConfig={ 'WorkteamArn': "arn:aws:sagemaker:region:*:workteam/private-crowd/*", 'UiConfig': { 'UiTemplateS3Uri': "s3://bucket/path/custom-worker-task-template.html" }, 'PreHumanTaskLambdaArn': "arn:aws:lambda:us-east-1:432418664414:function:PRE-tasktype", 'TaskKeywords': [ "Images", "Classification", "Multi-label" ], 'TaskTitle': "Multi-label image classification task", 'TaskDescription': "Select all labels that apply to the images shown", 'NumberOfHumanWorkersPerDataObject': 1, 'TaskTimeLimitInSeconds': 3600, 'TaskAvailabilityLifetimeInSeconds': 21600, 'MaxConcurrentTaskCount': 1000, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': "arn:aws:lambda:us-east-1:432418664414:function:ACS-" }, Tags=[ { 'Key': "string", 'Value': "string" }, ] )
AWS CLI

Im Folgenden finden Sie ein Beispiel für eine AWS -CLI-Anforderung zum Erstellen eines Kennzeichnungsauftrags für einen integrierten Aufgabentyp in der Region USA Ost (Nord-Virginia) unter Verwendung der Belegschaft von Amazon Mechanical Turk. Weitere Informationen finden Sie unter start-human-loop in der Referenz zum AWS CLI -Befehl. Ersetzen Sie den gesamten rot kursiv geschriebenen Text durch Ihre Ressourcen und Spezifikationen für den Labeling-Job.

$ aws --region us-east-1 sagemaker create-labeling-job \ --labeling-job-name "example-labeling-job" \ --label-attribute-name "label" \ --role-arn "arn:aws:iam::account-id:role/role-name" \ --input-config '{ "DataAttributes": { "ContentClassifiers": [ "FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent" ] }, "DataSource": { "S3DataSource": { "ManifestS3Uri": "s3://bucket/path/manifest-with-input-data.json" } } }' \ --output-config '{ "KmsKeyId": "", "S3OutputPath": "s3://bucket/path/file-to-store-output-data" }' \ --human-task-config '{ "AnnotationConsolidationConfig": { "AnnotationConsolidationLambdaArn": "arn:aws:lambda:us-east-1:432418664414:function:ACS-" }, "TaskAvailabilityLifetimeInSeconds": 21600, "TaskTimeLimitInSeconds": 3600, "NumberOfHumanWorkersPerDataObject": 1, "PreHumanTaskLambdaArn": "arn:aws:lambda:us-east-1:432418664414:function:PRE-tasktype", "WorkteamArn": "arn:aws:sagemaker:us-east-1:394669845002:workteam/public-crowd/default", "PublicWorkforceTaskPrice": { "AmountInUsd": { "Dollars": 0, "TenthFractionsOfACent": 6, "Cents": 3 } }, "TaskDescription": "Select all labels that apply to the images shown", "MaxConcurrentTaskCount": 1000, "TaskTitle": "Multi-label image classification task",, "TaskKeywords": [ "Images", "Classification", "Multi-label" ], "UiConfig": { "UiTemplateS3Uri": "s3://bucket/path/custom-worker-task-template.html" } }'

Weitere Informationen zu dieser Operation finden Sie im Abschnitt CreateLabelingJob. Weitere Informationen zur Verwendung anderer sprachspezifischer SDKs finden Sie unter Siehe auch im Abschnitt CreateLabelingJobs.