Cómo personalizar el modelo de NMT

La API de Cloud Translation Avanzado te permite personalizar el modelo de traducción automática neuronal (NMT) de Google sin escribir código. Esto significa que puedes adaptar un modelo personalizado a tu contenido específico del dominio y generar traducciones más precisas que las que produciría el modelo predeterminado de TNM de Google.

El modelo de NMT abarca una gran cantidad de pares de idiomas y funciona bien con texto de uso general. Un modelo personalizado se destaca por manejar vocabularios específicos y especializados. Personalizar el modelo de NMT te permite obtener la traducción correcta de la terminología específica del dominio que te interesa.

Si ejecutas un servicio de informes especializado que tiene la oportunidad de expandirse a nuevos países. En esos mercados, es necesario que tu contenido urgente se traduzca correctamente en tiempo real, incluida la terminología especializada. En lugar de contratar personal bilingüe o traductores especializados, que en ambos casos tienen un precio alto, puedes crear y perfeccionar un modelo personalizado para que haga el trabajo en tiempo real a un costo mucho menor.

Preparación de datos

Para entrenar un modelo personalizado, debes proporcionar pares de segmentos coincidentes en los idiomas de origen y de destino. Son pares de palabras o frases que significan lo mismo en el idioma del texto original y en el de la traducción. Cuanto más se parezca el significado de los pares de segmentos, mejor funcionará el modelo.

Para crear el conjunto de datos de pares de segmentos coincidentes, comienza con el caso de uso:

  • ¿Qué resultado quieres lograr?

  • ¿Qué tipos de segmentos son importantes para traducir correctamente y lograr ese resultado? ¿El modelo de NMT puede lograr eso de forma predeterminada?

  • ¿Podrían los traductores humanos traducir estos segmentos clave de manera satisfactoria? Si la tarea de traducción es lo suficientemente ambigua como para que una persona que domine ambos idiomas tenga dificultades para hacer un trabajo satisfactorio, es posible que el modelo de NMT tenga un rendimiento similar al de un modelo personalizado.

  • ¿Qué tipos de ejemplos reflejan mejor el tipo y el rango de pares de segmentos que tu sistema deberá traducir?

Haz corresponder tus datos con el dominio del problema

Estás entrenando un modelo de traducción personalizado porque necesitas un modelo que se ajuste a un dominio lingüístico particular. Asegúrate de que tus pares de segmentos logren abarcar de la mejor manera posible el vocabulario, el uso y las peculiaridades gramáticas de tu industria o área de enfoque. Busca documentos que contengan usos típicos que puedes encontrar en las tareas de traducción que deseas hacer, y asegúrate de que tus frases paralelas tengan un significado lo más similar posible. Por supuesto, a veces el vocabulario o la sintaxis de los idiomas no se corresponden de manera exacta, pero intenta capturar toda la diversidad de la semántica que esperas encontrar en uso, si es posible. Estás compilando un modelo que ya hace un gran trabajo con la traducción de uso general. Tus ejemplos son el último paso especial que hace que los modelos personalizados funcionen para tu caso de uso en particular, así que asegúrate de que sean relevantes y representativos del uso que esperas ver.

Captura la diversidad de tu espacio lingüístico

Es tentador suponer que la manera en la que las personas escriben sobre un dominio específico es lo suficientemente uniforme como para que una cantidad limitada de muestras de textos a cargo de un número reducido de traductores sea suficiente a fin de entrenar un modelo que funcione bien para cualquier persona que escriba sobre ese dominio. Pero todos somos diferntes y aportamos nuestra propia personalidad en las palabras que escribimos. Es más probable que un conjunto de datos de entrenamiento con pares de oraciones de una amplia elección de autores y traductores te proporcione un modelo útil para traducir los escritos de una organización diversa. Además, considera la variedad de estructuras y longitudes de los segmentos, ya que un conjunto de datos en el que todos los segmentos tienen el mismo tamaño o comparten una estructura gramatical similar no producirá un buen modelo personalizado que capture todas las posibilidades.

