Moteur de traduction automatique neuronale mobile de Lingvanex

Dans cet article, nous présentons les défis liés au développement d'une version mobile d'un système de traduction automatique neuronale. L'objectif est de maximiser la qualité des traductions tout en réduisant la taille du modèle. Nous expliquons l'ensemble du processus d'implémentation du moteur de traduction en utilisant comme exemple la paire de langues anglais-espagnol. Nous décrivons les défis rencontrés ainsi que les solutions mises en œuvre.

Les principales méthodes utilisées dans ce travail incluent:

  • La sélection de données à l'aide de la méthode Infrequent n-gram Recovery ;
  • L'ajout d'un mot spécial à la fin de chaque phrase ;
  • La génération d'échantillons supplémentaires sans ponctuation finale.

Les deux dernières méthodes ont été développées pour créer un modèle de traduction générant des phrases sans point final ni autres marques de ponctuation. La méthode Infrequent n-gram Recovery a également été utilisée pour la première fois afin de créer un nouveau corpus, et non seulement pour augmenter un ensemble de données dans un domaine spécifique.

Enfin, nous avons abouti à un modèle de petite taille offrant une qualité suffisante pour une utilisation quotidienne.

L’approche Lingvanex

Lingvanex est une marque de produits linguistiques développée par Nordicwise LLC, spécialisée dans les applications de traduction et de dictionnaire hors ligne pour les plateformes mobiles et de bureau. En collaboration avec Sciling, une entreprise spécialisée dans les solutions de machine learning de bout en bout, un modèle compact de traduction anglais-espagnol a été développé pour une utilisation mobile. L'objectif principal était de fournir des traductions précises dans des situations quotidiennes, en particulier pour les voyageurs qui n'ont pas toujours accès à Internet en raison des coûts de roaming, de l'absence de cartes SIM locales ou d'une mauvaise connectivité dans certaines zones. Pour atteindre cet objectif, le projet s'est concentré sur la réduction de la taille du modèle grâce à des techniques de sélection de données, avec un objectif final de 150 Mo ou moins.

Des expériences ont été menées pour identifier les facteurs clés affectant la taille du modèle, notamment la taille du vocabulaire, les embeddings de mots et l'architecture du réseau neuronal. Divers problèmes de traduction sont apparus au cours du processus d'implémentation, ce qui a conduit au développement de solutions appropriées. La qualité du modèle final a été évaluée par rapport aux principaux traducteurs mobiles de Google et Microsoft, démontrant son efficacité pour une utilisation pratique dans des situations de voyage.

Description des données

Les données utilisées pour entraîner le modèle de traduction ont été obtenues à partir du corpus OPUS. Au total, 76 millions de phrases parallèles ont été utilisées. Nous avons également utilisé le corpus Tatoeba pour la sélection des données, tel que décrit dans la section sur le filtrage des données. Tatoeba est une base de données collaborative gratuite en ligne, composée de phrases exemples destinées aux apprenants de langues. xL'ensemble de développement a été créé à partir du corpus Tatoeba en sélectionnant aléatoirement 2 000 paires de phrases. Les principales métriques du corpus Tatoeba sont présentées dans le Tableau 1. Pour l'ensemble de test, nous avons constitué un petit corpus composé de phrases anglaises utiles trouvées sur différents sites web. Nous avons également inclus quelques phrases unigrames et bigrammes. Au total, nous avons sélectionné 86 phrases.

Dépendance de la taille du modèle

Lorsqu'il s'agit de résoudre le problème de la réduction de la taille du modèle, le principal défi consiste à identifier les hyperparamètres ayant le plus grand impact sur la taille. Avant de mettre en œuvre le système de traduction automatique neuronale (TAN), des expériences ont été menées pour comparer la taille du modèle avec la taille globale du vocabulaire et la taille des embeddings de mots (Image 1). Différents modèles ont été entraînés en faisant varier ces hyperparamètres.

