Abbattere le barriere linguistiche con un modello di traduzione multilingue

Immagina di scoprire che il tuo nuovo amico su Roblox, una persona con cui hai chiacchierato e scherzato in una nuova esperienza, si trova in realtà in Corea — e ha scritto in coreano per tutto il tempo, mentre tu scrivevi in inglese, senza che nessuno dei due se ne accorgesse. Grazie alle nostre nuove traduzioni in tempo reale tramite chat AI, su Roblox abbiamo reso possibile qualcosa che non è nemmeno possibile nel mondo reale: consentire a persone che parlano lingue diverse di comunicare senza difficoltà tra loro nelle nostre esperienze 3D immersive. Ciò è possibile grazie al nostro modello multilingue personalizzato, che ora consente la traduzione diretta tra qualsiasi combinazione delle 16 lingue attualmente supportate (queste 15 lingue, oltre all'inglese).
In qualsiasi esperienza in cui è abilitato il nostro servizio di chat testuale, le persone provenienti da paesi diversi possono ora farsi capire da chi non parla la loro lingua. La finestra della chat mostrerà automaticamente il coreano tradotto in inglese, o il turco tradotto in tedesco, e viceversa, in modo che ogni persona veda la conversazione nella propria lingua. Queste traduzioni vengono visualizzate in tempo reale, con una latenza di circa 100 millisecondi, quindi la traduzione che avviene dietro le quinte è quasi invisibile. L'uso dell'IA per automatizzare le traduzioni in tempo reale nella chat di testo elimina le barriere linguistiche e avvicina più persone, indipendentemente da dove vivano nel mondo.

Creazione di un modello di traduzione unificato
La traduzione basata sull'intelligenza artificiale non è una novità: la maggior parte dei nostri contenuti nelle esperienze è già tradotta automaticamente. Volevamo andare oltre la traduzione dei contenuti statici nelle esperienze. Volevamo tradurre automaticamente le interazioni e volevamo farlo per tutte le 16 lingue supportate sulla piattaforma. Si trattava di un obiettivo audace per due motivi: in primo luogo, non stavamo semplicemente traducendo da una lingua principale (ad esempio l'inglese) a un'altra, ma volevamo un sistema in grado di tradurre tra qualsiasi combinazione delle 16 lingue che supportiamo. In secondo luogo, doveva essere veloce. Abbastanza veloce da supportare conversazioni di chat in tempo reale, il che per noi significava ridurre la latenza a circa 100 millisecondi.
Roblox ospita oltre 70 milioni di utenti attivi al giorno in tutto il mondo e il numero è in crescita. Le persone comunicano e creano sulla nostra piattaforma — ciascuna nella propria lingua madre — 24 ore al giorno. Tradurre manualmente ogni conversazione che avviene in oltre 15 milioni di esperienze attive, tutte in tempo reale, non è ovviamente fattibile. Estendere queste traduzioni in tempo reale a milioni di persone, tutte impegnate in conversazioni diverse in esperienze diverse contemporaneamente, richiede un LLM con velocità e precisione straordinarie. Abbiamo bisogno di un modello sensibile al contesto che riconosca il linguaggio specifico di Roblox, inclusi slang e abbreviazioni (si pensi a obby, afk o lol). Oltre a tutto ciò, il nostro modello deve supportare qualsiasi combinazione delle 16 lingue attualmente supportate da Roblox.
Per raggiungere questo obiettivo, avremmo potuto costruire un modello unico per ogni coppia di lingue (ad esempio, giapponese e spagnolo), ma ciò avrebbe richiesto 16x16, ovvero 256 modelli diversi. Invece, abbiamo creato un LLM di traduzione unificato e basato su Transformer per gestire tutte le coppie linguistiche in un unico modello. È come avere più app di traduzione, ciascuna specializzata in un gruppo di lingue simili, tutte disponibili con un'unica interfaccia. Data una frase di partenza e la lingua di destinazione, possiamo attivare l'"esperto" pertinente per generare le traduzioni.
Questa architettura consente un migliore utilizzo delle risorse, poiché ogni esperto ha una specializzazione diversa, il che porta a un addestramento e a un'inferenza più efficienti, senza sacrificare la qualità della traduzione.

