Elaborazione multilingue del linguaggio naturale: NLP in lingue non inglesi

Eseguire l'elaborazione del linguaggio naturale in lingue non inglesi è una sfida. Oggi, è possibile ottenere grandi risultati con l'elaborazione multilingue del linguaggio naturale. Finalmente, chiunque può eseguire l'elaborazione del linguaggio naturale in francese, giapponese, spagnolo, russo, cinese, tedesco... e molto altro.

Multilingue

Perché l'elaborazione multilingue del linguaggio naturale è una sfida

Oggi nel mondo si parlano quasi 7000 lingue diverse! Ogni lingua ha le sue regole e alcune lingue possono funzionare in modo molto diverso. Per esempio il francese, lo spagnolo e l'italiano sono molto simili, ma non hanno niente a che vedere con le lingue asiatiche basate su ideogrammi o simboli come il cinese e il giapponese.

La conseguenza è che si devono usare tecniche diverse per creare modelli linguistici che siano in grado di trattare tutte queste lingue.

Per farla breve, lingue diverse potrebbero richiedere spazi vettoriali diversi, anche se esistono già alcune incorporazioni linguistiche pre-addestrate. Questo è un campo di ricerca attivo.

Quindi quali sono le soluzioni?

Formazione di modelli specifici non inglesi

Un primo approccio è quello di addestrare un modello per un linguaggio specifico. Per esempio, diverse nuove versioni di BERT sono state addestrate in varie lingue. German BERT, di Deepset AI, è un buon esempio di una nuova versione di BERT addestrata sulla lingua tedesca da da zero: vedere il BERT tedesco qui.

Il problema è che questa tecnica non scala bene. Addestrare un nuovo modello richiede tempo e costa molto denaro. Addestrare diversi modelli è ancora conveniente per piccoli modelli come spaCy, ed Explosion AI (l'azienda dietro spaCy) fa un ottimo lavoro nel mantenere diversi modelli pre-addestrati in molte lingue: vedere di più qui. But natural language processing models are getting bigger and bigger, and training these big models is very costly. For example, training the brand new GPT models (GPT-3, GPT-J and GPT-NeoX) took several weeks and cost million dollars. Training new versions of these models is not something everybody can do.

Inoltre non scala bene dal punto di vista dell'inferenza. Se un'azienda ha bisogno di usare l'elaborazione del linguaggio naturale in produzione in diverse lingue, dovrà mantenere diversi modelli e fornire diversi server e GPU. Può rivelarsi estremamente costoso. Questo è uno dei motivi per cui, in NLP Cloud, stiamo cercando di evitare questa strategia il più possibile.

Modelli multilingue

Un secondo approccio è quello di sfruttare i modelli multilingue.

In questi ultimi anni, sono apparsi nuovi modelli multilingue che hanno dimostrato di essere molto accurati. A volte anche più accurati dei modelli specifici non inglesi. I più popolari sono mBERT, XLM e XLM Roberta. XLM Roberta sembra essere il modello multilingue più accurato, e si sta comportando molto bene sul dataset di valutazione XNLI (una serie di valutazioni per valutare la qualità dei modelli multilingue).

Sono disponibili alcuni ottimi modelli pre-addestrati basati su XLM Roberta. Per esempio, per la classificazione del testo in molte lingue, il migliore è XLM Roberta Large XNLI: vedere questo modello qui.

Per il momento non esiste un buon modello multilingue per la generazione di testo. Per esempio GPT è eccellente in inglese e non così male in diverse lingue non inglesi, ma tutt'altro che impressionante. Big Science sta attualmente lavorando su modelli di generazione di testo multilingue molto grandi. Sembra promettente! Vedere di più qui..

Big Science multilingue 176 miliardi di parametri trasformatori modello
Big Science ha appena annunciato un modello di trasformatori multilingue da 176 miliardi di parametri

Traduzione al salvataggio

L'ultima strategia è quella di usare la traduzione. L'idea è quella di tradurre il contenuto non inglese in inglese, inviare il contenuto inglese al modello e tradurre il risultato nella lingua originale.

Questa tecnica potrebbe sembrare un trucco, ma ha dei vantaggi. Mantenere un flusso di lavoro di traduzione potrebbe essere meno costoso che addestrare modelli dedicati, e tutte le lingue del mondo possono essere facilmente supportate.

Negli ultimi anni, sono stati creati modelli di traduzione avanzati basati sull'apprendimento profondo. Sono entrambi veloci e danno risultati molto buoni. Per esempio, Helsinki NLP ha rilasciato una serie di modelli di traduzione basati sul deep learning. Puoi usare i più popolari su NLP Cloud: vedere di più qui.

Aggiungendo la traduzione al vostro flusso di lavoro, il tempo di risposta complessivo aumenterà però. Quindi potrebbe non essere adatto se state cercando risultati molto veloci.

Conclusione

L'elaborazione multilingue del linguaggio naturale non è un problema risolto, ma negli ultimi anni sono stati fatti molti progressi. Ora è possibile eseguire l'elaborazione del linguaggio naturale in lingue non inglesi con ottimi risultati, grazie a modelli specifici, modelli multilingue e traduzione.

In NLP Cloud, crediamo che la comprensione e la generazione di testo in molte lingue sia fondamentale, quindi abbiamo rilasciato un add-on specifico chiamato "add-on multilingue". Una volta attivato, tutti i nostri modelli AI possono lavorare bene in più di 20 lingue, compresi i modelli GPT come GPT-J e GPT-NeoX: vedere qui.. We also propose advanced multilingual models like spaCy and XLM Roberta. tr%}

Julien Salinas
CTO di NLP Cloud