Saltear al contenido principal
Translator
Esta página ha sido traducida automáticamente por el servicio de traducción automática de Microsoft Translator. Aprende más

Microsoft Translator blog

Traducción automática neuronal que permite las innovaciones de paridad humana en la nube

En marzo de 2018 anunció (2018) un resultado revolucionario en el que mostramos por primera vez un sistema de traducción automática que pudiera funcionar así como traductores humanos (en un escenario específico: traducción de noticias chino-inglés). Este fue un gran avance en la investigación de traducción automática, pero el sistema que construimos para este proyecto fue un complejo sistema de investigación de peso pesado, que incorpora múltiples técnicas de vanguardia. Aunque lanzamos la salida de este sistema en varios conjuntos de pruebas, el propio sistema no era adecuado para la implementación en una API en la nube de traducción automática en tiempo real.

Hoy nos complace anunciar la disponibilidad en la producción de nuestra última generación de modelos neuronales de traducción automática. Estos modelos incorporan la mayor parte de las bondades de nuestro sistema de investigación y ahora están disponibles de forma predeterminada cuando se utiliza la API de Microsoft Translator. Estos nuevos modelos están disponibles hoy en día en chino, alemán, francés, hindi, italiano, español, japonés, coreano y ruso, desde y hacia inglés. Pronto vendrán más idiomas.

Pasar del documento de investigación a la API en la nube

Durante el último año, hemos estado buscando maneras de traer gran parte de la calidad de nuestro sistema de paridad humana en el API de traductor, mientras continúa ofreciendo traducción en tiempo real de bajo costo. Estos son algunos de los pasos en ese viaje.

Capacitación Profesor-Estudiante

Nuestro primer paso fue cambiar a un marco "profesor-estudiante", donde entrenamos a un estudiante ligero en tiempo real para imitar una red de maestros de peso pesado (Ba y Caruana 2014). Esto se logra mediante la formación del estudiante no sobre los datos paralelos en los que se suelen entrenar los sistemas MT, sino en las traducciones producidas por el profesor (Kim y Rush 2016). Esta es una tarea más simple que aprender de datos sin procesar, y permite a un estudiante más superficial y más simple seguir muy de cerca al profesor complejo. Como era de esperar, nuestros intentos iniciales todavía sufrieron caídas de calidad de profesor a estudiante (¡sin almuerzo gratis!), pero sin embargo obtuvimos el primer lugar en la tarea compartida WNMT 2018 sobre decodificación eficiente (2018a 2018a). Algunos resultados particularmente emocionantes de este esfuerzo fueron que Transformer (2017) y sus modificaciones juegan bien con la formación profesor-alumno y son asombrosamente eficientes durante la inferencia en la CPU.

Aprendiendo de estos resultados iniciales y después de una gran cantidad de iteración descubrimos una receta que permite a nuestro simple estudiante tener casi la misma calidad que el profesor complejo (a veces hay un almuerzo gratis después de todo?). Ahora éramos libres de construir modelos de maestros grandes y complejos para maximizar la calidad, sin preocuparnos por las restricciones en tiempo real (demasiado).

Traducción en tiempo real

Nuestra decisión de cambiar a un marco profesor-estudiante fue motivada por el gran trabajo Kim and Rush (2016) para modelos simples basados en RNN. En ese momento no estaba claro si los beneficios reportados se manifestarían también para los modelos de Transformer (ver 2017 para obtener detalles sobre este modelo). Sin embargo, rápidamente descubrimos que este era el caso.

El estudiante Transformer podría utilizar un algoritmo de decodificación muy simplificado (búsqueda expansiva) donde simplemente elegimos la palabra mejor traducida en cada paso, en lugar del método habitual (búsqueda de haz) que implica buscar a través del enorme espacio de posibles Traducción. Este cambio tuvo un impacto de calidad mínimo, pero condujo a grandes mejoras en la velocidad de traducción. Por el contrario, un modelo de profesor sufriría una caída significativa en la calidad al cambiar de la búsqueda de hace según la búsqueda de conseguidos.

