En este artículo, descubrirás cómo Lilt convierte una enorme cantidad de datos y ecuaciones matemáticas en traducciones de lenguaje natural. Los modelos de traducción automática pueden parecer mágicos, pero aquí te dejaremos echar un vistazo detrás de escena.
Entrenar un modelo de traducción automática (MT, por su sigla en inglés) es como cocinar siguiendo una receta. Tienes que seguir los pasos, pero los ingredientes deben ser frescos para que el plato tenga un buen sabor.
Lilt usa fuentes de datos abiertas y pagas para obtener datos de corpus paralelos, el componente clave para traducir modelos de MT.
Las fuentes abiertas están disponibles libremente y las fuentes revisadas de datos de corpus paralelos habitualmente se ponen a disposición con la licencia CC-BY o CC-BY-SA. Algunas de las fuentes son Opus, Paracrawl, y CCMatrix.
Las fuentes pagas son las que se crean con la licencia CC-NC, lo que permite utilizarlas solo con fines no comerciales o de investigación. Tenemos que pagar un cargo para poder usarlas en nuestros modelos. Un ejemplo de estas fuentes es WIPO COPPA V2.
En lo que respecta al tamaño de los datos, cuanto más, mejor. Más datos generalmente conduce a modelos de MT de más alta calidad. Hasta la fecha, hemos recopilado 3800 millones de segmentos en 76 pares de idiomas.
Cada porción de datos que obtenemos de las fuentes antes mencionadas pasa por un riguroso proceso. Basta con decir que la preparación de los datos es una tarea hercúlea, incluso antes de comenzar el entrenamiento. ¡Así es como lo hacemos!
Utilizamos los siguientes subpasos para realizar una limpieza sintáctica básica:
Versionamos nuestros datos con DVC, ya que permite combinar los archivos de origen y de destino y cualquier archivo de rastreo interno adicional en una sola unidad. La unidad única es un archivo .dvc, que está consignado a nuestro Github para rastrear todas las fuentes de datos que usamos.
Para garantizar la consistencia de todos los segmentos, realizamos los siguientes pasos:
Primero, eliminamos los segmentos potencialmente problemáticos de un corpus a nivel del segmento o del par de segmentos. Esto se conoce como filtrado individual.
Cuando se presentan datos no familiares o subrepresentados, los modelos de traducción automática pueden fallar produciendo "alucinaciones", texto traducido que está divorciado del texto de origen. Para aliviar este problema, generamos (aumentamos) artificialmente ejemplos de oraciones paralelas. El entrenamiento con ejemplos aumentados mejora la solidez y resiliencia del modelo en función de estos datos, lo que nos permite traducir eficazmente una amplia variedad de dominios de clientes. Aumentamos los pares de segmentos existentes de las siguientes formas:
El vocabulario para un corpus grande puede ser enorme, con muchas palabras pocas veces vistas. Realizamos codificación de pares de bytes (BPE, por su sigla en inglés) en las palabras para desglosarlas en fragmentos de palabras (por ej., amablemente podría separarse en amable y mente). Esto nos permite corregir el tamaño del vocabulario y, por extensión, el modelo de MT, y en consecuencia, los recursos necesarios para entrenar el modelo.
Además, la BPE nos permite traducir segmentos con tokens que no han aparecido en los corpus de entrenamiento, comunes en idiomas morfológicamente ricos como las lenguas latinas y eslávicas, ya que podemos dividir los tokens en fragmentos de palabras familiares.
Desde que la arquitectura Transformer entró en escena, hemos basado en ella nuestros modelos de traducción de producción.
Antes de pasar a los detalles específicos del modelo Transformer, permítanme una breve digresión sobre un concepto conocido como espacio de inmersión o espacio de representación continua. Cada punto en este espacio de alta dimensión representa el significado de una oración. Dos oraciones que son similares en significado tendrán representaciones próximas entre sí. Básicamente puedes adivinar de qué manera encaja este concepto en el diseño de un modelo de traducción automática. Solo diseñamos dos componentes:
Codificador: esto toma una oración de origen y la transforma en la representación de espacio de inmersión
Decodificador: esto toma la representación de espacio de inmersión y la convierte en una oración del idioma de destino
El Codificador y el Decodificador juntos forman un modelo de traducción automática para un par de idiomas dado. Secuencia a secuencia (seq2seq) es un nombre multifunción para los modelos que usan esta arquitectura de codificador-decodificador, donde el Transformer es ampliamente considerado como el que tiene más desempeño.
Así es como se ve un modelo de Transformer:
Dada la arquitectura, debemos elegir el tamaño del modelo. El tamaño del modelo está determinado por la cantidad de parámetros y es similar a la capacidad de un hotel. La información aprendida del corpus en el entrenamiento es análoga a la cantidad de personas que hay efectivamente en el hotel.
Queremos lograr el máximo aprovechamiento, por lo que usamos la cantidad de oraciones en el corpus paralelo obtenido de la sección de Preparación de los datos para determinar qué tamaño de modelo es el mejor para un par de idiomas dado:
- Modelo pequeño para cuando se dispone de menos pares de oraciones en paralelo, por ejemplo, inglés -> hindi
Modelo grande para cuando hay muchos pares de oraciones en paralelo disponibles, por ej. inglés -> alemán
Luego, entrenamos el modelo. Los detalles específicos podrían describirse en una publicación de blog futura, pero basta decir que activamos muchos nodos informáticos de alto desempeño, entrenamos el modelo con los datos de entrenamiento generados a partir de la sección Preparación de los datos y hacemos un análisis de referencia del desempeño del modelo con conjuntos de pruebas preparados por organizaciones como WMT, TED y grupos académicos como LTI.
Para puntuar los modelos, usamos métricas automáticas como la puntuación BLEU, que responde preguntas como "¿Cómo evalúo objetivamente qué es un buen modelo de inglés a francés?".
Después de alcanzar un nivel aceptable, mandamos el modelo a nuestros servidores de producción y nuestros traductores pueden comenzar a usarlo de inmediato.