Programmering

Open source challenger tar på Google Translate

Forskere har gitt ut et åpen kildekode nevralt nettverkssystem for å utføre språkoversettelser som kan være et alternativ til proprietære oversettelsestjenester i svart boks.

Open Source Neural Machine Translation (OpenNMT) fusjonerer arbeid fra forskere ved Harvard med bidrag fra skaperinnehaveren Systran fra mange år. Den kjører på Torch Scientific Computing Framework, som også brukes av Facebook for maskinlæringsprosjekter.

Ideelt sett kunne OpenNMT fungere som et åpent alternativ til prosjekter med lukket kildekode som Google Translate, som nylig mottok en stor makeover i nevrale nettverk for å forbedre kvaliteten på oversettelsen.

Men algoritmene er ikke den vanskelige delen; det kommer med gode datakilder for å støtte oversettelsesprosessen - det er her Google og de andre skygigantene som tilbyr maskinoversettelse som en tjeneste, har kanten.

Taler i tunger

OpenNMT, som bruker Lua-språket til å grensesnitt med Torch, fungerer som andre produkter i sin klasse. Brukeren forbereder en mengde data som representerer de to språkparene som skal oversettes - vanligvis den samme teksten på begge språk som oversatt av en menneskelig oversetter. Etter å ha trent OpenNMT på disse dataene, kan brukeren deretter distribuere den resulterende modellen og bruke den til å oversette tekster.

Torch kan dra nytte av GPU-akselerasjon, noe som betyr at opplæringsprosessen for OpenNMT-modeller kan fremskyndes mye på ethvert GPU-utstyrt system. Når det er sagt, kan opplæringsprosessen ta lang tid - "noen ganger mange uker." Men opplæringsprosessen kan øyeblikksbilde og gjenopptas på forespørsel om nødvendig. Hvis du vil bruke den trente modellen på en CPU i stedet for en GPU, må du konvertere modellen til å fungere i CPU-modus. OpenNMT gir et verktøy for å gjøre akkurat det.

En live demo levert av Systran hevder å bruke OpenNMT i forbindelse med Systrans eget arbeid. For vanlige språkpar som engelsk / fransk er oversettelsene ganske nøyaktige. For par der det sannsynligvis vil være en mindre mengde tekster tilgjengelig, eller der språkparene ikke kartlegges like presist til hverandre - for eksempel engelsk / japansk - er oversettelsene litt mer stilete og upresise. I en japansk setningseksempel mistok Systran-demoen ordet "måker" på japansk som "hengende ruller;" Google Translate oversatte det riktig.

Ord, ord, ord

Det mest avgjørende elementet som OpenNMT ennå ikke leverer, er forhåndsutdannede språkmodelldata. En lenke til eksempelmodeller på GitHub-nettstedet for prosjektet gir for øyeblikket en feil. Antagelig i tide vil dette inneholde eksempeldata som kan brukes til å måle systemet eller få en følelse av hvordan opplærings- og distribusjonsprosessen fungerer. Men det inkluderer sannsynligvis ikke data som kan brukes i et produksjonsmiljø.

Dette begrenser hvor nyttig OpenNMT er ute av boksen, siden modelldataene er minst like avgjørende for maskinoversettelse som algoritmene selv. Å oversette mellom språkpar krever parallelle korpusar, eller tekster på begge språk som er nært tilpasset hverandre på setnings-for-setnings- eller setnings-for-setningsnivå, og kan trenes i å gi modeller i produkter som OpenNMT.

Mange corpora er fritt tilgjengelig, men krever kulling for hånd for å være nyttig for den gjennomsnittlige utvikleren. Leverandører som Google - og IBM, med Language Translator-systemet på Watson - har en fordel ved at de enkelt kan bygge korpora med sine andre tjenester. Google kan automatisk høste store mengder med kontinuerlig oppdaterte språkdata ved hjelp av søkemotoren.

Fremdeles er OpenNMT nødt til å være nyttig for de som ønsker å bygge ny funksjonalitet på toppen av OpenNMTs modellerings- og opplæringskode, og ikke vil være avhengige av en bak-API-algoritme som Google for å gjøre det.

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