Passa a contenuti principali
Translator
Questa pagina è stata tradotta automaticamente dal servizio di traduzione automatica di Microsoft Translator. Ulteriori informazioni

Blog di Microsoft Translator

Traduzione automatica neurale che consente innovazioni di parità umana nel cloud

Nel marzo 2018 abbiamo Annunciato (Hassan et al.) un risultato rivoluzionario in cui abbiamo mostrato per la prima volta un sistema di traduzione automatica in grado di eseguire così come traduttori umani (in uno scenario specifico – traduzione di notizie cinese-inglese). Questo è stato un interessante passo avanti nella ricerca sulla traduzione automatica, ma il sistema che abbiamo costruito per questo progetto è stato un sistema di ricerca complesso e pesante, che incorpora molteplici tecniche all'avanguardia. Mentre abbiamo rilasciato l'output di questo sistema su diversi set di test, il sistema stesso non era adatto per la distribuzione in un'API cloud di traduzione automatica in tempo reale.

Oggi siamo entusiasti di annunciare la disponibilità nella produzione della nostra ultima generazione di modelli di traduzione automatica neurale. Questi modelli incorporano la maggior parte della bontà del nostro sistema di ricerca e sono ora disponibili per impostazione predefinita quando si utilizza l'API Microsoft Translator. Questi nuovi modelli sono disponibili oggi in cinese, tedesco, francese, hindi, italiano, spagnolo, giapponese, coreano e russo, da e per l'inglese. Altre lingue sono in arrivo.

Passare da Research Paper all'API cloud

Nel corso dell'ultimo anno, abbiamo cercato modi per portare gran parte della qualità del nostro sistema di parità umana in Microsoft API traduttore, pur continuando a offrire traduzioni in tempo reale a basso costo. Ecco alcuni dei passi in quel viaggio.

Formazione insegnante-studente

Il nostro primo passo è stato passare a un quadro "insegnante-studente", in cui formiamo uno studente leggero in tempo reale per imitare una rete di insegnanti pesanti (Ba e Caruana 2014). Ciò avviene formando lo studente non sui dati paralleli su cui i sistemi MT sono di solito addestrati, ma sulle traduzioni prodotte dall'insegnante (Kim e Rush 2016). Questo è un compito più semplice rispetto all'apprendimento dai dati grezzi e consente a uno studente meno profondo e più semplice di seguire da vicino l'insegnante complesso. Come ci si potrebbe aspettare, i nostri tentativi iniziali hanno ancora subito cali di qualità da insegnante a studente (nessun pranzo gratuito!), ma abbiamo comunque preso il primo posto nel WNMT 2018 Shared Task on Efficient Decoding (Junczys-Dowmunt et al.). Alcuni risultati particolarmente interessanti da questo sforzo sono stati che Transformer (Vaswani et al.) i modelli e le loro modifiche giocano bene con la formazione insegnante-studente e sono sorprendentemente efficienti durante l'inferenza sulla CPU.

Imparando da questi risultati iniziali e dopo un sacco di iterazione abbiamo scoperto una ricetta che permette al nostro semplice studente di avere quasi la stessa qualità del complesso insegnante (a volte c'è un pranzo gratuito dopo tutto?). Ora eravamo liberi di costruire modelli di insegnanti grandi e complessi per massimizzare la qualità, senza preoccuparti dei vincoli in tempo reale (troppo).

Traduzione in tempo reale

La nostra decisione di passare a un quadro insegnante-studente è stata motivata dal grande lavoro Kim e Rush (2016)) per modelli semplici basati su RNN. A quel punto non era chiaro se i benefici riportati si sarebbero manifestati anche per i modelli Transformer (cfr. Vaswani et al. per i dettagli su questo modello). Tuttavia, abbiamo subito scoperto che questo era davvero il caso.

Lo studente Transformer potrebbe usare un algoritmo di decodifica notevolmente semplificato (ricerca avida) in cui scegliamo solo la singola parola tradotta migliore ad ogni passo, piuttosto che il solito metodo (beam-search) che comporta la ricerca attraverso l'enorme spazio di possibile Traduzioni. Questo cambiamento ha avuto un impatto di qualità minimo, ma ha portato a grandi miglioramenti nella velocità di traduzione. Al contrario, un modello di insegnante subirebbe un calo significativo della qualità quando passerebbe dalla ricerca del fascio alla ricerca avida.

