Przejdź do głównej zawartości
Translator
Ta strona została automatycznie przetłumaczona przez usługę tłumaczenia maszynowego Microsoft Translator. Dowiedz się więcej

Blog Microsoft Translator

Translacja maszyn neuronowych umożliwiająca ludzkie parytet innowacje w chmurze

W marcu 2018 Ogłosił (Hassan et al. 2018) przełomowy wynik, w którym pokazaliśmy po raz pierwszy system tłumaczenia maszynowego, który mógłby wykonać, jak również tłumaczy ludzkich (w konkretnym scenariuszu-chiński-angielski tłumaczenie wiadomości). To był ekscytujący przełom w badaniach tłumaczenia maszynowego, ale system zbudowany dla tego projektu był złożony, ciężki system badawczy, zawierający wiele najnowocześniejszych technik. Podczas gdy wydaliśmy wyjście tego systemu na kilka zestawów testowych, sam system nie był odpowiedni do wdrożenia w czasie rzeczywistym tłumaczenie maszynowe chmura API.

Dziś jesteśmy podekscytowani, aby ogłosić dostępność w produkcji najnowszej generacji modeli neuronowe tłumaczenia maszynowego. Te modele zawierają większość dobroci naszego systemu badawczego i są teraz dostępne domyślnie podczas korzystania z interfejsu API Microsoft Translator. Te nowe modele są dostępne obecnie w języku chińskim, niemieckim, francuskim, hindi, włoskim, hiszpańskim, japońskim, koreańskim i rosyjskim, z i na angielski. Więcej języków już wkrótce.

Uzyskiwanie od papieru badawczego do interfejsu API chmury

W ciągu ostatniego roku, Szukaliśmy sposobów, aby przynieść wiele jakości naszego systemu ludzkiego parzystości do Microsoft Translator API, przy jednoczesnym dalszym oferowaniem tanich tłumaczeń w czasie rzeczywistym. Oto kilka kroków w tej podróży.

Szkolenia dla nauczycieli i uczniów

Naszym pierwszym krokiem było przejście na platformę "nauczyciel-uczeń", w której trenujemy lekką studentkę w czasie rzeczywistym, aby naśladować sieć nauczycieli ciężkich (BA i Caruana 2014). Odbywa się to poprzez szkolenie ucznia nie na równoległych danych, że systemy MT są zwykle przeszkoleni, ale na tłumaczenia produkowane przez nauczyciela (Kim i Rush 2016). Jest to prostsze zadanie niż uczenie się od surowych danych i pozwala płytszy, prostszego ucznia bardzo uważnie śledzić złożonego nauczyciela. Jak można się spodziewać, nasze początkowe próby nadal poniósł spadek jakości od nauczyciela do studenta (bez darmowego obiadu!), ale mimo to zajął pierwsze miejsce w WNMT 2018 wspólne zadanie na efektywne dekodowanie (Junczys-Dowmunt et al. 2018a). Niektóre szczególnie ekscytujące wyniki z tego wysiłku były, że transformator (Vaswani et al. 2017) modele i ich modyfikacje dobrze bawić się z nauczycielem szkolenia studenta i są zdumiewająco wydajne podczas wnioskowania na CPU.

Uczenie się od tych wstępnych wyników i po wielu iteracji odkryliśmy przepis, który pozwala naszym prostym studentem mieć prawie taką samą jakość jak skomplikowany nauczyciel (czasami jest wolny lunch po wszystkim?). Teraz byliśmy swobodnie budować duże, skomplikowane modele nauczycieli, aby zmaksymalizować jakość, nie martwiąc się o ograniczenia w czasie rzeczywistym (za dużo).

Tłumaczenie w czasie rzeczywistym

Nasza decyzja o przełączeniu się na ramy nauczyciela-studenta była motywowana wielkim dziełem Kim i Rush (2016) dla prostych modeli opartych na RNN. W tym momencie nie było jasne, czy zgłoszone korzyści objawiłyby się również w modelach transformatorów (zob. Vaswani et al. 2017 Szczegółowe informacje na temat tego modelu). Jednak szybko odkryliśmy, że rzeczywiście tak było.

