Zephyrnet-logo

Taalbarrières doorbreken met een meertalig vertaalmodel – Roblox Blog

Datum:

Stel je voor dat je ontdekt dat je nieuwe Roblox-vriend, een persoon met wie je hebt gepraat en grapjes hebt gemaakt in een nieuwe ervaring, zich feitelijk in Korea bevindt - en de hele tijd in het Koreaans heeft getypt, terwijl jij in het Engels aan het typen was, zonder een van beide jij merkt het. Dankzij onze nieuwe realtime AI-chatvertalingen hebben we op Roblox iets mogelijk gemaakt dat zelfs niet mogelijk is in de fysieke wereld: mensen die verschillende talen spreken in staat stellen naadloos met elkaar te communiceren in onze meeslepende 3D-ervaringen. Dit is mogelijk dankzij ons aangepaste meertalige model, dat nu directe vertaling mogelijk maakt tussen elke combinatie van de 16 talen die we momenteel ondersteunen (deze 15 talen, evenals Engels). 

In elke ervaring die ons in staat heeft gesteld in-ervaren tekstchat service kunnen mensen uit verschillende landen nu begrepen worden door mensen die hun taal niet spreken. Het chatvenster toont automatisch Koreaans vertaald in het Engels, of Turks vertaald in het Duits, en vice versa, zodat iedereen het gesprek in zijn eigen taal ziet. Deze vertalingen worden in realtime weergegeven, met een latentie van ongeveer 100 milliseconden, zodat de vertaling achter de schermen vrijwel onzichtbaar is. Het gebruik van AI om realtime vertalingen in tekstchat te automatiseren, neemt taalbarrières weg en brengt meer mensen samen, waar ter wereld ze ook wonen. 

Een uniform vertaalmodel bouwen

AI-vertaling is niet nieuw; het merendeel van onze ervaringsinhoud is al automatisch vertaald. We wilden verder gaan dan het vertalen van statische inhoud in ervaringen. We wilden interacties automatisch vertalen – en dat wilden we doen voor alle 16 talen die we op het platform ondersteunen. Dit was om twee redenen een gedurfd doel: ten eerste waren we niet alleen maar aan het vertalen van de ene primaire taal (dwz Engels) naar de andere, we wilden een systeem dat in staat was om te vertalen tussen elke combinatie van de 16 talen die we ondersteunen. Ten tweede moest het zo zijn snel. Snel genoeg om echte chatgesprekken te ondersteunen, wat voor ons betekende dat we de latentie moesten terugbrengen tot ongeveer 100 milliseconden.

Roblox is de thuisbasis van meer dan 70 miljoen dagelijks actieve gebruikers over de hele wereld en groeit nog steeds. Mensen communiceren en creëren op ons platform – ieder in hun moedertaal – 24 uur per dag. Het handmatig vertalen van elk gesprek dat plaatsvindt over meer dan 15 miljoen actieve ervaringen, allemaal in realtime, is uiteraard niet haalbaar. Het schalen van deze live vertalingen naar miljoenen mensen, die allemaal tegelijkertijd verschillende gesprekken voeren in verschillende ervaringen, vereist een LLM met enorme snelheid en nauwkeurigheid. We hebben een contextbewust model nodig dat Roblox-specifiek taalgebruik herkent, inclusief jargon en afkortingen (denk aan obby, afk of lol). Bovendien moet ons model elke combinatie van de 16 talen ondersteunen die Roblox momenteel ondersteunt. 

Om dit te bereiken hadden we voor elk talenpaar (dat wil zeggen Japans en Spaans) een uniek model kunnen bouwen, maar daarvoor zouden 16×16, oftewel 256 verschillende modellen nodig zijn geweest. In plaats daarvan hebben we een uniforme, op transformatoren gebaseerde vertaal-LLM gebouwd om alle taalparen in één model te verwerken. Dit is alsof je meerdere vertaalapps hebt, elk gespecialiseerd in een groep vergelijkbare talen, allemaal beschikbaar met één enkele interface. Gegeven een bronzin en doeltaal kunnen wij de betreffende ‘expert’ activeren om de vertalingen te genereren. 

Deze architectuur maakt een beter gebruik van de middelen mogelijk, omdat elke expert een andere specialiteit heeft, wat leidt tot efficiëntere training en gevolgtrekkingen – zonder dat dit ten koste gaat van de vertaalkwaliteit.

Illustratie van het gevolgtrekkingsproces. Bronberichten worden samen met de brontaal en doeltalen doorgegeven via RCC. Voordat we naar de backend gaan, controleren we eerst de cache om te zien of we al vertalingen voor dit verzoek hebben. Als dit niet het geval is, wordt het verzoek doorgegeven aan de backend en aan de modelserver met dynamische batching. We hebben een ingesloten cachelaag tussen de encoders en decoders toegevoegd om de efficiëntie bij het vertalen naar meerdere doeltalen verder te verbeteren.

