Crear e iniciar un bucle humano - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Crear e iniciar un bucle humano

Un bucle humano inicia el flujo de trabajo de revisión humana y envía tareas de revisión de datos a los trabajadores humanos. Cuando utiliza uno de los tipos de tareas integrados de Amazon A2I, el AWS servicio correspondiente crea e inicia un bucle humano en su nombre cuando se cumplen las condiciones especificadas en la definición de flujo. Si no se han especificado condiciones en la definición de flujo, se crea un bucle humano para cada objeto. Cuando se utiliza Amazon A2I para una tarea personalizada, el bucle humano comienza cuando la aplicación llama a StartHumanLoop.

Utilice las siguientes instrucciones para configurar un bucle humano con los tipos de tareas integrados de Amazon Rekognition y Amazon Textract y con los tipos de tareas personalizados.

Requisitos previos 

Para crear e iniciar un bucle humano, debe adjuntar la AmazonAugmentedAIFullAccess política al usuario o rol AWS Identity and Access Management (de IAM) que configura o inicia el bucle humano. Esta será la identidad que utilizará para configurar el bucle humano con HumanLoopConfig para los tipos de tareas integrados. En el caso de los tipos de tareas personalizados, será la identidad que utilice para llamar a StartHumanLoop.

Además, cuando utilice un tipo de tarea integrado, su usuario o rol debe tener permiso para invocar las operaciones de API del AWS servicio asociado a su tipo de tarea. Por ejemplo, si utiliza Amazon Rekognition con Augmented AI, debe asociar los permisos necesarios para llamar a DetectModerationLabels. Para obtener ejemplos de políticas basadas en la identidad que puede utilizar para conceder estos permisos, consulte Ejemplos de políticas basadas en identidad de Amazon Rekognition yEjemplos de políticas basadas en identidad de Amazon Textract. También puede utilizar la política AmazonAugmentedAIIntegratedAPIAccess, más genérica, para conceder estos permisos. Para obtener más información, consulte Cree un usuario con permisos para invocar las operaciones de Amazon A2I, Amazon Textract y Amazon Rekognition API.

Para crear e iniciar un bucle humano, necesitará un ARN de definición de flujo. Para obtener información sobre cómo crear una definición de flujo (o un flujo de trabajo de revisión humana), consulte Crear un flujo de trabajo de revisión humana.

importante

Amazon A2I requiere que todos los buckets de S3 que contengan datos de imagen de entrada de bucles humanos cuenten con una política CORS asociada. Para obtener más información sobre este cambio, consulte CORSRequisito de permiso.

Crear e iniciar un bucle humano para un tipo de tarea integrado

Para iniciar un bucle humano mediante un tipo de tarea integrado, utilice la API del servicio correspondiente a fin de proporcionar los datos de entrada y configurar el bucle humano. Para Amazon Textract, debe utilizar la operación de API AnalyzeDocument. Para Amazon Rekognition, debe utilizar la operación de API DetectModerationLabels. Puedes usar el SDK AWS CLI o un SDK específico de un idioma para crear solicitudes mediante estas operaciones de API.

importante

Cuando crea un bucle humano con un tipo de tarea integrado, puede usar DataAttributes para especificar un conjunto de ContentClassifiers relacionados con la entrada proporcionada para la operación StartHumanLoop. Utilice clasificadores de contenido para declarar que su contenido está libre de información de identificación personal o contenido para adultos.

Para usar Amazon Mechanical Turk, compruebe que sus datos no contengan información de identificación personal, lo que incluye la información médica protegida de conformidad con la norma HIPAA. Incluya el clasificador de contenido FreeOfPersonallyIdentifiableInformation. Si no utiliza este clasificador de contenido, SageMaker no envía la tarea a Mechanical Turk. Si en los datos no hay contenido para adultos, incluya también el clasificador 'FreeOfAdultContent'. Si no utiliza estos clasificadores de contenido, es SageMaker posible que se restrinja el número de trabajadores de Mechanical Turk que pueden ver su tarea.

Tras iniciar su trabajo de aprendizaje automático con la API de AWS servicio del tipo de tarea integrado, Amazon A2I supervisa los resultados de inferencia de ese servicio. Por ejemplo, al ejecutar un trabajo con Amazon Rekognition, Amazon A2I comprueba la puntuación de confianza de inferencia de cada imagen y la compara con los umbrales de confianza especificados en la definición de flujo. Si se cumplen las condiciones para iniciar una tarea de revisión humana o si no ha especificado condiciones en la definición de flujo, se envía una tarea de revisión humana a los trabajadores.

Crear un bucle humano de Amazon Textract

Amazon A2I se integra con Amazon Textract para que pueda configurar e iniciar un bucle humano usando la API de Amazon Textract. A fin de enviar un archivo de documento a Amazon Textract para que lo analice, utilice la operación de API AnalyzeDocument de Amazon Textract. Para añadir un bucle humano a este trabajo de análisis de documentos, debe configurar el parámetro HumanLoopConfig.

