# Elaborazione del linguaggio naturale

L'elaborazione del linguaggio naturale (NLP, da natural language processing) è una sottobranca di linguistica, informatica e intelligenza artificiale che tratta l'interazione tra i computer e il linguaggio umano, in particolare sul come programmare i computer per elaborare e analizzare grandi quantità di dati di linguaggio naturale. Lo scopo è rendere una macchina in grado di "comprendere" il contenuto dei documenti e le loro sfumature contestuali, in modo tale che possa quindi estrarre con precisione informazioni e idee contenute nei documenti, nonché classificare e categorizzare i documenti stessi.
Le sfide dell'elaborazione del linguaggio coinvolgono spesso il riconoscimento vocale, comprensione del linguaggio naturale e la generazione del linguaggio naturale.

## Descrizione

Questo processo è reso particolarmente difficile e complesso a causa delle caratteristiche intrinseche di ambiguità del linguaggio umano. Per questo motivo il processo di elaborazione viene suddiviso in fasi diverse, tuttavia simili a quelle che si possono incontrare nel processo di elaborazione di un linguaggio di programmazione:
* analisi lessicale: scomposizione di un'espressione linguistica in token (in questo caso le parole)
* analisi grammaticale: associazione delle parti del discorso a ciascuna parola nel testo
* analisi sintattica: arrangiamento dei token in una struttura sintattica, conosciuta come albero sintattico
* analisi semantica: assegnazione di un significato (semantica) alla struttura sintattica e, di conseguenza, all'espressione linguistica
Nell'analisi semantica la procedura automatica che attribuisce all'espressione linguistica un significato tra i diversi possibili è detta disambiguazione.

### Problemi

In teoria, l'elaborazione del linguaggio naturale è un metodo di interazione uomo-macchina. I primi sistemi sviluppati, quali SHRDLU, che lavoravano in "mondi a blocchi" con vocabolari ristretti, ottenevano ottimi risultati. Ciò portò i ricercatori a un eccessivo ottimismo, che scemò non appena i sistemi furono estesi a situazioni più realistiche con problemi reali di ambiguità e complessità.
La comprensione del linguaggio naturale è spesso considerata un problema IA-completo, poiché si pensa che il riconoscimento del linguaggio richieda una conoscenza estesa del mondo e una grande capacità di manipolarlo. Per questa ragione, la definizione di "comprensione" è uno dei maggiori problemi dell'elaborazione del linguaggio naturale.

## Primi approcci (Simbolico e Statistico)
### Anni '50 e '60: Prime Teorie e Approcci Simbolici

Inizialmente, l'elaborazione del linguaggio naturale si basava principalmente su approcci simbolici e basati su regole. Questi approcci cercavano di analizzare la sintassi e la semantica del linguaggio utilizzando regole grammaticali. Alcuni dei primi sistemi, come quelli di Alan Turing e Noam Chomsky, cercavano di modellare la struttura linguistica attraverso grammatica formale e logica.

### Approccio statistico

Gli approcci statistici al NLP sono nati in risposta alla difficoltà di trattare il linguaggio naturale in modo rigoroso e deterministico. Il linguaggio umano è complesso, ambiguo e variabile, quindi gli approcci simbolici basati su regole (come quelli usati negli anni '50 e '60) non erano sempre sufficienti. Tra la fine degli anni '80 e la metà degli anni '90 del millenovecento, l'approccio statistico ha posto fine al periodo invernale dell'intelligenza artificiale, causato dall'inefficacia degli approcci basati sulle regole.

### Probabilità e Modelli Statistici

I primi approcci statistici, capaci di superare i precedentemente diffusi alberi decisionali, che creano sistemi di regole rigide "se-allora", erano basati su modelli probabilistici, come i modelli di Markov e le catene di Markov nascoste (HMM). Questi modelli sono stati utilizzati principalmente per il part-of-speech tagging, l'analisi sintattica e il riconoscimento del parlato. Gli HMM sono modelli probabilistici che descrivono sequenze di eventi (o stati) in cui la probabilità di transizione da uno stato all'altro dipende solo dallo stato attuale.
Altri modelli di probabilità ampiamente utilizzati includevano i modelli n-grammi per la previsione delle parole (un modello di linguaggio che stima la probabilità di una parola basata sulle precedenti n−1 parole).

## Probabilità condizionata nei modelli di linguaggio probabilistici

La probabilità condizionata è un concetto fondamentale nella teoria delle probabilità e viene applicato in numerosi ambiti, tra cui i modelli di linguaggio probabilistici. In generale, la probabilità condizionata di un evento 𝑤ᵢ, dato un insieme di eventi precedenti $w_{1},w_{2},\ldots ,w_{i-1}$, è definita come:
$P(w_{i}\mid w_{1},w_{2},\ldots ,w_{i-1})$
In altre parole, si cerca di calcolare la probabilità che una determinata parola (𝑤ᵢ) appaia, dato che sono già state osservate le parole precedenti nel contesto ($w_{1},w_{2},\ldots ,w_{i-1}$). Questo tipo di probabilità è fondamentale nella comprensione del linguaggio naturale, in quanto i modelli linguistici devono prevedere la probabilità di una parola in un dato contesto.

## Modelli di linguaggio probabilistici