Allo stesso tempo, ci siamo resi conto che invece di utilizzare l'ultima architettura neurale (Transformer con auto-attenzione) nel decodificatore, lo studente potrebbe essere modificato per utilizzare un'architettura ricorrente (RNN) drasticamente semplificata e più veloce. Questo è importante perché mentre il codificatore Transformer può essere calcolato sull'intera frase di origine in parallelo, la frase di destinazione viene generata una singola parola alla volta, quindi la velocità del decodificatore ha un grande impatto sulla velocità complessiva della traduzione. Rispetto all'auto-attenzione, il decodificatore ricorrente riduce la complessità algoritmica da quadratica a lineare nella lunghezza della frase di destinazione. Soprattutto nell'ambiente insegnante-studente, non abbiamo visto alcuna perdita di qualità a causa di queste modifiche, né per i risultati automatici né per la valutazione umana. Diversi miglioramenti aggiuntivi, come la condivisione dei parametri, hanno portato a ulteriori riduzioni della complessità e ad una maggiore velocità.

Un altro vantaggio del quadro insegnante-studente che eravamo molto entusiasti di vedere è che i miglioramenti di qualità nel tempo degli insegnanti in continua crescita e che cambiano sono facilmente trasferiti a un'architettura studentesca che non cambia. Nei casi in cui abbiamo riscontrato problemi a questo proposito, un leggero aumento della capacità del modello studentesco colmerebbe di nuovo il divario.

Doppio apprendimento

La base chiave alla base del doppio apprendimento (Et al.) è il controllo "traduzione andata e ritorno" che le persone a volte usano per controllare la qualità della traduzione. Supponiamo di usare un traduttore online per passare dall'inglese all'italiano. Se non leggiamo l'italiano, come facciamo a sapere se ha fatto un buon lavoro? Prima di fare clic su Invia su una e-mail, potremmo scegliere di controllare la qualità traducendo l'italiano di nuovo in inglese (forse su un altro sito web). Se l'inglese che torniamo si è allontanato troppo dall'originale, è probabile che una delle traduzioni sia andata fuori dai binari.

Il doppio apprendimento utilizza lo stesso approccio per formare due sistemi (ad esempio inglese->italiano e italiano-inglese) in parallelo, utilizzando la traduzione di andata e ritorno da un sistema per segnare, convalidare e addestrare l'altro sistema.

Il doppio apprendimento è stato uno dei principali contributori al nostro risultato della ricerca sulla parità umana. Passando dal sistema di ricerca alla nostra ricetta di produzione, abbiamo generalizzato questo approccio in senso lato. Non solo abbiamo co-addestrato coppie di sistemi sulla produzione dell'altro, abbiamo anche usato lo stesso criterio per filtrare i nostri dati paralleli.

Pulizia di dati imprecisi

I sistemi di traduzione automatica sono addestrati su "dati paralleli", cioè coppie di documenti che sono traduzioni l'una dell'altra, idealmente create da un traduttore umano. Come risulta, questi dati paralleli sono spesso pieni di traduzioni imprecise. A volte i documenti non sono veramente paralleli, ma solo parafrasi sciolte l'una dell'altra. I traduttori umani possono scegliere di tralasciare del materiale sorgente o inserire informazioni aggiuntive. I dati possono contenere errori di battitura, errori di ortografia, errori grammaticali. A volte i nostri algoritmi di data mining sono ingannati da dati simili ma non paralleli, o anche da frasi nel linguaggio sbagliato. Peggio ancora, molte delle pagine web che vediamo sono spam, o possono in realtà essere traduzioni automatiche piuttosto che traduzioni umane. I sistemi neurali sono molto sensibili a questo tipo di imprecisione nei dati. Abbiamo scoperto che la costruzione di modelli neurali per identificare e sbarazzarsi automaticamente di queste imprecisioni ha dato forti miglioramenti nella qualità dei nostri sistemi. Il nostro approccio al filtraggio dei dati ha portato al primo posto WMT18 benchmark di filtraggio del corpo parallelo (Junczys-Dowmunt 2018a) e ha contribuito a costruire uno dei più forti sistemi di traduzione inglese-tedesco WMT18 Attività di traduzione di notizie (Junczys-Dowmunt 2018b). Abbiamo utilizzato versioni migliorate di questo approccio nei sistemi di produzione che abbiamo rilasciato oggi.

