Salt la conținutul principal
Translator
Această pagină a fost tradusă automat de serviciul de traducere automată Microsoft Translator. Aflați mai multe

Blogul Microsoft Translator

Neuronale Machine traducere activarea umane paritate inovații în cloud

În martie 2018 am Anunţat (Hassan et al. 2018) un rezultat de descoperire în cazul în care am arătat pentru prima dată un sistem de traducere Machine care ar putea efectua, precum și traducători umane (într-un scenariu specifice-Chineză-Engleză traducere de știri). Aceasta a fost o descoperire interesantă în cercetare Machine traducere, dar sistemul am construit pentru acest proiect a fost un sistem complex, de cercetare grea, care încorporează mai multe tehnici de ultimă oră. În timp ce am lansat de ieșire a acestui sistem pe mai multe seturi de testare, sistemul în sine nu a fost potrivit pentru desfășurarea într-o mașină în timp real de traducere Cloud API.

Astăzi suntem încântați să anunțăm disponibilitatea în producția de ultima generație de modele neuronale Machine traducere. Aceste modele încorporează cea mai mare parte din bunătatea sistemului nostru de cercetare și sunt acum disponibile în mod implicit atunci când utilizați Microsoft Translator API. Aceste noi modele sunt disponibile astăzi în chineză, germană, franceză, hindi, italiană, spaniolă, japoneză, coreeană, și rusă, de la și la engleză. Mai multe limbi vor veni în curând.

Noțiuni de la hârtie de cercetare pentru cloud API

Pe parcursul anului trecut, am fost căutați modalități de a aduce o mare parte din calitatea sistemului nostru uman-paritate în Microsoft Translator API, continuând să ofere o traducere în timp real, cu costuri reduse. Iată câțiva pași în această călătorie.

Profesor-student de formare

Primul nostru pas a fost de a comuta la un cadru "profesor-student", în cazul în care ne antrenăm un student în timp real ușoare pentru a imita o rețea de profesor de grea (Ba și Caruana 2014). Acest lucru este realizat prin instruirea studentului nu pe datele paralele pe care sistemele MT sunt de obicei instruite, ci pe traducerile produse de profesor (Kim și Rush 2016). Aceasta este o sarcină mai simplă decât de învățare de la datele brute, și permite un shallower, student mai simplu să urmeze foarte îndeaproape profesor complex. Așa s-ar putea aștepta, încercările noastre inițiale încă suferit picături de calitate de la profesor la student (nu prânz gratuit!), dar am luat cu toate acestea, primul loc în WNMT 2018 partajate sarcina privind decodarea eficientă (Junczys-Dowmunt et al. 2018a). Unele rezultate deosebit de incitante din acest efort au fost că transformator (Vaswani et al. 2017) modelele și modificările lor joacă bine cu profesor-student de formare și sunt uimitor de eficiente în timpul considere pe CPU.

Învățarea de la aceste rezultate inițiale și după o mulțime de iterație am descoperit o reteta care permite student nostru simplu de a avea aproape aceeași calitate ca profesor complex (uneori există un prânz gratuit, după toate?). Acum am fost liberi să construim modele mari, complexe de profesori pentru a maximiza calitatea, fără a ne îngrijora de constrângerile în timp real (prea mult).

Traducere în timp real

Decizia noastră de a trece la un cadru didactic-student a fost motivată de Marea lucrare a Kim și Rush (2016) pentru modele simple bazate pe RNN. În acel moment, nu a fost clar dacă beneficiile raportate s-ar manifesta pentru modelele Transformer, de asemenea (a se vedea Vaswani et al. 2017 pentru detalii despre acest model). Cu toate acestea, am descoperit rapid că acest lucru a fost într-adevăr cazul.

Studentul transformator ar putea folosi un algoritm de decodare foarte simplificat (căutare lacomi) în cazul în care vom alege doar cel mai bun cuvânt tradus cel mai bine la fiecare pas, mai degrabă decât metoda obișnuită (fascicul de căutare), care implică căutarea prin intermediul spațiului imens de posibile Traduceri. Această schimbare a avut un impact minim de calitate, dar a condus la îmbunătățiri mari în viteza de traducere. Prin contrast, un model de profesor ar suferi o scădere semnificativă a calității atunci când trecerea de la fascicul de căutare la lacomi-căutare.

