[Article en anglais] The art of speeding up NMT with SYSTRAN 2nd generation engines

Les utilisateurs de la traduction automatique se soucient de la qualité et des performances. D'après nos propres observations et les commentaires que nous avons reçus, la qualité de notre Neural MT est impressionnante. L'évaluation des performances est un sujet plus délicat, mais nous aimerions mettre la main à la pâte et présenter nos innovations et réalisations et la façon dont elles profitent aux utilisateurs de NMT.

Par performance, nous entendons principalement la manière dont un système fonctionne en termes de vitesse et d'efficacité dans des environnements de production variés. Il est important de noter que la performance et la qualité dans Neural MT sont étroitement liées : il est facile d'accélérer un modèle donné compromettant la qualité. Par conséquent, lors de l'évaluation de l'amélioration des performances, nous vérifions toujours que la qualité reste très proche de la qualité optimale.

Depuis le passage à NMT fin 2016, nous avons investi nos efforts de R&D dans l'optimisation de nos moteurs pour être plus efficaces, tout en maintenant et même en améliorant la précision de la traduction. Nos derniers moteurs NMT de 2e génération, disponibles dans notre dernière version de Serveur SYSTRAN Pure Neural®met en œuvre plusieurs optimisations techniques qui rendent la traduction plus rapide et plus efficace.

Nouvelle architecture de modèle

La première génération de moteurs de traduction neuronale était basée sur des réseaux neuronaux récurrents (RNN). Cette architecture nécessite que le texte source soit codé séquentiellement, mot par mot, avant de générer la traduction.

En revanche, les derniers moteurs sont basés sur des réseaux d'auto-attention appelés Transformateur: chaque mot source peut se focaliser indépendamment et n'importe où dans le texte source permettant de calculer le codage en parallèle et plus efficacement.

Pour les deux architectures, la génération cible est un processus itératif qui démarre à partir de ce codage source. Cependant, plusieurs techniques de mise en cache ont été mises en œuvre pour rendre ce décodage le plus rapide possible pour l'architecture actuellement utilisée dans les moteurs NMT de 2ème génération.

Améliorations techniques

Sur le plan technologique, nous avons complètement réimplémenté le moteur d'inférence en C++ optimisé dédié aux modèles OpenNMT. Il offre une solution légère, intégrable et personnalisable pour exécuter et accélérer les modèles OpenNMT pour les besoins de production. En particulier, nous avons intégré des bibliothèques de calcul puissantes telles que Intel© MKL pour tirer le meilleur parti des CPU modernes.

Pour améliorer encore l'efficacité de l'exécution, cette nouvelle implémentation a également introduit de nouvelles fonctionnalités - par exemple, la plupart de nos modèles NMT de 2e génération sont exécutés avec une précision réduite de 16 bits au lieu de 32 bits. La quantification du modèle est un moyen de réduire l'utilisation globale de la mémoire et de faire une meilleure utilisation de la vectorisation du CPU tout en ayant un impact très faible sur la qualité. Une autre caractéristique introduit un module de prédiction de vocabulaire cible permettant de limiter l'inférence à un vocabulaire sélectionné, de réduire significativement la quantité de calcul nécessaire pour générer une phrase et ainsi d'augmenter le débit de traduction.

Les moteurs NMT de 2e génération reposent fortement sur des architectures multicœurs. Nous avons réglé les paramètres par défaut pour obtenir le juste équilibre entre latence et débit en regroupant plusieurs phrases et en exécutant des traductions en parallèle. En outre, nous avons également optimisé la vitesse de traduction pour les GPU.

Un aperçu des gains de performance

L'amélioration de la qualité apportée par Neural Machine Translation signifie que les tâches de traduction s'exécutent plus lentement que les technologies MT précédentes.

Cependant, notre dernière génération utilisant l'architecture Transformer surpasse de loin notre génération précédente de moteurs NMT, l'équivalent de nos concurrents ? moteurs en termes de performance. Pour établir un point de référence, nous avons comparé les vitesses de traduction en utilisant un rapport mots par seconde en mode CPU et en mode GPU.

La vitesse de traduction est 15 à 30 fois plus rapide dans la 2e génération que dans les moteurs NMT de première génération.
Étant donné que les algorithmes évoluent continuellement et qu'ils sont fondés sur ces résultats prometteurs, nous nous attendons à voir d'autres gains de rendement avec les générations futures. Il existe de nombreuses techniques supplémentaires pour améliorer les performances de traduction et certaines sont examinées dans le article de recherche que nous avons publié pour ACL 2018.

Les résultats

Nos moteurs NMT de 2e génération permettent aux utilisateurs d'accéder à des fonctionnalités en temps réel avec la qualité de NMT, ce qui signifie une utilisation améliorée de ces fonctionnalités (traduction de pages Web, de texte, etc.). Ces derniers moteurs peuvent également gérer plus efficacement des volumes plus importants à des fins de découverte électronique ou de mégadonnées. En termes de retour sur investissement, ces nouveaux moteurs ont également un impact positif sur les exigences matérielles avec une économie de 25 à 35% sur les coûts d'hébergement.

 

Auteur
Alexandre, spécialiste des technologies de traduction
Temps
Lecture : 3 min.
S'inscrire à la newsletter
Retrouvez toute l'actu et les dernières technos. Un magazine conçu par SYSTRAN