GPT e la Nuova Generazione di Modelli AI: differenze tra le versioni

Da Wiki AI.
Nessun oggetto della modifica
 
(14 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
[[File:Image 26.png|destra|senza_cornice|300x300px]]
Il '''30 Novembre 2022''' l'azienda statunitense [[OpenAI]] ha rilasciato [[ChatGPT]], il suo chatbot e assistente virtuale. Questo rilascio ha segnato un vero momento di svolta nel campo dell'Intelligenza Artificiale: per la prima volta tutti gli utenti dotati di una connessione internet e di un computer o una smartphone hanno potuto interagire con un sistema di Intelligenza Artificiale ''general-purpose'', cioè slegato da compiti specifici, ma che dà l'impressione di conoscere gran parte dello scibile umano, di ragionare, e di poter aiutare l'utente a risolvere compiti complessi.
Il '''30 Novembre 2022''' l'azienda statunitense [[OpenAI]] ha rilasciato [[ChatGPT]], il suo chatbot e assistente virtuale. Questo rilascio ha segnato un vero momento di svolta nel campo dell'Intelligenza Artificiale: per la prima volta tutti gli utenti dotati di una connessione internet e di un computer o una smartphone hanno potuto interagire con un sistema di Intelligenza Artificiale ''general-purpose'', cioè slegato da compiti specifici, ma che dà l'impressione di conoscere gran parte dello scibile umano, di ragionare, e di poter aiutare l'utente a risolvere compiti complessi.


Riga 21: Riga 22:
GPT è un modello è detto ''generativo'', in cui le parole, chiamate più precisamente '''token''', vengono generate '''una di seguito all'altra:''' per capire quale token emettere, GPT tiene in considerazione tutte le parole precedenti, '''concatenando''' la domanda e le parole generate fino a quel momento. Questa concatenazione di input dell'utente e output del modello dà al modello l'aggettivo '''autoregressivo'''.  
GPT è un modello è detto ''generativo'', in cui le parole, chiamate più precisamente '''token''', vengono generate '''una di seguito all'altra:''' per capire quale token emettere, GPT tiene in considerazione tutte le parole precedenti, '''concatenando''' la domanda e le parole generate fino a quel momento. Questa concatenazione di input dell'utente e output del modello dà al modello l'aggettivo '''autoregressivo'''.  


Prima di interrompersi, alla fine della frase, il modello viene eseguito volte come mostrato nei seguenti time-step:
Prima di interrompersi, alla fine della frase, il modello viene "eseguito" '''N''' '''volte''', accodando sempre l'ultimo token emesso, come mostrato nei seguenti time-step:
  '''(1) Input:''' Qual'è la capitale della Francia? '''Output:''' La
  '''(1) Input:''' Qual'è la capitale della Francia? '''Output:''' La
  '''(2) Input:''' Qual'è la capitale della Francia? La '''Output:''' capitale
  '''(2) Input:''' Qual'è la capitale della Francia? La '''Output:''' capitale
Riga 29: Riga 30:
  '''(6) Input:''' Qual'è la capitale della Francia? La capitale della Francia è '''Output:''' Parigi
  '''(6) Input:''' Qual'è la capitale della Francia? La capitale della Francia è '''Output:''' Parigi
  '''(7) Input:''' Qual'è la capitale della Francia? La capitale della Francia è Parigi '''Output:''' .
  '''(7) Input:''' Qual'è la capitale della Francia? La capitale della Francia è Parigi '''Output:''' .
La '''sequenza di token''' che, a ogni step di esecuzione, viene presentata come input del modello, è chiamata '''[[contesto]];''' l''''output''' del modello a ogni time-step viene invece chiamato [[inferenza|'''inferenza''']].
La '''sequenza di token''' che, a ogni step di esecuzione, viene presentata come input del modello, è denominata '''[[contesto]];''' l''''output''' del modello a ogni time-step viene invece chiamato [[inferenza|'''inferenza''']]. L'azione di utilizzare un modello, infatti, in gergo si chiama anche "fare inferenza".


Possiamo a questo punto comprendere che l'interfaccia di ChatGPT non è altro che un "tramite" che manda ai server di OpenAI le sequenze concatenate della conversazione avvenuta fino a un determinato punto, per generare il token successivo, e così via, fino alla fine della generazione della frase o del paragrafo corrente.
Possiamo a questo punto comprendere che l'interfaccia di ChatGPT, ogni volta che vediamo apparire una nuova parola, non fa altro che che inviare ai server di OpenAI la concatenazione di '''tutta la''' '''conversazione''' avvenuta fino a quell'istante, fino alla fine della generazione della frase o del paragrafo corrente.


=== Vocabolario, token e funzionamento probabilistico del modello ===
=== Vocabolario, token e funzionamento probabilistico del modello ===
Riga 39: Riga 40:
Il vocabolario è di dimensione fissa e viene definito in fase di preparazione dei dati; esso rappresenta una parte importante del modello, poiché un vocabolario più ampio permette di rappresentare una maggiore varietà di espressioni linguistiche, ma comporta anche una maggiore complessità computazionale. Per il modello GPT-3 i token sono circa 50000.
Il vocabolario è di dimensione fissa e viene definito in fase di preparazione dei dati; esso rappresenta una parte importante del modello, poiché un vocabolario più ampio permette di rappresentare una maggiore varietà di espressioni linguistiche, ma comporta anche una maggiore complessità computazionale. Per il modello GPT-3 i token sono circa 50000.


GPT genera il token successivo più '''probabile''' data la sequenza ordinata di token presenti nel suo contesto: più formalmente, l'obiettivo del modello è calcolare '''la probabilità condizionale di un token successivo dato il contesto precedente''', e poi scegliere il token la cui probabilità condizionale è la più alta. Questo [[obiettivo di pre-training]] viene chiamato [[Causal Language Modeling (CLM)]] ed è tipico dei modelli di testo generativi.  
GPT genera il token successivo più '''probabile''' data la sequenza ordinata di token presenti nel suo contesto: più formalmente, l'obiettivo del modello è calcolare '''la probabilità condizionale di ogni token di "essere il successivo" dato il contesto precedente''', e poi scegliere il token la cui probabilità condizionale è la più alta. Questo [[obiettivo di pre-training]] viene chiamato [[Causal Language Modeling (CLM)]] ed è tipico dei modelli di testo generativi.  


Questa probabilità è denotata come P(xt​∣x1​,x2​,…,xt−1​), dove xt​ è il token che stiamo cercando di predire, e x1​,x2​,…,xt−1​ sono i token precedenti nel contesto. Il processo può essere descritto come segue:
Questa probabilità è denotata come P(xt​∣x1​,x2​,…,xt−1​), dove xt​ è il token che stiamo cercando di predire, e x1​,x2​,…,xt−1​ sono i token precedenti nel contesto. Il processo può essere descritto come segue:
Riga 49: Riga 50:
=== Condizionamento del modello generativo: il prompting ===
=== Condizionamento del modello generativo: il prompting ===


Consideriamo un modello di linguaggio come una '''funzione''', molto complessa, che dato il contenuto del contesto calcola la probabilità del token successivo. I parametri di questa funzione sono contenuti nei parametri che son stati aggiornati durante l'addestramento, quindi, nel momento dell'inferenza, non possono essere più cambiati.  
Consideriamo un modello di linguaggio come una '''funzione''', molto complessa, che dato il contenuto del contesto calcola la probabilità del token successivo. I parametri di questa funzione sono stati "scolpiti nella pietra" durante l'addestramento del modello, in particolare durante la [[retropropagazione]], quindi, nel momento dell'inferenza, non possono essere più cambiati.  


Il prompting quindi è l'input della funzione ed è l''''unico''' '''modo''' a disposizione dell'utente per influenzare o "condizionare" il comportamento di un modello generativo come GPT: questo input può essere una domanda, un'istruzione o un frammento di testo che orienta la direzione e il contenuto della risposta. Il modello interpreta il prompt come contesto, e utilizza le informazioni fornite per determinare il flusso della conversazione o del testo generato. La qualità e la specificità del prompt hanno un '''impatto significativo''' sui risultati, permettendo all'utente di "condizionare" il modello verso risposte più precise o rilevanti rispetto a un obiettivo desiderato.
Il prompting quindi è l'input della funzione ed è l''''unico''' '''modo''' a disposizione dell'utente per influenzare o "condizionare" il comportamento di un modello generativo come GPT: questo input può essere una domanda, un'istruzione o un frammento di testo che orienta la direzione e il contenuto della risposta. Il modello interpreta il prompt come contesto, e utilizza le informazioni fornite per determinare il flusso della conversazione o del testo generato. La qualità e la specificità del prompt hanno un '''impatto significativo''' sui risultati, permettendo all'utente di "condizionare" il modello verso risposte più precise o rilevanti rispetto a un obiettivo desiderato.
Riga 59: Riga 60:
Si prenda come esempio il seguente prompt, che è stato proposto nella pubblicazione "[[Alice in Wonderland: Simple Tasks Showing Complete Reasoning Breakdown in State-Of-the-Art Large Language Models]]" (2024):
Si prenda come esempio il seguente prompt, che è stato proposto nella pubblicazione "[[Alice in Wonderland: Simple Tasks Showing Complete Reasoning Breakdown in State-Of-the-Art Large Language Models]]" (2024):
  '''Alice and Bob are sister and brother. Alice has 3 sisters and Bob has 1 brother. How many brothers does Alice have?'''
  '''Alice and Bob are sister and brother. Alice has 3 sisters and Bob has 1 brother. How many brothers does Alice have?'''
La risposta di '''ChatGPT-4o-Latest''', che al momento della scrittura di questo articolo occupa la '''prima''' posizione nella [https://lmarena.ai/?leaderboard LLM Leaderboard], è errata:<blockquote>'''Alice has <u>1 brother</u>'''.


* Since Alice and Bob are siblings, and Bob is Alice's brother, the only brother Alice has is Bob. The statement says Bob has 1 brother, which confirms Alice only has one brother: Bob himself.
La risposta di '''ChatGPT-4o-Latest''', che al momento della scrittura di questo articolo occupa la '''prima''' posizione nella [https://lmarena.ai/?leaderboard LLM Leaderboard], è errata:
</blockquote>'''Google Gemini 1.5 Pro exp-827''', che al momento della scrittura di questo articolo occupa la seconda posizione nella [https://lmarena.ai/?leaderboard LLM Leaderboard], risponde così:<blockquote>Here's how to solve this riddle:
'''Alice has <u>1 brother</u>'''.
 
Since Alice and Bob are siblings, and Bob is Alice's brother, the only brother Alice has is Bob. The statement says Bob has 1 brother, which confirms Alice only has one brother: Bob himself.
* '''Alice's perspective:''' Alice has 3 sisters (including herself). Since Bob is her brother, she has '''1''' brother.
'''Google Gemini 1.5 Pro exp-827''', che al momento della scrittura di questo articolo occupa la seconda posizione nella [https://lmarena.ai/?leaderboard LLM Leaderboard], risponde così:
* '''Bob's perspective:''' Bob has 1 brother (himself). This information doesn't change how many brothers Alice has.
Here's how to solve this riddle:
 
'''Alice's perspective:''' Alice has 3 sisters (including herself). Since Bob is her brother, she has '''1''' brother.
'''Therefore, Alice has <u>1 brother</u>.'''</blockquote>Nel caso del prompt presentato, entrambi i modelli, GPT e Google Gemini, giungono a conclusioni errate a causa di una mancanza di capacità di ragionamento logico. Entrambi i modelli si focalizzano su elementi superficiali del prompt, come il fatto che Alice e Bob siano fratelli e che Bob abbia un fratello, senza considerare il fatto che il numero di fratelli di Alice è determinato dal numero totale di fratelli, non solo dalla presenza di Bob.
'''Bob's perspective:''' Bob has 1 brother (himself). This information doesn't change how many brothers Alice has.'''Therefore, Alice has <u>1 brother</u>.'''
'''Meta LLama 3''' (8B, usando [https://ollama.com/ Ollama] ) risponde ''':'''
A classic lateral thinking puzzle!
Let's analyze the situation:
* Alice is a sister of Bob, so they share two parents.
* Alice has 3 sisters, which means she has a total of 4 sisters (including herself).
* Bob has 1 brother, which means he has only one sibling who is male.
Now, let's think about the possible family structure:
* Since Bob is a brother of Alice, he must be one of Alice's brothers.
* But we know Bob has only 1 brother, so that means there are no other male siblings besides Bob.
This implies that all of Alice's 4 sisters (including herself) are female, which means she doesn't have any brothers at all!
So, the answer is: Alice has 0 brothers.
Nel caso del prompt presentato, tutti i modelli, GPT e Google Gemini, giungono a conclusioni errate a causa di una mancanza di capacità di ragionamento logico. Entrambi i modelli si focalizzano su elementi superficiali del prompt, come il fatto che Alice e Bob siano fratelli e che Bob abbia un fratello, senza considerare il fatto che il numero di fratelli di Alice è determinato dal numero totale di fratelli, non solo dalla presenza di Bob.


Questo dimostra come, nonostante i progressi significativi nella comprensione del linguaggio, gli LLM hanno ancora difficoltà a gestire situazioni che richiedono una logica complessa e una profonda comprensione delle relazioni tra gli elementi di un testo. Questo nonostante ottengano punteggi altissimi nei classici benchmark di ragionamento come [[MMLU]], che vedremo in una sezione successiva del corso.
Questo dimostra come, nonostante i progressi significativi nella comprensione del linguaggio, gli LLM hanno ancora difficoltà a gestire situazioni che richiedono una logica complessa e una profonda comprensione delle relazioni tra gli elementi di un testo. Questo nonostante ottengano punteggi altissimi nei classici benchmark di ragionamento come [[MMLU]], che vedremo in una sezione successiva del corso.
Riga 96: Riga 114:
* '''Licenza e limitazioni legali''': Informazioni sulla licenza del modello e su eventuali restrizioni legali per il suo utilizzo.
* '''Licenza e limitazioni legali''': Informazioni sulla licenza del modello e su eventuali restrizioni legali per il suo utilizzo.
* '''Versionamento''': Indicazioni sulla versione del modello, che aiutano a identificare aggiornamenti e miglioramenti nel tempo.
* '''Versionamento''': Indicazioni sulla versione del modello, che aiutano a identificare aggiornamenti e miglioramenti nel tempo.
Idee su come continuare
* Parlare dei task di addestramento, generazione del testo
* L'attention in dettaglio??
* Sentiment Analysis
* Reinforcement Learning fro Human Feedback
* BERT
== Bibliografia ==
== Bibliografia ==
[1] [https://www.semanticscholar.org/paper/Improving-Language-Understanding-by-Generative-Radford-Narasimhan/cd18800a0fe0b668a1cc19f2ec95b5003d0a5035 Improving Language Understanding by Generative Pre-Training]. - Il paper di GPT-1 (2018)
[1] [https://www.semanticscholar.org/paper/Improving-Language-Understanding-by-Generative-Radford-Narasimhan/cd18800a0fe0b668a1cc19f2ec95b5003d0a5035 Improving Language Understanding by Generative Pre-Training]. - Il paper di GPT-1 (2018)
Riga 121: Riga 126:


[6] [https://bbycroft.net/llm LLM Visualization]
[6] [https://bbycroft.net/llm LLM Visualization]
== Esercizi ==
=== Huggingface e GPT-2 ===
https://github.com/alesaccoia/DDM_2425/blob/main/AI_001_Huggingface_GPT2.ipynb


{{DEFAULTSORT:001 - Introduzione_all'Intelligenza_Artificiale_Moderna}}
{{DEFAULTSORT:001 - Introduzione_all'Intelligenza_Artificiale_Moderna}}
[[Categoria:Introduzione all'Intelligenza Artificiale Moderna]]
[[Categoria:Introduzione all'Intelligenza Artificiale Moderna]]
{{#seo:
|title=GPT e la Nuova Generazione di Modelli AI
|title_mode=append
|author=Alessandro Saccoia
|keywords=intelligenza artificiale, modelli linguistici, GPT, chatbot, OpenAI, prompting, deep learning, apprendimento automatico, elaborazione del linguaggio naturale, reti neurali, generazione di testo, assistenti virtuali, innovazione tecnologica, futuro dell'IA
|description=Questa pubblicazione esplora l'impatto di ChatGPT e l'evoluzione dei modelli di linguaggio come GPT-3. Analizza il funzionamento di questi modelli, inclusi concetti come prompting, contesto e inferenza, e discute le sfide come allucinazioni e confabulazioni. Esplora anche le caratteristiche chiave dei modelli di linguaggio, come architettura, parametri e dati di addestramento.
|image=Image 26.png
}}

Versione attuale delle 22:34, 5 gen 2025

Il 30 Novembre 2022 l'azienda statunitense OpenAI ha rilasciato ChatGPT, il suo chatbot e assistente virtuale. Questo rilascio ha segnato un vero momento di svolta nel campo dell'Intelligenza Artificiale: per la prima volta tutti gli utenti dotati di una connessione internet e di un computer o una smartphone hanno potuto interagire con un sistema di Intelligenza Artificiale general-purpose, cioè slegato da compiti specifici, ma che dà l'impressione di conoscere gran parte dello scibile umano, di ragionare, e di poter aiutare l'utente a risolvere compiti complessi.

ChatGPT è un'interfaccia grafica testuale, ovvero un'applicazione web based, che permette di interagire in maniera intuitiva ed efficiente con il Modello linguistico di grandi dimensioni sviluppato da OpenAI, chiamato GPT-3 e acronimo per Generative Pre-Trained Transformer: modello che poi, nei mesi e negli anni a venire, è costantemente aggiornato e migliorato [1][2][3][4].

Le caratteristiche principali che hanno decretato il successo planetario di questa applicazione, e il successivo boom di una nuova wave dell'intelligenza artificiale, sono:

  • l'interazione con il modello (chiamata prompting, in quanto si "esorta" il modello a generare una risposta), avviene col linguaggio naturale e non attraverso formule specifiche, come succede per esempio nei classici chatbot aziendali o su Whatsapp. L'interazione pare ammettere anche la presenza errori di ortografia e l'utilizzo di un linguaggio non preciso nel prompting
  • il testo generato dal modello è ricco di sfumature linguistiche, ben formattato, e sorprendentemente ricco di informazioni: risponde correttamente a molti quesiti e pare contenere gran parte dello scibile umano
  • l modello dà l'impressione di comprendere e di sapere scrivere in molti linguaggi: è un modello multilingue
  • durante l'interazione, il modello si rivela molto educato, dando l'impressione di essere un vero assistente umano
  • l'applicazione si ricorda e ha memoria delle interazioni passate, non rispondendo solo a domande puntuali ma dando all'utente la possibilità di instaurare una reale conversazione

Nei prossimi capitoli scopriremo come si è arrivati e quali sono le scoperte più importanti che hanno portato a un tale livello di sofisticazione. Ci concentreremo sui modelli di linguaggio, in quanto le architetture su cui sono basati sono state il vero passo in avanti nell'intelligenza artificiale moderna, e anche i seguenti progressi nel campo, per esempio, della generazione delle immagini, includono spesso le scoperte nate nel campo del linguaggio.

Il Modello di Linguaggio GPT, down the rabbit hole

Un modello generativo e autoregressivo

Utilizzando un'approccio top-down, partendo da cosa succede nel momento in cui si scrive un prompt nell'interfaccia di GPT, ad'esempio la semplice domanda:

Qual'è la capitale della Francia?

La conversazione è visibile sul link a ChatGpt. Il programma risponde correttamente con:

La capitale della Francia è Parigi.

GPT è un modello è detto generativo, in cui le parole, chiamate più precisamente token, vengono generate una di seguito all'altra: per capire quale token emettere, GPT tiene in considerazione tutte le parole precedenti, concatenando la domanda e le parole generate fino a quel momento. Questa concatenazione di input dell'utente e output del modello dà al modello l'aggettivo autoregressivo.

Prima di interrompersi, alla fine della frase, il modello viene "eseguito" N volte, accodando sempre l'ultimo token emesso, come mostrato nei seguenti time-step:

(1) Input: Qual'è la capitale della Francia? Output: La
(2) Input: Qual'è la capitale della Francia? La Output: capitale
(3) Input: Qual'è la capitale della Francia? La capitale Output: della
(4) Input: Qual'è la capitale della Francia? La capitale della Output: Francia
(5) Input: Qual'è la capitale della Francia? La capitale della Francia Output: è
(6) Input: Qual'è la capitale della Francia? La capitale della Francia è Output: Parigi
(7) Input: Qual'è la capitale della Francia? La capitale della Francia è Parigi Output: .

La sequenza di token che, a ogni step di esecuzione, viene presentata come input del modello, è denominata contesto; l'output del modello a ogni time-step viene invece chiamato inferenza. L'azione di utilizzare un modello, infatti, in gergo si chiama anche "fare inferenza".

Possiamo a questo punto comprendere che l'interfaccia di ChatGPT, ogni volta che vediamo apparire una nuova parola, non fa altro che che inviare ai server di OpenAI la concatenazione di tutta la conversazione avvenuta fino a quell'istante, fino alla fine della generazione della frase o del paragrafo corrente.

Vocabolario, token e funzionamento probabilistico del modello

Previsione della parola successiva in GPT-2

In un modello di linguaggio, il vocabolario è l'insieme finito di parole e simboli, chiamati genericamente token, che il modello è in grado di riconoscere, elaborare e generare. Ogni token del vocabolario ha una sua rappresentazione numerica che viene utilizzata come input per la rete neurale. Durante l'addestramento, il modello impara a predire la probabilità che ogni token nel vocabolario, dato un contesto, sia il successivo.

Il vocabolario è di dimensione fissa e viene definito in fase di preparazione dei dati; esso rappresenta una parte importante del modello, poiché un vocabolario più ampio permette di rappresentare una maggiore varietà di espressioni linguistiche, ma comporta anche una maggiore complessità computazionale. Per il modello GPT-3 i token sono circa 50000.

GPT genera il token successivo più probabile data la sequenza ordinata di token presenti nel suo contesto: più formalmente, l'obiettivo del modello è calcolare la probabilità condizionale di ogni token di "essere il successivo" dato il contesto precedente, e poi scegliere il token la cui probabilità condizionale è la più alta. Questo obiettivo di pre-training viene chiamato Causal Language Modeling (CLM) ed è tipico dei modelli di testo generativi.

Questa probabilità è denotata come P(xt​∣x1​,x2​,…,xt−1​), dove xt​ è il token che stiamo cercando di predire, e x1​,x2​,…,xt−1​ sono i token precedenti nel contesto. Il processo può essere descritto come segue:

  1. Probabilità condizionale: Per ogni posizione t, il modello stima la probabilità condizionale del prossimo token xt​ dato tutti i token precedenti: P(xt​∣x1​,x2​,…,xt−1​)
  2. Token più probabile: Una volta calcolata la distribuzione di probabilità per tutti i possibili token del vocabolario, il token generato è quello con la probabilità massima: xt​=argx∈Vmax​P(x∣x1​,x2​,…,xt−1​) Dove V rappresenta l'intero vocabolario. Questa formula indica che viene scelto il token xt​ che massimizza la probabilità condizionale tra tutti i token possibili.
  3. Processo iterativo: Il processo viene ripetuto in maniera autoregressiva, ovvero il token generato xt​ viene aggiunto al contesto per predire il token successivo xt+1​, e così via fino al completamento della sequenza o fino a un segnale di stop, come un token di fine sequenza.

Condizionamento del modello generativo: il prompting

Consideriamo un modello di linguaggio come una funzione, molto complessa, che dato il contenuto del contesto calcola la probabilità del token successivo. I parametri di questa funzione sono stati "scolpiti nella pietra" durante l'addestramento del modello, in particolare durante la retropropagazione, quindi, nel momento dell'inferenza, non possono essere più cambiati.

Il prompting quindi è l'input della funzione ed è l'unico modo a disposizione dell'utente per influenzare o "condizionare" il comportamento di un modello generativo come GPT: questo input può essere una domanda, un'istruzione o un frammento di testo che orienta la direzione e il contenuto della risposta. Il modello interpreta il prompt come contesto, e utilizza le informazioni fornite per determinare il flusso della conversazione o del testo generato. La qualità e la specificità del prompt hanno un impatto significativo sui risultati, permettendo all'utente di "condizionare" il modello verso risposte più precise o rilevanti rispetto a un obiettivo desiderato.

Esiste un prompting che possiamo chiamare "naturale", che è una capacità intuitiva che si crea durante l'interazione uomo-macchina, e viene acquisita dall'utente man mano che egli prende padronanza con la reazione del modello a un determinato input. Ma sono state sviluppate anche numerose tecniche di prompting, che sono state formalizzate in letteratura e vedremo in una sezione seguente: le principali sono Chain of Thought, Chain of Density e ReAct.

Errori di Ragionamento, Confabulazioni e Allucinazioni

L'AI Generativa, per quanto utile, è ancora ben lungi dall'essere infallibile.

Si prenda come esempio il seguente prompt, che è stato proposto nella pubblicazione "Alice in Wonderland: Simple Tasks Showing Complete Reasoning Breakdown in State-Of-the-Art Large Language Models" (2024):

Alice and Bob are sister and brother. Alice has 3 sisters and Bob has 1 brother. How many brothers does Alice have?

La risposta di ChatGPT-4o-Latest, che al momento della scrittura di questo articolo occupa la prima posizione nella LLM Leaderboard, è errata:

Alice has 1 brother.
Since Alice and Bob are siblings, and Bob is Alice's brother, the only brother Alice has is Bob. The statement says Bob has 1 brother, which confirms Alice only has one brother: Bob himself.

Google Gemini 1.5 Pro exp-827, che al momento della scrittura di questo articolo occupa la seconda posizione nella LLM Leaderboard, risponde così:

Here's how to solve this riddle:
Alice's perspective: Alice has 3 sisters (including herself). Since Bob is her brother, she has 1 brother.
Bob's perspective: Bob has 1 brother (himself). This information doesn't change how many brothers Alice has.Therefore, Alice has 1 brother.

Meta LLama 3 (8B, usando Ollama ) risponde :

A classic lateral thinking puzzle!

Let's analyze the situation:

* Alice is a sister of Bob, so they share two parents.
* Alice has 3 sisters, which means she has a total of 4 sisters (including herself).
* Bob has 1 brother, which means he has only one sibling who is male.

Now, let's think about the possible family structure:

* Since Bob is a brother of Alice, he must be one of Alice's brothers.
* But we know Bob has only 1 brother, so that means there are no other male siblings besides Bob.

This implies that all of Alice's 4 sisters (including herself) are female, which means she doesn't have any brothers at all!

So, the answer is: Alice has 0 brothers.

Nel caso del prompt presentato, tutti i modelli, GPT e Google Gemini, giungono a conclusioni errate a causa di una mancanza di capacità di ragionamento logico. Entrambi i modelli si focalizzano su elementi superficiali del prompt, come il fatto che Alice e Bob siano fratelli e che Bob abbia un fratello, senza considerare il fatto che il numero di fratelli di Alice è determinato dal numero totale di fratelli, non solo dalla presenza di Bob.

Questo dimostra come, nonostante i progressi significativi nella comprensione del linguaggio, gli LLM hanno ancora difficoltà a gestire situazioni che richiedono una logica complessa e una profonda comprensione delle relazioni tra gli elementi di un testo. Questo nonostante ottengano punteggi altissimi nei classici benchmark di ragionamento come MMLU, che vedremo in una sezione successiva del corso.

Questo problema è ulteriormente aggravato dal fatto che gli LLM spesso tendono a "confabulare", ovvero a inventare informazioni o a fornire risposte che non sono supportate dai dati di input. In questo caso, il ragionamento errato di entrambi i modelli può essere visto come una forma di confabulazione, in cui essi generano informazioni aggiuntive (come il fatto che Alice sia la sorella di se stessa) per giustificare la risposta finale.

Dalla pubblicazione:

Confabulations can also refer to reasoning about social norms or structures. For instance, in Command R+ we observe many confabulations that use concepts of gender identity such as non-binary gender or concepts related to inclusion or to cultural context dependent family identification as additional backup for the provided wrong reasoning and incorrect answers. Another type of confabulation that we observe is complete refusal to answer due to invented ethical concerns about the nature of the posed AIW problem, such as violation of privacy or lack of inclusion (for instance in CodeLLama-70B-instruct), or by expressing incorrect concerns about supposedly ill-posed problem formulation.

Un altro problema sono le allucinazioni, che vengono definite come la tendenza dei modelli di linguaggio a generare testo non veritiero o non supportato dai dati di addestramento. Possono assumere varie forme, ma quella più grave è la tendenza a dare per certi fatti mai esistiti. Per esempio, scrivendo in Google Gemini Flash 1.5:

Who was the mother of Afonso II, the third king of Portugal?

La risposta del sistema è:

The mother of Afonso II, the third king of Portugal, was Urraca of Castile.

La risposta corretta sarebbe invece Dolce di Barcellona.

Possiamo concludere questa sezione con la'affermazione che, essendo guidati dalla ricerca della probabilità maggiore, i modelli di linguaggio odierni non hanno concezione di ciò che non sanno: questo comporta che, in un modo o nell'altro, essi esibiscano sempre una certa assertività e compiacenza che, per quanto possa essere ridotta attraverso le tecniche che vedremo nei prossimi capitoli, può portare a trarre delle conclusioni errate.

Model Card: le caratteristiche dei modelli di linguaggio

Nei prossimi capitoli esploreremo in dettaglio le caratteristiche che rendono ogni modello di linguaggio unico, utilizzando GPT-3 come esempio principale. Le caratteristiche fondamentali di un modello di linguaggio, generalmente sintetizzate in una Model Card, includono:

  • Architettura: la struttura interna che determina come il modello elabora e genera il linguaggio.
  • Numero di parametri: espressi in milioni (M) o miliardi (B), questi determinano la capacità di apprendimento e generalizzazione del modello.
  • Dati di addestramento: la quantità e la tipologia di dataset utilizzati per addestrare il modello, che influenzano la sua comprensione del linguaggio.
  • Obiettivi di addestramento: l'obiettivo durante l'addestramento del modello è minimizzare una funzione di perdita (o loss), come la cross-entropia, che il modello cerca di minimizzare durante l'apprendimento. Per i modelli di linguaggio autoregressivi come GPT, l'obiettivo tipico è predire il token successivo dato il contesto precedente, ottimizzando la probabilità condizionale dei token.
  • Performance: i risultati ottenuti su diversi benchmark, utilizzati per misurare le capacità del modello in una varietà di compiti linguistici.

Oltre a questo, spesso vengono la Model Card include le seguenti voci:

  • Scopo: Descrizione dell'utilizzo previsto del modello e delle sue limitazioni. Viene chiarito per quali contesti il modello è stato progettato e in quali potrebbe non essere adatto.
  • Considerazioni etiche: Riflessioni sull'uso del modello, compreso l'impatto sociale, i rischi potenziali (ad esempio bias o discriminazioni) e le raccomandazioni per un utilizzo responsabile.
  • Licenza e limitazioni legali: Informazioni sulla licenza del modello e su eventuali restrizioni legali per il suo utilizzo.
  • Versionamento: Indicazioni sulla versione del modello, che aiutano a identificare aggiornamenti e miglioramenti nel tempo.

Bibliografia

[1] Improving Language Understanding by Generative Pre-Training. - Il paper di GPT-1 (2018)

[2] Language Models are Unsupervised Multitask Learners - Il paper di GPT-2 (2019)

[3] Language Models are Few-Shot Learners - Il paper di GPT-3 (2020)

[4] GPT-4 Technical Report - il paper di GPT-4 (2023)

[5] Multitask Prompted Training Enables Zero-Shot Task Generalization - Il paper di T0 (2022)

[6] LLM Visualization

Esercizi

Huggingface e GPT-2

https://github.com/alesaccoia/DDM_2425/blob/main/AI_001_Huggingface_GPT2.ipynb