Sequence-to-Sequence Algoritmo - 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.

Sequence-to-Sequence Algoritmo

Amazon SageMaker Sequence to Sequence es un algoritmo de aprendizaje supervisado en el que la entrada es una secuencia de fichas (por ejemplo, texto o audio) y la salida generada es otra secuencia de fichas. Algunos ejemplos de aplicaciones son la traducción automática (introducir una frase de un idioma y predecir cómo sería esa frase en otro idioma), el resumen de textos (introducir una cadena de palabras más larga y predecir una cadena de palabras más corta que sirva de resumen), speech-to-text (los clips de audio se convierten en frases de salida en forma de símbolos). Recientemente, se han diseñado correctamente problemas en este dominio con redes neuronales profundas que muestran un importante aumento del rendimiento a través de las metodologías anteriores. Amazon SageMaker seq2seq utiliza con atención los modelos de redes neuronales recurrentes (RNNs) y redes neuronales convolucionales () como arquitecturas de CNN codificador-decodificador.

Interfaz de Sequence-to-Sequence entrada/salida para el algoritmo

Entrenamiento

SageMaker seq2seq espera datos en formato Recordio-ProtoBUF. Sin embargo, los tokens se esperan como enteros, no como puntos flotantes, como suele ser el caso.

Se incluye un script para convertir datos desde archivos de texto tokenizados al formato protobuf en el bloc de notas de muestra de seq2seq. Por lo general, empaqueta los datos en tensores de números enteros de 32 bits y genera los archivos de vocabulario necesarios que se precisan para la inferencia y el cálculo de métricas.

Una vez realizado el procesamiento previo, se puede invocar el algoritmo para la capacitación. El algoritmo espera tres canales:

  • train: debe contener los datos de capacitación (por ejemplo, el archivo train.rec generado por el script de preprocesamiento).

  • validation: debe contener los datos de validación (por ejemplo, el archivo val.rec generado por el script de preprocesamiento).

  • vocab: debe contener dos archivos de vocabulario (vocab.src.json y vocab.trg.json).

Si el algoritmo no encuentra datos en alguno de estos tres canales, se producirá un error en los resultados de capacitación.

Inferencia

Para los puntos de enlace alojados, la inferencia admite dos formatos de datos. Para realizar la inferencia mediante tokens de texto separados por espacios, utilice el formato application/json. De lo contrario, utilice el formato recordio-protobuf para trabajar con los datos codificados de números enteros. Ambos modos admiten la creación de lotes de datos de entrada. El formato application/json también le permite visualizar la matriz de atención.

  • application/json: Espera la entrada en formato y devuelve la salida en formato. JSON JSON Ambos tipos de aceptación y contenido deben ser application/json. Se espera que las secuencias sean una cadena con tokens separados por espacios en blanco. Se recomienda este formato cuando el número de secuencias de origen en el lote es pequeño. También admite las siguientes opciones de configuración adicionales:

    configuration: {attention_matrix: true}: devuelve la matriz de atención para una secuencia de entrada determinada.

  • application/x-recordio-protobuf: espera la entrada en formato recordio-protobuf y devuelve la salida en recordio-protobuf format. Ambos tipos de aceptación y contenido deben ser applications/x-recordio-protobuf. Para este formato, las secuencias de origen deben convertirse en una lista de números enteros para la codificación protobuf posterior. Este formato es el recomendado para la inferencia masiva.

Para la transformación por lotes, la inferencia admite el formato JSON de líneas. La transformación por lotes espera la entrada en formato de JSON líneas y devuelve la salida en formato de JSON líneas. Ambos tipos de aceptación y contenido deben ser application/jsonlines. El formato para la entrada es el siguiente:

content-type: application/jsonlines {"source": "source_sequence_0"} {"source": "source_sequence_1"}

El formato para la respuesta es el siguiente:

accept: application/jsonlines {"target": "predicted_sequence_0"} {"target": "predicted_sequence_1"}

Para obtener detalles adicionales sobre cómo serializar y deserializar las entradas y salidas en formatos específicos para la referencia, consulte Sequence-to-Sequence Ejemplos de cuadernos.

EC2Recomendación de instancia para el Sequence-to-Sequence algoritmo

El algoritmo SageMaker seq2seq de Amazon solo admite tipos de GPU instancias y solo se puede entrenar en una sola máquina. Sin embargo, puede usar instancias con varias. GPUs El algoritmo seq2seq admite las familias de instancias P2, P3, G4dn y G5. GPU

Sequence-to-Sequence Ejemplos de cuadernos

Para ver un ejemplo de cuaderno que muestra cómo usar el algoritmo de SageMaker secuencia a secuencia para entrenar un modelo de traducción inglés-alemán, consulte Ejemplo de traducción automática inglés-alemán con Seq2Seq. SageMaker Para obtener instrucciones sobre cómo crear instancias de Jupyter Notebook y acceder a ellas con las que puede ejecutar el ejemplo, consulte. SageMaker Instancias de Amazon SageMaker Notebook Una vez que haya creado una instancia de bloc de notas y la haya abierto, seleccione la pestaña SageMakerEjemplos para ver una lista de todos los SageMaker ejemplos. El tema Modelado de cuadernos de ejemplo con los NTM algoritmos se encuentra en la sección Introducción a los algoritmos de Amazon. Para abrir un cuaderno, haga clic en la pestaña Usar y seleccione Crear copia.