Creare un Labeling Job () API - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creare un Labeling Job () API

Per creare un lavoro di etichettatura utilizzando Amazon SageMaker API, si utilizza l'CreateLabelingJoboperazione. Per istruzioni specifiche sulla creazione di un processo di etichettatura per un tipo di attività predefinita, consulta la pagina relativa al tipo di attività. Per informazioni su come creare un processo di etichettatura in streaming, che è un processo di etichettatura che viene eseguito continuamente, consulta Crea un processo di etichettatura in streaming

Per utilizzare l’operazione CreateLabelingJob, è necessario quanto segue:

  • Un modello di task di lavoro (UiTemplateS3Uri) o un'interfaccia utente per attività umane ARN (HumanTaskUiArn) in Amazon S3.

    • Per i lavori con nuvole di punti 3D, i lavori di rilevamento e tracciamento di oggetti video e i NER lavori, utilizza l'ARNelenco in base HumanTaskUiArn al tipo di attività.

    • Se utilizzi un tipo di attività integrato diverso dalle attività con nuvole di punti 3D, è possibile aggiungere le istruzioni per il worker a uno dei modelli predefiniti e salvare il modello (utilizzando un'estensione.html o .liquid) nel bucket S3. Trova i modelli di pre-compilazione nella pagina del tipo di attività.

    • Se utilizzi un flusso di lavoro di etichettatura personalizzato, è possibile creare un modello personalizzato e salvarlo nel bucket S3. Per informazioni su come creare un modello di lavoro personalizzato, consulta Creazione di un modello di attività di lavoro personalizzato. Per HTML gli elementi personalizzati che puoi utilizzare per personalizzare il tuo modello, consultaRiferimento Crowd HTML Elements. Per un archivio di modelli dimostrativi per una varietà di attività di etichettatura, consulta Amazon SageMaker Ground Truth Sample Task. UIs

  • Un file manifest di input che specifica i dati di input in Amazon S3. Specifica la posizione del file manifest di input in ManifestS3Uri. Per informazioni sulla creazione di un file manifest di input, consulta Dati di input. Se crei un processo di etichettatura in streaming, questo è facoltativo. Per informazioni su come creare un processo di etichettatura in streaming, consulta Crea un processo di etichettatura in streaming.

  • Un bucket Amazon S3 per memorizzare i dati di output. Specifica questo bucket e, facoltativamente, un prefisso in S3OutputPath.

  • Un file di configurazione della categoria di etichetta. Il nome di ciascuna categoria di etichette deve essere univoco. Specifica la posizione di questo file in Amazon S3 utilizzando il parametro LabelCategoryConfigS3Uri. Il formato e le categorie di etichette per questo file dipendono dal tipo di attività utilizzata:

    • Per la classificazione delle immagini e del testo (etichetta singola e multipla) devi specificare almeno due categorie di etichette. Per tutti gli altri tipi di attività, il numero minimo di categorie di etichette richieste è una.

    • Per le attività di riconoscimento di entità denominate, è necessario fornire istruzioni ai worker in questo file. Per informazioni dettagliate e un esempio, consulta Fornisci le istruzioni per il worker in un file di configurazione della categoria di etichette.

    • Per il tipo di attività con nuvola di punti 3D e fotogrammi video, utilizza il formato in File di configurazione della categoria di etichettatura con riferimento alla categoria dell'etichetta e agli attributi del frame.

    • Per tutti gli altri tipi di attività predefiniti e attività personalizzate, il file di configurazione delle categorie di etichette deve essere un JSON file nel seguente formato. Identifica le etichette che desideri utilizzare sostituendo label_1, label_2,... e label_n con le categorie di etichette.

      { "document-version": "2018-11-28", "labels": [ {"label": "label_1"}, {"label": "label_2"}, ... {"label": "label_n"} ] }
  • Un ruolo AWS Identity and Access Management (IAM) con la IAM policy AmazonSageMakerGroundTruthExecutiongestita allegata e con le autorizzazioni per accedere ai bucket S3. Specificare questo ruolo in RoleArn. Per ulteriori informazioni su questa policy, consulta Usa le policy IAM gestite con Ground Truth. Se sono necessarie autorizzazioni più granulari, consulta Assegna IAM le autorizzazioni per utilizzare Ground Truth.

    Se il nome del bucket di input o di output non contiene sagemaker, è possibile collegare una policy simile al seguente al ruolo passato all'operazione CreateLabelingJob.

    { "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/*" ] } ] }
  • Una AWS Lambda funzione di pre-annotazione e post-annotazione (o consolidamento delle annotazioni) Amazon Resource Name ARN () per elaborare i dati di input e output.

  • Un team ARN di lavoro specificato in. WorkteamArn Riceverai un team di lavoro ARN quando ti iscrivi alla forza lavoro di un fornitore o crei un team di lavoro privato. Se stai creando un lavoro di etichettatura per un tipo di attività con frame video o nuvola di punti, non puoi utilizzare la forza lavoro. Amazon Mechanical Turk Per tutti gli altri tipi di attività, per utilizzare la forza lavoro di Mechanical Turk, usa quanto segue. ARN Sostituisci region con la AWS regione che stai utilizzando per creare il lavoro di etichettatura.

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

    Se utilizzi la forza lavoro di Amazon Mechanical Turk, usa il parametro ContentClassifiers in DataAttributes di InputConfig per dichiarare che i tuoi contenuti sono privi di informazioni personali e di contenuti per adulti.

    Ground Truth richiede che i dati di input siano privi di informazioni di identificazione personale (PII) se si utilizza la forza lavoro di Mechanical Turk. Se si utilizza Mechanical Turk e non si specifica che i dati di input non contengono il FreeOfPersonallyIdentifiableInformation flag, il processo di PII etichettatura avrà esito negativo. Usa il FreeOfAdultContent flag per dichiarare che i tuoi dati di input sono privi di contenuti per adulti. SageMaker L'intelligenza artificiale può limitare il numero di dipendenti di Amazon Mechanical Turk che possono visualizzare la tua attività se contiene contenuti per adulti.

    Per ulteriori informazioni sui team di lavoro e sulle forze lavoro, consulta Forza lavoro.

  • Se utilizzi la forza lavoro di Mechanical Turk, devi specificare il prezzo che pagherai ai worker per l'esecuzione di una singola attività in PublicWorkforceTaskPrice.

  • Per configurare l'attività, è necessario fornire una descrizione e un titolo dell'attività utilizzando TaskDescription e TaskTitle rispettivamente. Facoltativamente, puoi fornire limiti di tempo che controllano il tempo a disposizione dei worker per lavorare su una singola attività (TaskTimeLimitInSeconds) e per quanto tempo le attività rimangono nel portale dei worker, disponibile per i worker (TaskAvailabilityLifetimeInSeconds).

  • (Facoltativo) Per alcuni tipi di task, è possibile assegnare a più worker un'etichetta a singola immagine dati (inserendo un numero maggiore di uno per il parametro NumberOfHumanWorkersPerDataObject). Per ulteriori informazioni sul consolidamento delle annotazioni, consulta Consolidamento delle annotazioni.

  • (Facoltativo) Per creare un processo di etichettatura automatizzato dei dati, specifica uno dei processi ARNs elencati in LabelingJobAlgorithmSpecificationArn. LabelingJobAlgorithmsConfig Questo ARN identifica l'algoritmo utilizzato nel processo di etichettatura automatica dei dati. Il tipo di attività associato a questo ARN deve corrispondere al tipo di attività specificato dall'PreHumanTaskLambdaArnAnnotationConsolidationLambdaArnutente. L'etichettatura dei dati automatica è supportata per i seguenti tipi di attività: classificazione delle immagini, riquadro di delimitazione, segmentazione semantica e classificazione del testo. Il numero minimo di oggetti consentiti per l'etichettatura dei dati automatica è di 1.250, e consigliamo vivamente di fornire un minimo di 5.000 oggetti. Per ulteriori informazioni sui processi di etichettatura dei dati automatica, consulta Automatizza l'etichettatura dei dati.

  • (Facoltativo) Puoi fornire StoppingConditions che fa in modo che il processo di etichettatura si interrompa se viene soddisfatta una delle condizioni. Puoi utilizzare le condizioni di interruzione per controllare il costo del processo di etichettatura.