În același timp, ne-am dat seama că, mai degrabă decât folosind cele mai recente arhitectura neuronale (transformator cu auto-atenție) în decodor, studentul ar putea fi modificate pentru a utiliza o drastic simplificat și mai rapid recurente (RNN) arhitectura. Acest lucru contează pentru că în timp ce Encoder Transformer poate fi calculat peste întreaga sursă propoziție în paralel, sentința țintă este generat un singur cuvânt la un moment dat, astfel încât viteza de decodor are un impact mare asupra vitezei globale de traducere. În comparație cu auto-atenția, decodorul recurent reduce complexitatea algoritmică de la pătratică la liniar în lungimea pedepsei țintă. În special în cadrul cadrelor didactice-student, nu am văzut nici o pierdere de calitate din cauza acestor modificări, nici pentru automate, nici pentru rezultatele evaluării umane. Mai multe îmbunătățiri suplimentare, ar fi partajarea parametrilor, au condus la reduceri suplimentare ale complexității și ale vitezei sporite.

Un alt avantaj al cadrelor didactice-student am fost foarte încântați să vedem este că îmbunătățirile de calitate a lungul timpului de tot mai mare și schimbarea profesorilor sunt ușor reportate la o arhitectura non-schimbare student. În cazurile în care am văzut probleme în această privință, creșterile ușoare ale capacității modelului Studențesc ar închide din nou decalajul.

Învățare dublă

Perspectiva cheie din spatele dual learning (El et al. 2016) este "Traducerea tur-retur" verifica faptul că oamenii folosesc uneori pentru a verifica calitatea traducerii. Să presupunem că folosim un Traducător online pentru a merge din engleză în italiană. Dacă nu citim italiana, știm dacă a făcut o treabă bună? Înainte de a face clic pe Trimite pe un e-mail, am putea alege pentru a verifica calitatea prin traducerea italiană înapoi la limba engleză (poate pe un alt site web). În cazul în care englezii ne întoarcem sa abătut prea departe de original, șansele sunt una dintre traducerile a plecat de pe șine.

Învățarea dublă utilizează aceeași abordare pentru a instrui două sisteme (de exemplu, Engleză-> Italiană și italiană-> English) în paralel, folosind traducerea tur-retur dintr-un sistem pentru a înscrie, valida și instrui celălalt sistem.

Dual learning a fost un contribuitor major la rezultatul cercetării noastre umane-paritate. Mergând de la sistemul de cercetare la rețeta noastră de producție, am generalizat această abordare în linii mari. Nu numai că am co-tren perechi de sisteme pe de ieșire reciproc, am folosit, de asemenea, același criteriu pentru filtrarea datelor noastre paralele.

Curățarea datelor incorecte

Sistemele de traducere automată sunt instruite pe "date paralele", adică perechi de documente care sunt traduceri ale celuilalt, create ideal de un traducător uman. După se dovedește, aceste date paralele este adesea plin de traduceri inexacte. Uneori, documentele nu sunt cu adevărat paralele, dar numai parafrazele pierde reciproc. Traducătorii umani pot alege să părăsească unele materiale sursă sau să introducă informații suplimentare. Datele pot conține greșeli de scriere, greșeli de ortografie, erori gramaticale. Uneori, Algoritmii noștri de date miniere sunt păcăliți de date similare, dar non-paralele, sau chiar de fraze în limba greșită. Cel mai rău dintre toate, o mulțime de pagini web vom vedea sunt spam, sau poate fi, de fapt, traduceri mașină, mai degrabă decât traduceri umane. Sistemele neuronale sunt foarte sensibile la acest tip de inexactitate în date. Am constatat că construirea modele neuronale pentru a identifica în mod automat și a scăpa de aceste inexactități a dat îmbunătățiri puternice în calitatea sistemelor noastre. Abordarea noastră privind filtrarea datelor a dus, în primul rând, la WMT18 paralel corpus filtrarea de referință (Junczys-Dowmunt 2018a) și a contribuit la construirea uneia dintre cele mai puternice sisteme de traducere engleză-germană WMT18 News traducere sarcină (Junczys-Dowmunt 2018b). Am folosit versiuni îmbunătățite ale acestei abordări în sistemele de producție pe care le-am lansat astăzi.