Nei modelli di linguaggio probabilistici, la probabilità di una parola dipende dalle parole che l'hanno preceduta. Questo approccio è alla base di molti sistemi di trattamento del linguaggio naturale, come i sistemi di correttore ortografico, i motori di ricerca e le traduzioni automatiche.
Un modello linguistico probabilistico può essere basato su diversi ordini di dipendenza, tra cui il modello n-gramma. In un modello n-gramma, la probabilità condizionata di una parola 𝑤ᵢ viene approssimata considerando solo le parole precedenti in una finestra di dimensione fissa, ovvero le ultime 𝑛-1 parole. La probabilità condizionata di 𝑤ᵢ, data una sequenza di parole precedenti, è quindi approssimata come:
$P(w_{i}\mid w_{1},w_{2},\ldots ,w_{i-1})\approx P(w_{i}\mid w_{i-n+1},w_{i-n+2},\ldots ,w_{i-1})$
Questa approssimazione riduce il problema complesso di calcolare la probabilità condizionata di una parola data l'intera sequenza di parole precedenti, limitandosi a considerare solo le ultime 𝑛-1 parole, e semplifica il calcolo, rendendo il modello computazionalmente gestibile.

## Ulteriori esempi di modello n-gramma

Un esempio di modello n-gramma di ordine 2 (bigramma) considera solo la parola precedente per calcolare la probabilità di una nuova parola. In altre parole, la probabilità condizionata di una parola 𝑤ᵢ data la sequenza precedente di parole 𝑤₁, 𝑤₂, ..., 𝑤ᵢ₋₁ è approssimata come:
$P(w_{i}\mid w_{1},w_{2},\ldots ,w_{i-1})\approx P(w_{i}\mid w_{i-1})$
Nel caso di un modello trigramma (ordine 3), invece, si considera una finestra di 2 parole precedenti per calcolare la probabilità della parola successiva:
$P(w_{i}\mid w_{1},w_{2},\ldots ,w_{i-1})\approx P(w_{i}\mid w_{i-2},w_{i-1})$
Questa approccio riduce significativamente la complessità rispetto al calcolo di una probabilità condizionata su tutte le parole precedenti, ma richiede comunque una buona quantità di dati per stimare accuratamente le probabilità.

## Limitazioni dei modelli n-gramma

Nonostante i modelli n-gramma siano semplici e computazionalmente efficienti, presentano alcune limitazioni. La principale è che questi modelli non riescono a catturare dipendenze a lungo termine tra le parole. Ad esempio, in una frase come Il cane corre nel parco e poi si ferma per riposare, un modello di ordine n=2 (bigramma) potrebbe non essere in grado di cogliere correttamente la relazione tra corre e ferma, poiché queste parole sono distanti.
Inoltre, per modelli di ordine più alto (ad esempio, trigramma o quadgramma), il numero di parametri aumenta esponenzialmente, il che porta alla necessità di una grande quantità di dati per stimare accuratamente le probabilità, oltre al rischio di sparsità dei dati (mancanza di alcune combinazioni di parole nei dati di addestramento).

## Modelli di Markov

Un processo di Markov è un modello probabilistico che descrive un sistema in cui la probabilità di passare a uno stato futuro dipende esclusivamente dallo stato attuale, e non dalla sequenza di eventi che ha portato a quello stato. Questo principio è noto come proprietà di Markov o memoria corta. In altre parole, un processo di Markov è un tipo di processo stocastico in cui il futuro è indipendente dal passato, dato l'istante presente.
Nel contesto del linguaggio naturale, un modello di Markov può essere utilizzato per prevedere la probabilità di una parola successiva basandosi solo sulla parola precedente. Ad esempio, in un modello di Markov di ordine 1 (noto anche come bigramma), la probabilità di una parola dipende solo dalla parola che la precede, ed è rappresentata come:
$P(w_{n}\mid w_{n-1},w_{1},w_{2},\ldots ,w_{n-1})=P(w_{n})$
Questo approccio semplifica il calcolo delle probabilità, riducendo la dipendenza dalla sequenza completa di parole precedenti a quella di una sola parola, ma può perdere informazioni contestuali importanti che si trovano in sequenze più lunghe.

## Catene di Markov Nascoste (HMM)

Un modello di Markov a catene nascoste (Hidden Markov Model, HMM) è un'estensione del modello di Markov che coinvolge due sequenze: una visibile e una nascosta. In un HMM, gli stati nascosti non sono direttamente osservabili (ad esempio, i tag grammaticali), ma influenzano la sequenza osservata (come le parole in un testo).
L'obiettivo principale degli HMM è inferire la sequenza di stati nascosti basandosi sui dati osservati, come le parole. Ad esempio, in un'applicazione di analisi del testo o part-of-speech tagging, un HMM può essere utilizzato per identificare le categorie grammaticali delle parole, dato il loro contesto. La probabilità di una sequenza di parole, quindi, dipende dalla sequenza di stati nascosti associata ad esse.
La formula di base di un modello a catene di Markov nascoste è la seguente:
$(S_{t-1})\,P(W^{t}\mid S^{t})\,P(W,S)=P(S_{1})\prod _{t=2}^{T}P(S^{t})$
Dove:
* 𝑊 è la sequenza di parole osservabili (ad esempio, "il cane corre"),
* 𝑆 è la sequenza di stati nascosti (ad esempio, i tag grammaticali come "Aggettivo", "Sostantivo", "Verbo"),
* P(𝑆ᵗ | 𝑆ᵗ₋₁) è la probabilità di transizione tra gli stati nascosti,
* P(𝑊ᵗ | 𝑆ᵗ) è la probabilità di osservare la parola 𝑊ᵗ dato lo stato nascosto 𝑆ᵗ.
La probabilità di una sequenza di parole osservate e la sequenza di stati nascosti è calcolata come il prodotto della probabilità iniziale del primo stato nascosto, la probabilità di transizione tra gli stati e la probabilità di osservare la parola in base allo stato nascosto. Gli HMM sono ampiamente utilizzati per compiti di riconoscimento vocale, traduzione automatica, e analisi del linguaggio naturale.

## Applicazioni delle catene di Markov nascoste