Al mismo tiempo, nos dimos cuenta de que en lugar de utilizar la arquitectura neuronal más reciente (Transformador con auto-atención) en el decodificador, el estudiante podría ser modificado para utilizar una arquitectura recurrente drásticamente simplificada y más rápida (RNN). Esto importa porque mientras que el codificador Transformer se puede calcular a través de toda la oración de origen en paralelo, la frase de destino se genera una sola palabra a la vez, por lo que la velocidad del decodificador tiene un gran impacto en la velocidad general de traducción. En comparación con la autoatención, el decodificador recurrente reduce la complejidad algorítmica de cuadrático a lineal en la longitud de la oración objetivo. Especialmente en el entorno profesor-alumno, no vimos ninguna pérdida de calidad debido a estas modificaciones, ni para los resultados automáticos ni para los resultados de la evaluación humana. Varias mejoras adicionales, como el intercambio de parámetros, dieron lugar a nuevas reducciones en la complejidad y a un aumento de la velocidad.

Otra ventaja del marco profesor-alumno que estábamos muy emocionados de ver es que las mejoras de calidad en el tiempo de los maestros en constante crecimiento y cambio se transfieren fácilmente a una arquitectura estudiantil no cambiante. En los casos en que vimos problemas en este sentido, un ligero aumento en la capacidad del modelo de estudiante volvería a cerrar la brecha.

Aprendizaje dual

La visión clave detrás del aprendizaje dual (2016) es la comprobación de "traducción de ida y vuelta" que las personas a veces utilizan para comprobar la calidad de la traducción. Supongamos que estamos usando un traductor en línea para pasar del inglés al italiano. Si no leemos italiano, ¿cómo sabemos si ha hecho un buen trabajo? Antes de hacer clic Enviar en un correo electrónico, podríamos optar por comprobar la calidad traduciendo el italiano de nuevo al inglés (tal vez en un sitio web diferente). Si el inglés que volvemos se ha desviado demasiado del original, lo más probable es que una de las traducciones se haya desviado.

El aprendizaje dual utiliza el mismo enfoque para entrenar dos sistemas (por ejemplo, inglés->italiano e italiano-inglés) en paralelo, utilizando la traducción de ida y vuelta de un sistema para puntuar, validar y entrenar el otro sistema.

El aprendizaje dual fue un importante contribuyente a nuestro resultado de investigación de paridad humana. Al pasar del sistema de investigación a nuestra receta de producción, generalizamos este enfoque en general. No sólo co-entrenamos pares de sistemas en la salida del otro, también usamos el mismo criterio para filtrar nuestros datos paralelos.

Limpieza de datos inexactos

Los sistemas de traducción automática se entrenan sobre "datos paralelos", es decir, pares de documentos que son traducciones entre sí, idealmente creados por un traductor humano. Resulta que estos datos paralelos a menudo están llenos de traducciones inexactas. A veces los documentos no son realmente paralelos, sino sólo parafrases sueltas entre sí. Los traductores humanos pueden optar por dejar fuera algún material fuente o insertar información adicional. Los datos pueden contener errores tipográficos, errores ortográficos, errores gramaticales. A veces, nuestros algoritmos de minería de datos se ven engañados por datos similares pero no paralelos, o incluso por oraciones en un lenguaje incorrecto. Lo peor de todo es que muchas de las páginas web que vemos son spam, o de hecho pueden ser traducciones automáticas en lugar de traducciones humanas. Los sistemas neuronales son muy sensibles a este tipo de imprecisión en los datos. Encontramos que la construcción de modelos neuronales para identificar automáticamente y deshacerse de estas imprecisiones dio fuertes mejoras en la calidad de nuestros sistemas. Nuestro enfoque para el filtrado de datos dio lugar al primer lugar en el Referencia de filtrado de corpus paralelo WMT18 (Junczys-Dowmunt 2018a) y ayudó a construir uno de los sistemas de traducción más fuertes entre el inglés y el alemán en el WMT18 Tarea de traducción de noticias (Junczys-Dowmunt 2018b). Usamos versiones mejoradas de este enfoque en los sistemas de producción que lanzamos hoy.

Representaciones de palabras factorizadas

Al trasladar una tecnología de investigación a la producción, surgen varios desafíos del mundo real. Conseguir números, fechas, horas, capitalización, espaciado, etc. correcto importa mucho más en la producción que en un sistema de investigación.