Rappresentazioni di parole a fattori

Quando si sposta una tecnologia di ricerca nella produzione, sorgono diverse sfide del mondo reale. Ottenere numeri, date, ore, maiuscole, spaziatura, ecc. il diritto conta molto di più nella produzione che in un sistema di ricerca.

Considerare la sfida della capitalizzazione. Se stiamo traducendo la frase "WATCH CAT VIDEOS HERE". Sappiamo tradurre "gatto". Vorremmo tradurre "CAT" allo stesso modo. Ma ora considera "Guarda il calcio americano qui". Non vogliamo confondere la parola "noi" e l'acronimo "US" in questo contesto.

Per gestire questo, abbiamo usato un approccio noto come traduzione automatica a factoring (Koehn e Hoang 2007Sennrich e Haddow 2016) che funziona come segue. Invece di una singola rappresentazione numerica ("embedding") per "cat" o "CAT", utilizziamo più incorporamenti, noti come "fattori". In questo caso, l'incorporamento primario sarebbe lo stesso per "CAT" e "cat" ma un fattore separato rappresenterebbe l'uso di maiuscole, mostrando che si trattava di all-caps in un caso ma minuscolo nell'altro. Fattori simili vengono utilizzati sul lato sorgente e sul lato di destinazione.

Utilizziamo fattori simili per gestire frammenti di parole e spaziatura tra le parole (un problema complesso nelle lingue non di spaziatura o semi-spaziatura come il cinese, il coreano, il giapponese o il tailandese).

Fattori anche notevolmente migliorato la traduzione dei numeri, che è fondamentale in molti scenari. La conversione dei numeri è per lo più una trasformazione algoritmica. Ad esempio, 1.234.000 possono essere scritti come 12.34.000 in hindi, 1.234.000 in tedesco e 123,4 in cinese. Tradizionalmente, i numeri sono rappresentati come parole, come gruppi di caratteri di lunghezza variabile. Questo rende difficile per l'apprendimento automatico individuare l'algoritmo. Invece, forniamo ogni singola cifra di un numero separatamente, con i fattori che segnano l'inizio e la fine. Questo semplice trucco robusto e affidabile rimosso quasi tutti gli errori di conversione numero.

Formazione più rapida dei modelli

Quando formiamo un singolo sistema verso un unico obiettivo, come abbiamo fatto per il progetto di ricerca sulla parità umana, ci aspettiamo di gettare un gran numero di hardware in modelli che richiedono settimane per la formazione. Quando si qualificano i modelli di produzione per più di 20 coppie linguistiche, questo approccio diventa insostenibile. Non solo abbiamo bisogno di tempi di consegna ragionevoli, ma dobbiamo anche moderare le nostre richieste hardware. Per questo progetto, abbiamo apportato una serie di miglioramenti Marian NMT (Junczys-Dowmunt et al.).

Marian NMT è il toolkit Neural MT open-source su cui si basa Microsoft Translator. Marian è un toolkit di traduzione automatica neurale puro in C, e, di conseguenza, estremamente efficiente, non richiede GPU in fase di esecuzione e molto efficiente in fase di allenamento

A causa della sua natura autonoma, è abbastanza facile ottimizzare Marian per compiti specifici NMT, che si traduce in uno dei più efficienti toolkit NMT disponibili. Dai un'occhiata al Benchmark. Se siete interessati alla ricerca e allo sviluppo di Neural MT, vi preghiamo di unirvi e contribuire comunità su Github.

I nostri miglioramenti per quanto riguarda il training e la decodifica a precisione mista, nonché per il training di modelli di grandi dimensioni saranno presto resi disponibili nel repository pubblico Di Github.

Siamo entusiasti del futuro della traduzione automatica neurale. Continueremo a implementare la nuova architettura del modello nelle restanti lingue e Traduttore personalizzato durante tutto quest'anno. I nostri utenti otterranno automaticamente le traduzioni significativamente di migliore qualità API traduttorenostro App Traduttore, Microsoft Office e il browser Edge. Ci auguriamo che i nuovi miglioramenti aiutino la tua vita personale e professionale e attendano il tuo feedback.

 