Factored Word reprezentări

Atunci când se deplasează o tehnologie de cercetare la producție, apar mai multe provocări din lumea reală. Noțiuni de numere, date, ori, capitalizare, spațiere, etc dreptul contează mult mai mult în producție decât într-un sistem de cercetare.

Gândiți-vă la provocarea capitalizării. Dacă suntem Traducerea pedepsei "WATCH CAT video aici". Știm să traducem pisică. Am vrea să traducem "CAT" în același mod. Dar acum ia în considerare "Watch US Soccer aici". Noi nu vrem să confunde cuvântul "noi" și acronimul "SUA" în acest context.

Pentru a rezolva acest lucru, am folosit o abordare cunoscută sub numele de masina de traducere luat (Koehn și Hoang 2007Sennrich și Haddow 2016) care funcționează după urmează. În loc de o singură reprezentare numerică ("încorporarea") pentru "pisică" sau "CAT", vom folosi mai multe embeddings, cunoscut sub numele de "factori". În acest caz, încorporarea primară ar fi aceeași pentru "CAT" și "pisică", dar un factor separat ar reprezenta capitalizarea, arătând că a fost toate-capace într-o singură instanță, dar minuscule în cealaltă. Factori similali sunt utilizați pe sursă și partea țintă.

Utilizăm factori similali pentru a manipula fragmente de cuvânt și Spațiere între cuvinte (o problemă complexă în limbi non-spațiere sau semi-spațiere, ar fi chineză, coreeană, japoneză sau thailandeză).

Factori, de asemenea, îmbunătățit dramatic Traducerea numerelor, care este critic în multe scenarii. Traducerea numerelor este în mare parte o transformare algoritmică. De exemplu, 1.234.000 poate fi scris ca 12, 34000 în hindi, 1.234.000 în limba germană, și 123,4 万 în chineză. În mod tradițional, numerele sunt reprezentate ca cuvinte, ca grupuri de caractere de lungime variabilă. Acest lucru face greu pentru învățarea mașinii pentru a descoperi algoritmul. În schimb, hrănim fiecare cifră a unui număr separat, cu factori care marchează începutul și sfârșitul. Acest truc simplu cu puternic și fiabil eliminat aproape toate erorile de numărul de traducere.

Mai rapid model de formare

Când suntem de formare un sistem unic spre un singur scop, așa am făcut pentru proiectul de cercetare om-paritate, ne așteptăm să arunce un număr mare de hardware la modele care iau săptămâni pentru a instrui. Când formați modele de producție pentru perechi de limbi 20 +, această abordare devine de neconceput. Nu numai că avem nevoie de momente rezonabile de viraj, dar trebuie să moderăm și cerințele noastre hardware. Pentru acest proiect, am făcut o serie de îmbunătățiri de performanță pentru a Marian NMT (Junczys-Dowmunt et al. 2018b).

Marian NMT este open-source neuronale MT Toolkit că Microsoft Translator se bazează pe. Marian este un pur C++ neuronale mașină de traducere Toolkit, și, ca rezultat, extrem de eficient, nu necesită GPU-urilor la Runtime, și foarte eficient la timp de formare

Datorită naturii sale auto-conținute, este destul de ușor pentru a optimiza marian pentru sarcini specifice NMT, ceea ce duce la unul dintre cele mai eficiente Toolkit NMT disponibile. Uită-te la Repere. Dacă sunteți interesat de neuronale MT cercetare și dezvoltare, vă rugăm să se alăture și să contribuie la Comunitate pe GitHub.

Îmbunătățirile noastre privind formarea și decodarea cu precizie mixtă, precum și pentru formarea de modele mari vor fi puse în curând la dispoziție în depozitul public GitHub.

Suntem incantati de viitorul de traducere a mașinii neuronale. Vom continua să rola noul model de arhitectura la limbile rămase și Traducător personalizat pe parcursul acestui an. Utilizatorii noștri vor obține automat traducerile în mod semnificativ mai bine de calitate prin Translator API, our Translator App, Microsoft Office și browserul Edge. Sperăm că noile îmbunătățiri vă ajută viața personală și profesională și așteaptă cu nerăbdare feedback-ul dumneavoastră.

 