Considere el desafío de la capitalización. Si estamos traduciendo la frase "WATCH CAT VIDEOS HERE". Sabemos traducir "gato". Nos gustaría traducir "CAT" de la misma manera. Pero ahora considere "Ver fútbol de Estados Unidos aquí". No queremos confundir la palabra "nosotros" y el acrónimo "US" en este contexto.

Para manejar esto, usamos un enfoque conocido como traducción automática factorizada (Koehn y Hoang 2007Sennrich y Haddow 2016) que funciona de la siguiente manera. En lugar de una sola representación numérica ("incrustar") para "gato" o "CAT", utilizamos varias incrustaciones, conocidas como "factores". En este caso, la incrustación principal sería la misma para "CAT" y "gato", pero un factor separado representaría la mayúscula, mostrando que se trataba de todos los caps en una instancia, pero en minúsculas en la otra. Se utilizan factores similares en el lado de origen y de destino.

Utilizamos factores similares para manejar fragmentos de palabras y espaciado entre palabras (un problema complejo en lenguajes que no son espaciados o semiespaciados, como el chino, el coreano, el japonés o el tailandés).

Los factores también mejoraron drásticamente la traducción de los números, lo cual es crítico en muchos escenarios. La traducción numérica es principalmente una transformación algorítmica. Por ejemplo, 1.234.000 se pueden escribir como 12,34,000 en hindi, 1.234.000 en alemán y 123,4 en chino. Tradicionalmente, los números se representan como palabras, como grupos de caracteres de longitud variable. Esto dificulta que el aprendizaje automático descubra el algoritmo. En su lugar, alimentamos cada dígito de un número por separado, con factores que marcan principio y final. Este sencillo truco eliminó de forma robusta y fiable casi todos los errores de traducción de números.

Entrenamiento de modelos más rápido

Cuando estamos entrenando a un solo sistema hacia un solo objetivo, como lo hicimos para el proyecto de investigación de paridad humana, esperamos lanzar un gran número de hardware a modelos que tardan semanas en entrenarse. Cuando se entrenan modelos de producción para más de 20 pares de idiomas, este enfoque se vuelve insostenible. No sólo necesitamos tiempos de respuesta razonables, sino que también necesitamos moderar nuestras demandas de hardware. Para este proyecto, realizamos una serie de mejoras de rendimiento Marian NMT (2018b).

Marian NMT es el kit de herramientas de MT neuronal de código abierto en el que se basa Microsoft Translator. Marian es un kit de herramientas de traducción automática neuronal C+ + puro y, como resultado, extremadamente eficiente, sin necesidad de GPU en tiempo de ejecución, y muy eficiente en el momento de entrenamiento

Debido a su naturaleza independiente, es bastante fácil optimizar Marian para tareas específicas de NMT, lo que resulta en uno de los kits de herramientas NMT más eficientes disponibles. Eche un vistazo a la Referencia. Si usted está interesado en la investigación y el desarrollo de Neural MT, por favor únase y contribuya a la comunidad en Github.

Nuestras mejoras en cuanto a la formación y decodificación de precisión mixta, así como para la formación de modelos de gran tamaño pronto estarán disponibles en el repositorio público de Github.

Estamos entusiasmados con el futuro de la traducción automática neuronal. Continuaremos implementando la nueva arquitectura modelo en los idiomas restantes y Traductor personalizado a lo largo de este año. Nuestros usuarios obtendrán automáticamente las traducciones de mejor calidad a través de la API de traductorNuestro Aplicación de traductor, Microsoft Office y el explorador perimetral. Esperamos que las nuevas mejoras ayuden a su vida personal y profesional y esperamos sus comentarios.

 

