Briser la barrière de la langue avec un modèle de traduction multilingue
Imaginez un peu : vous découvrez que le nouvel ami avec qui vous venez de discuter dans une expérience Roblox vit en Corée ; il vous a écrit en coréen, vous lui avez écrit en français, et aucun de vous ne s'en est rendu compte. Grâce à notre nouveau système de traduction par IA en temps réel, une chose qui n'est pas possible dans le monde réel le devient sur Roblox : les personnes parlant des langues différentes peuvent communiquer de façon fluide dans nos expériences immersives en 3D. C'est possible grâce à notre modèle multilingue unique, qui propose des traductions instantanées entre les 16 langues que nos prenons en charge (ces 15 langues et l'anglais).
Désormais, si notre service de chat textuel dans l'expérience est activé, des personnes parlant des langues différentes peuvent se comprendre. La fenêtre de chat affiche automatiquement du coréen traduit en français, ou encore du turc traduit en allemand, et vice versa ; ainsi, chaque interlocuteur voit la conversation dans sa propre langue. Ces traductions sont affichées en temps réel, avec un délai d'environ 100 millisecondes, ce qui rend le processus presque imperceptible. L'utilisation de l'IA pour traduire automatiquement le chat textuel supprime la barrière de la langue et permet de rassembler encore plus de personnes, peu importe où elles vivent.
Construire un modèle de traduction unifié
La traduction par IA n'est pas nouvelle : le contenu de nos expériences est d'ailleurs déjà traduit automatiquement pour l'essentiel. Nous voulions aller au-delà du contenu fixe des expériences. Nous souhaitions traduire automatiquement les interactions pour les 16 langues prises en charge par notre plateforme. C'était un objectif audacieux, pour deux raisons. Premièrement, il ne s'agissait pas de traduire d'une langue source principale (l'anglais, par exemple) à une autre ; nous voulions un système capable de traduire pour n'importe quelle combinaison des 16 langues prises en charge. Deuxièmement, il fallait que ce soit rapide. Suffisamment rapide pour des discussions en temps réel ; la latence ne devait donc pas dépasser les 100 millisecondes.
Chaque jour, Roblox accueille plus de 70 millions d'utilisateurs actifs du monde entier, et notre communauté continue de s'agrandir. Les gens communiquent et créent sur notre plateforme 24 heures sur 24, chacun dans sa langue maternelle. Traduire manuellement toutes les conversations qui ont lieu dans plus de 15 millions d'expériences actives, c'est bien évidemment une tâche impossible. Pour proposer des traductions en temps réel à des millions de personnes qui prennent part à des discussions distinctes dans différentes expériences, il faut un LLM extrêmement précis et rapide. Il faut qu'il puisse prendre en compte le contexte et reconnaître le vocabulaire et l'argot de Roblox (comme obby, afk ou mdr). Il faut aussi qu'il soit capable de fonctionner avec n'importe quelle combinaison des 16 langues qui sont actuellement prises en charge sur Roblox.
Pour atteindre cet objectif, nous aurions pu créer un modèle unique pour chaque paire de langues (japonais et espagnol, etc.), mais cela en aurait représenté 16x16, soit 256. Au lieu de cela, nous avons conçu un LLM transformeur unifié capable de gérer les traductions pour toutes les paires de langues. Cela équivaut à avoir une interface unique regroupant plusieurs applications de traductions spécialisées dans des groupes de langue similaires. À partir d'une phrase source et d'une langue cible, nous pouvons activer le bon « expert » pour générer les traductions.
Cette architecture permet de mieux utiliser les ressources, étant donné que chaque « expert » a sa propre spécialité, ce qui offre un entraînement et des inférences efficaces tout en maintenant le même niveau de qualité pour les traductions.
Avec cette architecture, il est plus simple d'entraîner et d'entretenir notre modèle, et ce pour plusieurs raisons. Premièrement, le modèle peut exploiter les similitudes entre les langues. Quand toutes les langues sont entraînées ensemble, une langue peut exploiter les données d'une autre langue similaire (par exemple, l'espagnol et le portugais), ce qui améliore la qualité des traductions. De plus, il est beaucoup plus facile de tester et d'intégrer les dernières avancées en matière de LLM, ce qui nous permet de bénéficier des technologies les plus récentes. Il y a un autre avantage : si la langue source n'a pas été définie ou qu'elle n'est pas correcte, le modèle peut l'identifier et traduire le contenu dans la langue cible. Même si le texte contient un mélange de plusieurs langues, le système peut les détecter et les traduire dans la langue cible. Dans ces situations, l'exactitude peut être moins élevée, mais le message devrait rester globalement compréhensible.
Pour entraîner ce modèle unifié, nous commençons par exploiter les données ouvertes qui sont à notre disposition, ainsi que nos propres données de traduction d'expérience, des résultats de traduction de chat classifiés par des humains, et des phrases et expressions qui reviennent fréquemment dans le chat. Nous avons également élaboré notre propre système pour mesurer la qualité des traductions. La plupart des systèmes de ce type comparent les traductions par IA à une référence fiable, et se concentrent principalement sur l'intelligibilité. Nous voulions évaluer la qualité des traductions sans références.
Nous examinons plusieurs aspects, dont l'exactitude (additions, omissions ou erreurs de traduction), l'aspect linguistique (ponctuation, orthographe et grammaire) et les références (incohérences par rapport au reste du texte). Nous classons les erreurs en fonction de leur sévérité : sont-elles critiques, majeures ou mineures ? Afin d'évaluer la qualité, nous avons construit un modèle d'apprentissage automatique que nous avons entraîné avec des types d'erreurs et des scores classifiés par des humains. Nous avons ensuite ajusté un modèle multilingue afin qu'il puisse prédire les erreurs sur les mots et leurs types, et calculer un score selon nos critères multidimensionnels. Cela nous permet d'avoir une vue d'ensemble sur la qualité et sur le type des erreurs qui apparaissent. Ainsi, nous pouvons évaluer la qualité et détecter les erreurs en nous basant sur le texte source et les traductions automatiques, sans avoir besoin de faire appel à des références fiables. Nous pouvons ensuite utiliser les résultats pour améliorer la qualité de notre modèle de traduction.
Les paires de langues peu communes (français et thaï, par exemple) présentent davantage de difficultés car il y a peu de données de qualité. Afin de combler cette lacune, nous faisons appel à la rétrotraduction : nous retraduisons les traductions dans leur langue d'origine, et nous comparons le résultat au texte source. Pendant l'entraînement, nous avons procédé par itérations en associant de façon stratégique les données des rétrotraductions à des données supervisées afin que le modèle dispose de plus de contenu pour s'entraîner.
Pour aider le modèle à traiter l'argot, nous avons demandé à des évaluateurs humains de traduire des expressions populaires et à la mode pour chaque langue, puis nous avons ajouté ces résultats à nos données d'entraînement. Nous répéterons régulièrement ce processus afin que le modèle contienne toujours l'argot le plus récent.
Le modèle de traduction de chat obtenu avec ce processus comporte environ un milliard de paramètres. Un système si vaste entraînerait des latences trop importantes pour les conversations en temps réel et consommerait bien trop de ressources avec plus de 5 000 messages par seconde à traiter. Nous avons donc utilisé ce grand modèle pour en entraîner un plus petit. Nous avons fait appel à la distillation, à la quantification et à d'autres optimisations pour faire passer la quantité de paramètres en dessous des 650 millions et améliorer l'efficacité. Nous avons également modifié l'API de chat textuel de l'expérience afin d'envoyer à la fois le message original et sa traduction sur l'appareil du destinataire. Cela lui permet de voir le message dans sa propre langue, ou de consulter la version non traduite.
Une fois que le LLM a été prêt, nous avons mis en place un système qui se connecte aux serveurs du modèle. Ce système applique une logique de traduction de chat supplémentaire, et se charge de l'intégration de nos systèmes de sécurité habituels. Ainsi, les traductions sont soumises aux mêmes contrôles que le reste du texte de la plateforme, afin de détecter et bloquer les mots ou expressions non conformes à nos politiques. La sécurité et la civilité sont au cœur de toutes les activités de Roblox, c'était donc un élément très important pour nous.
Améliorer l'exactitude en permanence
Pendant les tests, nous avons constaté que ce nouveau système de traduction renforce l'engagement et la qualité des sessions pour les utilisateurs de notre plateforme. D'après nos propres indicateurs, notre modèle est plus performant que les API du commerce pour le contenu de Roblox, ce qui indique que nous avons optimisé la communication entre les individus sur Roblox. Nous estimons que cela devrait améliorer l'expérience sur la plateforme, ce qui permettra aux utilisateurs de jouer, d'acheter, de collaborer et de discuter avec des personnes parlant d'autres langues.
La possibilité pour les individus de prendre part à des conversations fluides et naturelles dans leur langue maternelle nous rapproche de notre objectif : rassembler un milliard de personnes dans l'optimisme et la civilité.
Pour améliorer l'exactitude et fournir de meilleures données d'entraînement à notre modèle, nous comptons mettre en place un outil qui permettra aux utilisateurs de faire des retours sur les traductions afin de contribuer à l'optimisation du système. Ainsi, il sera possible de signaler les erreurs ou même de suggérer de meilleures traductions que nous pourrons ajouter à nos données d'entraînement pour renforcer le modèle.
Ces traductions sont disponibles dès aujourd'hui pour les 16 langues que nous prenons en charge, mais nous comptons aller beaucoup plus loin. Nous allons continuer de mettre nos modèles à jour avec des exemples de traductions récents issus de nos expériences, des expressions populaires dans le chat et de nouveaux mots d'argot dans toutes les langues prises en charge. De plus, grâce à notre architecture, il sera relativement facile d'entraîner le modèle sur de nouvelles langues une fois que nous disposerons de suffisamment de données. Nous sommes également en train d'étudier des techniques pour tout traduire automatiquement : le texte des images, des textures, des modèles 3D, etc.
Nous explorons aussi des territoires inconnus, comme la traduction automatique du chat vocal. Imaginez un peu : un joueur français pourrait utiliser le chat avec voix avec une personne parlant uniquement le russe. Ils pourraient se parler et se comprendre, et chacun entendrait l'autre dans sa propre langue, avec le même ton, le même rythme et les mêmes émotions dans la voix, le tout avec une faible latence. Aujourd'hui, cela peut ressembler à de la science-fiction, et il va falloir du temps, mais nous allons continuer de travailler pour atteindre cet objectif. Dans un avenir pas si lointain, Roblox sera un lieu où les gens du monde entier pourront communiquer en toute simplicité, pas seulement via le chat textuel, mais par tous les moyens possibles !