Sprachbarrieren abbauen mithilfe eines mehrsprachigen Übersetzungsmodells

Stell dir vor, du findest heraus, dass dein neue Roblox-Freund, mit dem du in einem neuen Erlebnis gechattet und Scherze gemacht hast, in Wirklichkeit in Korea lebt – und die ganze Zeit auf Koreanisch getippt hat, während du auf Englisch getippt hast, ohne dass es einer von euch beiden bemerkt hat. Dank unserer neuen Echtzeit-KI-Chat-Übersetzungen haben wir auf Roblox etwas möglich gemacht, was in der realen Welt nicht möglich ist: Menschen, die verschiedene Sprachen sprechen, in unseren immersiven 3D-Erlebnissen nahtlos miteinander kommunizieren zu lassen. Möglich wird dies durch unser benutzerdefiniertes mehrsprachiges Modell, das jetzt die direkte Übersetzung zwischen jeder Kombination der 16 Sprachen ermöglicht, die wir derzeit unterstützen (diese 15 Sprachen sowie Englisch).

In jedem Erlebnis, das unseren Dienst Textchat im Erlebnis aktiviert hat, können Menschen aus verschiedenen Ländern jetzt auch von Menschen verstanden werden, die ihre Sprache nicht sprechen. Im Chatfenster wird automatisch Koreanisch ins Englische oder Türkisch ins Deutsche übersetzt und umgekehrt, sodass jede Person das Gespräch in ihrer eigenen Sprache sieht. Diese Übersetzungen werden in Echtzeit angezeigt, mit einer Latenzzeit von etwa 100 Millisekunden. Dadurch wird die Übersetzung im Hintergrund fast unsichtbar. Der Einsatz von KI zur Automatisierung von Echtzeitübersetzungen im Textchat beseitigt Sprachbarrieren und bringt mehr Menschen zusammen, egal wo auf der Welt sie leben.

Aufbau eines einheitlichen Übersetzungsmodells

KI-Übersetzung ist nichts Neues: Der Großteil der Inhalte in unseren Erlebnissen wird bereits automatisch übersetzt. Wir wollten jedoch über die Übersetzung statischer Inhalte in Erlebnissen hinausgehen. Wir wollten auch Interaktionen automatisch übersetzen – und zwar für alle 16 Sprachen, die wir auf der Plattform unterstützen. Das war aus zwei Gründen ein kühnes Ziel: Erstens wollten wir nicht nur von einer Hauptsprache (z. B. Englisch) in eine andere übersetzen, sondern ein System entwickeln, das in der Lage ist, zwischen jeder Kombination der 16 von uns unterstützten Sprachen zu übersetzen. Zweitens musste es schnell sein. Schnell genug, um echte Chat-Unterhaltungen zu unterstützen, was für uns bedeutete, die Latenzzeit auf etwa 100 Millisekunden zu senken.

Roblox hat mehr als 70 Millionen täglich aktive Benutzer:innen auf der ganzen Welt, Tendenz steigend. Die Menschen kommunizieren und erschaffen auf unserer Plattform rund um die Uhr – alle in ihrer Muttersprache. Es ist natürlich nicht möglich, jede Unterhaltung in mehr als 15 Millionen aktiven Erlebnissen in Echtzeit manuell zu übersetzen. Um diese Live-Übersetzungen für Millionen von Menschen zu skalieren, die alle gleichzeitig verschiedene Unterhaltungen in verschiedenen Erlebnissen führen, brauchen wir ein LLM mit enormer Geschwindigkeit und Genauigkeit. Wir brauchen ein kontextabhängiges Modell, das Roblox-spezifische Sprache erkennt, einschließlich Slang und Abkürzungen (z. B. obby, afk oder lol). Darüber hinaus muss unser Modell jede Kombination der 16 Sprachen unterstützen, die Roblox derzeit unterstützt.