Student Transformer może użyć znacznie uproszczonego algorytmu dekodowania (chciwy wyszukiwania), gdzie po prostu wybrać jeden najlepiej przetłumaczone słowo na każdym kroku, a nie zwykłej metody (Beam-Search), który obejmuje wyszukiwanie przez ogromną przestrzeń możliwych Tłumaczenia. Zmiana ta miała minimalny wpływ na jakość, ale doprowadziła do dużej poprawy szybkości tłumaczenia. Natomiast model nauczyciela poniósł znaczny spadek jakości podczas przełączania z Beam-Search do chciwego-Search.

W tym samym czasie, zdaliśmy sobie sprawę, że zamiast korzystać z najnowszej architektury neuronowej (transformator z uwagi na siebie) w dekoderze, uczeń może być zmodyfikowany, aby użyć drastycznie uproszczone i szybsze nawracające (RNN) Architektura. Ma to znaczenie, ponieważ podczas gdy koder transformatora może być obliczany równolegle w zdaniu całego źródła, zdanie docelowe jest generowane jedno słowo naraz, więc szybkość dekodera ma duży wpływ na ogólną szybkość tłumaczenia. W porównaniu z uwagą, powtarzający się dekoder redukuje złożoność algorytmiczną z kwadratowego na liniową długość zdania docelowego. Zwłaszcza w ustawieniu nauczyciel-uczeń, nie widzieliśmy straty w jakości ze względu na te modyfikacje, ani dla automatycznych, ani dla ludzi wyników oceny. Kilka dodatkowych ulepszeń, takich jak udostępnianie parametrów, doprowadziło do dalszej redukcji złożoności i zwiększonej szybkości.

Kolejną zaletą ramy dla nauczycieli i studentów byliśmy bardzo podekscytowani, że poprawa jakości w czasie stale rozwijających się i zmieniających się nauczycieli są łatwo przenoszone do niezmieniającej się architektury studenckiej. W przypadkach, w których widzieliśmy problemy w tym względzie, niewielkie wzrosty zdolności modelu studenta ponownie zamkną lukę.

Podwójna nauka

Kluczowym spostrzeżeniem za podwójny uczenia się (On et al. 2016) to "tłumaczenie w obie strony" sprawdza, czy ludzie czasami używają do sprawdzania jakości tłumaczenia. Załóżmy, że używamy tłumacza online, aby przejść z angielskiego na włoski. Jeśli nie czytamy włoski, skąd wiemy, czy to zrobić dobrą robotę? Przed kliknięciem przycisku Wyślij na e-mail, możemy wybrać, aby sprawdzić jakość tłumacząc włoski z powrotem do angielskiego (może na innej stronie internetowej). Jeśli angielski wracamy ma zeszli zbyt daleko od oryginału, szanse są jednym z tłumaczeń poszedł z szyn.

Dual Learning korzysta z tego samego podejścia do szkolenia dwóch systemów (np. angielski-> włoski i włoski-> angielski) równolegle, za pomocą tłumaczenia w obie strony z jednego systemu, aby zdobyć, zweryfikować i trenować inny system.

Podwójne uczenie się było ważnym czynnikiem przyczyniającym się do wyników badań z parytetu ludzkiego. W przejściu z systemu badawczego do naszego przepisu produkcyjnego, uogólnione to podejście szeroko. Nie tylko my wspólnie trenować pary systemów na wyjściu nawzajem, użyliśmy również tego samego kryterium filtrowania naszych danych równoległych.

Czyszczenie nieprawidłowych danych

Systemy tłumaczenia maszynowego są przeszkolone w zakresie "danych równoległych", czyli par dokumentów, które są przekładami, najlepiej stworzonymi przez człowieka tłumacza. Jak się okazuje, te równoległe dane często są pełne niedokładnych tłumaczeń. Czasami dokumenty nie są prawdziwie równoległe, ale tylko luźne parafrazuje siebie nawzajem. Tłumacze pisemni mogą zdecydować się na opuszczenie jakiegoś materiału źródłowego lub wstawienie dodatkowych informacji. Dane mogą zawierać literówki, błędy ortograficzne i gramatyczne. Czasami nasze algorytmy górnictwa danych są oszukani przez podobne, ale nierównoległe dane, a nawet przez zdania w złym języku. Co najgorsze, wiele stron internetowych, które widzimy są spam, lub może być w rzeczywistości tłumaczenia maszynowego, a nie ludzkie tłumaczenia. Systemy neuronowe są bardzo wrażliwe na tego rodzaju niedokładności w danych. Okazało się, że budowanie modeli neuronowych, aby automatycznie zidentyfikować i pozbyć się tych nieścisłości dał silną poprawę jakości naszych systemów. Nasze podejście do filtrowania danych zaowocowało pierwszym WMT18 równoległe filtrowanie korpusu Benchmark (Junczys-Dowmunt 2018a) i pomógł zbudować jeden z najsilniejszych angielsko-niemieckich systemów tłumaczeniowych w WMT18 zadanie tłumaczenia wiadomości (Junczys-Dowmunt 2018b). W systemach produkcyjnych, które wydaliśmy dzisiaj, używaliśmy ulepszonych wersji tego podejścia.

