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.
Creación de una plantilla personalizada de tareas de trabajador
Para crear un trabajo de etiquetado personalizado, debe actualizar la plantilla de tareas de trabajador, asignar los datos de entrada del archivo de manifiesto a las variables utilizadas en la plantilla y asignar los datos de salida a Amazon S3. Para obtener más información sobre las características avanzadas que utilizan la automatización de Liquid, consulte Adición de automatización con Liquid.
En las siguientes secciones se describen cada uno de los pasos necesarios.
Plantilla de tareas de trabajador
Una plantilla de tarea de trabajador es un archivo que utiliza Ground Truth para personalizar la interfaz de usuario (IU) del trabajador. Puedes crear una plantilla de tareas para trabajadores utilizandoHTML,, CSS JavaScript, el lenguaje de plantillas Liquid
Use los siguientes temas para aprender a crear una plantilla de tareas de trabajadores. Puedes ver un repositorio de ejemplos de plantillas de tareas para trabajadores de Ground Truth en GitHub
Uso de la plantilla de tareas base para trabajadores de la consola de SageMaker IA
Puede usar un editor de plantillas en la consola de Ground Truth para empezar a crear una plantilla. Este editor incluye una serie de plantillas base prediseñadas. Es compatible con el relleno automático de códigos HTML de Crowd HTML Element.
Para acceder al editor de plantillas personalizadas de Ground Truth:
-
Siga las instrucciones que se indican en Crear un trabajo de etiquetado (consola).
-
A continuación, seleccione Personalizado para Tipo de tarea del trabajo de etiquetado.
-
Al seleccionar Siguiente, podrá acceder al editor de plantillas y las plantillas base en la sección Configuración de tareas de etiquetado personalizado.
-
(Opcional) Seleccione una plantilla base en el menú desplegable de Plantillas. Si prefiere crear una plantilla desde cero, seleccione Personalizar en el menú desplegable para obtener un esquema de plantilla mínimo.
Consulte la siguiente sección para aprender a visualizar una plantilla desarrollada en la consola de forma local.
Visualización de las plantillas de tareas de trabajador de forma local
Debe usar la consola para probar cómo la plantilla procesa los datos entrantes. Para probar la apariencia de tu plantilla HTML y los elementos personalizados, puedes usar tu navegador.
nota
Las variables no se analizarán. Es posible que tenga que sustituirlas por contenido de muestra mientras visualiza el contenido de forma local.
El siguiente fragmento de código de ejemplo carga el código necesario para renderizar los elementos personalizadosHTML. Úselo si quiere desarrollar el aspecto de la plantilla en su editor preferido en lugar de hacerlo en la consola.
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script>
Creación de un ejemplo de tarea simple HTML
Ahora que tiene la plantilla de tareas básica para trabajadores, puede usar este tema para crear una plantilla HTML de tareas sencilla.
A continuación se muestra un ejemplo de una entrada de un archivo de manifiesto de entrada.
{ "source": "This train is really late.", "labels": [ "angry" , "sad", "happy" , "inconclusive" ], "header": "What emotion is the speaker feeling?" }
En la plantilla de HTML tareas, necesitamos mapear las variables del archivo de manifiesto de entrada a la plantilla. Se asignaría la variable del manifiesto de entrada de ejemplo mediante la siguiente sintaxis task.input.source
, task.input.labels
y task.input.header
.
El siguiente es un ejemplo sencillo de plantilla de tareas HTML de trabajo para el análisis de tuits. Todas las tareas comienzan y terminan con los elementos <crowd-form> </crowd-form>
. Al igual que HTML <form>
los elementos estándar, todo el código del formulario debe estar entre ellos. Ground Truth genera las tareas de los trabajadores directamente desde el contexto especificado en la plantilla, a menos que se implemente una función de Lambda previa a la anotación. El objeto taskInput
devuelto por Ground Truth o Lambda de preanotación es el objeto task.input
de las plantillas.
Para una sencilla tarea de análisis de tweet, utilice el elemento <crowd-classifier>
. Requiere los atributos siguientes:
nombre: nombre de la variable de salida. Las anotaciones del trabajador se guardan con el nombre de esta variable en el manifiesto de salida.
categorías: una matriz JSON formateada de las posibles respuestas.
header: título para la herramienta de anotaciones
El elemento <crowd-classifier>
requiere al menos los tres elementos secundarios siguientes.
<classification-target>: texto que el trabajador clasificará en función de las opciones especificadas en el atributo
categories
anterior.<full-instructions>: instrucciones que están disponibles en el enlace Ver instrucciones completas en la herramienta. Puede dejarse en blanco, pero se recomienda que dé buenas instrucciones para obtener mejores resultados.
<short-instructions>: descripción más breve de la tarea que aparece en la barra lateral de la herramienta. Puede dejarse en blanco, pero se recomienda que dé buenas instrucciones para obtener mejores resultados.
Una versión sencilla de esta herramienta tendría el aspecto siguiente. La variable {{ task.input.source }}
es lo que especifica los datos de origen del archivo de manifiesto de entrada. Este {{ task.input.labels | to_json }}
es un ejemplo de un filtro variable para convertir la matriz en una JSON representación. El categories
atributo debe serJSON.
ejemplo de cómo utilizar crowd-classifier
con el json de manifiesto de entrada de muestra
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> <crowd-form> <crowd-classifier name=
"tweetFeeling"
categories="='{{ task.input.labels | to_json }}'
" header="{{ task.input.header }}'" > <classification-target>{{ task.input.source }}
</classification-target> <full-instructions header="Sentiment Analysis Instructions"> Try to determine the sentiment the author of the tweet is trying to express. If none seem to match, choose "cannot determine." </full-instructions> <short-instructions> Pick the term that best describes the sentiment of the tweet. </short-instructions> </crowd-classifier> </crowd-form>
Puedes copiar y pegar el código en el editor del flujo de trabajo de creación de empleo de etiquetado de Ground Truth para obtener una vista previa de la herramienta, o bien puedes probar una demostración de este código CodePen.
Datos de entrada, activos externos y la plantilla de tareas
En las siguientes secciones se describen el uso de activos externos, los requisitos de formato de los datos de entrada y cuándo plantearse el uso de funciones de Lambda previas a la anotación.
Requisitos de formato de datos de entrada
Al crear un archivo de manifiesto de entrada para usarlo en el trabajo de etiquetado personalizado de Ground Truth, debe almacenar los datos en Amazon S3. Los archivos de manifiesto de entrada también deben guardarse en el mismo lugar Región de AWS en el que se va a ejecutar su trabajo de etiquetado personalizado de Ground Truth. Además, se puede almacenar en cualquier depósito de Amazon S3 al que pueda acceder el rol de IAM servicio que utilices para ejecutar tu trabajo de etiquetado personalizado en Ground Truth.
Los archivos de manifiesto de entrada deben usar el formato de líneas nuevas JSON o JSON delimitadas por líneas. Cada línea se delimita con un salto de línea estándar, \n
o \r\n
. Cada línea también debe ser un objeto válido. JSON
Además, cada JSON objeto del archivo de manifiesto debe contener una de las siguientes claves: source-ref
osource
. El valor de las claves se interpreta como se indica a continuación:
-
source-ref
: el origen del objeto es el objeto de Amazon S3 especificado en el valor. Utilice este valor cuando el objeto sea un objeto binario, como una imagen. -
source
: el origen del objeto es el valor. Utilice este valor cuando el objeto sea un valor de texto.
Para obtener más información sobre el formato de los archivos de manifiesto de entrada, consulte Archivos de manifiesto de entrada.
Función de Lambda previa a la anotación
Si lo desea, puede especificar una función de Lambda previa a la anotación para administrar la forma en que se tratan los datos del archivo de manifiesto de entrada antes del etiquetado. Si ha especificado el par clave-valor isHumanAnnotationRequired
, debe utilizar una función de Lambda previa a la anotación. Cuando Ground Truth envía una solicitud JSON formateada a la función Lambda previa a la anotación, utiliza los siguientes esquemas.
ejemplo objeto de datos identificado con el par clave-valor source-ref
{ "version": "2018-10-16", "labelingJobArn":
arn:aws:lambda:us-west-2:555555555555:function:my-function
"dataObject" : { "source-ref":s3://input-data-bucket/data-object-file-name
} }
ejemplo objeto de datos identificado con el par clave-valor source
{ "version": "2018-10-16", "labelingJobArn" :
arn:aws:lambda:us-west-2:555555555555:function:my-function
"dataObject" : { "source":Sue purchased 10 shares of the stock on April 10th, 2020
} }
A continuación se muestra la respuesta prevista de la función de Lambda cuando se utiliza isHumanAnnotationRequired
.
{ "taskInput":
{ "source": "This train is really late.", "labels": [ "angry" , "sad" , "happy" , "inconclusive" ], "header": "What emotion is the speaker feeling?" }
, "isHumanAnnotationRequired":False
}
Uso de activos externos
Las plantillas personalizadas de Amazon SageMaker Ground Truth permiten incrustar scripts y hojas de estilo externos. Por ejemplo, el siguiente bloque de código muestra cómo añadir una hoja de estilos situada en https://www.example.com/my-enhancement-styles.css
a la plantilla.
<script src="https://www.example.com/my-enhancment-script.js"></script> <link rel="stylesheet" type="text/css" href="https://www.example.com/my-enhancement-styles.css">
Si encuentra errores, asegúrese de que su servidor de origen envíe los encabezados MIME de tipo y codificación correctos con los recursos.
Por ejemplo, los tipos de codificación MIME y los scripts remotos son:application/javascript;CHARSET=UTF-8
.
El tipo MIME y el tipo de codificación de las hojas de estilo remotas son:. text/css;CHARSET=UTF-8
Datos de salida y la plantilla de tareas
En las siguientes secciones se describen los datos de salida de un trabajo de etiquetado personalizado y cuándo se debe considerar el uso de una función de Lambda posterior a la anotación.
Datos de salida
Una vez finalizado el trabajo de etiquetado personalizado, los datos se guardan en el bucket de Amazon S3 que se haya especificado al crear el trabajo de etiquetado. Los datos se guardan en un archivo output.manifest
.
nota
labelAttributeName
es una variable de marcador de posición. En la salida es el nombre del trabajo de etiquetado o el nombre del atributo de etiqueta que ha especificado al crear el trabajo de etiquetado.
-
source
osource-ref
: se pidió a los URI trabajadores que etiquetaran la cadena o un S3. -
labelAttributeName
: un diccionario que incluye el contenido de etiquetas consolidado de la función de Lambda posterior a la anotación. Si no se especifica una función de Lambda posterior a la anotación, este diccionario estará vacío. -
labelAttributeName-metadata
: metadatos del trabajo de etiquetado personalizado añadidos por Ground Truth. -
worker-response-ref
— El S3 URI del depósito donde se guardan los datos. Si se especifica una función de Lambda posterior a la anotación, este par clave-valor no estará presente.
En este ejemplo, el JSON objeto está formateado para que sea legible; en el archivo de salida real, el JSON objeto está en una sola línea.
{ "source" : "
This train is really late.
", "labelAttributeName" : {}, "labelAttributeName-metadata": { # These key values pairs are added by Ground Truth "job_name": "test-labeling-job
", "type": "groundTruth/custom", "human-annotated": "yes", "creation_date": "2021-03-08T23:06:49.111000", "worker-response-ref": "s3://amzn-s3-demo-bucket/test-labeling-job/annotations/worker-response/iteration-1/0/2021-03-08_23:06:49.json
" } }
Uso de una función de Lambda posterior a la anotación para consolidar los resultados de los trabajadores
De forma predeterminada, Ground Truth guarda las respuestas del trabajador sin procesar en Amazon S3. Para tener un control más pormenorizado sobre la forma en que se administran las respuestas, puede especificar una función de Lambda posterior a la anotación. Por ejemplo, una función de Lambda posterior a la anotación podría utilizarse para consolidar anotaciones si varios trabajadores han etiquetado el mismo objeto de datos. Para obtener más información sobre la creación de funciones de Lambda posteriores a la anotación, consulte La función Lambda de postanotación.
Si desea utilizar una función de Lambda posterior a la anotación, debe especificarse como parte de la AnnotationConsolidationConfig
en una solicitud CreateLabelingJob
.
Para obtener más información sobre cómo funciona la consolidación de anotaciones, consulte Consolidación de anotaciones.