Gli HMM sono utilizzati in vari ambiti dell'intelligenza artificiale e del trattamento del linguaggio naturale, tra cui:
* Part-of-Speech Tagging: assegnare un tag grammaticale a ciascuna parola in una frase.
* Riconoscimento vocale: convertire la voce in testo, utilizzando modelli che prevedono la sequenza di fonemi nascosti.
* Analisi del sentimento: determinare il tono o il sentimento di un testo a partire da un modello di stati emotivi nascosti.
* Bioinformatica: per esempio, nella predizione della struttura secondaria delle proteine.
Nonostante la loro utilità, gli HMM sono limitati dalla loro dipendenza da sequenze di stati nascosti e dal fatto che non catturano efficacemente dipendenze a lungo termine, un problema che è stato affrontato con l'introduzione di modelli più avanzati come le reti neurali ricorrenti (RNN) e i modelli basati su Transformer.

## Anni 2000 e 2010 - L'avvento dell'IA

Il passaggio dai modelli statistici tradizionali ai modelli di intelligenza artificiale (IA) nel campo dell'elaborazione del linguaggio naturale (NLP) è stato un cambiamento fondamentale nella tecnologia del linguaggio. Questo cambiamento è stato guidato da ricercatori e sviluppatori come Geoffrey Hinton, Yann LeCun e Yoshua Bengio, che hanno contribuito allo sviluppo delle reti neurali profonde (deep learning). Negli anni 2000 e 2010, le tecniche basate su modelli statistici, come i modelli di Markov o gli n-grammi, dimostravano di essere limitate nelle loro capacità di gestire dipendenze a lungo termine e dalla necessità di grandi quantità di dati etichettati per funzionare correttamente.
Con l'avvento delle reti neurali, in particolare delle reti neurali ricorrenti (RNN) e più recentemente delle architetture Transformer (come quelle utilizzate in modelli come GPT e BERT), è stato possibile affrontare questi limiti. Le reti neurali sono in grado di apprendere rappresentazioni più complesse e dinamiche del linguaggio, catturando meglio le relazioni semantiche e sintattiche a lungo termine tra le parole. Inoltre, l'accesso a enormi quantità di dati e l'aumento della potenza computazionale hanno permesso l'allenamento di modelli molto più sofisticati e precisi.
Il passaggio ai modelli di IA è stato anche alimentato dalla crescente disponibilità di GPU e hardware specializzato, che hanno permesso di ridurre i tempi di addestramento e migliorare le prestazioni. Le tecniche di deep learning hanno dimostrato di superare significativamente i modelli statistici in compiti complessi, come la traduzione automatica, il riconoscimento del parlato e la comprensione del linguaggio naturale, portando a una rivoluzione nell'automazione linguistica e nell'intelligenza artificiale. Questo cambiamento ha trasformato l'NLP da una disciplina basata su regole e probabilità a un campo guidato dalla capacità delle macchine di "imparare" autonomamente dalle enormi quantità di dati a loro disposizione.

## Reti neurali ricorrenti (RNN)

Le reti neurali ricorrenti (RNN) sono state introdotte negli anni '80 come modello innovativo per gestire dati sequenziali, rappresentando un importante progresso nell'elaborazione del linguaggio naturale (NLP). Grazie alla loro capacità di mantenere una memoria temporale, le RNN sono state utilizzate per attività come traduzione automatica, analisi del sentimento e modellazione del linguaggio. Tuttavia, i loro limiti nel catturare dipendenze a lungo termine hanno portato allo sviluppo di varianti più avanzate, come LSTM e GRU, che hanno migliorato significativamente le performance in NLP.
Le reti neurali ricorrenti (RNN) sono progettate per elaborare sequenze di dati utilizzando una struttura ricorsiva che consente di mantenere una memoria dei passi precedenti. A ogni passo temporale , l'RNN aggiorna il suo stato nascosto in base all'input corrente e allo stato nascosto precedente.
La formula base è la seguente:
$h_{t}=\sigma (W_{h}h_{t-1}+W_{x}x_{t}+b)$
Dove:
$W_{h}$ e $W_{x}$ sono matrici di peso,
$b$ è un vettore di bias,
$\sigma$ è una funzione di attivazione, come la tangente iperbolica o la ReLU.
L'output può essere calcolato come:
$y_{t}=\sigma _{o}(W_{y}h_{t}+b_{y})$
Questa struttura consente alle RNN di "ricordare" informazioni lungo una sequenza, il che le rende valide opzioni in vari campi, come (appunto), l'elaborazione del linguaggio naturale. Tuttavia, problemi come il vanishing gradient limitano la loro capacità di apprendere dipendenze a lungo termine.

## Varianti delle Reti Neurali Ricorrenti: LSTM e GRU

Le limitazioni delle RNN tradizionali, come l'incapacità di catturare efficacemente le dipendenze a lungo termine a causa del problema del vanishing gradient, hanno portato allo sviluppo di architetture più avanzate. Tra queste, le Long Short-Term Memory (LSTM) e le Gated Recurrent Unit (GRU) si sono dimostrate particolarmente efficaci in una vasta gamma di applicazioni.

### Long Short-Term Memory (LSTM)

Le LSTM sono state introdotte per affrontare i problemi delle RNN standard. Il loro design include meccanismi specifici, chiamati gates, che regolano il flusso di informazioni nella rete, consentendo di preservare informazioni rilevanti per lunghi intervalli temporali. La struttura principale di un'unità LSTM include:
* Forget Gate: Decide quali informazioni dello stato precedente devono essere scartate. $f_{t}=\sigma (W_{f}\cdot [h_{t-1},x_{t}]+b_{f})$
* Input Gate: Determina quali nuove informazioni devono essere aggiunte allo stato della memoria. $i_{t}=\sigma (W_{i}\cdot [h_{t-1},x_{t}]+b_{i})$ ${\tilde {C}}t=\tanh(W_{c}\cdot [h{t-1},x_{t}]+b_{c})$
* Cell State Update: Aggiorna lo stato della memoria combinando le informazioni filtrate dai gate. $C_{t}=f_{t}\cdot C_{t-1}+i_{t}\cdot {\tilde {C}}_{t}$
* Output Gate: Determina l'output basato sullo stato aggiornato della cella. $o_{t}=\sigma (W_{o}\cdot [h_{t-1},x_{t}]+b_{o})$ $h_{t}=o_{t}\cdot \tanh(C_{t})$