Questa architettura rende molto più efficiente l'addestramento e la manutenzione del nostro modello per diversi motivi. Innanzitutto, il nostro modello è in grado di sfruttare le somiglianze linguistiche tra le lingue. Quando tutte le lingue vengono addestrate insieme, quelle simili, come lo spagnolo e il portoghese, traggono vantaggio l'una dall'altra durante l'addestramento, il che contribuisce a migliorare la qualità della traduzione per entrambe le lingue. Possiamo anche testare e integrare molto più facilmente nel nostro sistema le nuove ricerche e i progressi nei modelli di linguaggio (LLM) man mano che vengono rilasciati, per beneficiare delle tecniche più recenti e avanzate disponibili. Vediamo un altro vantaggio di questo modello unificato nei casi in cui la lingua di origine non è impostata o è impostata in modo errato, dove il modello è abbastanza accurato da essere in grado di rilevare la lingua di origine corretta e tradurre nella lingua di destinazione. Infatti, anche se l'input presenta un mix di lingue, il sistema è comunque in grado di rilevarlo e tradurlo nella lingua di destinazione. In questi casi, l'accuratezza potrebbe non essere così elevata, ma il messaggio finale sarà ragionevolmente comprensibile.
Per addestrare questo modello unificato, abbiamo iniziato con un pre-addestramento su dati open source disponibili, oltre che sui nostri dati di traduzione basati sull'esperienza, sui risultati di traduzione delle chat etichettati da esseri umani e su frasi e espressioni comuni delle chat. Abbiamo anche creato una nostra metrica di valutazione della traduzione e un modello per misurarne la qualità. La maggior parte delle metriche di qualità della traduzione disponibili sul mercato confronta il risultato della traduzione AI con una "ground truth" o una traduzione di riferimento e si concentra principalmente sulla comprensibilità della traduzione. Volevamo valutare la qualità della traduzione, senza una traduzione di riferimento.
Analizziamo questo aspetto da molteplici punti di vista, tra cui l'accuratezza (se ci sono aggiunte, omissioni o errori di traduzione), la fluidità (punteggiatura, ortografia e grammatica) e i riferimenti errati (discrepanze con il resto del testo). Classifichiamo questi errori in livelli di gravità: si tratta di un errore critico, grave o minore? Per valutare la qualità, abbiamo creato un modello di ML e lo abbiamo addestrato su tipi di errore e punteggi etichettati da esseri umani. Abbiamo quindi ottimizzato un modello linguistico multilingue per prevedere gli errori a livello di parola e i tipi di errore e calcolare un punteggio utilizzando i nostri criteri multidimensionali. Questo ci fornisce una comprensione completa della qualità e dei tipi di errori che si verificano. In questo modo possiamo stimare la qualità della traduzione e rilevare gli errori utilizzando il testo di partenza e le traduzioni automatiche, senza richiedere una traduzione di riferimento. Utilizzando i risultati di questa misura di qualità, possiamo migliorare ulteriormente la qualità del nostro modello di traduzione.

Le coppie di traduzione meno comuni (ad esempio, dal francese al thailandese) rappresentano una sfida a causa della mancanza di dati di alta qualità. Per colmare questa lacuna, abbiamo applicato la traduzione inversa, in cui il contenuto viene ritradotto nella lingua originale e poi confrontato con il testo di partenza per verificarne l'accuratezza. Durante il processo di addestramento, abbiamo utilizzato la traduzione inversa iterativa, in cui utilizziamo una combinazione strategica di questi dati tradotti in senso inverso e dati supervisionati (etichettati) per ampliare la quantità di dati di traduzione su cui il modello può apprendere.

