Il mercato dell'elaborazione del linguaggio naturale è in piena espansione e molti nuovi strumenti sono apparsi recentemente nell'ecosistema. Ecco le librerie, i framework, i linguaggi, i servizi e gli attori che dovresti conoscere per integrare la comprensione e la generazione di testo nel tuo progetto nel 2022.

Python è stato il linguaggio standard de facto nella scienza dei dati per molti anni. Se state lavorando ad un progetto di elaborazione del linguaggio naturale, molto probabilmente ci sarà del codice Python da qualche parte.
Python è un linguaggio di alto livello molto espressivo e semplice che lo rende perfettamente adatto alle applicazioni di apprendimento automatico. Ma ancora più importante, Python beneficia di un ecosistema completo di librerie e framework che rendono la vita degli scienziati dei dati più facile.
Che stiate lavorando a un progetto di ricerca o a un progetto di produzione, che stiate addestrando nuovi modelli o usandoli per l'inferenza, molto probabilmente dovrete usare Python. Se avete assolutamente bisogno di usare un altro linguaggio, potreste trovare delle belle librerie anche in altre lingue, ma solo per casi d'uso di base (per casi d'uso più avanzati, la soluzione sarà adottare una strategia di microservizi e usare una API REST).

Hugging Face Hub è un repository centrale che memorizza la maggior parte dei modelli di elaborazione del linguaggio naturale open-source.
Su Hugging Face, è facile scoprire nuovi modelli AI, ma anche caricare e condividere i tuoi. È anche un ottimo posto per navigare e trovare set di dati per il vostro prossimo progetto. Modelli e set di dati possono essere facilmente scaricati e utilizzati attraverso il loro framework Transformers (vedi sotto).
La visione di Hugging Face è di "democratizzare" l'elaborazione del linguaggio naturale e diventare il "Github dell'apprendimento automatico".

OpenAI è l'azienda dietro GPT-3, il modello di IA linguistica più avanzato mai creato.
Le 2 prime versioni di questo modello (GPT e GPT-2) erano open-source, ma OpenAI ha deciso che GPT-3 non sarà più open-source. Se volete usare GPT-3, dovete sottoscrivere l'API di OpenAI. Solo Microsoft ha accesso al codice sorgente di GPT-3 poiché ha acquistato una licenza esclusiva.
I modelli GPT sono modelli AI di generazione di testo che sono molto bravi a scrivere testo come un umano. In realtà è abbastanza difficile per un umano rilevare se un pezzo di testo è stato scritto da una persona reale o da GPT-3...
È costato milioni di dollari a OpenAI per progettare e addestrare questa nuova IA. Se volete usarla, dovrete passare attraverso un impegnativo processo di convalida poiché OpenAI non permette a tutti i tipi di applicazioni di utilizzare il loro modello.
Nuovi modelli open-source sono stati rilasciati per mettersi al passo con OpenAI come GPT-J e GPT-NeoX.

Questi siamo noi!
NLP Cloud è un'API che consente di utilizzare facilmente i modelli AI di elaborazione del linguaggio naturale più avanzati in produzione.
Per esempio potete generare testo con GPT-J e GPT-NeoX, riassumere contenuti con Bart Large CNN di Facebook, classificare un pezzo di testo con Roberta, estrarre entità con spaCy, tradurre contenuti con Opus MT... e molto altro.
Su NLP Cloud è anche possibile addestrare e mettere a punto la propria IA, o distribuire i propri modelli in-house. Per esempio, se vuoi creare il tuo chatbot medico basato su GPT-J, devi semplicemente caricare il tuo set di dati composto dai tuoi esempi provenienti dal tuo settore, quindi avviare il processo di formazione, e utilizzare il tuo modello finale in produzione attraverso l'API.

Deepspeed è un framework open-source di Microsoft che si concentra sulla parallelizzazione dei modelli.
Cosa significa esattamente?
I modelli AI stanno diventando sempre più grandi (vedi GPT-3, GPT-J, GPT-NeoX 20B, T0, Fairseq 13B...). Questi enormi modelli aprono la porta a tonnellate di nuove applicazioni, ma sono anche molto difficili da eseguire.
L'addestramento di questi modelli, e l'esecuzione affidabile in produzione per l'inferenza, possono essere fatti attraverso la scalabilità verticale (usando enormi GPU come NVIDIA A100 o Google TPUs) o la scalabilità orizzontale (usando diverse piccole GPU in parallelo).
Il secondo approccio è sempre più popolare perché è più economico e si scala meglio. Tuttavia, eseguire l'addestramento distribuito e l'inferenza è tutt'altro che facile, ed è per questo che Deepspeed aiuta molto.
Deepspeed era originariamente destinato a compiti di addestramento, ma ora è sempre più utilizzato per l'inferenza, poiché è facile da usare e si integra con Hugging Face Transformers (vedi sotto).

Big Science è un collettivo di ricercatori e aziende che lavorano su grandi modelli linguistici.
Il loro primo workshop ha prodotto un modello di IA chiamato T0 che si comporta molto bene nella comprensione delle istruzioni umane.
Ora stanno lavorando su modelli molto più grandi: il loro obiettivo è quello di creare modelli AI multilingue open-source che siano più grandi e più avanzati di GPT-3.

SpaCy è un framework di elaborazione del linguaggio naturale in Python che è perfettamente adatto alla produzione: è sia veloce che facile da giocare.
Questo è un framework mantenuto da una società tedesca di IA chiamata Explosion AI.
SpaCy è molto bravo nel riconoscimento di entità nominate (noto anche come estrazione di entità), e in circa 50 lingue diverse. Forniscono modelli pre-addestrati e si possono facilmente creare i propri modelli attraverso esempi annotati.
Il framework Transformers è stato rilasciato da Hugging Face un paio di anni fa. La maggior parte dei modelli avanzati di elaborazione del linguaggio naturale sono ora basati su Transformers.
Questo è un modulo Python che si basa su PyTorch, Tensorflow e Jax, che può essere utilizzato sia per l'allenamento che per l'inferenza.
Gli Hugging Face Transformers rendono molto facile scaricare e caricare i modelli su Hugging Face Hub.
La libreria tokenizers di Hugging Face è un insieme di tokenizers avanzati per l'elaborazione del linguaggio naturale, utilizzati da modelli basati su trasformatori.
La tokenizzazione consiste nel dividere un testo di input in piccole parole di sottoparole che possono poi essere codificate ed elaborate dal modello AI.
La tokenizzazione potrebbe sembrare un dettaglio, ma non lo è. In realtà è una parte critica dell'elaborazione del linguaggio naturale, e usare il tokenizzatore giusto fa una differenza enorme in termini di qualità dei risultati e delle prestazioni.
NLTK sta per Natural Language Toolkit. È un framework Python che è stato in giro per molti anni e che è ottimo per la ricerca e l'istruzione.
NLTK non è un framework orientato alla produzione, ma è perfetto per gli scienziati di dati che cercano di aumentare l'elaborazione del linguaggio naturale.
Il campo dell'elaborazione del linguaggio naturale si è notevolmente evoluto nel 2021. Oggi, sempre più aziende vogliono utilizzare i modelli di AI in produzione, ed è interessante vedere che nel 2022 l'ecosistema non ha praticamente nulla a che fare con quello che era 5 anni fa.
Le librerie e i framework stanno diventando sempre più avanzati, e la creazione di grandi modelli linguistici come GPT-3 solleva nuove sfide interessanti.
Non vedo l'ora di vedere come sarà il 2023!
Julien Salinas