### Gated Recurrent Unit (GRU)

Le GRU sono un'altra variante delle RNN progettata per migliorare l'efficienza e ridurre la complessità delle LSTM. La principale differenza tra GRU e LSTM è l'assenza di uno stato della memoria separato: nelle GRU, lo stato nascosto combina sia la memoria che il controllo del flusso di informazioni. Le GRU utilizzano due gates principali:
* Update Gate: Regola quanto dello stato precedente deve essere mantenuto. $z_{t}=\sigma (W_{z}\cdot [h_{t-1},x_{t}]+b_{z})$
* Reset Gate: Decide quanto del passato deve essere "dimenticato" nel calcolo dello stato candidato. $r_{t}=\sigma (W_{r}\cdot [h_{t-1},x_{t}]+b_{r})$
* Stato Candidato e Output: ${\tilde {h}}t=\tanh(W_{h}\cdot [r_{t}\cdot h{t-1},x_{t}]+b_{h})$ $h_{t}=z_{t}\cdot h_{t-1}+(1-z_{t})\cdot {\tilde {h}}_{t}$
Le GRU, essendo più semplici, richiedono meno risorse computazionali rispetto alle LSTM, rendendole adatte per applicazioni in cui la velocità è cruciale, senza compromettere troppo le performance.

## Transformer: Un'innovazione nelle reti neurali sequenziali

Con l'obiettivo di superare alcune limitazioni delle architetture ricorrenti come le RNN, LSTM e GRU, i Transformer sono stati introdotti da Vaswani et al. nel 2017. Questa architettura ha rivoluzionato il campo dell'elaborazione del linguaggio naturale e oltre, eliminando la dipendenza dalla computazione sequenziale tipica delle RNN e introducendo meccanismi di attenzione altamente efficaci.

### Architettura dei Transformer

L'architettura del Transformer è composta da due blocchi principali: un encoder e un decoder, ciascuno dei quali utilizza meccanismi di attenzione e feedforward per elaborare le sequenze. La chiave del successo dei Transformer risiede nel loro utilizzo del meccanismo di attenzione multi-testa e nella capacità di elaborare le sequenze in parallelo.

#### Codificatore (encoder)

Il blocco encoder del Transformer è costituito da una sequenza di sotto-strati:
* Meccanismo di Attenzione Multi-Testa: Consente al modello di focalizzarsi su parti diverse della sequenza di input simultaneamente.Ogni testa calcola:
${\text{Attenzione}}(Q,K,V)={\text{softmax}}\left({\frac {QK^{T}}{\sqrt {d_{k}}}}\right)V$
* Rete Feedforward: Dopo l'attenzione, i dati passano attraverso una rete completamente connessa con attivazione non lineare.
* Norma e Residuo: Ogni sotto-strato è seguito da una connessione residua e una normalizzazione batch, migliorando la stabilità del training.

#### Decodificatore (decoder)

Il decoder è simile all'encoder, ma con un'aggiunta chiave: il meccanismo di attenzione incrociata. Questo permette al decoder di focalizzarsi sull'output dell'encoder durante la generazione della sequenza.
* Attenzione Mascherata: Utilizzata per garantire che il decoder non possa "vedere" token futuri durante la generazione di una sequenza.
* Attenzione Incrociata: Consente al decoder di combinare l'informazione del contesto (encoder) con i dati già generati.

#### Embedding e Codifica Posizionale

Poiché il Transformer non elabora sequenze in ordine, utilizza un encoding posizionale per fornire informazioni sulla posizione relativa dei token. Questo viene aggiunto ai vettori embedding dell'input:
$PE_{(pos,2i)}=\sin \left({\frac {pos}{10000^{2i/d_{\text{model}}}}}\right)$
$PE_{(pos,2i+1)}=\cos \left({\frac {pos}{10000^{2i/d_{\text{model}}}}}\right)]$

### Auto-Attenzione

Il cuore del Transformer è il meccanismo di self-attention, che valuta l'importanza di ciascun token rispetto agli altri nella sequenza. Questo approccio elimina la dipendenza temporale lineare delle RNN, rendendo il modello altamente parallelo e più efficiente in termini di calcolo.

### Applicazioni dei Transformer

Dopo il successo iniziale del Transformer, questa architettura è diventata la base per una vasta gamma di modelli avanzati nel campo dell'intelligenza artificiale. Tra i più significativi vi è BERT (Bidirectional Encoder Representations from Transformers), un modello pre-addestrato che sfrutta una rappresentazione bidirezionale per comprendere il contesto di una parola analizzando sia il testo precedente che quello successivo, risultando particolarmente efficace in compiti come il completamento di frasi e l'analisi del sentimento. Un altro modello influente è GPT (Generative Pre-trained Transformer), che adotta un approccio unidirezionale focalizzato sulla generazione di testo, eccellendo nella creazione di contenuti coerenti e realistici, oltre a una vasta gamma di attività linguistiche. T5 (Text-to-Text Transfer Transformer) propone un approccio generalizzato in cui tutti i compiti di elaborazione del linguaggio naturale sono formulati come trasformazioni di input e output testuali, rendendo il modello estremamente versatile. Inoltre, l'architettura Transformer è stata adattata anche al dominio della visione artificiale con il Vision Transformer (ViT), progettato per attività come la classificazione delle immagini, dimostrando che i Transformer possono essere efficaci anche in compiti che tradizionalmente erano dominati da reti convoluzionali.