Factored reprezentacji wyrazów

Przeprowadzając technologię badawczą do produkcji, powstają liczne wyzwania w świecie rzeczywistym. Uzyskiwanie liczb, dat, godzin, kapitalizacji, odstępów itp. prawo liczy się o wiele więcej w produkcji niż w systemie badawczym.

Zastanów się nad wyzwaniem kapitalizacji. Jeśli tłumaczymy zdanie "WATCH CAT Video HERE". Wiemy jak przetłumaczyć "kota". Chcielibyśmy przetłumaczyć "CAT" w ten sam sposób. Ale teraz rozważyć "Watch US Soccer tutaj". Nie chcemy mylić słowa "nas" i akronimu "USA" w tym kontekście.

Aby obsłużyć to, użyliśmy podejście znane jako faked tłumaczenie maszynowe (Koehn i Hoang 2007Sennrich i Haddow 2016), który działa w następujący sposób. Zamiast pojedynczej reprezentacji liczbowej ("osadzanie") dla "Cat" lub "CAT", używamy wielu osadzeń, zwanych "czynnikami". W tym przypadku osadzanie podstawowe byłoby takie same dla "CAT" i "kot", ale oddzielny czynnik może reprezentować kapitalizacji, pokazując, że był All-caps w jednym wystąpieniu, ale małe litery w drugim. Podobne czynniki są używane na źródle i stronie docelowej.

Używamy podobnych czynników do obsługi fragmentów wyrazów i odstępów między wyrazami (złożony problem w językach nieodstępnych lub półodstępów, takich jak chiński, koreański, japoński lub tajski).

Czynniki znacznie poprawiły również translację liczb, co ma krytyczne znaczenie w wielu scenariuszach. Translacja liczb jest głównie transformacją algorytmiczną. Na przykład 1 234 000 można zapisać jako 12, 34000 w języku hindi, 1.234.000 po niemiecku i 123,4 万 w języku chińskim. Tradycyjnie liczby są reprezentowane jak słowa, jako grupy znaków o różnej długości. To sprawia, że trudno uczenia maszynowego odkryć algorytm. Zamiast tego, możemy karmić każdą cyfrę liczby oddzielnie, z czynnikami oznaczające początek i koniec. Ta prosta sztuczka solidnie i niezawodnie usunęła prawie wszystkie błędy translacji liczb.

Faster model Training

Kiedy trenujemy jeden system w kierunku jednego celu, jak zrobiliśmy dla projektu badawczego parytetu, spodziewamy się rzucać ogromną liczbę sprzętu w modelach, które trwają tygodnie do pociągu. Podczas szkolenia modeli produkcyjnych dla 20 + par językowych, takie podejście staje się nie do przebycia. Musimy nie tylko rozsądnie odwrócić czasy, ale musimy również moderować nasze wymagania sprzętowe. W tym projekcie wprowadzono szereg ulepszeń w zakresie wydajności Marian NMT (Junczys-Dowmunt et al. 2018b).

Marian NMT jest open-source neuronowe MT Toolkit, że Microsoft Translator opiera się na. Marian jest czystym C++ maszyna neuronowa tłumaczenie narzędzi, i, w rezultacie, bardzo wydajne, nie wymaga GPU w czasie wykonywania, i bardzo wydajny w czasie szkolenia

Ze względu na swój samodzielny charakter, bardzo łatwo jest zoptymalizować Marian dla NMT określonych zadań, co skutkuje jednym z najbardziej wydajnych narzędzi NMT dostępnych. Przyjrzyj się Wskaźników. Jeśli jesteś zainteresowany neuronowe MT badań i rozwoju, Proszę dołączyć i przyczynić się do społeczność na GitHub.