Riferimenti

  • Jimmy Ba e Rich Caruana. 2014. Le reti profonde devono davvero essere profonde? Progressi nei sistemi di elaborazione delle informazioni neurali 27. Pagine 2654-2662. https://papers.nips.cc/paper/5484-do-deep-nets-really-need-to-be-deep
  • Hany Hassan, Anthony Aue, Chang Chen, Vishal Chowdhary, Jonathan Clark, Christian Federmann, Xuedong Huang, Marcin Junczys-Dowmunt, William Lewis, Mu Li, Shujie Liu, Tie-Yan Liu, Renqian Luo, Arul Menezes, Tao Qin, Frank Seide, Xu Tan, Fe-Tian, Liunj, Liunj Shuangzhi Wu, Yingce Xia, Dongdong 2018. Raggiungere la parità di esseri umani sulla traduzione automatica dal cinese all'inglese. http://arxiv.org/abs/1803.05567
  • Lui, Di e Xia, Yingce e Qin, Tao e Wang, Liwei e Yu, Nenghai e Liu, Tie-Yan e Ma, Wei-Ying. 2016. Dual Learning per la traduzione automatica. Progressi nei sistemi di elaborazione delle informazioni neurali 29. Pagine 820-828. https://papers.nips.cc/paper/6469-dual-learning-for-machine-translation
  • Marcin Junczys-Dowmunt. 2018a Dual Conditional Cross-Entropy Filtering di Corpora Parallela Rumorosa. Atti della terza conferenza sulla traduzione automatica: documenti per le attività condivise. Belgio, pagine 888-895. https://aclweb.org/anthology/papers/W/W18/W18-6478/
  • Marcin Junczys-Dowmunt. 2018b. L'invio di Microsoft al WMT2018 News Translation Task: Come ho imparato a smettere di preoccuparsi e amare i dati. Atti della terza conferenza sulla traduzione automatica: documenti per le attività condivise. Belgio, pagine 425-430. https://www.aclweb.org/anthology/W18-6415/
  • Marcin Junczys-Dowmunt, Kenneth Heafield, Hieu Hoang, Roman Grundkiewicz, Anthony Aue. Marian: traduzione automatica neurale di alta qualità economica in C . Atti del secondo workshop sulla traduzione e la generazione neurale delle macchine. Melbourne, Australia, pagine 129-135. https://aclweb.org/anthology/papers/W/W18/W18-2716/
  • Marcin Junczys-Dowmunt, Roman Grundkiewicz, Tomasz Dwojak, Hieu Hoang, Kenneth Heafield, Tom Neckermann, Frank Seide, Ulrich Germann, Alham Fikri Aji, Nikolay Bogoychev, André F. T. Martins, Alexandra Birch. Marian 2018b. Marian: Traduzione rapida neurale in C . Procedimenti di ACL 2018, dimostrazioni di sistema. Melbourne, Australia, pagine 116-121. https://www.aclweb.org/anthology/P18-4020/
  • Yoon Kim e Alexander M. Rush. 2016. Distillazione delle conoscenze a livello di sequenza. In Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing, EMNLP 2016, Austin, Texas, USA, 1-4 novembre 2016, pagine 1317–1327. https://aclweb.org/anthology/papers/D/D16/D16-1139/
  • Philipp Koehn, Hieu Hoang. 2007. Modelli di traduzione a fattore. Atti della conferenza congiunta 2007 sui metodi empirici nell'elaborazione del linguaggio naturale e nell'apprendimento computazionale del linguaggio naturale (EMNLP-CoNLL). Praga, Repubblica Ceca, pagine 868-876. https://www.aclweb.org/anthology/D07-1091/
  • Rico Sennrich, Barry Haddow. 2016. Le caratteristiche di input linguistico migliorano la traduzione automatica neurale. Atti della prima conferenza sulla traduzione automatica: Volume 1, Documenti di ricerca. Berlino, Germania, pagine 83-91. https://www.aclweb.org/anthology/W16-2209/
  • Vaswani, Ashish e Shazeer, Noam e Parmar, Niki e Uszkoreit, Jakob e Jones, Llion e Gomez, Aidan N e Kaiser, Lukasz e Polosukhin, Illia. 2017. L'attenzione è tutto ciò di cui hai bisogno. Progressi nei sistemi di elaborazione delle informazioni neurali 30. Pagine 5998-6008. https://papers.nips.cc/paper/7181-attention-is-all-you-need