### Confronto con le Architetture Ricorrenti

I Transformer hanno rivoluzionato settori come la traduzione automatica, il riassunto automatico e l'analisi del testo, rendendo obsolete molte architetture ricorrenti grazie a diverse caratteristiche chiave. Tra queste, l'efficienza computazionale, che consente di elaborare intere sequenze in parallelo, superando i limiti delle RNN, che processano i dati in modo sequenziale. Un altro vantaggio fondamentale è la maggiore capacità di catturare contesti lunghi, superando le difficoltà del vanishing gradient che affliggevano le reti ricorrenti, permettendo ai Transformer di mantenere informazioni rilevanti anche in sequenze molto estese. Infine, la loro scalabilità li rende facilmente adattabili a modelli di grandi dimensioni, consentendo un'espansione efficace per affrontare compiti sempre più complessi e diversificati.

## Il BOOM degli LLM (2020 e oltre)

Lo sviluppo e gli investimenti nei large language models (LLMs) dal 2020 al 2024 rappresentano un periodo senza precedenti di innovazione nell'intelligenza artificiale. Questi progressi sono stati alimentati da miglioramenti nell'hardware, dalla disponibilità di enormi quantità di dati online e da innovazioni nelle tecniche di apprendimento automatico, come il transfer learning e l'apprendimento auto-supervisionato. Gli LLM hanno trasformato profondamente vari settori industriali.
Gli investimenti privati in LLM hanno inizialmente registrato una crescita esplosiva, raggiungendo i 189,6 miliardi di dollari nel 2021. Tuttavia, nel 2022 si è verificata una lieve contrazione, in parte dovuta al rallentamento economico globale. Al contrario, i finanziamenti pubblici per la ricerca sull'IA sono aumentati, specialmente negli Stati Uniti, dove le agenzie governative non legate alla difesa hanno allocato 1,7 miliardi di dollari per la ricerca e lo sviluppo di IA nello stesso anno.
La competizione tra i giganti tecnologici, come OpenAI, Google, Meta e Microsoft, si è intensificata. OpenAI, con ChatGPT, ha reso gli LLM accessibili al grande pubblico, mentre Meta ha promosso modelli open-source come LLaMA, e Google ha spinto l'innovazione con modelli come Gemini. Anche i modelli più piccoli e specializzati, come PHI-2 di Microsoft, hanno dimostrato che strategie di scala mirate possono competere con modelli più grandi, favorendo una diversificazione nelle dimensioni e negli utilizzi delle reti.
Gli LLM sono stati ampiamente adottati in settori come la sanità, la finanza e l'istruzione, migliorando i servizi personalizzati e i processi decisionali. La loro integrazione nei prodotti di consumo ha trasformato interi mercati, portando a una crescente domanda di sistemi multilingue ed etici.
Nel 2024, il mercato globale degli LLM ha continuato a crescere, con il Nord America e la regione Asia-Pacifico in testa per innovazione e adozione.

## ChatGPT, DeepSeek e lo scontro tra USA e Cina

Nel gennaio 2025, la startup cinese DeepSeek ha introdotto il modello di intelligenza artificiale DeepSeek-R1, progettato per compiti complessi come il ragionamento matematico e la programmazione. Questo modello open source ha attirato l'attenzione per le sue prestazioni avanzate e per l'efficienza nel consumo di risorse computazionali. La sua capacità di combinare ragionamento esplicito e ricerca web in tempo reale ha messo in discussione il predominio statunitense nel settore dell'IA. Tuttavia, il successo di DeepSeek ha sollevato preoccupazioni riguardo a possibili violazioni della proprietà intellettuale, con OpenAI e Microsoft che hanno accusato la startup cinese di aver utilizzato i loro modelli proprietari per addestrare le proprie applicazioni.
DeepSeek ha sviluppato il suo modello di intelligenza artificiale con un budget di circa 5,6 milioni di dollari, utilizzando 2.048 GPU Nvidia H800 per un totale di 2,788 milioni di ore GPU. In confronto, si stima che OpenAI abbia investito oltre 100 milioni di dollari per l'addestramento di GPT-4, impiegando più di 20.000 GPU Nvidia H100. Questa differenza evidenzia l'efficienza di DeepSeek nell'uso delle risorse computazionali.
Una delle caratteristiche più rivoluzionarie introdotte dal modello cinese è l’uso del Reinforcement Learning (RL) senza Supervised Fine-Tuning (SFT), che ha permesso di sviluppare capacità di ragionamento avanzate senza la necessità di una fase iniziale di addestramento supervisionato. Il modello sfrutta un algoritmo di ottimizzazione durante il processo di RL, chiamato Group Relative Policy Optimization, riducendo il costo computazionale e migliorando la stabilità dell’addestramento. Un’altra innovazione chiave è l’adozione di un reward modeling basato su regole, che valuta la qualità delle risposte tramite criteri predefiniti, evitando l’uso di modelli di ricompensa neurali che possono essere soggetti a manipolazione (reward hacking).
Inoltre, DeepSeek-R1 ha migliorato la leggibilità e la coerenza delle risposte grazie ai cold start data, un insieme limitato di dati utilizzati prima dell’RL per affinare il comportamento del modello. Un altro elemento distintivo è la distillazione delle capacità di ragionamento, che consente di trasferire competenze da modelli di grandi dimensioni a versioni più piccole, mantenendo prestazioni elevate con un minor costo computazionale. Infine, DeepSeek-R1 adotta un approccio multi-stage training, combinando più fasi di RL e SFT per ottimizzare sia le capacità di ragionamento che quelle generali del modello.
Questa combinazione di innovazioni ha permesso a DeepSeek-R1 di distinguersi come un modello all'avanguardia nel campo dell'intelligenza artificiale, pur mantenendo un'impronta computazionale relativamente contenuta rispetto ai concorrenti statunitensi.