Obtén tus datos

Después de establecer qué datos necesitas, debes buscar una manera de obtenerlos. Para empezar, puedes tener en cuenta todos los datos que recopila tu organización. Puede que descubras que ya estás recopilando los datos que necesitarás para entrenar un modelo de traducción. En caso de que no tengas los datos que necesitas, puedes obtenerlos de forma manual o subcontratarlos a un tercero.

Mantén informadas a las personas

Si es posible, asegúrate de que una persona que entienda bien los dos idiomas valide que los pares de oraciones coincidan correctamente y representen traducciones comprensibles y precisas. Un error común, como alinear las filas de tu hoja de cálculo para los datos de entrenamiento de forma incorrecta, puede dar como resultado traducciones sin sentido. Lo más importante que le puedes brindar a la API de Cloud Translation Advanced son datos de alta calidad para obtener un modelo que tu empresa pueda usar.

Ten en cuenta la equidad al desarrollar pares de segmentos

Un principio fundamental en el que se basan los productos de AA de Google es el aprendizaje automático centrado en las personas, un enfoque que promueve las prácticas de IA responsables, incluida la equidad. El objetivo de la equidad en el AA es comprender y prevenir el trato injusto o perjudicial de las personas en relación con la raza, los ingresos, la orientación sexual, la religión, el género y otras características históricamente asociadas con la discriminación y la marginación, cuando y donde se manifiestan en los sistemas algorítmicos o en la toma de decisiones asistida por algoritmos. Puedes leer más en nuestra guía y en estas notas sobre imparcialidad:

  • Revisa las reglamentaciones de tu región y de las ubicaciones en las que se usará tu aplicación, así como los estudios o la información del producto existentes en tu dominio para enterarte sobre los lineamientos legales y los posibles problemas culturales. Más información…

  • Considera si tu caso de uso o producto podría tener un impacto negativo en las oportunidades económicas o de otro tipo que sean importantes para la vida de las personas y, si es así, obtén más información…

  • Si tienes pocos datos sobre un subgrupo en particular, asegúrate de que estén distribuidos de forma representativa entre los conjuntos de entrenamiento y de prueba realizando la división de entrenamiento y prueba tú mismo.

  • Cuando realices pruebas, piensa detenidamente en el dominio del problema y en la posibilidad de que exista desigualdad y sesgo. Crea casos que podrían afectar de forma negativa a tus usuarios si se encontraran en producción y pruébalos primero. Más información…

  • Si tienes un caso de uso que justifique consideraciones de imparcialidad, lee más sobre cómo usar tu modelo de una manera que mitigue los sesgos o los resultados adversos. Más información…

  • Más lineamientos de datos para la equidad.

Limpia los datos desordenados

