El retador de código abierto se enfrenta a Google Translate

Los investigadores han lanzado un sistema de red neuronal de código abierto para realizar traducciones de idiomas que podría ser una alternativa a los servicios de traducción patentados de caja negra.

La traducción automática neuronal de código abierto (OpenNMT) combina el trabajo de investigadores de Harvard con las contribuciones del creador de software de traducción automática Systran. Se ejecuta en el marco de computación científica Torch, que también es utilizado por Facebook para sus proyectos de aprendizaje automático.

Idealmente, OpenNMT podría servir como una alternativa abierta a proyectos de código cerrado como Google Translate, que recientemente recibió un importante cambio de imagen de red neuronal para mejorar la calidad de su traducción.

Pero los algoritmos no son la parte difícil; está generando buenas fuentes de datos para respaldar el proceso de traducción, que es donde Google y los otros gigantes de la nube que brindan traducción automática como servicio tienen la ventaja.

Hablar en lenguas

OpenNMT, que utiliza el lenguaje Lua para interactuar con Torch, funciona como otros productos de su clase. El usuario prepara un cuerpo de datos que representa los dos pares de idiomas que se van a traducir, por lo general, el mismo texto en ambos idiomas traducido por un traductor humano. Después de entrenar a OpenNMT con estos datos, el usuario puede implementar el modelo resultante y usarlo para traducir textos.

Torch puede aprovechar la aceleración de la GPU, lo que significa que el proceso de entrenamiento para los modelos OpenNMT se puede acelerar mucho en cualquier sistema equipado con GPU. Dicho esto, el proceso de formación puede llevar mucho tiempo, "a veces, muchas semanas". Pero el proceso de capacitación se puede tomar instantáneamente y reanudar bajo demanda si es necesario. Si desea utilizar el modelo entrenado en una CPU en lugar de una GPU, deberá convertir el modelo para que funcione en modo CPU. OpenNMT proporciona una herramienta para hacer exactamente eso.

Una demostración en vivo proporcionada por Systran afirma utilizar OpenNMT junto con el propio trabajo de Systran. Para pares de idiomas comunes como inglés / francés, las traducciones son bastante precisas. Para los pares en los que es probable que haya un cuerpo más pequeño de textos disponibles, o donde los pares de idiomas no se asignan con tanta precisión entre sí, por ejemplo, inglés / japonés, las traducciones son un poco más forzadas e imprecisas. En un ejemplo de oración japonesa, la demostración de Systran confundió la palabra "gaviotas" en japonés con "pergaminos colgantes"; Google Translate lo tradujo correctamente.

Palabras, palabras, palabras

El elemento más crucial que OpenNMT aún no proporciona son los datos del modelo de lenguaje previamente entrenados. Un enlace a modelos de ejemplo en el sitio de GitHub para el proyecto actualmente produce un error. Presumiblemente, con el tiempo, esto incluirá datos de muestra que se pueden usar para comparar el sistema o tener una idea de cómo funciona el proceso de capacitación e implementación. Pero probablemente no incluirá datos que puedan usarse en un entorno de producción.

Esto limita la utilidad de OpenNMT listo para usar, ya que los datos del modelo son al menos tan cruciales para la traducción automática como los propios algoritmos. La traducción entre pares de idiomas requiere corpus paralelos o textos en ambos idiomas que coinciden estrechamente entre sí en un nivel de oración por oración o frase por frase, y pueden capacitarse para producir modelos en productos como OpenNMT.

Muchos corpus están disponibles gratuitamente, pero es necesario ensamblarlos a mano para que sean útiles para el desarrollador medio. Los proveedores como Google (e IBM, con su sistema Language Translator en Watson) tienen la ventaja de que pueden crear corpora fácilmente con sus otros servicios. Google puede recolectar automáticamente cantidades masivas de datos de idiomas constantemente actualizados a través de su motor de búsqueda.

Aún así, OpenNMT seguramente será útil para aquellos que quieran construir una nueva funcionalidad sobre el código de modelado y entrenamiento de OpenNMT, y no quieren depender de un algoritmo detrás de la API como el de Google para hacerlo.