Un challenger open source s'attaque à Google Traduction

Les chercheurs ont publié un système de réseau neuronal open source pour effectuer des traductions linguistiques qui pourrait être une alternative aux services de traduction exclusifs en boîte noire.

Open Source Neural Machine Translation (OpenNMT) fusionne les travaux de chercheurs de Harvard avec les contributions du créateur de logiciels de traduction automatique de longue date Systran. Il fonctionne sur le cadre de calcul scientifique Torch, également utilisé par Facebook pour ses projets d'apprentissage automatique.

Idéalement, OpenNMT pourrait servir d'alternative ouverte aux projets à source fermée comme Google Translate, qui a récemment fait l'objet d'une refonte majeure du réseau neuronal pour améliorer la qualité de sa traduction.

Mais les algorithmes ne sont pas la partie la plus difficile; il propose de bonnes sources de données pour soutenir le processus de traduction - c'est là que Google et les autres géants du cloud qui fournissent la traduction automatique en tant que service ont l'avantage.

Parler en langues

OpenNMT, qui utilise le langage Lua pour s'interfacer avec Torch, fonctionne comme les autres produits de sa catégorie. L'utilisateur prépare un corps de données qui représente les deux paires de langues à traduire - généralement le même texte dans les deux langues tel que traduit par un traducteur humain. Après avoir formé OpenNMT sur ces données, l'utilisateur peut alors déployer le modèle résultant et l'utiliser pour traduire des textes.

Torch peut tirer parti de l'accélération GPU, ce qui signifie que le processus de formation pour les modèles OpenNMT peut être considérablement accéléré sur n'importe quel système équipé de GPU. Cela dit, le processus de formation peut prendre beaucoup de temps - «parfois plusieurs semaines». Mais le processus de formation peut être instantané et repris à la demande si nécessaire. Si vous souhaitez utiliser le modèle entraîné sur un CPU plutôt que sur un GPU, vous devrez convertir le modèle pour qu'il fonctionne en mode CPU. OpenNMT fournit un outil pour faire exactement cela.

Une démo en direct fournie par Systran prétend utiliser OpenNMT en conjonction avec le propre travail de Systran. Pour les paires de langues courantes comme l'anglais / le français, les traductions sont assez précises. Pour les paires où il y a probablement un plus petit corps de textes disponibles, ou où les paires de langues ne correspondent pas aussi précisément l'une à l'autre - par exemple, anglais / japonais - les traductions sont un peu plus guindées et imprécises. Dans un exemple de phrase en japonais, la démo de Systran a confondu le mot «mouettes» en japonais avec «parchemins suspendus»; Google Translate l'a correctement traduit.

Des mots, des mots, des mots

L'élément le plus crucial qu'OpenNMT ne fournit pas encore est les données de modèle de langage pré-entraîné. Un lien vers des exemples de modèles sur le site GitHub du projet génère actuellement une erreur. Vraisemblablement, avec le temps, cela comportera des exemples de données qui peuvent être utilisées pour évaluer le système ou avoir une idée du fonctionnement du processus de formation et de déploiement. Mais cela n'inclura probablement pas de données pouvant être utilisées dans un environnement de production.

Cela limite l'utilité d'OpenNMT hors de la boîte, car les données du modèle sont au moins aussi cruciales pour la traduction automatique que les algorithmes eux-mêmes. La traduction entre les paires de langues nécessite des corpus parallèles, ou des textes dans les deux langues qui correspondent étroitement les uns aux autres au niveau phrase par phrase ou phrase par phrase, et peuvent être formés pour produire des modèles dans des produits comme OpenNMT.

De nombreux corpus sont disponibles gratuitement, mais nécessitent un assemblage manuel pour être utiles au développeur moyen. Des fournisseurs comme Google et IBM, avec son système de traduction de langue sur Watson, ont l'avantage de pouvoir facilement créer des corpus avec leurs autres services. Google peut récolter automatiquement des quantités massives de données linguistiques constamment actualisées via son moteur de recherche.

Néanmoins, OpenNMT sera forcément utile à ceux qui souhaitent créer de nouvelles fonctionnalités en plus du code de modélisation et de formation d'OpenNMT, et ne veulent pas dépendre d'un algorithme derrière l'API comme celui de Google pour le faire.