Al configurar el bucle humano, la definición de flujo que haya especificado en FlowDefinitionArn o HumanLoopConfig debe estar ubicada en la misma región de AWS que el bucket identificado en el Bucket del parámetro Document.

En la siguiente tabla se muestran ejemplos de cómo utilizar esta operación con y. AWS CLI AWS SDK for Python (Boto3)

AWS SDK for Python (Boto3)

En los siguientes ejemplos de solicitud, se utiliza el SDK para Python (Boto3). Para obtener más información, consulte analyze_document en la documentación de referencia de la API de AWS SDK para Python (Boto).

import boto3 textract = boto3.client('textract', aws_region) response = textract.analyze_document( Document={'S3Object': {'Bucket': bucket_name, 'Name': document_name}}, FeatureTypes=["TABLES", "FORMS"], HumanLoopConfig={ 'FlowDefinitionArn': 'arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name', 'HumanLoopName': 'human_loop_name', 'DataAttributes': {'ContentClassifiers': ['FreeOfPersonallyIdentifiableInformation','FreeOfAdultContent']} } )
AWS CLI

El siguiente ejemplo de solicitud utiliza la AWS CLI. Para obtener más información, consulte analyze-document en la Referencia de comandos de la AWS CLI.

$ aws textract analyze-document \ --document '{"S3Object":{"Bucket":"bucket_name","Name":"document_name"}}' \ --human-loop-config HumanLoopName="human_loop_name",FlowDefinitionArn="arn:aws:sagemaker:aws-region:aws_account_number:flow-definition/flow_def_name",DataAttributes='{ContentClassifiers=["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}' \ --feature-types '["TABLES", "FORMS"]'
$ aws textract analyze-document \ --document '{"S3Object":{"Bucket":"bucket_name","Name":"document_name"}}' \ --human-loop-config \ '{"HumanLoopName":"human_loop_name","FlowDefinitionArn":"arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name","DataAttributes": {"ContentClassifiers":["FreeOfPersonallyIdentifiableInformation","FreeOfAdultContent"]}}' \ --feature-types '["TABLES", "FORMS"]'

Después de ejecutar AnalyzeDocument con un bucle humano configurado, Amazon A2I supervisa los resultados de AnalyzeDocument y los compara con las condiciones de activación de la definición de flujo. Si la puntuación de confianza de inferencia de Amazon Textract para uno o más pares clave-valor cumple con las condiciones de revisión, Amazon A2I inicia un bucle de revisión humana e incluye el objeto HumanLoopActivationOutput en la respuesta de AnalyzeDocument.

Crear un bucle humano de Amazon Rekognition

Amazon A2I se integra con Amazon Rekognition para que pueda configurar e iniciar un bucle humano usando la API de Amazon Rekognition. A fin de enviar imágenes a Amazon Rekognition para la moderación del contenido, utilice la operación de API DetectModerationLabels de Amazon Rekognition. Para configurar un bucle humano, establezca el parámetro HumanLoopConfig cuando configure DetectModerationLabels.

Al configurar el bucle humano, la definición de flujo que haya especificado en FlowDefinitionArn de HumanLoopConfig debe estar ubicada en la misma región de AWS que el bucket de S3 identificado en el Bucket del parámetro Image.

En la siguiente tabla se muestran ejemplos de cómo utilizar esta operación con la tecla AWS CLI y AWS SDK for Python (Boto3).

AWS SDK for Python (Boto3)

En los siguientes ejemplos de solicitud, se utiliza el SDK para Python (Boto3). Para obtener más información, consulte detect_moderation_labels en la documentación de referencia de la API de AWS SDK para Python (Boto).

import boto3 rekognition = boto3.client("rekognition", aws_region) response = rekognition.detect_moderation_labels( \ Image={'S3Object': {'Bucket': bucket_name, 'Name': image_name}}, \ HumanLoopConfig={ \ 'HumanLoopName': 'human_loop_name', \ 'FlowDefinitionArn': , "arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name" \ 'DataAttributes': {'ContentClassifiers': ['FreeOfPersonallyIdentifiableInformation','FreeOfAdultContent']} })
AWS CLI

El siguiente ejemplo de solicitud utiliza la AWS CLI. Para obtener más información, consulte detect-moderation-labels en la Referencia de los comandos de AWS CLI.

$ aws rekognition detect-moderation-labels \ --image "S3Object={Bucket='bucket_name',Name='image_name'}" \ --human-loop-config HumanLoopName="human_loop_name",FlowDefinitionArn="arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name",DataAttributes='{ContentClassifiers=["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}'
$ aws rekognition detect-moderation-labels \ --image "S3Object={Bucket='bucket_name',Name='image_name'}" \ --human-loop-config \ '{"HumanLoopName": "human_loop_name", "FlowDefinitionArn": "arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name", "DataAttributes": {"ContentClassifiers": ["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}}'

