Programmering

Open source udfordrer tager Google Translate

Forskere har frigivet et open source neuralt netværkssystem til udførelse af sprogoversættelser, der kan være et alternativ til proprietære oversættelsestjenester i sort boks.

Open Source Neural Machine Translation (OpenNMT) fletter arbejde fra forskere ved Harvard sammen med bidrag fra skaberen Systran, der har skabt maskinoversættelse af mange år. Det kører på Torch Scientific Computing Framework, som også bruges af Facebook til sine maskinindlæringsprojekter.

Ideelt set kunne OpenNMT tjene som et åbent alternativ til lukkede kildeprojekter som Google Translate, som for nylig modtog en større make-up for neurale netværk for at forbedre kvaliteten af ​​oversættelsen.

Men algoritmerne er ikke den hårde del; det kommer med gode datakilder til understøttelse af oversættelsesprocessen - det er her Google og de andre skygiganter, der leverer maskinoversættelse som en tjeneste, har kanten.

Taler i tunger

OpenNMT, der bruger Lua-sproget til at grænseflade med Torch, fungerer som andre produkter i sin klasse. Brugeren forbereder en række data, der repræsenterer de to sprogpar, der skal oversættes - typisk den samme tekst på begge sprog som oversat af en menneskelig oversætter. Efter træning af OpenNMT om disse data kan brugeren derefter implementere den resulterende model og bruge den til at oversætte tekster.

Torch kan drage fordel af GPU-acceleration, hvilket betyder, at træningsprocessen for OpenNMT-modeller kan fremskyndes meget på ethvert GPU-udstyret system. Når det er sagt, kan træningsprocessen tage lang tid - "nogle gange mange uger." Men træningsprocessen kan snapshotses og genoptages efter behov, hvis det er nødvendigt. Hvis du vil bruge den uddannede model på en CPU snarere end en GPU, skal du konvertere modellen til at arbejde i CPU-tilstand. OpenNMT giver et værktøj til at gøre netop det.

En live demo leveret af Systran hævder at bruge OpenNMT i forbindelse med Systrans eget arbejde. For almindelige sprogpar som engelsk / fransk er oversættelserne ret nøjagtige. For par, hvor der sandsynligvis vil være et mindre antal tekster til rådighed, eller hvor sprogparret ikke kortlægges så præcist til hinanden - siger engelsk / japansk - er oversættelserne lidt mere stilede og upræcise. I en eksempel på japansk sætning forvekslede Systran-demo ordet "måger" på japansk som "hængende ruller;" Google Translate oversatte det korrekt.

Ord, ord, ord

Det mest afgørende element, som OpenNMT endnu ikke leverer, er foruddannede sprogmodeldata. Et link til eksempelmodeller på GitHub-webstedet for projektet giver i øjeblikket en fejl. Formentlig med tiden vil dette indeholde eksempeldata, der kan bruges til at benchmarkere systemet eller få en fornemmelse for, hvordan trænings- og implementeringsprocessen fungerer. Men det inkluderer sandsynligvis ikke data, der kan bruges i et produktionsmiljø.

Dette begrænser, hvor nyttigt OpenNMT er uden for boksen, da modeldataene er mindst lige så vigtige for maskinoversættelse som algoritmerne selv. Oversættelse mellem sprogpar kræver parallel korpus eller tekster på begge sprog, der er tæt forbundet med hinanden på et sætning-for-sætning- eller sætning-for-sætning-niveau, og kan trænes i at give modeller i produkter som OpenNMT.

Mange korpusser er frit tilgængelige, men kræver kobling i hånden for at være nyttige for den gennemsnitlige udvikler. Leverandører som Google - og IBM med sit Language Translator-system på Watson - har en fordel ved, at de let kan opbygge korpus med deres andre tjenester. Google kan automatisk høste enorme mængder konstant opdaterede sprogdata ved hjælp af sin søgemaskine.

Alligevel er OpenNMT nødt til at være nyttigt for dem, der ønsker at opbygge ny funktionalitet oven på OpenNMTs modellerings- og træningskode og ikke ønsker at være afhængige af en bag-API-algoritme som Googles for at gøre det.