Rompiendo las barreras del idioma con un modelo de traducción multilingüe
Imagina descubrir que tu nuevo amigo de Roblox, una persona con la que has hablado y bromeado en una nueva experiencia, se encuentra en Corea, y todo el tiempo ha estado escribiendo en coreano mientras tú lo haces en español sin que ninguno de los dos se dé cuenta. Gracias a nuestras nuevas traducciones de chat con IA en tiempo real, en Roblox hicimos posible algo que ni siquiera lo es en el mundo físico: permitir a personas que hablan diferentes idiomas comunicarse entre sí sin problemas en nuestras experiencias 3D inmersivas. Isso é possível graças ao nosso modelo multilinguístico personalizado, que agora habilita tradução direta entre qualquer combinação dos 16 idiomas suportados no momento (estes 15 idiomas, mais inglês).
A partir de ahora, las personas de diferentes países pueden darse a entender con otras personas que no hablan su idioma en cualquier experiencia que haya habilitado nuestro servicio de chat con texto en la experiencia. La ventana del chat mostrará en automático el coreano traducido a español, o turco a alemán, o viceversa, para que cada persona vea la conversación en su propio idioma. Estas traducciones se muestran en tiempo real, con latencia de aproximadamente 100 milisegundos, así que la traducción que ocurre tras bambalinas es casi invisible. Usar IA para automatizar a tradução em tempo real em chat de texto remove barreiras de linguagem e une melhor as pessoas, seja onde elas estiverem no mundo.
Construyendo un modelo de traducción unificado
La traducción con IA no es nueva. La mayoría de nuestro contenido en la experiencia ya se traduce automáticamente. Queríamos ir más allá que traducir contenido estático en las experiencias. Queríamos traducir interacciones automáticamente, y queríamos hacer eso para los 16 idiomas con los que somos compatibles en la plataforma. Este era un objetivo audaz por dos razones: Primero, no solo estábamos traduciendo de un idioma primario (es decir, inglés) a otro, queríamos un sistema capaz de traducir entre una combinación de los 16 idiomas con los que somos compatibles. Segundo, tenía que ser rápido. Suficientemente rápido para soportar conversaciones de chat en tiempo real, lo cual para nosotros significaba bajar la latencia a casi 100 milisegundos.
Roblox es hogar de más de 70 millones de usuarios activos diario en todo el mundo, y va en aumento. Las personas se comunican y crean en nuestra plataforma, cada una en su idioma natal, 24 horas al día. Traducir manualmente cada conversación que ocurre entre más de 15 millones de experiencias activas, todas en tiempo real, obviamente es imposible. Escalar estas traducciones en vivo a millones de personas, todas con diferentes conversaciones en diferentes experiencias simultáneamente, requiere un LLM con gran velocidad y precisión. Necesitamos un modelo consciente del contexto que reconozca el idioma específico de Roblox, incluyendo jerga y abreviaciones (piensa en obby, afk o lol). Más allá de eso, nuestro modelo necesita ser compatible con cualquier combinación de los 16 idiomas que Roblox soporta en la actualidad.
Para conseguir eso, podríamos construir un modelo único para cada para de idiomas (por ejemplo, japonés a español), pero eso requiere 16x16 o 256 modelos diferentes. En su lugar, creamos un LLM de traducción unificado y basado en transformadores para manejar todos los pares de idiomas en un único modelo. Es como tener varias aplicaciones de traducción, cada una especializada en un grupo de idiomas similares, todas disponibles en una sola interfaz. Dada una frase de origen y un idioma de destino, podemos activar al “experto” correspondiente para que genere las traducciones.
Esta arquitectura permite una mejor utilización de los recursos, ya que cada experto tiene una especialidad diferente, lo que conduce a un entrenamiento y deducción más eficientes, sin sacrificar la calidad de la traducción.
Esta arquitectura hace que sea mucho más eficiente entrenar y mantener nuestro modelo por varias razones. En primer lugar, nuestro modelo es capaz de aprovechar las similitudes lingüísticas entre idiomas. Cuando todos los idiomas se aprenden juntos, los que son similares, como el español y el portugués, se benefician entre sí durante el aprendizaje, lo que ayuda a mejorar la calidad de la traducción en ambos idiomas. También podemos probar e integrar más fácilmente en nuestro sistema las nuevas investigaciones y avances en LLM a medida que se publican, para beneficiarnos de las técnicas disponibles más recientes y mejores. Vemos otra ventaja de este modelo unificado en los casos en los que el idioma origen no está establecido o se estableció de forma incorrecta, en los que el modelo no es lo suficientemente preciso como para detectar el idioma origen y traducir al idioma destino. De hecho, aunque la entrada contenga una mezcla de idiomas, el sistema sigue siendo capaz de detectar y traducir a un idioma de destino. En esos casos, la precisión puede no ser tan alta, pero el mensaje final será razonablemente comprensible.
Para entrenar a este modelo unificado, comenzamos con un entrenamiento previo en datos de código abierto disponibles, así como nuestros propios datos de experiencia de traducción, resultados de chats etiquetados por humanos y frases y oraciones de chats habituales. También construimos nuestra propia evaluación de métrica de traducción y un modelo para medir la calidad de la traducción. La mayoría de las métricas de calidad de traducción estándar comparan el resultado de la traducción de IA con una línea base o traducción de referencia y se centran principalmente en que la traducción sea comprensible. Queríamos avaliar a qualidade da tradução, sem um resultado de referência.
Lo examinamos desde múltiples aspectos, como la precisión (ya sea que haya añadidos, omisiones o errores de traducción), fluidez (puntuación, ortografía y gramática) y referencias incorrectas (discrepancias con el texto). Clasificamos estos errores en niveles de severidad: ¿Es un error crítico, mayor o menor? Para evaluar la calidad, construimos un modelo de aprendizaje automático y lo entrenamos con tipos de error y puntuaciones etiquetadas por humanos. A continuación, perfeccionamos un modelo lingüístico multilingüe para predecir los errores y tipos a nivel de palabra y calcular una puntuación utilizando nuestros criterios multidimensionales. Esto nos proporciona una comprensión global de la calidad y los tipos de errores que se producen. De esta forma podemos estimar la calidad de la traducción y detectar errores al usar texto origen y traducción automática, sin requerir de una línea base de traducción. A partir dos resultados dessa medida de qualidade, podemos melhorar ainda mais a qualidade do nosso modelo de tradução.
Los pares de traducción menos comunes (por ejemplo, francés a tailandés) suponen un reto debido a la falta de datos de alta calidad. Para subsanar esta carencia, aplicamos la retrotraducción, que consiste en volver a traducir el contenido al idioma original y compararlo con el texto original para comprobar su exactitud. Durante el proceso de entrenamiento, utilizamos la retrotraducción iterativa, en la que empleamos una mezcla estratégica de estos datos retrotraducidos y datos supervisados (etiquetados) para ampliar la cantidad de datos de traducción con los que aprende el modelo.
Para ayudar al modelo a entender la jerga moderna, les pedimos a evaluadores humanos que tradujeran términos populares y de moda en cada idioma, y los incluimos en nuestros datos de entrenamiento. Seguiremos repitiendo este proceso periódicamente para mantener el sistema al día de la jerga más reciente.
El modelo de traducción de chat resultante tiene unos mil millones de parámetros. Ejecutar una traducción a través de un modelo tan grande exige recursos prohibitivos para servir a escala y llevaría demasiado tiempo para una conversación en tiempo real, donde la baja latencia es fundamental para soportar más de 5000 chats por segundo. Así que utilizamos este gran modelo de traducción en un enfoque alumno-profesor para construir un modelo más pequeño y ligero. Aplicamos destilación, cuantificación, compilación de modelos y otras optimizaciones de servicio para reducir el tamaño del modelo a menos de 650 millones de parámetros y mejorar la eficiencia de servicio. Además, modificaremos la API del chat de texto en la experiencia para enviar tanto el mensaje original como el traducido al dispositivo de la persona. Esto permite al destinatario ver el mensaje en su lengua materna o cambiar rápidamente a ver el mensaje original no traducido del remitente.
Una vez que el LLM final estuvo listo, implementamos un back-end para conectarlo con los servidores del modelo. Este back-end es donde aplicamos la lógica adicional de traducción de chat e integramos el sistema con nuestros sistemas habituales de confianza y seguridad. Esto asegura que el texto traducido se someta al mismo nivel de escrutinio que el resto del texto, con el fin de detectar y bloquear palabras o frases que infrinjan nuestras políticas. La seguridad y el civismo están en la vanguardia de todo lo que hacemos en Roblox, así que esta era una pieza muy importante del rompecabezas.
Mejora continua de la precisión
En las pruebas vimos que este nuevo sistema de traducción aumenta la participación y la calidad de las sesiones de los usuarios de nuestra plataforma. Según nuestra propia métrica, nuestro modelo supera a las API de traducción comerciales en el contenido de Roblox, lo que indica que optimizamos con éxito la forma en que la gente se comunica en Roblox. Estamos impacientes por ver cómo mejora la experiencia de los usuarios de la plataforma, permitiéndoles jugar, comprar, colaborar o simplemente ponerse al día con amigos que hablan otro idioma.
La posibilidad de que las personas mantengan conversaciones fluidas y naturales en su lengua materna nos acerca a nuestro objetivo de conectar a más de mil millones de personas con optimismo y civismo.
Para mejorar la precisión de nuestras traducciones y proporcionarle a nuestro modelo mejores datos de aprendizaje, tenemos previsto poner en marcha una herramienta para que los usuarios de la plataforma puedan dar su opinión sobre las traducciones y ayudar así a que el sistema mejore aún más rápido. Esto le permitiría a alguien decirnos si ve algo que se tradujo mal e incluso sugerir una traducción mejor que podemos añadir a los datos de entrenamiento para mejorar aún más el modelo.
Estas traducciones están disponibles al día de hoy para los 16 idiomas que soportamos, pero estamos lejos de terminar. Tenemos previsto seguir actualizando nuestros modelos con los ejemplos de traducción más recientes extraídos de nuestras experiencias, así como con las frases de chat más populares y las últimas frases de la jerga en todos los idiomas que soportamos. Además, esta arquitectura permitirá entrenar al modelo en nuevos idiomas con un esfuerzo relativamente bajo, a medida que se disponga de suficientes datos de entrenamiento para esos idiomas. Más adelante exploraremos formas de traducir de forma automática todo en múltiples dimensiones: texto en imágenes, texturas, modelos 3D, etc.
Y ya estamos explorando emocionantes fronteras nuevas, incluyendo la traducción automática de chat con voz. Imagina que alguien que hable francés en Roblox pueda usar el chat con voz con alguien que solo habla ruso. Ambos pueden hablar y entenderse, hasta con tono, ritmo y emoción en la voz, en su propio idioma y con baja latencia. Mientras que al día de hoy eso suena como ciencia ficción y tomará algo de tiempo en lograrse, seguiremos avanzando en la traducción. En un futuro no muy lejano, Roblox será el lugar donde las personas de todo el mundo puedan comunicarse sin problemas y sin esfuerzo, no solo a través del chat de texto, ¡sino de todas formas posibles!