Deze architectuur maakt het om een ​​aantal redenen veel efficiënter om ons model te trainen en te onderhouden. Ten eerste kan ons model taalkundige overeenkomsten tussen talen benutten. Wanneer alle talen samen worden getraind, profiteren talen die vergelijkbaar zijn, zoals Spaans en Portugees, van elkaars inbreng tijdens de training, wat de vertaalkwaliteit voor beide talen helpt verbeteren. We kunnen ook veel gemakkelijker nieuw onderzoek en nieuwe ontwikkelingen op het gebied van LLM's testen en integreren in ons systeem zodra ze worden vrijgegeven, om te profiteren van de nieuwste en beste technieken die beschikbaar zijn. We zien nog een voordeel van dit uniforme model in gevallen waarin de brontaal niet of onjuist is ingesteld, waarbij het model nauwkeurig genoeg is om de juiste brontaal te detecteren en naar de doeltaal te vertalen. Zelfs als de invoer een mix van talen bevat, kan het systeem de doeltaal nog steeds detecteren en naar de doeltaal vertalen. In deze gevallen is de nauwkeurigheid misschien niet zo hoog, maar de uiteindelijke boodschap zal redelijk begrijpelijk zijn.

Om dit uniforme model te trainen, zijn we begonnen met een vooropleiding op de beschikbare open source-gegevens, maar ook op onze eigen vertaalgegevens uit de praktijk, door mensen gelabelde chatvertaalresultaten en veelgebruikte chatzinnen en zinsneden. We hebben ook onze eigen vertaalevaluatiemetriek en -model ontwikkeld om de vertaalkwaliteit te meten. De meeste kant-en-klare kwaliteitsstatistieken vergelijken het AI-vertaalresultaat met een grondwaarheid of referentievertaling en richten zich primair op de begrijpelijkheid van de vertaling. Wij wilden de waarde ervan beoordelen kwaliteit van de vertaling – zonder een vertaling van de grondwaarheid. 

We bekijken dit vanuit meerdere aspecten, waaronder nauwkeurigheid (of er toevoegingen, weglatingen of verkeerde vertalingen zijn), vloeiendheid (interpunctie, spelling en grammatica) en onjuiste verwijzingen (verschillen met de rest van de tekst). We classificeren deze fouten in ernstniveaus: is het een kritieke, grote of kleine fout? Om de kwaliteit te beoordelen, hebben we een ML-model gebouwd en dit getraind op door mensen gelabelde fouttypen en -scores. Vervolgens hebben we een meertalig taalmodel verfijnd om fouten en typen op woordniveau te voorspellen en een score te berekenen met behulp van onze multidimensionale criteria. Dit geeft ons een uitgebreid inzicht in de kwaliteit en de soorten fouten die optreden. Op deze manier kunnen we de vertaalkwaliteit inschatten en fouten opsporen door gebruik te maken van brontekst en machinevertalingen, zonder dat een grondwaarheidsvertaling nodig is. Met de resultaten van deze kwaliteitsmeting kunnen we de kwaliteit van ons vertaalmodel verder verbeteren. 

Met de brontekst en het resultaat van de machinevertaling kunnen we de kwaliteit van de machinevertaling schatten zonder een referentievertaling, met behulp van ons interne schattingsmodel voor de vertaalkwaliteit. Dit model schat de kwaliteit op basis van verschillende aspecten en categoriseert fouten in kritieke, grote en kleine fouten.

Minder gebruikelijke vertaalparen (bijvoorbeeld Frans naar Thai) zijn een uitdaging vanwege een gebrek aan gegevens van hoge kwaliteit. Om deze kloof te dichten, hebben we terugvertaling toegepast, waarbij de inhoud wordt terugvertaald naar de oorspronkelijke taal en vervolgens op nauwkeurigheid wordt vergeleken met de brontekst. Tijdens het trainingsproces hebben we iteratieve terugvertaling gebruikt, waarbij we een strategische mix van deze terugvertaalde gegevens en bewaakte (gelabelde) gegevens gebruiken om de hoeveelheid vertaalgegevens uit te breiden waar het model van kan leren. 

Illustratie van de modeltrainingspijplijn. Tijdens de modeltraining worden zowel parallelle gegevens als terugvertaalgegevens gebruikt. Nadat het lerarenmodel is getraind, passen we destillatie- en andere serveeroptimalisatietechnieken toe om de modelgrootte te verkleinen en de serveerefficiëntie te verbeteren.

Om het model te helpen modern jargon te begrijpen, hebben we menselijke beoordelaars gevraagd populaire en populaire termen voor elke taal te vertalen, en die vertalingen in onze trainingsgegevens opgenomen. We zullen dit proces regelmatig blijven herhalen om het systeem up-to-date te houden met de nieuwste slang. 