Referinţe

  • Jimmy Ba și Rich Caruana. 2014. nu adânc plase într-adevăr nevoie pentru a fi Deep? Avansuri în sistemele de procesare a informației neuronale 27. Paginile 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, Fei Tian, Lijun Wu, Shuangzhi Wu, Yingce Xia, Dongdong Zhang, Zhirui Zhang, Ming Zhou. 2018. atingerea omului paritate pe automat chinez la engleză News traducere. http://arxiv.org/abs/1803.05567
  • El, di și Xia, Yingce și Qin, Tao și Wang, Liwei și Yu, Nenghai și Liu, tie-Yan și ma, Wei-Ying. 2016. Dual Learning pentru Machine traducere. Avansuri în sisteme de procesare a informației neuronale 29. Paginile 820-828. https://papers.nips.cc/paper/6469-dual-learning-for-machine-translation
  • Marcin Junczys-Dowmunt. 2018a. Dual condiționată Cross-entropie de filtrare a Noisy paralel corpora. Procedurile din a treia conferință privind Traducerea mașinii: documente de activitate partajate. Belgia, paginile 888-895. https://aclweb.org/anthology/papers/W/W18/W18-6478/
  • Marcin Junczys-Dowmunt. 2018b. Microsoft prezentarea la WMT2018 News traducere sarcina: am învățat să nu mai îngrijorătoare și dragoste de date. Procedurile din a treia conferință privind Traducerea mașinii: documente de activitate partajate. Belgia, paginile 425-430. https://www.aclweb.org/anthology/W18-6415/
  • Marcin Junczys-Dowmunt, Kenneth Pagan, Hieu Hoang, Roman Grundkiewicz, Anthony Aue. 2018a. marian: cost-eficiente de înaltă calitate neuronale Machine traducere în C++. Procedurile din al 2-lea workshop pe neuronale Machine traducere și generație. Melbourne, Australia, paginile 129-135. https://aclweb.org/anthology/papers/W/W18/W18-2716/
  • Marcin Junczys-Dowmunt, Roman Grundkiewicz, Tomasz Dwojak, Hieu Hoang, Kenneth Păgânfield, Tom Neckermann, Frank Seide, Ulrich germann, Alham Fikri Aji, Nikolay Bogoychev, André F. T. Martins, Alexandra mesteacăn. 2018b. marian: Fast neuronale Machine traducere în C++. Procedura de ACL 2018, demonstrații de sistem. Melbourne, Australia, paginile 116-121. https://www.aclweb.org/anthology/P18-4020/
  • Yoon Kim și Alexander M. Rush. 2016. la nivel de secvență de distilare a cunoștințelor. În cadrul procedurilor Conferinței 2016 privind metodele empirice în procesarea limbajului natural, EMNLP 2016, Austin, Texas, SUA, noiembrie 1-4, 2016, paginile 1317 – 1327. https://aclweb.org/anthology/papers/D/D16/D16-1139/
  • Philipp Koehn, Hieu Hoang. 2007. modele de traducere factored. Procedurile Conferinței comune 2007 privind metodele empirice în procesarea limbajului natural și învățarea limbilor naturale computaționale (EMNLP-CoNLL). Praga, Cehia, paginile 868-876. https://www.aclweb.org/anthology/D07-1091/
  • Rico Sennrich, Barry Haddow. 2016. caracteristici lingvistice de intrare îmbunătăți Traducerea neuronale Machine. Procedura de prima conferinta privind masina de traducere: Volumul 1, lucrari de cercetare. Berlin, Germania, paginile 83-91. https://www.aclweb.org/anthology/W16-2209/
  • Vaswani, Ashish și shazeer, Noam și Parmar, Niki și Uszkoreit, Jakob și Jones, Llion și Gomez, Aidan N și Kaiser, Lukasz și Polosukhin, illia. 2017. atentie este tot ce ai nevoie. Avansuri în sisteme de procesare a informației neuronale 30. Paginile 5998-6008. https://papers.nips.cc/paper/7181-attention-is-all-you-need