Um dies zu erreichen, hätten wir für jedes Sprachpaar (z. B. Japanisch und Spanisch) ein eigenes Modell erstellen können, aber dafür wären 16 x 16, also 256 verschiedene Modelle erforderlich gewesen. Stattdessen haben wir ein einheitliches, transformatorbasiertes Übersetzungs-LLM entwickelt, das alle Sprachpaare in einem einzigen Modell verarbeitet. Das ist so, als hätte man mehrere Übersetzungs-Apps, die jeweils auf eine Gruppe ähnlicher Sprachen spezialisiert sind und alle über eine einzige Schnittstelle verfügbar sind. Wenn wir einen Ausgangssatz und eine Zielsprache angeben, können wir den entsprechenden „Experten“ aktivieren, um die Übersetzungen zu erstellen.

Diese Architektur ermöglicht eine bessere Ressourcennutzung, da jeder Experte ein anderes Fachgebiet hat, was zu effizienterem Training und besserer Inferenz führt – ohne Abstriche bei der Übersetzungsqualität.

Illustration des Inferenzprozesses. Die Quellnachrichten werden zusammen mit der Ausgangssprache und den Zielsprachen durch RCC geleitet. Bevor die Anfrage an das Backend weitergeleitet wird, prüfen wir zunächst im Cache, ob wir bereits Übersetzungen für diese Anfrage haben. Ist dies nicht der Fall, wird die Anfrage an das Backend und an den Modellserver mit dynamischem Batching weitergeleitet. Wir haben eine Cache-Ebene zwischen den Encodern und Decodern eingefügt, um die Effizienz bei der Übersetzung in mehrere Zielsprachen weiter zu verbessern.

Diese Architektur macht das Training und die Instandhaltung unseres Modells aus mehreren Gründen wesentlich effizienter. Zunächst einmal ist unser Modell in der Lage, die sprachlichen Ähnlichkeiten zwischen den Sprachen zu nutzen. Wenn alle Sprachen gemeinsam trainiert werden, profitieren Sprachen, die sich ähneln, wie Spanisch und Portugiesisch, während des Trainings von den Eingaben der jeweils anderen Sprache, was die Übersetzungsqualität für beide Sprachen verbessert. Außerdem können wir neue Forschungsergebnisse und Fortschritte bei LLMs viel einfacher testen und in unser System integrieren, sobald sie veröffentlicht werden, um von den neuesten und besten verfügbaren Techniken zu profitieren. Einen weiteren Vorteil dieses einheitlichen Modells sehen wir in Fällen, in denen die Ausgangssprache nicht oder falsch eingestellt ist. Hier ist das Modell treffsicher genug, um die richtige Ausgangssprache zu erkennen und in die Zielsprache zu übersetzen. Selbst wenn die Eingabe eine Mischung aus verschiedenen Sprachen enthält, ist das System in der Lage, die Zielsprache zu erkennen und in sie zu übersetzen. In diesen Fällen ist die Genauigkeit vielleicht nicht ganz so hoch, aber die endgültige Nachricht wird dennoch einigermaßen verständlich sein.

Um dieses einheitliche Modell zu trainieren, haben wir zunächst mit verfügbaren Open-Source-Daten sowie mit unseren eigenen Übersetzungsdaten aus Erlebnissen, von Menschen markierten Chat-Übersetzungsergebnissen und gängigen Chat-Sätzen und -Phrasen vortrainiert. Außerdem haben wir unsere eigenen Bewertungsmaßstäbe und ein Modell zur Messung der Übersetzungsqualität entwickelt. Die meisten herkömmlichen Metriken zur Messung der Übersetzungsqualität vergleichen das KI-Übersetzungsergebnis mit einer "Basiswahrheit" oder einer Referenzübersetzung und konzentrieren sich hauptsächlich auf die Verständlichkeit der Übersetzung. Wir wollten die Qualität der Übersetzung bewerten – ohne eine Referenzübersetzung.