Es posible que cometas errores al realizar el procesamiento previo de los datos, y algunos de estos errores pueden confundir a un modelo personalizado. En particular, busca los siguientes problemas de datos que puedes corregir:

  • Quita los segmentos de origen duplicados, en especial si tienen traducciones de destino diferentes. La API de Cloud Translation - Advanced usa solo el primer ejemplo visto y descarta todos los otros pares al momento de la importación. Cuando quitas duplicados, te aseguras de que la API de Cloud Translation avanzado use tu traducción preferida.
  • Alinea los segmentos de origen con los segmentos de destino correctos.
  • Haz coincidir los segmentos con el idioma especificado. Por ejemplo, incluye solo segmentos en chino en un conjunto de datos en ese idioma.
  • En el caso de los segmentos de destino que incluyen idiomas mixtos, comprueba que las palabras no traducidas estén sin traducir de manera intencional, como los nombres de organizaciones o productos. Los segmentos de destino que incluyen palabras no traducidas agregan ruido a tus datos de entrenamiento, lo que puede generar un modelo de baja calidad.
  • Corrige los segmentos con errores tipográficos o gramaticales para que el modelo no aprenda estos errores.
  • Quita el contenido que no se puede traducir, como las etiquetas HTML y los marcadores de posición. El contenido que no se puede traducir puede generar errores de puntuación.
  • No incluyas pares de segmentos que reemplacen entidades generales por sustantivos específicos. Por ejemplo, evita un ejemplo que traduzca un término general como presidente al nombre de un presidente específico, como JFK. Esto podría enseñarle al modelo a cambiar todas las instancias de presidente por JFK. En su lugar, quita estos pares de segmentos o cambia los sustantivos específicos por sustantivos generales.
  • Quita los segmentos duplicados en los conjuntos de entrenamiento y prueba (consulta División del conjunto de datos para obtener información sobre cómo dividir tu conjunto de datos en tres subconjuntos).
  • Divide varios segmentos en diferentes pares de segmentos. Los entrenamientos con conjuntos de datos cuyos elementos tienen alrededor de 50 tokens (palabras) o más da como resultado modelos de baja calidad. Divide los elementos en oraciones individuales cuando sea posible.
  • Usa mayúsculas y minúsculas coherentes. El uso de mayúsculas y minúsculas afecta la forma en la que un modelo aprende, por ejemplo, a distinguir un título del texto del cuerpo.
  • Quita las etiquetas TMX cuando importes datos desde un archivo TSV. En algunos casos, puedes exportar tu memoria de traducción existente a un archivo TSV, que puede incluir etiquetas TMX. Sin embargo, la API de Cloud Translation - Advanced limpia las etiquetas de unidades de traducción solo cuando importas desde un archivo TMX (no para archivos TSV).

Procesamiento de datos

La API de Cloud Translation - Advanced deja de analizar tu archivo de entrada de datos cuando:

  • Hay un formato no válido.
  • Exista un par de segmentos excesivamente largo (10 MB).
  • El archivo usa una codificación que no es UTF-8.

La API de Cloud Translation Advanced ignora los errores de problemas que no puede detectar, como los siguientes:

  • Un elemento <tu> en un archivo TMX que no especifica el idioma fuente o de destino.
  • Uno de los pares de oraciones de entrada está vacío.

Para la división automática de datos, la API de Cloud Translation - Advanced realiza un procesamiento adicional (consulta División del conjunto de datos):

  • Luego de que se suba el conjunto de datos, quita los pares de segmentos que tengan segmentos de origen idénticos.

  • Divide de forma aleatoria tus datos en tres conjuntos con una proporción de 8:1:1 (entrenamiento:validación:prueba) antes del entrenamiento.

División del conjunto de datos

Tu conjunto de datos de pares de segmentos se divide en tres subconjuntos para el entrenamiento, la validación y las pruebas:

  • Conjunto de entrenamiento
    La mayoría de tus datos deben estar en el conjunto de entrenamiento. Estos son los datos que tu modelo "ve" durante el entrenamiento: se usan para aprender los parámetros del modelo y calcular el peso de las conexiones entre los nodos de la red neuronal.

  • Conjunto de validación
    El conjunto de validación, a veces llamado conjunto de desarrollo, también se usa durante el proceso de entrenamiento. Durante el aprendizaje del modelo, el framework usa el conjunto de entrenamiento para entrenar un conjunto de modelos candidatos. Luego, usa el rendimiento del modelo en el conjunto de validación para elegir el mejor modelo generado. Usa el rendimiento del modelo en el conjunto de validación para ajustar sus hiperparámetros, que son variables que especifican la estructura del modelo. Si usas el conjunto de entrenamiento para ajustar los hiperparámetros, el modelo podría terminar demasiado enfocado en tus datos de entrenamiento. El uso de un conjunto de datos un poco nuevo para perfeccionar la estructura del modelo permite una mejor generalización del modelo a otros datos.

  • Conjunto de prueba
    El conjunto de prueba no interviene para nada en el proceso de entrenamiento. Después de que el modelo completa todo su entrenamiento, el conjunto de prueba se usa como un desafío nuevo para tu modelo. El rendimiento de tu modelo en el conjunto de prueba sirve para darte una idea bastante clara de cómo será su rendimiento en datos del mundo real.