Per aiutare il modello a comprendere il gergo moderno, abbiamo chiesto a valutatori umani di tradurre termini popolari e di tendenza per ciascuna lingua e abbiamo incluso tali traduzioni nei nostri dati di addestramento. Continueremo a ripetere questo processo regolarmente per mantenere il sistema aggiornato sul gergo più recente.
Il modello di traduzione delle chat risultante ha circa 1 miliardo di parametri. Eseguire una traduzione attraverso un modello di queste dimensioni richiede una quantità di risorse proibitiva per essere utilizzato su larga scala e richiederebbe troppo tempo per una conversazione in tempo reale, dove la bassa latenza è fondamentale per supportare più di 5.000 chat al secondo. Abbiamo quindi utilizzato questo grande modello di traduzione in un approccio "studente-insegnante" per costruire un modello più piccolo e leggero. Abbiamo applicato la distillazione, la quantizzazione, la compilazione del modello e altre ottimizzazioni di servizio per ridurre le dimensioni del modello a meno di 650 milioni di parametri e migliorare l'efficienza del servizio. Inoltre, abbiamo modificato l'API alla base della chat di testo all'interno dell'esperienza per inviare sia i messaggi originali che quelli tradotti al dispositivo della persona. Ciò consente al destinatario di vedere il messaggio nella propria lingua madre o di passare rapidamente a visualizzare il messaggio originale, non tradotto, del mittente.
Una volta pronto il modello LLM finale, abbiamo implementato un back-end per connetterci ai server del modello. È in questo back-end che applichiamo la logica aggiuntiva di traduzione della chat e integriamo il sistema con i nostri consueti sistemi di fiducia e sicurezza. Ciò garantisce che il testo tradotto riceva lo stesso livello di controllo degli altri testi, al fine di rilevare e bloccare parole o frasi che violano le nostre politiche. La sicurezza e la civiltà sono al centro di tutto ciò che facciamo in Roblox, quindi questo è stato un tassello molto importante del puzzle.
Miglioramento continuo della precisione
Durante i test, abbiamo constatato che questo nuovo sistema di traduzione favorisce un maggiore coinvolgimento e una migliore qualità delle sessioni per gli utenti della nostra piattaforma. In base alle nostre metriche, il nostro modello supera le API di traduzione commerciali sui contenuti di Roblox, indicando che siamo riusciti a ottimizzarlo per il modo in cui le persone comunicano su Roblox. Siamo entusiasti di vedere come questo migliorerà l'esperienza degli utenti sulla piattaforma, consentendo loro di giocare, fare acquisti, collaborare o semplicemente chiacchierare con amici che parlano una lingua diversa.
La possibilità per le persone di avere conversazioni fluide e naturali nelle loro lingue native ci avvicina al nostro obiettivo di mettere in contatto un miliardo di persone con ottimismo e civiltà.
Per migliorare ulteriormente l'accuratezza delle nostre traduzioni e fornire al nostro modello dati di addestramento migliori, abbiamo in programma di lanciare uno strumento che permetta agli utenti della piattaforma di fornire feedback sulle traduzioni e aiutare il sistema a migliorare ancora più rapidamente. Questo consentirebbe a chiunque di segnalarci eventuali errori di traduzione e persino di suggerire una traduzione migliore che potremo aggiungere ai dati di addestramento per migliorare ulteriormente il modello.
Queste traduzioni sono disponibili oggi per tutte le 16 lingue che supportiamo, ma siamo ben lontani dall'aver finito. Abbiamo in programma di continuare ad aggiornare i nostri modelli con gli esempi di traduzione più recenti tratti dalle nostre esperienze, oltre che con frasi di chat popolari e le espressioni gergali più recenti in ogni lingua che supportiamo. Inoltre, questa architettura renderà possibile addestrare il modello su nuove lingue con uno sforzo relativamente ridotto, man mano che saranno disponibili dati di addestramento sufficienti per quelle lingue. Più in là nel futuro, stiamo esplorando modi per tradurre automaticamente tutto in più dimensioni: testo su immagini, texture, modelli 3D, ecc.
E stiamo già esplorando nuove entusiasmanti frontiere, tra cui la traduzione automatica delle chat vocali. Immaginate un utente di Roblox di lingua francese in grado di chattare con qualcuno che parla solo russo. Entrambi potrebbero parlarsi e capirsi a vicenda, fino al tono, al ritmo e all'emozione della voce, nella propria lingua e con bassa latenza. Anche se oggi questo può sembrare fantascienza e ci vorrà del tempo per realizzarlo, continueremo a portare avanti la traduzione. In un futuro non troppo lontano, Roblox sarà un luogo in cui persone provenienti da tutto il mondo potranno comunicare in modo fluido e senza sforzo non solo tramite chat di testo, ma in ogni modalità possibile!