Esempi

Gli esempi di codice seguenti mostrano come creare un processo di etichettatura utilizzando CreateLabelingJob. Per ulteriori esempi, ti consigliamo di utilizzare uno dei notebook Jupyter Ground Truth Labeling Jobs nella sezione Esempi di un'istanza di notebook. SageMaker SageMaker Per informazioni su come utilizzare un esempio di notebook tratto dagli esempi AI, consulta. SageMaker Accedi a taccuini di esempio Puoi anche vedere questi taccuini di esempio GitHub nel repository SageMaker AI Examples.

AWS SDK for Python (Boto3)

Di seguito è riportato un esempio di richiesta AWS Python SDK (Boto3) per creare un processo di etichettatura per un tipo di attività integrato nella regione Stati Uniti orientali (Virginia settentrionale) utilizzando una forza lavoro privata. Sostituisci tutto red-italized text con le risorse e le specifiche del lavoro di etichettatura.

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

Di seguito è riportato un esempio di AWS CLI richiesta di creazione di un processo di etichettatura per un tipo di attività integrato nella regione Stati Uniti orientali (Virginia settentrionale) utilizzando la forza lavoro di Amazon Mechanical Turk. Per ulteriori informazioni, consulta la sezione start-human-loop nella Documentazione di riferimento della AWS CLI. Sostituisci tutto red-italized text con le risorse e le specifiche del tuo lavoro di etichettatura.

$ 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" } }'

Per ulteriori informazioni su questa operazione, consulta CreateLabelingJob. Per informazioni su come utilizzare altre lingue specificheSDKs, vedere la sezione Vedere anche nell'argomento. CreateLabelingJobs