Het resulterende chatvertaalmodel heeft ongeveer 1 miljard parameters. Het uitvoeren van een vertaling via een model van deze omvang is onbetaalbaar arbeidsintensief om op grote schaal te kunnen leveren en zou veel te lang duren voor een realtime gesprek, waarbij een lage latentie van cruciaal belang is om meer dan 5,000 chats per seconde te ondersteunen. Daarom hebben we dit grote vertaalmodel gebruikt in een leerling-leraarbenadering om een ​​kleiner, lichter model te bouwen. We hebben destillatie, kwantisering, modelcompilatie en andere weergave-optimalisaties toegepast om de omvang van het model terug te brengen tot minder dan 650 miljoen parameters en de weergave-efficiëntie te verbeteren. Daarnaast hebben we de API achter tekstchats in de ervaring aangepast, zodat zowel de originele als de vertaalde berichten naar het apparaat van de persoon worden verzonden. Hierdoor kan de ontvanger het bericht in zijn moedertaal zien of snel overschakelen naar het originele, niet-vertaalde bericht van de afzender.

Toen de definitieve LLM klaar was, hebben we een back-end geïmplementeerd om verbinding te maken met de modelservers. In deze backend passen we aanvullende chatvertaallogica toe en integreren we het systeem met onze gebruikelijke vertrouwens- en veiligheidssystemen. Dit zorgt ervoor dat vertaalde tekst op hetzelfde niveau wordt gecontroleerd als andere tekst, om woorden of zinsneden die ons beleid schenden, op te sporen en te blokkeren. Veiligheid en beleefdheid staan ​​voorop bij alles wat we doen bij Roblox, dus dit was een heel belangrijk stukje van de puzzel. 

Voortdurende verbetering van de nauwkeurigheid

Tijdens het testen hebben we gezien dat dit nieuwe vertaalsysteem zorgt voor een sterkere betrokkenheid en sessiekwaliteit voor de mensen op ons platform. Op basis van onze eigen statistieken presteert ons model beter dan commerciële vertaal-API's op Roblox-inhoud, wat aangeeft dat we met succes hebben geoptimaliseerd voor de manier waarop mensen communiceren op Roblox. We zijn blij om te zien hoe dit de ervaring voor mensen op het platform verbetert, waardoor ze games kunnen spelen, winkelen, samenwerken of gewoon bijpraten met vrienden die een andere taal spreken.

Het vermogen van mensen om naadloze, natuurlijke gesprekken te voeren in hun moedertaal brengt ons dichter bij ons doel om een ​​miljard mensen met optimisme en beleefdheid met elkaar te verbinden.

Om de nauwkeurigheid van onze vertalingen verder te verbeteren en ons model van betere trainingsgegevens te voorzien, zijn we van plan een tool uit te rollen waarmee mensen op het platform feedback kunnen geven op hun vertalingen en het systeem nog sneller kunnen verbeteren. Dit zou iemand in staat stellen ons te vertellen wanneer hij iets ziet dat verkeerd is vertaald en zelfs een betere vertaling kunnen voorstellen die we aan de trainingsgegevens kunnen toevoegen om het model verder te verbeteren. 

Deze vertalingen zijn vandaag beschikbaar voor alle 16 talen die we ondersteunen, maar we zijn nog lang niet klaar. We zijn van plan onze modellen te blijven updaten met de nieuwste vertaalvoorbeelden uit onze ervaringen, evenals populaire chatzinnen en de nieuwste jargonzinnen in elke taal die we ondersteunen. Bovendien zal deze architectuur het mogelijk maken om het model met relatief weinig inspanning te trainen op nieuwe talen, omdat er voor die talen voldoende trainingsgegevens beschikbaar komen. Verderop onderzoeken we manieren om alles automatisch in meerdere dimensies te vertalen: tekst op afbeeldingen, texturen, 3D-modellen, enz. 

En we verkennen al opwindende nieuwe grenzen, inclusief automatisch stem chatvertalingen. Stel je voor dat een Franstalige op Roblox kan voicechatten met iemand die alleen Russisch spreekt. Beiden konden met elkaar praten en elkaar begrijpen, tot op de toon, het ritme en de emotie van hun stem, in hun eigen taal en met een lage latentie. Ook al klinkt dit vandaag de dag misschien als sciencefiction, en het zal enige tijd duren voordat dit gerealiseerd is, zullen we doorgaan met het bevorderen van vertalingen. In de niet al te verre toekomst zal Roblox een plek zijn waar mensen van over de hele wereld naadloos en moeiteloos kunnen communiceren, niet alleen via tekstchat, maar in elke mogelijke modaliteit!

spot_img

Home

VC Café

Laatste intelligentie

LifeSciVC

VC Café

spot_img