Wir betrachten dies unter mehreren Aspekten, darunter Genauigkeit (ob es Ergänzungen, Auslassungen oder Fehlübersetzungen gibt), Flüssigkeit (Zeichensetzung, Rechtschreibung und Grammatik) und falsche Bezüge (Diskrepanzen zum Rest des Textes). Wir teilen diese Fehler in Schweregrade ein: Handelt es sich um einen kritischen, schweren oder leichten Fehler? Um die Qualität zu bewerten, haben wir ein ML-Modell erstellt und es mit von Menschen markierten Fehlertypen und -bewertungen trainiert. Anschließend haben wir ein mehrsprachiges Sprachmodell so optimiert, dass es Fehler und Fehlertypen auf Wortebene vorhersagt und anhand unserer mehrdimensionalen Kriterien eine Punktzahl berechnet. Auf diese Weise erhalten wir ein umfassendes Bild von der Qualität und den Arten der auftretenden Fehler. So können wir die Übersetzungsqualität einschätzen und Fehler erkennen, indem wir den Ausgangstext und maschinelle Übersetzungen verwenden, ohne dass wir eine Referenzübersetzung benötigen. Anhand der Ergebnisse dieser Qualitätsmessung können wir die Qualität unseres Übersetzungsmodells weiter verbessern.

Anhand des Ausgangstextes und des Ergebnisses der maschinellen Übersetzung können wir die Qualität der maschinellen Übersetzung ohne eine Referenzübersetzung einschätzen, indem wir unser internes Modell zur Einschätzung der Übersetzungsqualität verwenden. Dieses Modell schätzt die Qualität unter verschiedenen Aspekten ein und kategorisiert Fehler in kritische, schwere und leichte Fehler.

Weniger gängige Übersetzungspaare (z. B. Französisch–Thai) stellen eine Herausforderung dar, da es an qualitativ hochwertigen Daten mangelt. Um diese Datenlücke zu schließen, haben wir die Rückübersetzung angewandt, bei der die Inhalte in die Ausgangssprache zurückübersetzt und dann mit dem Ausgangstext verglichen werden, um die Genauigkeit zu überprüfen. Während des Trainingsprozesses setzten wir die iterative Rückübersetzung ein, bei der wir eine strategische Mischung aus diesen rückübersetzten Daten und kontrollierten (gelabelten) Daten verwenden, um die Menge an Übersetzungsdaten zu erweitern, aus denen das Modell lernen kann.

Illustration der Modell-Trainings-Pipeline. Beim Trainieren des Modells werden sowohl parallele Daten als auch Daten aus der Rückübersetzung verwendet. Nachdem das Lehrermodell trainiert wurde, wenden wir Destillations- und andere Optimierungsverfahren an, um die Größe des Modells zu verringern und die Effizienz der Bedienung zu verbessern.

Um dem Modell zu helfen, modernen Slang zu verstehen, haben wir menschliche Expert:innen gebeten, beliebte und trendige Begriffe für jede Sprache zu übersetzen, und diese Übersetzungen in unsere Trainingsdaten aufgenommen. Wir werden diesen Prozess regelmäßig wiederholen, um das System auf dem neuesten Stand der Slangsprache zu halten.

Das resultierende Chat-Übersetzungsmodell hat etwa 1 Milliarde Parameter. Eine Übersetzung durch ein so großes Modell zu jagen, ist sehr ressourcenintensiv und würde für eine Echtzeit-Konversation viel zu lange dauern, da eine niedrige Latenz für mehr als 5.000 Chats pro Sekunde entscheidend ist. Deshalb haben wir dieses große Übersetzungsmodell in einem Schüler-Lehrer-Ansatz verwendet, um ein kleineres, leichteres Modell zu erstellen. Wir haben Destillation, Quantisierung, Modellkompilierung und andere Optimierungen angewendet, um die Größe des Modells auf weniger als 650 Millionen Parameter zu reduzieren und die Bereitstellungseffizienz zu verbessern. Außerdem haben wir die API hinter dem Textchat im Erlebnis so verändert, dass sowohl das Original als auch die übersetzten Nachrichten an das Gerät der Person gesendet werden. Dadurch kann der Empfänger die Nachricht in seiner Muttersprache sehen oder schnell zur unübersetzten Originalnachricht des Absenders wechseln.