Referencias

  • Jimmy Ba y Rich Caruana. 2014. ¿Realmente las redes profundas necesitan ser profundas? Avances en Sistemas de Procesamiento de Información Neural 27. Páginas 2654-2662. https://papers.nips.cc/paper/5484-do-deep-nets-really-need-to-be-deep
  • Hany Hassan, Anthony Aue, Chang Chen, Vishal Chowdhary, Jonathan Clark, Christian Federmann, Xuedong Huang, Marcin Junczys-Dowmunt, William Lewis, Mu Li, Shujie Liu, Tie-Yan Liu, Renqian Luo, Arul Menezes, Tao Qin, Frank Seide, Xu Tan, Fei Tian, Lijun Wu, Shuangzhi Wu, Yingce Xia, Dongdong Zhang, Zhirui Zhang, Ming Zhou. 2018. Lograr la paridad humana en la traducción automática de noticias de chino a inglés. http://arxiv.org/abs/1803.05567
  • El, Di y Xia, Yingce y Qin, Tao y Wang, Liwei y Yu, Nenghai y Liu, Tie-Yan y Ma, Wei-Ying. 2016. Aprendizaje dual para la traducción automática. Avances en Sistemas de Procesamiento de Información Neural 29. Páginas 820-828. https://papers.nips.cc/paper/6469-dual-learning-for-machine-translation
  • Marcin Junczys-Dowmunt. 2018a. Filtrado de entropía cruzada condicional dual de La Corpora Paralela Noisy. Actas de la Tercera Conferencia sobre Traducción Automática: Documentos de Tareas Compartidas. Bélgica, páginas 888-895. https://aclweb.org/anthology/papers/W/W18/W18-6478/
  • Marcin Junczys-Dowmunt. 2018b. Envío de Microsoft a la tarea de traducción de noticias WMT2018: Cómo aprendí a dejar de preocuparme y amar los datos. Actas de la Tercera Conferencia sobre Traducción Automática: Documentos de Tareas Compartidas. Bélgica, páginas 425-430. https://www.aclweb.org/anthology/W18-6415/
  • Marcin Junczys-Dowmunt, Kenneth Heafield, Hieu Hoang, Roman Grundkiewicz, Anthony Aue. 2018a. Marian: Traducción de la máquina neuronal de alta calidad rentable en C++. Actas del 2o Taller de Traducción y Generación de Máquinas Neurales. Melbourne, Australia, páginas 129-135. https://aclweb.org/anthology/papers/W/W18/W18-2716/
  • Marcin Junczys-Dowmunt, Roman Grundkiewicz, Tomasz Dwojak, Hieu Hoang, Kenneth Heafield, Tom Neckermann, Frank Seide, Ulrich Germann, Alham Fikri Aji, Nikolay Bogoychev, André F. T. Martins, Alexandra Birch. 2018b. Marian: Traducción automática neuronal rápida en C++. Actas de ACL 2018, demostraciones del sistema. Melbourne, Australia, páginas 116-121. https://www.aclweb.org/anthology/P18-4020/
  • Yoon Kim y Alexander M. Rush. 2016. Destilación de conocimientos a nivel de secuencia. En Actas de la Conferencia 2016 sobre Métodos Empíricos en El Procesamiento del Lenguaje Natural, EMNLP 2016, Austin, Texas, EE. UU., 1-4 de noviembre de 2016, páginas 1317–1327. https://aclweb.org/anthology/papers/D/D16/D16-1139/
  • Philipp Koehn, Hieu Hoang. 2007. Modelos de traducción factorizados. Actas de la Conferencia Conjunta de 2007 sobre Métodos Empíricos en Procesamiento del Lenguaje Natural y Aprendizaje Computacional de Lenguaje Natural (EMNLP-CoNLL). Praga, República Checa, páginas 868-876. https://www.aclweb.org/anthology/D07-1091/
  • Rico Sennrich, Barry Haddow. 2016. Las características de entrada linguística mejoran la traducción automática neuronal. Actas de la Primera Conferencia sobre Traducción Automática: Volumen 1, Documentos de Investigación. Berlín, Alemania, páginas 83-91. https://www.aclweb.org/anthology/W16-2209/
  • Vaswani, Ashish y Shazeer, Noam y Parmar, Niki y Uszkoreit, Jakob y Jones, Llion y Gomez, Aidan N y Kaiser, Lukasz y Polosukhin, Illia. 2017. La atención es todo lo que necesita. Avances en Sistemas de Procesamiento de Información Neural 30. Páginas 5998-6008. https://papers.nips.cc/paper/7181-attention-is-all-you-need