Erstellen eines Kennzeichnungsauftrags (API) - Amazon SageMaker KI

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 Labeling-Job mithilfe der SageMaker Amazon-API zu erstellen, verwenden Sie den CreateLabelingJobVorgang. Spezifische Anweisungen zum Erstellen einer Labeling-Aufgabe 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 Eine benutzerdefinierte Vorlage für Worker-Aufgaben erstellen. Informationen zu benutzerdefinierten HTML-Elementen, die Sie zum Anpassen Ihrer Vorlage verwenden können, finden Sie unter Referenz der Crowd-HTML-Elemente. Eine Sammlung von Demo-Vorlagen für eine Vielzahl von Kennzeichnungsaufgaben finden Sie unter Amazon SageMaker Ground Truth Sample Task 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 Konfigurationsdatei für die Beschriftungskategorie mit Referenz zu Labelkategorien 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 der angehängten AmazonSageMakerGroundTruthExecutionverwalteten 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 Verwendung von IAM-verwalteten Richtlinien zusammen mit Ground Truth. Wenn Sie präzisere Berechtigungen benötigen, finden Sie weitere Informationen unter IAM-Berechtigungen zur Verwendung 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.

  • 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 Label-Job für einen Aufgabentyp „Videoframe“ oder „Punktwolke“ erstellen, können Sie die Belegschaft nicht einsetzen. Amazon Mechanical Turk Verwenden Sie für alle anderen Aufgabentypen, um die Belegschaft von Mechanical Turk zu verwenden, den folgenden ARN. regionErsetzen Sie es durch die AWS Region, die Sie für die Erstellung des Labeling-Jobs 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 persönlich identifizierbaren Informationen und Inhalten für Erwachsene ist.

    Ground Truth verlangt, dass Ihre Eingabedaten frei von persönlich identifizierbare Informationen (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 persönlich identifizierbaren Informationen sind, schlägt Ihr Labeling-Job fehl. Verwenden Sie die FreeOfAdultContent Flagge, um zu erklären, dass Ihre Eingabedaten frei von Inhalten für Erwachsene sind. SageMaker KI kann die Mitarbeiter von Amazon Mechanical Turk einschränken, die Ihre Aufgabe sehen können, wenn sie Inhalte für Erwachsene enthält.

    Weitere Informationen zu Arbeitsteams und Arbeitskräften finden Sie unter Arbeitskräfte.

  • 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 Worker-Portal 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 Konsolidierung von Anmerkungen.

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

  • (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, eines der Ground Truth Labeling Jobs Jupyter-Notizbücher im Abschnitt SageMaker Beispiele einer SageMaker Notebook-Instanz zu verwenden. Informationen zur Verwendung eines Notebook-Beispiels aus den SageMaker KI-Beispielen finden Sie unter. Rufen Sie Beispiel-Notizbücher auf Sie können sich diese Beispiel-Notebooks auch GitHub im SageMaker AI Examples Repository ansehen.

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 USA Ost (Nord-Virginia) unter Verwendung einer privaten Arbeitskraft. Ersetzen Sie alles red-italized 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 zur Erstellung eines Labeling-Jobs für einen integrierten Aufgabentyp in der Region USA Ost (Nord-Virginia) mithilfe der Belegschaft von Amazon Mechanical Turk. Weitere Informationen finden Sie unter start-human-loop in der Referenz zum AWS CLI -Befehl. Ersetzen Sie alles red-italized text durch Ihre Ressourcen und Spezifikationen für den Etikettierungsauftrag.

$ 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. Informationen zur Verwendung anderer sprachspezifischer Sprachen SDKs finden Sie unter „Siehe auch“ im CreateLabelingJobs Thema.