Als das LLM fertig war, haben wir ein Backend implementiert, um eine Verbindung mit den Modellservern herzustellen. In diesem Backend wenden wir zusätzliche Chat-Übersetzungslogik an und integrieren das System mit unseren üblichen Vertrauens- und Sicherheitssystemen. Auf diese Weise wird sichergestellt, dass der übersetzte Text genauso gründlich geprüft wird wie andere Texte, um Wörter oder Sätze, die gegen unsere Richtlinien verstoßen, zu erkennen und zu blockieren. Sicherheit und Netiquette stehen bei allem, was wir bei Roblox tun, an erster Stelle, daher war dies ein besonders wichtiger Teil der Entwicklung.

Kontinuierliche Verbesserung der Genauigkeit

In Tests haben wir festgestellt, dass dieses neue Übersetzungssystem das Engagement und die Qualität der Sitzungen für die Menschen auf unserer Plattform erhöht. Nach unseren eigenen Maßstäben übertrifft unser Modell kommerzielle Übersetzungs-APIs für Roblox-Inhalte, was darauf hindeutet, dass wir die Art und Weise, wie Menschen auf Roblox kommunizieren, erfolgreich optimiert haben. Wir sind gespannt darauf, wie dies das Erlebnis für die Menschen auf der Plattform verbessert und es ihnen ermöglicht, Spiele zu spielen, einzukaufen, zusammenzuarbeiten oder sich einfach mit Freund:innen auszutauschen, die eine andere Sprache sprechen.

Die Möglichkeit, nahtlose, natürliche Unterhaltungen in der jeweiligen Muttersprache zu führen, bringt uns unserem Ziel näher, eine Milliarde Menschen auf optimistische und rücksichtsvolle Weise zu verbinden.

Um die Genauigkeit unserer Übersetzungen weiter zu verbessern und unser Modell mit besseren Trainingsdaten zu versorgen, planen wir die Einführung eines Tools, das es den Menschen auf der Plattform ermöglicht, Feedback zu ihren Übersetzungen zu geben und das System noch schneller zu verbessern. So kann man uns mitteilen, wenn auffällt, dass etwas falsch übersetzt wurde, und sogar eine bessere Übersetzung vorschlagen, die wir zu den Trainingsdaten hinzufügen können, um das Modell weiter zu verbessern.

Diese Übersetzungen sind heute für alle 16 Sprachen, die wir unterstützen, verfügbar – aber wir sind noch lange nicht fertig. Wir planen, unsere Modelle weiterhin mit den neuesten Übersetzungsbeispielen aus unseren Erlebnissen sowie mit beliebten Chat-Phrasen und den neuesten Slang-Phrasen in jeder von uns unterstützten Sprache zu aktualisieren. Darüber hinaus wird diese Architektur es ermöglichen, das Modell mit relativ geringem Aufwand auf neue Sprachen zu trainieren, sobald genügend Trainingsdaten für diese Sprachen verfügbar sind. In Zukunft werden wir nach Möglichkeiten suchen, um alles in mehreren Dimensionen automatisch zu übersetzen: Text auf Bildern, Texturen, 3D-Modellen usw.

Und wir erforschen bereits spannende neue Möglichkeiten, wie die automatische Übersetzung von Sprachchats. Stell dir vor, dass ein:e Französischsprachige:r auf Roblox mit jemandem im Sprachchat reden kann, der nur Russisch spricht. Beide könnten miteinander sprechen und einander verstehen, bis hin zu Tonfall, Rhythmus und Emotionen ihrer Stimme – in ihrer eigenen Sprache und mit geringer Latenzzeit. Auch wenn das heute noch wie Science Fiction klingt und es einige Zeit dauern wird, bis wir das erreichen, werden wir in Sachen Übersetzung weiter Fortschritte machen. In nicht allzu ferner Zukunft wird Roblox ein Ort sein, an dem Menschen aus der ganzen Welt nahtlos und mühelos miteinander kommunizieren können – nicht nur per Textchat, sondern auf jede mögliche Art und Weise!