Nasze ulepszenia w zakresie szkolenia i dekodowania mieszanych precyzji, jak również w przypadku dużego modelu szkolenia zostaną wkrótce udostępnione w publicznym repozytorium GitHub.

Jesteśmy podekscytowani przyszłością translacji maszyn neuronowych. Będziemy kontynuować nową architekturę modelu do pozostałych języków i Niestandardowy translator przez cały ten rok. Nasi użytkownicy automatycznie otrzymają znacznie lepszą jakość tłumaczeń poprzez Translator APINaszej Translator aplikacji, Microsoft Office i przeglądarki Edge. Mamy nadzieję, że nowe ulepszenia pomogą Ci w życiu osobistym i zawodowym oraz czekamy na wasze opinie.

 

Odwołania

  • Jimmy BA i Rich Caruana. 2014. czy głębokie sieci naprawdę muszą być głębokie? Postęp w neuronowych systemów przetwarzania informacji 27. Strony 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. osiągnięcie ludzkiej parytetu na automatyczne chiński do angielskiego tłumaczenia wiadomości. http://arxiv.org/abs/1803.05567
  • On, di i Xia, Yingce i Qin, Tao i Wang, Liwei i Yu, Nenghai i Liu, tie-Yan i ma, Wei-Ying. 2016. Dual learning dla tłumaczenia maszynowego. Postęp w neuronowych systemów przetwarzania informacji 29. Strony 820-828. https://papers.nips.cc/paper/6469-dual-learning-for-machine-translation
  • Marcin Junczys-Dowmunt. 2018a. podwójny warunkowe filtrowanie krzyżowych entropii hałaśliwych ciał równoległych. Postępowanie trzeciej konferencji w sprawie tłumaczenia maszynowego: wspólne dokumenty zadań. Belgia, strony 888-895. https://aclweb.org/anthology/papers/W/W18/W18-6478/
  • Marcin Junczys-Dowmunt. 2018b. przedłożenie Microsoft do WMT2018 News translation zadanie: Jak dowiedziałem się przestać martwić i love danych. Postępowanie trzeciej konferencji w sprawie tłumaczenia maszynowego: wspólne dokumenty zadań. Belgia, strony 425-430. https://www.aclweb.org/anthology/W18-6415/
  • Marcin Junczys-Dowmunt, Kenneth Heafield, Hieu Hoang, Roman Grundkiewicz, Anthony Aue. 2018a. Marian: efektywne kosztowo wysokiej jakości translacja maszyn neuronowych w języku C++. Postępowanie 2 warsztaty na temat translacji maszyn neuronowych i generowania. Melbourne, Australia, strony 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. 2018b. Marian: szybkie translacja maszyn neuronowych w języku C++. Postępowanie z ACL 2018, demonstracje systemowe. Melbourne, Australia, strony 116-121. https://www.aclweb.org/anthology/P18-4020/
  • Yoon kim i Alexander M. Rush. 2016. destylacja wiedzy na poziomie sekwencji. W postępowaniu z konferencji 2016 na temat metod empirycznych w przetwarzaniu języka naturalnego, EMNLP 2016, Austin, Teksas, USA, Listopad 1-4, 2016, strony 1317 – 1327. https://aclweb.org/anthology/papers/D/D16/D16-1139/
  • Philipp Koehn, Hieu Hoang. 2007. factored modele tłumaczeń. Postępowanie z 2007 wspólnej konferencji na temat metod empirycznych w przetwarzaniu języka naturalnego i uczenia się języka naturalnego (EMNLP-CoNLL). Praga, Czechy, strony 868-876. https://www.aclweb.org/anthology/D07-1091/
  • Marcin. 2016. językowe funkcje wejściowe poprawiają translację maszyn neuronowych. Postępowanie z pierwszej konferencji w sprawie tłumaczenia maszynowego: Tom 1, dokumenty badawcze. Berlin, Niemcy, strony 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, Łukasz i Polosukhin, Illia. 2017. Uwaga jest potrzebna. Postępy w neuronowych systemów przetwarzania informacji 30. Strony 5998-6008. https://papers.nips.cc/paper/7181-attention-is-all-you-need