GPT e la Nuova Generazione di Modelli AI: differenze tra le versioni
Riga 50: | Riga 50: | ||
Il prompting è l''''unica''' '''tecnica''' 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 è l''''unica''' '''tecnica''' 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 di cui si occuperemo in una sezione apposita di questo corso: per esempio si possono citare [[Chain of Thought]] e [[Chain of Density Prompting|Chain of Density]]. | |||
== Model Card: le caratteristiche dei modelli di linguaggio == | == Model Card: le caratteristiche dei modelli di linguaggio == |
Versione delle 07:19, 6 set 2024
GPT e la nuova generazione dell'Intelligenza Artificiale
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 volte 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, è chiamata contesto; l'output del modello a ogni time-step viene invece chiamato 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.
Vocabolario, token e funzionamento probabilistico del modello

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à dei vari token nel vocabolario, dato un contesto. 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.
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:
- 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)
- 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∈VmaxP(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.
- 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
Il prompting è l'unica tecnica 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 di cui si occuperemo in una sezione apposita di questo corso: per esempio si possono citare Chain of Thought e Chain of Density.
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.
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
[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)