## Elaborazione del linguaggio naturale in ambito educativo

L'elaborazione del linguaggio naturale, o NLP (Natural Language Processing), trova applicazione anche nell’ambito della didattica e della scuola. Si rivela utile per riepilogare grandi volumi di testo, per tradurli da una lingua a un'altra, e rivela la sua efficacia anche nel rispondere a comandi digitati o parlati.
In ambito scolastico, i fruitori di tali nuove tecnologie comprendono gli studenti e l’intero sistema scuola. Non è solo il modo di apprendere che subisce modifiche con l’avvento di nuovi software di intelligenza artificiale (IA) ma anche il modo di insegnare, di progettare l’insegnamento e di viverlo all’esterno dell’orario scolastico e quindi saranno i docenti, i dirigenti, il personale amministrativo ma anche le famiglie a vedersi protagonisti in questa rivoluzione.
Tuttavia, affinché l’integrazione dell’IA nell’ambiente educativo sia consapevole e porti a risultati efficaci è bene che sia verificabile il principio di “explainability”, ovvero di spiegabilità, che si riferisce alla possibilità di comprendere il processo per cui un input dato allo strumento produce un determinato output. In questo senso è doveroso sviluppare una cultura dell'intelligenza artificiale.
Per esempio, la prompt engineering è una disciplina che si è sviluppata con la volontà di costruire i giusti prompt da fornire agli strumenti così da permetterne un funzionamento preciso e coerente rispetto alla richiesta avanzata dall'utente.

## Valutazione dei compiti

Tra le importanti modifiche apportate dall’IA nel sistema scolastico si può sicuramente annoverare l'introduzione dei punteggi automatici che vedono l’elaborazione del linguaggio naturale come supporto fondamentale per il loro corretto funzionamento.
I sistemi di punteggio automatico ad oggi sono strumenti di grande utilità poiché offrono una valutazione tempestiva, precisa ed efficace delle competenze dello studente nella risoluzione di un dato problema, promuovendo un ambiente di apprendimento adattivo grazie alla possibilità di ricevere un feedback immediato che dia agli studenti modo di riconoscere e correggere le incomprensioni affinché possano padroneggiare meglio l'argomento in questione.

### Vantaggi

L'uso dell'IA nella valutazione offre diversi vantaggi, tra i quali:
* La velocità: gli algoritmi di IA possono correggere un gran numero di compiti in una frazione del tempo necessario a un essere umano, consentendo agli insegnanti di dedicare più tempo alla didattica e al supporto personalizzato degli studenti.
* Feedback personalizzati: le tecnologie di IA possono fornire feedback dettagliati e personalizzati in tempo reale, aiutando gli studenti a comprendere meglio i propri errori e a migliorare le proprie competenze. Ad esempio, piattaforme come Grammarly utilizzano l'IA per suggerire correzioni grammaticali e stilistiche nei testi scritti dagli studenti.
* Analisi predittiva: l'IA può analizzare i dati di apprendimento degli studenti per identificare pattern e tendenze, permettendo agli educatori di intervenire tempestivamente con strategie mirate per supportare gli studenti in difficoltà. Questa analisi può anche prevedere le prestazioni future degli studenti, aiutando a personalizzare i percorsi di apprendimento.
Questo tipo di interazione immediata è particolarmente utile per l'apprendimento delle lingue straniere e delle materie scientifiche.

### Strumenti per la correzione e la valutazione dei compiti

Negli Stati Uniti, ad esempio, gli insegnanti delle scuole medie stanno iniziando a utilizzare un nuovo strumento di correzione basato su ChatGPT chiamato Writable.
Acquisito da Houghton Mifflin, Writable è progettato per semplificare il processo di correzione e risparmiare tempo agli insegnanti. Gli insegnanti possono inviare i temi degli studenti per l'analisi, ricevendo commenti e osservazioni generati dall'IA, che vengono poi revisionati dai docenti prima di essere consegnati agli studenti.
Gli strumenti di elaborazione del linguaggio naturale hanno il potenziale di trasformare radicalmente la valutazione dei compiti, rendendola più efficiente e informativa. Tuttavia, per sfruttare appieno questi vantaggi, è necessario affrontare le sfide con un approccio ponderato e inclusivo. Con un'implementazione attenta e responsabile, l'IA può diventare uno strumento prezioso per migliorare l'esperienza educativa e promuovere l'apprendimento personalizzato.

## Mediatori Visivi e Mappe Concettuali

