Personalizar el modelo de NMT
La API Cloud Translation Advanced 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 de un dominio y producir traducciones más precisas que con el modelo de TNM de Google predeterminado.
El modelo de NMT abarca un gran número de pares de idiomas y funciona bien con texto de uso general. Los modelos personalizados destacan por su capacidad para gestionar vocabularios específicos y especializados. Personalizar el modelo de traducción automática neuronal te permite obtener la traducción correcta de la terminología específica del dominio que te interesa.
Si gestionas un servicio de informes especializado que tiene la oportunidad de expandirse a nuevos países. En esos mercados, es necesario que tu contenido sensible al tiempo se traduzca correctamente en tiempo real, incluida la terminología especializada. En lugar de tener que contratar personal bilingüe o traductores especializados, lo que supone un coste elevado, puedes crear y perfeccionar un modelo personalizado para que haga el trabajo en tiempo real a un coste 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. Se trata de pares de palabras o frases que significan lo mismo en el idioma del que quieres traducir y en el idioma al que quieres traducir. Cuanto más se parezcan los significados de los pares de segmentos, mejor funcionará tu modelo.
Al crear el conjunto de datos de pares de segmentos coincidentes, empieza por el caso práctico:
¿Qué resultado quieres conseguir?
¿Qué tipos de segmentos son importantes para traducir correctamente y conseguir ese resultado? ¿Puede el modelo de NMT conseguirlo sin necesidad de configuración?
¿Es posible que los humanos traduzcan estos segmentos clave de una forma que te satisfaga? 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, el modelo NMT podría funcionar igual de bien que un modelo personalizado.
¿Qué tipo de ejemplos reflejan mejor el tipo y el intervalo de pares de segmentos que tu sistema tendrá que traducir?
Asignar datos a tu dominio de problema
Estás entrenando un modelo de traducción personalizado porque necesitas un modelo que se ajuste a un ámbito lingüístico concreto. Asegúrate de que tus pares de segmentos cubran lo mejor posible el vocabulario, el uso y las peculiaridades gramaticales de tu sector o área de enfoque. Busca documentos que contengan usos típicos que puedas encontrar en las tareas de traducción que quieras completar y asegúrate de que las frases paralelas coincidan lo más posible en cuanto al significado. Por supuesto, a veces los idiomas no se corresponden perfectamente en cuanto a vocabulario o sintaxis, pero intenta captar toda la diversidad semántica que esperas encontrar en el uso, si es posible. Estás usando un modelo que ya hace un buen trabajo con la traducción general. Tus ejemplos son el último paso especial que hace que los modelos personalizados funcionen en tu caso práctico concreto, así que asegúrate de que sean relevantes y representativos del uso que esperas ver.
Captar la diversidad de tu espacio lingüístico
Es tentador suponer que la forma en que los usuarios escriben sobre un dominio específico es lo suficientemente uniforme como para que un pequeño número de muestras de texto traducidas por un pequeño número de traductores sea suficiente para entrenar un modelo que funcione bien para cualquier otra persona que escriba sobre ese dominio. Pero todos somos personas diferentes y cada uno de nosotros aporta su propia personalidad a las palabras que escribe. Es más probable que un conjunto de datos de entrenamiento con pares de segmentos de una amplia selección de autores y traductores te proporcione un modelo útil para traducir textos de una organización diversa. Además, tenga en cuenta la variedad de longitudes y estructuras de los segmentos. Un conjunto de datos en el que todos los segmentos tengan el mismo tamaño o compartan una estructura gramatical similar no generará un buen modelo personalizado que recoja todas las posibilidades.
Incluir la fuente de los datos
Una vez que hayas determinado qué datos necesitas, debes encontrar una forma de obtenerlos. Para empezar, ten en cuenta todos los datos que recoge tu organización. Puede que ya estés recogiendo los datos que necesitas para entrenar un modelo de traducción. Si no tiene los datos que necesita, puede obtenerlos manualmente o subcontratarlos a un proveedor externo.
Mantener la intervención humana
Si es posible, asegúrate de que una persona que domine ambos idiomas haya validado que los pares de segmentos coinciden correctamente y representan traducciones precisas y comprensibles. Un error habitual, como alinear incorrectamente las filas de la hoja de cálculo de datos de entrenamiento, puede dar lugar a traducciones sin sentido. Los datos de alta calidad son lo más importante que puedes proporcionar a la API Cloud Translation Advanced para obtener un modelo que se pueda usar en tu empresa.
Ten en cuenta la equidad al desarrollar pares de segmentos
Uno de los principios fundamentales de los productos de aprendizaje automático de Google es el aprendizaje automático centrado en las personas, un enfoque que promueve las prácticas responsables de IA, incluida la ecuanimidad. El objetivo de la equidad en el aprendizaje automático es comprender y evitar el trato injusto o perjudicial de las personas en relación con la raza, los ingresos, la orientación sexual, la religión, el sexo y otras características históricamente asociadas a la discriminación y la marginación, cuando y donde se manifiestan en sistemas algorítmicos o en la toma de decisiones asistida por algoritmos. Puede consultar más información en nuestra guía y en estas notas sobre el uso justo:
Repasa las normativas de tu región y de las ubicaciones donde se utilice tu aplicación. Busca también estudios o información sobre productos de tu dominio para conocer las directrices legales y los posibles problemas culturales. Más información...
Piensa si tu producto o caso práctico puede menoscabar las oportunidades económicas o de otra índole de algunas personas. Si es así, consulta más información.
Si tienes pocos datos sobre un subgrupo en particular, asegúrate de que esos datos se distribuyan de forma representativa entre los conjuntos de entrenamiento y de prueba. Para ello, realiza la división entre datos de entrenamiento y de prueba manualmente.
Durante las pruebas, analiza detenidamente tu dominio y reflexiona sobre los posibles problemas de inequidad y parcialidad. Imagina casos que perjudicarían a los usuarios si surgieran en producción y compruébalos primero. Más información...
Si tienes un caso práctico que requiere tener en cuenta la equidad, consulta más información sobre cómo usar tu modelo de forma que se mitiguen los sesgos o los resultados adversos. Más información...
Más directrices sobre datos para garantizar la imparcialidad
Limpiar datos desordenados
Es posible que cometas errores al preprocesar los datos, y algunos de ellos pueden confundir a un modelo personalizado. En concreto, busca los siguientes problemas de datos que puedes solucionar:
- Elimina los segmentos de origen duplicados, sobre todo si tienen traducciones de destino diferentes. La API Cloud Translation - Advanced solo usa el primer ejemplo que encuentra y descarta todos los demás pares en el momento de la importación. Al eliminar los duplicados, te aseguras de que la API Cloud Translation - Advanced use la traducción que prefieras.
- Alinea los segmentos de origen con los segmentos de destino correctos.
- Asigna segmentos al idioma especificado. Por ejemplo, incluye solo segmentos en chino en un conjunto de datos en chino.
- En los segmentos de destino que incluyan varios idiomas, comprueba que las palabras sin traducir se hayan dejado así intencionadamente, como los nombres de productos u organizaciones. Los segmentos de destino que incluyen palabras sin traducir por error añaden ruido a tus datos de entrenamiento, lo que puede dar lugar a un modelo de menor calidad.
- Corrige los segmentos que tengan errores tipográficos o gramaticales para que tu modelo no los aprenda.
- Elimina el contenido que no se pueda traducir, como las etiquetas de marcador de posición y las etiquetas HTML. El contenido no traducible puede provocar errores de puntuación.
- No incluyas pares de segmentos que sustituyan entidades generales por sustantivos específicos. Por ejemplo, no traduzcas un término general como presidente al nombre de un presidente concreto, como JFK. De esta forma, el modelo podría aprender a cambiar todas las instancias de presidente por JFK. En su lugar, quite estos pares de segmentos o cambie los sustantivos específicos por otros más generales.
- Elimina los segmentos duplicados de los conjuntos de entrenamiento y de prueba (consulta la sección División del conjunto de datos para obtener información sobre cómo dividir el conjunto de datos en tres subconjuntos).
- Dividir varios segmentos en diferentes pares de segmentos. Si se entrena con un conjunto de datos en el que muchos elementos tienen más de 50 tokens (palabras), los modelos serán de menor calidad. Divide los elementos en frases individuales siempre que sea posible.
- Usa un formato de letras coherente. Las mayúsculas y minúsculas influyen en cómo aprende un modelo. Por ejemplo, para distinguir un título de un texto del cuerpo.
- Eliminar etiquetas TMX al importar datos de un archivo TSV. En algunos casos, puede exportar su memoria de traducción a un archivo TSV, que puede incluir etiquetas TMX. Sin embargo, la API Cloud Translation - Advanced solo limpia las etiquetas de unidades de traducción cuando se importa un archivo TMX (no en el caso de los archivos TSV).
Procesamiento de datos
La API Cloud Translation - Advanced deja de analizar tu archivo de entrada de datos cuando:
- El formato no es válido.
- Hay un par de segmentos demasiado largo (10 MB).
- El archivo usa una codificación distinta de UTF-8.
La API Cloud Translation Advanced ignora los errores de los problemas que no puede detectar, como los siguientes:
- Un elemento
<tu>de un archivo TMX que no especifica el idioma de origen ni el de destino. - Una de las parejas de segmentos de entrada está vacía.
Para la división automática de datos, la API Cloud Translation Advanced realiza un procesamiento adicional (consulta la sección División de conjuntos de datos):
Una vez que se ha subido el conjunto de datos, se eliminan los pares de segmentos con segmentos de origen idénticos.
Antes del entrenamiento, divide aleatoriamente los datos en tres conjuntos con una proporción de 8:1:1 (entrenamiento, validación y prueba).
División de conjuntos de datos
Tu conjunto de datos de pares de segmentos se divide en tres subconjuntos: entrenamiento, validación y prueba.
Conjunto de entrenamiento
La mayoría de los datos deben estar en el conjunto de entrenamiento. Estos son los datos que "ve" tu modelo durante el entrenamiento. Se usan para aprender los parámetros del modelo y calcular los pesos de las conexiones entre los nodos de la red neuronal.Conjunto de validación
El conjunto de validación, a veces denominado 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 y, a continuación, 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 los hiperparámetros del modelo, que son variables que especifican la estructura del modelo. Si has usado el conjunto de entrenamiento para ajustar los hiperparámetros, el modelo se centrará demasiado en los datos de entrenamiento. Usar un conjunto de datos algo novedoso para ajustar la estructura del modelo significa que tu modelo se generalizará mejor.Conjunto de prueba
El conjunto de prueba no participa en el proceso de entrenamiento. Una vez que el modelo haya completado todo el entrenamiento, el conjunto de prueba se usará como un reto completamente nuevo para tu modelo. El rendimiento de tu modelo en el conjunto de prueba te dará una idea bastante clara de cómo se comportará con datos reales.
Si no especificas manualmente cómo se divide tu conjunto de datos entre estas funciones, tal como se describe en Preparar los datos de entrenamiento, y si tu conjunto de datos contiene menos de 100.000 pares de segmentos, la API Cloud Translation - Advanced usará 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 explícitamente cómo se dividen. La división manual te da más control sobre el proceso, ya que no solo te permite determinar los porcentajes de división, sino también especificar conjuntos concretos en los que incluir pares de segmentos concretos.
Importando datos
Una vez que haya decidido si le conviene dividir los datos de forma manual o automática, tiene dos formas de añadirlos:
Puede importar datos como un archivo de valores separados por tabulaciones (TSV) que contenga segmentos de origen y de destino, un par de segmentos por línea.
Puedes importar datos como un archivo TMX, un formato estándar para proporcionar pares de segmentos a las herramientas de modelos de traducción automática (consulta Preparar 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 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 Cloud Translation - Advanced detiene el procesamiento y devuelve un error si omite más de 1024 elementos `' no válidos.
Evaluación preliminar de tu modelo personalizado
Una vez que se haya entrenado el modelo, 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 Google NMT se muestra en la pestaña Entrenar, junto con el aumento del rendimiento de la puntuación BLEU que se obtiene al usar el modo personalizado.
Cuanto mayor sea la puntuación BLEU, mejores traducciones podrá ofrecerte el 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 el artículo Métrica de calidad de traducción BLEU.
Hay otras métricas de evaluación que suelen ser más fiables que la puntuación BLEU. Para obtener información sobre estas opciones de evaluación, consulta el artículo Evaluar modelos de traducción.
Depuración
Depurar un modelo personalizado consiste más en depurar los datos que el propio modelo. Si tu modelo no traduce como quieres, comprueba tus datos para ver dónde se puede mejorar.
Pruebas
Aunque la puntuación BLEU parezca correcta, es recomendable que compruebes el modelo para asegurarte de que su rendimiento se ajusta a tus expectativas. Si los datos de entrenamiento y de prueba se extraen del mismo conjunto incorrecto de muestras, las puntuaciones pueden ser excelentes aunque la traducción no tenga sentido. Añade algunos ejemplos como entrada en la pestaña Predecir y compara los resultados del modelo personalizado con el modelo base de NMT de Google. Puede que observes que tu modelo ofrece las mismas predicciones que el modelo base, sobre todo 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 prácticos. En ese caso, prueba con segmentos más largos o complejos. Sin embargo, si todos los segmentos son idénticos a las predicciones del modelo base, puede que haya un problema con los datos.
Si hay un error que te preocupa especialmente que cometa tu modelo (como un error de traducción que pueda ser costoso en términos económicos o de reputación), asegúrate de que tu conjunto de pruebas o procedimiento cubra ese caso adecuadamente para que te sientas seguro al usar tu modelo en las tareas cotidianas.
Siguientes pasos
- Para obtener información sobre cómo crear tu propio conjunto de datos y modelo personalizado, consulta el artículo Preparar datos de entrenamiento.