Programiranje

Odprtokodni izzivalec prevzame Google Translate

Raziskovalci so izdali odprtokodni sistem nevronske mreže za izvajanje jezikovnih prevodov, ki bi lahko bil alternativa lastniškim prevajalskim storitvam.

Open Source Neural Machine Translation (OpenNMT) združuje delo raziskovalcev na Harvardu s prispevki dolgoletnega ustvarjalca programske opreme za strojno prevajanje Systran. Deluje na ogrodju znanstvenega računalništva Torch, ki ga Facebook uporablja tudi za projekte strojnega učenja.

Idealno bi bilo, da bi OpenNMT služil kot odprta alternativa zaprtokodnim projektom, kot je Google Translate, ki je pred kratkim prejel pomembno preobrazbo nevronske mreže za izboljšanje kakovosti svojega prevoda.

Toda algoritmi niso najtežji del; ponuja dobre vire podatkov, ki podpirajo proces prevajanja - tam imajo prednost Google in drugi velikani v oblaku, ki zagotavljajo strojno prevajanje kot storitev.

Govorjenje v jezikih

OpenNMT, ki uporablja jezik Lua za vmesnik z Torch, deluje kot drugi izdelki v svojem razredu. Uporabnik pripravi zbirko podatkov, ki predstavlja dva jezikovna para, ki jih je treba prevesti - običajno enako besedilo v obeh jezikih, kot ga je prevedel človeški prevajalec. Po treningu OpenNMT na teh podatkih lahko uporabnik nato uvede nastali model in ga uporabi za prevajanje besedil.

Torch lahko izkoristi pospešek GPU, kar pomeni, da je proces usposabljanja za modele OpenNMT mogoče zelo pospešiti v katerem koli sistemu, opremljenem z GPU. Kljub temu lahko proces treninga traja dolgo - "včasih več tednov." Toda postopek usposabljanja lahko po potrebi posnamete in nadaljujete na zahtevo. Če želite izurjeni model uporabiti na CPU in ne na GPU, ga boste morali pretvoriti v delo v načinu CPU. OpenNMT ponuja orodje za natančno to.

Predstavitev v živo, ki jo ponuja Systran, trdi, da uporablja OpenNMT v povezavi z lastnim delom Systran. Za skupne jezikovne pare, kot sta angleščina / francoščina, so prevodi precej natančni. Za pare, pri katerih je verjetno, da bo na voljo manjši del besedil, ali kjer se jezikovni pari med seboj ne ujemajo tako natančno - recimo angleško / japonsko -, so prevodi nekoliko bolj nenavadni in neprecizni. V enem vzorčnem japonskem stavku je predstavitev Systran v japonščini napačno sprejela besedo "galebi" za "viseče zvitke;" Google Translate ga je pravilno prevedel.

Besede, besede, besede

Najpomembnejši element, ki ga OpenNMT še ne zagotavlja, so podatki o predhodno usposobljenih jezikovnih modelih. Povezava do Primernih modelov na spletnem mestu GitHub za projekt trenutno povzroča napako. Verjetno sčasoma bodo tu predstavljeni vzorčni podatki, ki jih je mogoče uporabiti za primerjavo sistema ali pridobiti vpogled v to, kako poteka postopek usposabljanja in uvajanja. Vendar verjetno ne bo vključeval podatkov, ki jih je mogoče uporabiti v proizvodnem okolju.

To omejuje, kako uporaben je OpenNMT, ki je na voljo, saj so podatki o modelu vsaj tako pomembni za strojno prevajanje kot algoritmi sami. Za prevajanje med jezikovnimi pari so potrebni vzporedni korpusi ali besedila v obeh jezikih, ki se med seboj tesno ujemajo na ravni od stavka do stavka ali od fraze do fraze in jih je mogoče usposobiti za ustvarjanje modelov v izdelkih, kot je OpenNMT.

Številni korpusi so prosto dostopni, vendar zahtevajo ročno tlakovanje, da so koristni za povprečnega razvijalca. Dobavljači, kot sta Google in IBM s sistemom za prevajanje jezikov na Watsonu, imajo prednost v tem, da lahko z drugimi storitvami zlahka gradijo korpuse. Google lahko s svojim iskalnikom samodejno zbira ogromne količine stalno osveženih jezikovnih podatkov.

Kljub temu bo OpenNMT zagotovo koristen tistim, ki želijo zgraditi novo funkcionalnost poleg kode za modeliranje in usposabljanje OpenNMT in ne želijo biti odvisni od algoritma za API-jem, kot je Googlov.

$config[zx-auto] not found$config[zx-overlay] not found