I mediatori visivi, come le mappe concettuali, sono strumenti diagrammatici e visivi utilizzati per rappresentare e organizzare idee in modo non lineare. Questi strumenti sono stati sviluppati negli anni '70 presso la Cornell University, con l'obiettivo di illustrare le comprensioni concettuali dei bambini in ambito scientifico. Le mappe concettuali consentono di visualizzare fenomeni complessi, facilitando la creazione di nuove connessioni e la costruzione di conoscenze.
Utilizzate ampiamente nelle discipline del design e nelle arti visive, le mappe concettuali servono come metodo di brainstorming per documentare idee e processi di progettazione fin dalle fasi iniziali. La loro utilità si estende anche alla ricerca qualitativa, dove aiutano i ricercatori a tracciare e analizzare le relazioni emergenti tra i dati. Mediante schizzi fatti a mano o strumenti digitali, le mappe concettuali permettono di visualizzare le inter-relazioni tra concetti, rendendo il processo di pensiero più trasparente e facilitando l'elaborazione di analisi e sintesi dei dati complessi. Tra i principali mediatori visivi ci sono le mappe concettuali e mentali, i diagrammi di flusso, i grafici e le tabelle, i diagrammi di Venn, gli storyboard, le infografiche, i diagrammi a ragno e a cascata, e i diagrammi SWOT. Questi strumenti permettono di organizzare, comprendere e comunicare dati e concetti in modo efficace, migliorando l'apprendimento.
L'intelligenza artificiale sta rivoluzionando la generazione di mappe concettuali attraverso mediatori visivi avanzati. Utilizzando algoritmi di machine learning e reti neurali, le soluzioni basate su IA sono in grado di analizzare grandi quantità di dati testuali e convertirli in mappe concettuali visive in modo automatico. Questi strumenti possono identificare relazioni chiave e concetti emergenti, offrendo rappresentazioni visive che facilitano la comprensione e l'analisi delle informazioni complesse. Questa tecnologia trova applicazione in vari campi, tra cui l'istruzione, la ricerca accademica e il business, contribuendo a semplificare il processo di apprendimento e decision-making. La capacità dell'IA di aggiornare e adattare continuamente le mappe concettuali in base a nuovi dati assicura che queste rappresentazioni rimangano accurate e rilevanti nel tempo.

### Strumenti per la generazione di mappe concettuali

Esistono diverse piattaforme che utilizzano l'elaborazione del linguaggio naturale per generare mappe concettuali. Alcune delle più note includono:
* MindMeister: offre funzionalità di mappatura mentale basate su cloud, con l'integrazione di IA per suggerire connessioni e organizzare le idee in modo intuitivo.
* Lucidchart: sebbene sia principalmente uno strumento di diagrammazione, Lucidchart utilizza l'IA per ottimizzare la creazione di diagrammi di flusso e mappe concettuali, facilitando la visualizzazione delle idee e delle relazioni tra concetti.
* Coggle: una piattaforma di mappatura mentale che sfrutta l'IA per migliorare la creazione e l'organizzazione delle mappe concettuali, rendendo più facile la collaborazione in tempo reale.
* XMind: utilizza l'intelligenza artificiale per assistere nella creazione di mappe mentali e concettuali, con suggerimenti intelligenti e layout automatici per migliorare la chiarezza e l'efficacia delle rappresentazioni visive.
* Ayoa: combina funzionalità di mappatura mentale integrando l'IA per suggerire collegamenti tra concetti e per aiutare nella pianificazione e organizzazione delle idee.
* Miro: una lavagna collaborativa online che utilizza l'IA per supportare la creazione di mappe concettuali e altri tipi di diagrammi, facilitando la collaborazione e l'ideazione visiva.

## Altre applicazioni
### Riconoscimento vocale e dettatura Speech to Text (STT)

Il riconoscimento vocale (Speech to Text) è in grado di convertire in modo affidabile dati vocali in dati di testo. Viene utilizzato da qualsiasi software o applicazione che necessiti di rispondere a domande parlate o comandi vocali in generale. Il riconoscimento vocale non è un compito facile per la macchina. L’ostacolo principale è dovuto alle specificità del linguaggio parlato umano: la velocità del parlato, le diverse sfumature di accenti e intonazioni, la possibilità di inserire enfasi e toni particolari, la difficile comprensione del volume della voce e l'eventuale grammatica scorretta. Per svolgere questo compito l’IA specializzata nell’NLP utilizza diverse tecniche che gli consentono di superare tali ostacoli e rispondere con grande precisione linguistica e comunicativa, adattandosi al destinatario.
L'utilizzo dei software Speech to Text in ambito scolastico è consolidato, si rivelano funzionali per prendere appunti velocemente, scrivere e-mail senza dover digitarne il testo, trascrivere riunioni o lunghe conversazioni. Oltre a questi usi legati alla produttività, si tratta di software inclusivi che aiutano anche nella compensazione di numerose disabilità.

#### Esempi di assistenti vocali

* Alexa: progettato da Amazon è tra i più acquistati dagli utenti, si attiva attraverso la pronuncia della parola “Alexa” seguita dalla richiesta o dal comando.
* Siri: disponibile su tutti i dispositivi Apple, viene attivato dall’utente mediante la keyword “Hey, Siri” seguita dalle richieste.
* Microsoft Cortana: supportato da tutti i sistemi operativi Windows 10 per PC, Windows Phone e Xbox One, è attivabile tramite la parola chiave “Hey, Cortana” seguita dalla richiesta.
* Google Assistant: assistente vocale Android integrato in tutti i dispositivi speaker Google.

#### Esempi di software Speech to Text

* Google Docs Voice Typing: è un software Google gratuito integrato in Google Docs
* Speech to Text di Microsoft Azure: trascrive rapidamente e accuratamente il parlato in testo in più di 100 lingue diverse.

### Sintesi vocale e software Text to Speech (TTS)

La sintesi vocale è una tecnica di riproduzione artificiale della voce, realizzata tramite sintetizzatori vocali che utilizzano software Text to Speech (TTS), trasformando il testo scritto in parlato. È ampiamente utilizzata in ambito scolastico e formativo, in modo particolare per supportare studenti con diagnosi di Disturbi Specifici dell'Apprendimento (DSA).
La sintesi vocale è impiegata come strumento compensativo per gli studenti con dislessia, permettendo di compensare le difficoltà di lettura. Grazie a questo strumento, lo studente può evitare di affrontare compiti di lettura che richiederebbero per lui uno sforzo significativo, senza però ottenere alcun beneficio nell'apprendimento.
L'utilizzo della sintesi vocale è riconosciuto dalla Legge italiana n. 170 dell’8 ottobre 2010 come strumento compensativo per gli alunni con DSA che in quanto tale "trasforma un compito di lettura in un compito di ascolto", facilitando così il processo di apprendimento per questi studenti.