Si no especificas manualmente cómo se divide tu conjunto de datos entre estas funciones, como se describe en Cómo preparar tus datos de entrenamiento,y si tu conjunto de datos contiene menos de 100, 000 pares de segmentos, la API de Cloud Translation - Advanced usa automáticamente el 80% de tus documentos de contenido para el entrenamiento, el 10% para la validación y el 10% para las pruebas. Si tus datos son más grandes, debes especificar de forma explícita cómo se dividen. La división manual te brinda más control sobre el proceso, ya que no solo te permite determinar los porcentajes de división, sino que también te permite especificar conjuntos particulares en los que se incluirán pares de segmentos específicos.

Importando datos

Una vez que elijas entre la división manual y la automática, hay dos formas de agregar datos:

  • Puedes importar datos como un archivo de valores separados por tabulaciones (TSV) que contenga segmentos de origen y de destino, con un par de segmentos por línea.

  • Puedes importar datos como un archivo TMX, un formato estándar para proporcionar pares de segmentos a herramientas de modelos de traducción automática (consulta Prepara datos de entrenamiento para obtener más información sobre el formato TMX). Si un archivo TMX contiene etiquetas XML no válidas, la API de Cloud Translation - Advanced las ignora. Si el archivo TMX contiene errores de XML o TMX, por ejemplo, si falta una etiqueta final o un elemento <tmx>, la API de Cloud Translation - Advanced finaliza el procesamiento y muestra un error si omite más de 1,024 elementos `` no válidos.

Evaluación preliminar de tu modelo personalizado

Una vez que tu modelo esté entrenado, recibirás un resumen de su rendimiento. Haz clic en la pestaña Entrenar para ver un análisis detallado. La puntuación BLEU de tu modelo personalizado y del modelo estándar de NMT de Google se muestran en la pestaña Entrenar, junto con el aumento en el rendimiento de la puntuación BLEU por usar el modo personalizado.

Cuanto más alta sea la puntuación BLEU, mejores traducciones te ofrecerá tu modelo para los segmentos que sean similares a tus datos de entrenamiento. Las puntuaciones entre 30 y 40 se consideran buenas. Para obtener una explicación detallada de las puntuaciones BLEU, consulta La métrica de calidad de traducción BLEU.

Existen otras métricas de evaluación que suelen ser más confiables que la puntuación BLEU. Para obtener información sobre esas opciones de evaluación, consulta Evalúa modelos de traducción.

Depuración

La depuración de un modelo personalizado consiste más en depurar los datos que el modelo en sí. Si tu modelo no traduce de la manera que esperas, verifica tus datos para ver dónde se pueden realizar mejoras.

Prueba

Incluso si la puntuación BLEU es buena, conviene que tú compruebes el modelo para asegurarte de que el rendimiento coincide con tus expectativas. Si tus datos de entrenamiento y prueba se extraen del mismo conjunto de pruebas incorrecto, las puntuaciones podrían ser excelentes incluso si la traducción no tiene sentido. Agrega algunos ejemplos como entrada en la pestaña Predecir y compara los resultados del modelo personalizado con el modelo base de NMT de Google. Puedes notar que tu modelo presenta las mismas predicciones que el modelo base, especialmente en segmentos cortos o si tienes un conjunto de entrenamiento más pequeño, ya que el modelo base ya es bastante bueno para una amplia variedad de casos de uso. En ese caso, intenta con segmentos más largos o complejos. Sin embargo, si todos tus segmentos resultan idénticos a las predicciones del modelo base, podría ser una indicación de un problema con los datos.

Si hay un error que te preocupa especialmente que cometa tu modelo (como un error de traducción que podría ser costoso en términos de dinero o reputación), asegúrate de que tu conjunto de pruebas o procedimiento cubra ese caso de manera adecuada para que te sientas seguro usando tu modelo en las tareas diarias.

¿Qué sigue?