Lo sfidante open source affronta Google Translate

I ricercatori hanno rilasciato un sistema di rete neurale open source per eseguire traduzioni linguistiche che potrebbe essere un'alternativa ai servizi di traduzione proprietari a scatola nera.

Open Source Neural Machine Translation (OpenNMT) unisce il lavoro dei ricercatori di Harvard con i contributi del creatore di software di traduzione automatica di lunga data Systran. Funziona sul framework di calcolo scientifico Torch, utilizzato anche da Facebook per i suoi progetti di machine learning.

Idealmente, OpenNMT potrebbe servire come alternativa aperta a progetti closed-source come Google Translate, che ha recentemente ricevuto un importante rinnovamento della rete neurale per migliorare la qualità della sua traduzione.

Ma gli algoritmi non sono la parte difficile; sta inventando buone fonti di dati per supportare il processo di traduzione, che è dove Google e gli altri giganti del cloud che forniscono la traduzione automatica come servizio hanno il vantaggio.

Parlando in lingue

OpenNMT, che utilizza il linguaggio Lua per interfacciarsi con Torch, funziona come gli altri prodotti della sua classe. L'utente prepara un corpo di dati che rappresenta le due coppie di lingue da tradurre, in genere lo stesso testo in entrambe le lingue tradotto da un traduttore umano. Dopo aver addestrato OpenNMT su questi dati, l'utente può quindi distribuire il modello risultante e utilizzarlo per tradurre i testi.

Torch può sfruttare l'accelerazione GPU, il che significa che il processo di addestramento per i modelli OpenNMT può essere notevolmente accelerato su qualsiasi sistema dotato di GPU. Detto questo, il processo di formazione può richiedere molto tempo, "a volte molte settimane". Ma il processo di formazione può essere acquisito e ripreso su richiesta, se necessario. Se desideri utilizzare il modello addestrato su una CPU anziché su una GPU, dovrai convertire il modello in modo che funzioni in modalità CPU. OpenNMT fornisce uno strumento per fare esattamente questo.

Una demo live fornita da Systran afferma di utilizzare OpenNMT insieme al lavoro di Systran. Per le coppie linguistiche comuni come l'inglese / il francese, le traduzioni sono abbastanza accurate. Per le coppie in cui è probabile che sia disponibile un corpo più piccolo di testi o in cui le coppie linguistiche non si associano in modo altrettanto preciso l'una all'altra, ad esempio inglese / giapponese, le traduzioni sono un po 'più artificiose e imprecise. In una frase giapponese di esempio, la demo di Systran ha scambiato la parola "gabbiani" in giapponese per "rotoli sospesi"; Google Translate lo ha tradotto correttamente.

Parole, parole, parole

L'elemento più cruciale che OpenNMT non fornisce ancora sono i dati del modello di linguaggio pre-addestrato. Un collegamento a modelli di esempio sul sito GitHub per il progetto attualmente restituisce un errore. Presumibilmente nel tempo questo includerà dati di esempio che possono essere utilizzati per confrontare il sistema o avere un'idea di come funziona il processo di formazione e distribuzione. Ma probabilmente non includerà dati che possono essere utilizzati in un ambiente di produzione.

Ciò limita l'utilità di OpenNMT fuori dagli schemi, poiché i dati del modello sono fondamentali per la traduzione automatica almeno quanto gli algoritmi stessi. La traduzione tra le coppie linguistiche richiede corpora paralleli o testi in entrambe le lingue che sono strettamente abbinati tra loro a livello frase per frase o frase per frase e possono essere addestrati per produrre modelli in prodotti come OpenNMT.

Molti corpora sono disponibili gratuitamente, ma richiedono un assemblaggio manuale per essere utili allo sviluppatore medio. Fornitori come Google e IBM, con il suo sistema Language Translator su Watson, hanno il vantaggio di poter creare facilmente corpora con gli altri servizi. Google può raccogliere automaticamente enormi quantità di dati linguistici costantemente aggiornati tramite il suo motore di ricerca.

Tuttavia, OpenNMT è destinato ad essere utile per coloro che vogliono creare nuove funzionalità in cima al codice di modellazione e formazione di OpenNMT e non vogliono dipendere da un algoritmo dietro l'API come quello di Google per farlo.