### Traduzione linguistica

I servizi di elaborazione del linguaggio naturale hanno consentito grandi passi nel miglioramento delle prestazioni dei software di traduzione linguistica. La traduzione automatica è il processo di utilizzo dell’intelligenza artificiale per tradurre automaticamente il contenuto da una lingua all’altra senza l’intervento umano. Grazie alle tecniche di NLP, i traduttori online sono in grado di tradurre in modo sempre più accurato, fornendo risultati grammaticalmente corretti. Questi software sono dunque sempre più utilizzati anche per fini didattici e di apprendimento.

#### Alcuni esempi dei software di traduzione linguistica maggiormente utilizzati per la didattica

* Grammarly: inserendo una frase scritta in inglese, questa app non solo individua errori grammaticali o di sintassi. Infatti, analizzando la frase inserita, offre suggerimenti su come migliorare lo stile e le espressioni.
* WordFisher: è uno strumento avanzato per traduttori che lavorano con i documenti di Microsoft Word. WordFisher è un programma che necessita di Word per lavorare: le sue funzioni vengono infatti installate nel menu della barra degli strumenti di Word.
* Google Traduttore: è un servizio di traduzione automatica multilingue sviluppato da Google LLC. È utilizzabile sul Web o tramite l'app Google Traduttore. Consente di tradurre testi, scrittura a mano libera, foto e contenuti vocali in oltre 100 lingue.
* Reverso: traduce documenti di tutti i tipi, in oltre 25 lingue, lasciando la formattazione originaria. Trova sinonimi in tempo rapido, grazie all’uso integrato di più dizionari, è integrato con un correttore automatico e possiede una versione gratuita.
* Wordreference: è uno dei dizionari online più utilizzati, consente la traduzione in circa 20 lingue, ha un coniugatore di verbi, un forum, prevede alcuni dizionari monolingue ed è completamente gratuito.

### Assistenti conversazionali

I motori di ricerca tradizionali come Google ad esempio, identificano i siti contenenti le parole ricercate sulla base del loro algoritmo e sta poi all’utente svolgere un'operazione di selezione e verifica dell'attendibilità delle fonti. Nel caso degli “assistenti conversazionali” invece, basta formulare correttamente la domanda e il testo verrà generato in maniera automatica dal software.
Gli assistenti conversazionali utilizzano grandi volumi di dati, il machine learning e l'elaborazione del linguaggio naturale per riconoscere input vocali e testuali e tradurne i significati in varie lingue. Attraverso “prompt” ben costruiti questi software sono in grado di variare i registri linguistici (giornalistico, scientifico, narrativo ecc.) e le età dei destinatari dei testi, i processi NLP fluiscono continuamente in un ciclo di feedback costante allo scopo di migliorare sempre di più gli algoritmi di IA.
Tra gli assistenti conversazionali maggiormente utilizzati in ambito scolastico abbiamo ChatGPT. Questa piattaforma deve il suo continuo progresso all’uso di quantità sempre crescenti di dati per addestrare il suo numero esponenzialmente crescente di parametri che gli permette di proseguire la conversazione migliorando e affinando progressivamente l’output finale.

## Criticità dell’elaborazione del linguaggio naturale

In generale, l'impiego dell'Intelligenza Artificiale e delle sue declinazioni sia in ambito educativo che generale comporta delle criticità condivise, tra cui:
* L'enorme mole di dati e informazioni che vengono processati per elaborare i testi e i linguaggi: sono richieste eccessive spese monetarie sia per l’acquisto che per il mantenimento e supporto delle IA, le cui stesse sono di proprietà di aziende tecnologiche e quindi disponibili soltanto nei Paesi del mondo più ricchi, principalmente America, Cina ed Europa, creando così grande disparità con i Paesi più poveri, specialmente Sud America e Africa, generando una situazione di “data poverty”.
* Limitazioni contestuali: i modelli delle IA basate sull’elaborazione del linguaggio naturale, possono presentare delle limitazioni del linguaggio basate sul contesto culturale di un Paese di riferimento. Questo può portare a fraintendimenti, oltre che analisi scorrette dei testi.
* Ambiguità e polisemie: molte parole e frasi possono avere molteplici significati, creando difficoltà nelle IA basate sull’NLP di comprensione nell’intenzione e utilizzo, oltre che nell’intenzione in un determinato contesto. Questo può portare ad una inaccuratezza dei dati analizzati.
* Diversità dei linguaggi e idiomi: la vastissima diversità dei linguaggi e delle varianti regionali quali dialetti, slang o colloquialismi risultano difficili da essere compresi e analizzati per i modelli delle IA basate sull’NLP.
* Mancanza di ragionamento implicito: al contrario degli umani, che spesso basano la comunicazione anche attraverso l’utilizzo di codici linguistici impliciti basati sul contesto, cultura generale e buon senso, le macchine IA sono completamente prive di questo aspetto, ostacolando la loro capacità di analisi di un testo dove sono presenti più sfumature e informazioni implicite, come un linguaggio di tipo sarcastico.
* Emoticon e caratteri speciali: con l’avvento e utilizzo dei media digitali, le emoticon e i caratteri speciali vengono sempre più utilizzati in contesti online, creando però difficoltà nelle IA nel riuscire a riconoscerli e a utilizzarli in base al contesto di riferimento.
* Precisione dei dati inseriti: per garantire risultati eccellenti, è importante assicurarsi che chi si occupa dei training di allenamento delle macchine IA inserisca dei dati quanto più accurati possibili. In caso contrario, l’inserimento di dati incompleti o erronei potrebbero comportare risultati distorti, rafforzando pregiudizi sociali e stereotipi.