Dans l'expérience initiale, la couche récurrente comportait 128 unités, avec une couche à la fois du côté du codeur et du côté du décodeur. Les tailles de vocabulaire combinées (V) (source et cible) ont été réduites à différents niveaux |V| = {5k, 10k, 20k, 50k et 100k} sur la base des mots les plus fréquents dans le corpus Opus avec une distribution égale entre les vocabulaires source et cible, la taille des vocabulaires source et cible étant fixée à |V|/2. En outre, différentes tailles d'intégration |ω| = {64, 128, 256, 512} ont été analysées.

L'effet des différentes unités cachées et du nombre de couches a ensuite été examiné alors que la taille d'intégration était fixée à |ω| = 128. Les résultats ont montré que le nombre de couches avait un impact minime sur la taille du modèle, en particulier par rapport au nombre d'unités cachées et à la taille de l'intégration. Cette analyse fournit une base pour choisir des valeurs d'hyperparamètres appropriées tout en maintenant la taille du modèle dans l'objectif de 150 Mo.

Filtrage des données

Le filtrage des données a consisté en deux étapes principales. Tout d'abord, les phrases de plus de 20 mots ont été supprimées, car les traducteurs mobiles sont conçus pour traduire des phrases courtes. Ensuite, la sélection des données a été effectuée à l'aide de la récupération des n-grammes peu fréquents. Cette technique vise à sélectionner, parmi les données bilingues disponibles, les phrases qui maximisent la couverture des n-grammes au sein d'un ensemble de données plus restreint et spécifique à un domaine.

L'approche consiste à trier l'ensemble des données en fonction du score d'infréquence de chaque phrase afin de donner la priorité aux phrases les plus informatives. Soit χ l'ensemble des n-grammes dans les phrases à traduire, et w l'un de ces n-grammes. C( w ) indique le nombre de w dans l'ensemble d'apprentissage de la langue source, tandis que t est un seuil pour déterminer quand un n-gramme est considéré comme peu commun. N( w ) désigne le nombre de w dans la phrase source f. Le score d'infréquence de f est (1):

Pour les 60 millions de phrases du corpus Opus, jusqu'à 5 n-grammes ont été extraits du corpus Tatoeba, en visant un maximum de 30 occurrences pour chaque n-gramme. Pour gérer le temps d'exécution, le corpus a été divisé en six partitions, la sélection étant effectuée individuellement avant de fusionner les résultats. Un dernier processus de sélection a été effectué pour s'assurer qu'aucun n-gramme ne dépassait le seuil d'occurrence. Au final, ce processus a permis d'obtenir un ensemble de 740 000 phrases avec un vocabulaire de 19 400 mots dans la langue source et de 22 900 mots dans la langue cible, soit un vocabulaire combiné de 42 400 mots. L'échantillon était basé sur le corpus tokenisé et stringifié.

Configuration expérimentale

Le système a été entraîné en utilisant le cadre d’apprentissage profond OpenNMT, qui se concentre sur le développement de modèles séquence-à-séquence pour diverses tâches, y compris la traduction automatique et le résumé. La méthode de codage par paires de caractères ( Byte Pair Encoding, BPE) a été appliquée à un ensemble de données d’entraînement sélectionné, puis utilisée pour les ensembles de données d’entraînement, de développement et de test. Un réseau neuronal récurrent à mémoire à long terme ( Long Short-Term Memory, LSTM) a été utilisé, incluant une couche d’attention globale pour améliorer la traduction en se concentrant sur des parties spécifiques de la phrase source. L’entrée alimentée ( input feed ) a également été utilisée pour fournir des vecteurs d’attention aux étapes temporelles suivantes, bien que cet effet n’ait été notable qu’avec quatre couches ou plus.

L’entraînement a été effectué sur 50 époques en utilisant l’optimiseur Adam avec un taux d’apprentissage de 0,0002. Le meilleur modèle a été sélectionné en fonction du score BLEU le plus élevé sur l’ensemble de développement et a été utilisé pour traduire l’ensemble de test. En raison de la petite taille de l’ensemble de test, une évaluation humaine a été réalisée pour évaluer la qualité des traductions.

