Negli articoli precedenti, NLP: una guida completa [parte 1] e NLP: una guida completa [parte 2], abbiamo introdotto cos’è l’elaborazione del linguaggio naturale, le sue possibili applicazioni e le tecniche principali usate per manipolare il testo e generare dei modelli. Per concludere questa panoramica esploreremo alcuni dei modelli più importanti e quali linguaggi di programmazione e librerie utilizzare per gestire e generare dei modelli NLP. Infine, affronteremo alcune controversie che si stanno affermando relativamente all’impiego di questi modelli.
Sei importanti modelli di elaborazione del linguaggio naturale
Nel corso degli anni, molti modelli di NLP hanno fatto scalpore all’interno della comunità dell’IA e alcuni sono finiti sulle prime pagine dei giornali. I più famosi sono stati i chatbot e i modelli linguistici. Eccone alcuni.
Eliza
Questo software è stato sviluppato a metà degli anni Sessanta per tentare di risolvere il Test di Turing, ossia per ingannare le persone facendogli credere che stanno conversando con un altro essere umano e non con una macchina. Eliza utilizzava il confronto di modelli e una serie di regole senza codificare il contesto del linguaggio.
Tay
Questo era il primo chatbot lanciato da Microsoft nel 2016. Doveva twittare come un adolescente e imparare dalle conversazioni con utenti reali su Twitter. Il bot ha adottato frasi di utenti che hanno twittato commenti sessisti e razzisti e Microsoft lo ha disattivato non molto tempo dopo. Tay illustra alcuni punti del documento “Stochastic Parrots”, in particolare il pericolo di non analizzare i dati.
BERT
Molti modelli di deep learning per l’NLP prendono il nome dai personaggi dei Muppet, tra cui ELMo, BERT, Big BIRD, ERNIE, Kermit, Grover, RoBERTa e Rosita. La maggior parte di questi modelli è in grado di fornire incorporazioni contestuali e una migliore rappresentazione della conoscenza.
Generative Pre-Trained Transformer 3 (GPT-3)
GPT-3 è un modello da 175 miliardi di parametri in grado di scrivere prosa originale con una fluidità equivalente a quella umana in risposta a una richiesta di input. Il modello si basa sull’architettura del trasformatore. La versione precedente, GPT-2, è open source. Microsoft ha acquisito una licenza esclusiva per l’accesso al modello sottostante di GPT-3 dal suo sviluppatore OpenAI, ma altri utenti possono interagire con esso tramite un’interfaccia di programmazione delle applicazioni (API). Diversi gruppi, tra cui EleutherAI e Meta, hanno rilasciato interpretazioni open source del GPT-3. Ad oggi la sua versione GPT-4 (solo a pagamento) viene utilizzata in molti contesti applicativi.
Language Model for Dialogue Applications (LaMDA)
LaMDA è un chatbot conversazionale sviluppato da Google. Il suo modello è basato su trasformatori addestrati sul dialogo piuttosto che sul solito testo web. Il sistema mira a fornire risposte sensate e specifiche alle conversazioni. Blake Lemoine, sviluppatore di Google, è arrivato a credere che LaMDA sia senziente. Lemoine ha avuto conversazioni dettagliate con l’intelligenza artificiale sui suoi diritti e sulla sua personalità. Durante una di queste conversazioni, l’IA ha fatto cambiare idea a Lemoine sulla terza legge della robotica di Isaac Asimov. Lemoine ha affermato che LaMDA era senziente, ma l’idea è stata contestata da molti osservatori e commentatori. In seguito, Google ha messo Lemoine in congedo amministrativo per aver distribuito informazioni proprietarie e infine lo ha licenziato.
Miscela di esperti (MoE)
Mentre la maggior parte dei modelli di deep learning utilizza lo stesso insieme di parametri per elaborare ogni input, i modelli MoE mirano a fornire parametri diversi per input diversi basati su algoritmi di routing efficienti per ottenere prestazioni più elevate. Switch Transformer è un esempio di approccio MoE che mira a ridurre i costi di comunicazione e di calcolo.
Linguaggi di programmazione, librerie e framework per l’elaborazione del linguaggio naturale
Molti linguaggi e librerie supportano l’NLP. Ecco alcuni dei più utilizzati.
Python
È sicuramente il linguaggio di programmazione più utilizzato per gestire i compiti di NLP. La maggior parte delle librerie e dei framework per il deep learning sono scritti per Python. Eccone alcune librerie molto utili se si vuole lavorare in questo campo.
Natural Language Toolkit (NLTK)
È una delle prime librerie NLP scritte in Python. Fornisce interfacce facili da usare per i corpora e le risorse lessicali come WordNet. Fornisce inoltre una suite di librerie di elaborazione del testo per la classificazione, il tagging, lo stemming, il parsing e il ragionamento semantico.
spaCy
spaCy è una delle librerie NLP open source più versatili in quanto supporta più di 66 lingue. Fornisce anche vettori di parole pre-addestrati e implementa molti modelli popolari come BERT. Può essere utilizzato per costruire sistemi pronti per la produzione per il riconoscimento di entità denominate, il tagging part-of-speech, il parsing delle dipendenze, la segmentazione delle frasi, la classificazione del testo, la lemmatizzazione, l’analisi morfologica e il riconoscimento di entità.
Librerie di deep learning
Le più diffuse librerie di deep learning includono TensorFlow e PyTorch, che facilitano la creazione di modelli con caratteristiche come la differenziazione automatica. Queste librerie sono gli strumenti più comuni per lo sviluppo di modelli NLP.
Hugging Face
Questa piattaforma offre implementazioni open-source di oltre 135 modelli all’avanguardia. Il repository consente una facile personalizzazione e definizione di modelli.
Gensim
Questa libreria fornisce algoritmi di modellazione dello spazio vettoriale e di topic modeling.
R
Molti dei primi modelli di NLP sono stati scritti in R che è ancora ampiamente utilizzato dai data scientists e dagli statistici. Le librerie in R per l’NLP includono TidyText, Weka, Word2Vec, SpaCyR, TensorFlow e PyTorch. Nonostante ciò le prestazioni di questo linguaggio rispetto a Python sono nettamente inferiori.
Molti altri linguaggi, tra cui JavaScript, Java e Julia, dispongono di librerie che implementano metodi NLP.
Controversie sull’elaborazione del linguaggio naturale
L’NLP è stata al centro di numerose controversie. Alcune sono incentrate direttamente sui modelli e sui loro risultati, altre su questioni di secondo ordine, come l’accesso a questi sistemi e l’impatto della loro formazione sul mondo naturale.
Pappagalli stocastici
Un articolo del 2021 intitolato “On the Dangers of Stochastic Parrots: Can Language Models Be Too Big?” di Emily Bender, Timnit Gebru, Angelina McMillan-Major e Margaret Mitchell esamina come i modelli linguistici possano ripetere e amplificare i pregiudizi riscontrati nei loro dati di addestramento. Gli autori sottolineano che gli enormi set di dati non curati, raccolti dal web, sono destinati a includere pregiudizi sociali e altre informazioni indesiderate, e i modelli che vengono addestrati su di essi assorbiranno questi difetti. I ricercatori invocano una maggiore attenzione nella cura e nella documentazione dei dataset, valutando l’impatto potenziale di un modello prima del suo sviluppo e incoraggiando la ricerca in direzioni diverse dalla progettazione di architetture sempre più grandi per ingerire dataset sempre più grandi.
Coerenza contro sensibilità
Di recente, un ingegnere di Google incaricato di valutare il modello linguistico LaMDA è rimasto talmente colpito dalla qualità della sua produzione di chat da credere che fosse senziente. L’errore di attribuire alle IA un’intelligenza simile a quella umana risale ad alcuni dei primi esperimenti di PNL.
Impatto ambientale
I modelli linguistici di grandi dimensioni richiedono molta energia sia per l’addestramento che per l’inferenza. Uno studio ha stimato che l’addestramento di un singolo modello linguistico di grandi dimensioni può emettere una quantità di anidride carbonica cinque volte superiore a quella di una singola automobile nel corso della sua vita operativa. Un altro studio ha rilevato che i modelli consumano ancora più energia durante l’inferenza che durante l’addestramento. Per quanto riguarda le soluzioni, i ricercatori hanno proposto l’uso di server cloud situati in Paesi con molta energia rinnovabile come un modo per compensare questo impatto.
I costi elevati escludono i ricercatori non aziendali
I requisiti computazionali necessari per addestrare o distribuire modelli linguistici di grandi dimensioni sono troppo costosi per molte piccole aziende. Alcuni esperti temono che questo possa bloccare molti ingegneri capaci dal contribuire all’innovazione nell’IA.
Scatola nera
Quando un modello di deep learning produce un output, è difficile o impossibile sapere perché ha generato quel particolare risultato. Mentre i modelli tradizionali come la regressione logistica consentono agli ingegneri di esaminare l’impatto delle singole caratteristiche sull’output, i metodi di rete neurale nell’elaborazione del linguaggio naturale sono essenzialmente delle scatole nere. Tali sistemi sono detti “non spiegabili”, poiché non possiamo spiegare come siano arrivati al loro risultato. Un approccio efficace per ottenere l’interpretabilità dei modelli è particolarmente importante in settori come quello bancario, dove le autorità di regolamentazione vogliono confermare che un sistema di elaborazione del linguaggio naturale non discrimini alcuni gruppi di persone, e quello delle forze dell’ordine, dove i modelli addestrati su dati storici possono perpetuare pregiudizi storici contro alcuni gruppi.
“Assurdità sui trampoli”
Lo scrittore Gary Marcus ha criticato l’NLP basato sul deep learning per la generazione di un linguaggio sofisticato che induce gli utenti a credere che gli algoritmi di linguaggio naturale capiscano ciò che dicono e a ritenere erroneamente che siano capaci di ragionamenti più sofisticati di quelli attualmente possibili.