Después de ejecutar DetectModerationLabels con un bucle humano configurado, Amazon A2I supervisa los resultados de DetectModerationLabels y los compara con las condiciones de activación de la definición de flujo. Si la puntuación de confianza de inferencia de Amazon Rekognition para una imagen cumple con las condiciones de revisión, Amazon A2I inicia un bucle de revisión humana e incluye el elemento de respuesta HumanLoopActivationOutput en la respuesta de DetectModerationLabels.

Crear e iniciar un bucle humano para un tipo de tarea personalizado

Para configurar un bucle humano para una tarea de revisión humana personalizada, utilice la operación StartHumanLoop dentro de la aplicación. En esta sección se proporciona un ejemplo de una solicitud de bucle humano que utiliza los caracteres AWS SDK for Python (Boto3) y AWS Command Line Interface (AWS CLI). Para obtener documentación sobre otros SDK de idiomas específicos compatiblesStartHumanLoop, consulte la sección Vea también de la documentación de StartHumanLoopla API Amazon Augmented AI Runtime. Consulte Casos y ejemplos de uso de Amazon A2I para ver ejemplos que muestran cómo utilizar Amazon A2I con un tipo de tarea personalizado.

Requisitos previos 

Para completar este procedimiento, se necesita lo siguiente:

  • Datos de entrada formateados como una representación de cadena de un archivo con formato JSON.

  • El nombre de recursos de Amazon (ARN) de su definición de flujo

Para configurar el bucle humano
  1. Para DataAttributes, especifique un conjunto de ContentClassifiers relacionado con la entrada proporcionada a la operación StartHumanLoop. Utilice clasificadores de contenido para declarar que su contenido está libre de información de identificación personal o contenido para adultos.

    Para usar Amazon Mechanical Turk, compruebe que sus datos no contengan información de identificación personal, lo que incluye la información médica protegida de conformidad con la norma HIPAA, e incluya el clasificador de contenido FreeOfPersonallyIdentifiableInformation. Si no utiliza este clasificador de contenido, SageMaker no envía la tarea a Mechanical Turk. Si en los datos no hay contenido para adultos, incluya también el clasificador 'FreeOfAdultContent'. Si no utiliza estos clasificadores de contenido, es SageMaker posible que se restrinja el número de trabajadores de Mechanical Turk que pueden ver su tarea.

  2. Para FlowDefinitionArn, introduce el nombre de recurso de Amazon (ARN) de tu definición de flujo.

  3. Para HumanLoopInput, introduzca los datos de entrada como una representación de cadena de un archivo con formato JSON. Estructure los datos de entrada y la plantilla de tareas de trabajo personalizada para que los datos de entrada se muestren correctamente a los trabajadores humanos cuando inicie el bucle humano. Consulte Vista previa de una plantilla de tarea de trabajador para obtener información sobre cómo obtener una vista previa de la plantilla de tareas de trabajo personalizada.

  4. Para HumanLoopName, introduzca un nombre para el bucle humano. El nombre debe ser único dentro de la región en su cuenta y puede tener hasta 63 caracteres. Caracteres válidos: a-z, 0-9 y - (guion).

Para iniciar un bucle humano
  • Para iniciar un bucle humano, envíe una solicitud similar a la de los siguientes ejemplos utilizando el SDK específico del lenguaje que prefiera.

AWS SDK for Python (Boto3)

En los siguientes ejemplos de solicitud, se utiliza el SDK para Python (Boto3). Para obtener más información, consulte Boto 3 Augmented AI Runtime en la documentación de referencia de la API de AWS SDK para Python (Boto).

import boto3 a2i_runtime_client = boto3.client('sagemaker-a2i-runtime') response = a2i_runtime_client.start_human_loop( HumanLoopName='human_loop_name', FlowDefinitionArn='arn:aws:sagemaker:aws-region:xyz:flow-definition/flow_def_name', HumanLoopInput={ 'InputContent': '{"InputContent": {\"prompt\":\"What is the answer?\"}}' }, DataAttributes={ 'ContentClassifiers': [ 'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent', ] } )
AWS CLI

El siguiente ejemplo de solicitud utiliza la AWS CLI. Para obtener más información, consulte start-human-loop en la Referencia de los comandos de AWS CLI.

$ aws sagemaker-a2i-runtime start-human-loop --flow-definition-arn 'arn:aws:sagemaker:aws_region:xyz:flow-definition/flow_def_name' \ --human-loop-name 'human_loop_name' \ --human-loop-input '{"InputContent": "{\"prompt\":\"What is the answer?\"}"}' \ --data-attributes ContentClassifiers="FreeOfPersonallyIdentifiableInformation","FreeOfAdultContent" \

Cuando se inicia con éxito un bucle humano invocando directamente a StartHumanLoop, la respuesta incluirá un objeto HumanLoopARN y HumanLoopActivationResults que se establece en NULL. Puede usar este nombre del bucle humano para monitorizar y administrar su bucle humano.

Pasos siguientes:

Tras iniciar un bucle humano, puedes gestionarlo y supervisarlo con la API Amazon Augmented AI Runtime y Amazon CloudWatch Events. Para obtener más información, consulte Supervise y administre su bucle humano.