Résultats et analyse

Différents types de réseaux neuronaux ont été entraînés en se basant sur les idées présentées dans la section Dépendance de la taille du modèle. Pour chaque expérience, les hyperparamètres ont été ajustés tout en maintenant la taille totale du vocabulaire fixée à 42,4k mots. Le Tableau 2 montre les valeurs des hyperparamètres pour chaque expérience, ainsi que les scores BLEU et les tailles des modèles.

Le meilleur modèle, mesuré par le score BLEU sur l’ensemble de développement, comprenait 2 couches et 128 unités dans la couche récurrente, avec une taille d’embedding de 128. Notamment, ce modèle était également le plus petit parmi ceux listés dans le Tableau 2.

Problèmes identifiés et leurs solutions

L’analyse des traductions issues de l’ensemble de test a révélé trois problèmes clés, pour lesquels des solutions spécifiques ont été proposées:

1. Problème de répétition de mots

Le meilleur modèle produisait des traductions correctes pour les phrases de plus de sept mots, mais générait souvent des mots répétés dans des phrases très courtes (par exemple: « perro perro perro » ). Ce problème était dû à la différence de longueur des phrases entre les données d’entraînement et l’ensemble de test, car l’ensemble d’entraînement contenait peu de phrases courtes (Image 2).

Pour atténuer ce problème, nous avons ajusté la fonction de score de la méthode Infrequent n-gram Recovery en ajoutant une étape de normalisation (2).

Après l'application du score d'infréquence pour la sélection des données, nous avons sélectionné un ensemble de 667 000 phrases. Le Tableau 3 présente la longueur moyenne des phrases dans les langues source et cible, avant et après l'application de la normalisation de la longueur des phrases.

Le processus de normalisation nous a permis d’obtenir des phrases nettement plus courtes dans les langues source et cible. Le modèle a atteint un score BLEU de 36,3 lors du développement et de 22,8 lors des tests, avec une taille totale de modèle de 121 Mo. Bien que ces scores soient légèrement inférieurs à ceux des expériences précédentes, nous estimons que le score BLEU ne reflète pas toujours précisément la qualité de la traduction. Une analyse manuelle a confirmé que le problème des mots répétés a été efficacement résolu.

2. Attente de ponctuation

Le modèle produisait des traductions incorrectes pour des phrases très courtes (par exemple, en traduisant « dog » par « amor » ), sauf si une marque de ponctuation était ajoutée (par exemple, « dog » ). Ce problème était dû à l'attente du modèle de voir une ponctuation à la fin des phrases, 94 % des phrases d’entraînement se terminant par une marque de ponctuation. Deux solutions ont été proposées pour résoudre ce problème:

  • Fin de mot spéciale: nous avons ajouté un jeton spécial @@ à la fin de chaque phrase. Cette approche entraîne le modèle à reconnaître que chaque phrase se termine par @@, alors que l'avant-dernier mot peut être ou non un signe de ponctuation. Cette technique a été mise en œuvre en tant qu'étape de pré-traitement et de post-traitement, d'où son nom de « terminaison spéciale des mots ». Le modèle utilisant cette technique a obtenu un score BLEU de 36,4 en développement et de 26,3 en test après 21 époques, avec une taille de 121 Mo.
  • Double corpus: nous avons élargi le corpus de formation en combinant toutes les phrases existantes qui se terminent par des signes de ponctuation, en supprimant ces caractères. Cela a permis au modèle d'apprendre que les phrases peuvent se terminer avec ou sans signe de ponctuation. Dans ce cas, la taille du modèle est passée à 156 Mo, ce qui a permis d'obtenir un score BLEU de 37,3 en développement et de 25,1 en test.

Les deux méthodes ont efficacement résolu le problème d’attente de ponctuation. Toutefois, en raison de la taille plus importante et du score BLEU inférieur en test pour la stratégie du corpus double, nous avons décidé d’utiliser la technique du mot de fin spécial.

3. Segments manquants

Il a été observé que lors de la traduction de segments contenant plusieurs phrases courtes, seul le premier était traduit (par exemple, « Thank you. That was really helpful. » devenait « Gracias. » ).

Pour résoudre ce problème, une étape de prétraitement a été introduite pour séparer les segments en fonction des marques de ponctuation. Cette modification a augmenté le nombre de segments de 86 à 118 dans l’ensemble de test. Après ce changement, les traductions se sont considérablement améliorées, atteignant un score BLEU de 36,4 en développement et de 33,7 en test, le meilleur résultat enregistré à ce jour.

Évaluation finale

Le Tableau 4 résume les scores BLEU obtenus après l’application de chacune des solutions décrites dans la section Problèmes identifiés et leurs solutions. Après avoir appliqué le score d’infréquence normalisé, le mot de fin spécial et le prétraitement des phrases construites, nous avons amélioré la qualité des traductions sur l’ensemble de test d’environ 7 points BLEU.

Lors de l’évaluation finale de notre système de traduction, nous avons comparé sa qualité à celle des traducteurs mobiles de Google et de Microsoft. Le Tableau 5 présente les scores BLEU et les tailles des modèles pour chaque traducteur sur l’ensemble de test.

Dans l'ensemble, les trois systèmes ont produit des traductions de haute qualité, bien que certaines différences mineures aient été observées. Notre modèle a particulièrement bien performé en ce qui concerne les marques de ponctuation et les majuscules, tandis que Google Translate plaçait souvent incorrectement les marques de ponctuation et utilisait rarement les majuscules. Cela peut expliquer pourquoi Google Translate a obtenu un score BLEU inférieur à celui des deux autres systèmes, malgré une taille de modèle plus petite. De plus, les modèles de Google et de Microsoft sont bidirectionnels, ce qui signifie que la taille de notre modèle doit être doublée (2 × 121 Mo) pour une comparaison équitable.

Conclusion

Cet article décrit le développement d’un modèle compact de traduction automatique neuronale mobile pour l’anglais-espagnol. Nous avons utilisé une méthode de sélection des données pour améliorer l’adéquation des données d’entraînement et avons effectué des ajustements pour améliorer la qualité des traductions. Des solutions ont été proposées pour résoudre les problèmes de mots répétés et de traductions manquantes dans les segments.

Notre modèle a surpassé les traducteurs mobiles de Google et de Microsoft en termes de scores BLEU, notamment dans la gestion de la ponctuation et des majuscules. Avec une taille de 121 Mo, notre modèle est plus petit que ce qui avait été initialement estimé, tout en offrant une bonne qualité de traduction pour des contextes liés aux voyages. Les traductions sont fluides et compréhensibles, adaptées à une utilisation hors ligne. Les efforts actuels se concentrent sur l’amélioration continue de la qualité et la réduction de la taille du modèle, en explorant notamment des méthodes telles que la réduction des poids.


Des lectures plus fascinantes attendent

Génération de contenu par l'IA vs. rédacteurs humains : Trouver le bon équilibre

Génération de contenu par l'IA vs. rédacteurs humains : Trouver le bon équilibre

December 18, 2024

Pourquoi chaque entreprise a besoin d’un générateur de contenu basé sur l’IA en 2025

Pourquoi chaque entreprise a besoin d’un générateur de contenu basé sur l’IA en 2025

December 17, 2024

Qu'est-ce que l'analyse de sentiment ?

Qu'est-ce que l'analyse de sentiment ?

December 17, 2024

× 
Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site.

We also use third-party cookies that help us analyze how you use this website, store your preferences, and provide the content and advertisements that are relevant to you. These cookies will only be stored in your browser with your prior consent.

You can choose to enable or disable some or all of these cookies but disabling some of them may affect your browsing experience.

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Always Active

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Always Active

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Always Active

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Always Active

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.