Una Guida Semplice per Capire Come Funziona l'AI, Chat GPT e gli LLM.
L'Intelligenza Artificiale (AI) è ormai una realtà quotidiana, sollevando domande come 'Come funziona l'AI?', 'Come funziona Chat GPT?' e 'Come funzionano gli LLM (Large Language Models)?'. Questi interrogativi sono comuni, soprattutto tra chi non ha una formazione tecnica, a causa della percezione di complessità che circonda l'AI.
Fortunatamente, i principi dell'AI, di Chat GPT e degli LLM sono più accessibili di quanto si pensi. La guida non-tecnica di Nir Zicherman fornisce una chiave di lettura semplice e diretta. Senza termini tecnici o equazioni matematiche, l'autore spiega il funzionamento delle LLM, essenziali per comprendere l'AI e Chat GPT, attraverso un'efficace metafora culinaria.
Attraverso questa guida, imparerete che le basi dell'intelligenza artificiale, di Chat GPT e degli LLM non sono solo affascinanti, ma anche facilmente comprensibili. Questa spiegazione intuitiva vi offrirà una visione più chiara su come l'AI elabora le informazioni e su come Chat GPT e gli LLM trattano e rispondono alle vostre domande. E se la tematica vi affascina, vi consigliamo di leggere AI e Large Language Models (LLM): Un Mistero Irrisolto per avere una visione più critica e completa sull'argomento.
Con questa conoscenza, sarete meglio equipaggiati per navigare nel mondo digitale in continua evoluzione.
Il Menu
Immagina questo: stai preparando una cena, ma hai bisogno di un altro contorno da servire perché il cibo che stai preparando è appena sufficiente.
Quindi hai bisogno di un componente in più da aggiungere al pasto.
Ma è più facile a dirsi che a farsi. Ciò che scegli deve adattarsi al pasto: se il pasto è saporito, anche il contorno dovrebbe esserlo, se c'è già un'insalata, non dovresti farne un'altra. Ancora, se il pasto è ricco di amidi, forse sarebbe preferibile aggiungere una verdura arrostita.
Non sarebbe bello avere un'app che ti dica semplicemente cosa preparare (e non a caso)? Inserisci ciò che stai già preparando, e ti dice il contorno ottimale da aggiungere.
Questa app dovrebbe funzionare per qualsiasi pasto, con qualsiasi combinazione di piatti e sapori e indipendentemente dal fatto che tu debba nutrire quattro persone o quaranta.
Ecco come faremo questa app in due semplici passaggi:
Primo, faremo in modo che capisca come pensare a ogni pasto in un modo che un computer possa capire. Dopotutto, i computer non hanno papille gustative. Devono essere in grado di prendere un concetto su cui non hanno alcuna comprensione intuitiva (il cibo) e codificarlo come un tipo di dati che cattura tutto ciò che potrebbe influenzare quanto bene si adatta ad altri cibi.
Secondo, gli faremo imparare un modo per prendere qualsiasi insieme di piatti esistenti e produrne un altro. Non si limiterà a memorizzare ciò che ha visto prima. Ricorda che questa app deve funzionare per qualsiasi combinazione di piatti, anche quelli che non ha mai visto abbinati insieme. Quindi non programmeremo solo il sistema, lo istruiremo.
1. Modellare i pasti
Quindi, primo passo. Dobbiamo insegnare al computer a considerare i pasti come dati. Non lo faremo dicendogli cose sul pasto (come il suo sapore o il suo abbinamento). Questo è il vecchio tipo di apprendimento automatico. Troppo limitante, troppo soggetto a errori. Invece, gli daremo in pasto un sacco di dati sui tipi di piatti che le persone hanno abbinato in passato.
Consideriamo due tipi di piatti: diciamo, una cesar salad e un'insalata caprese. Noi, come esseri umani, sappiamo che questi due piatti sono simili. Sono entrambi italiani, sono entrambe insalate, contengono entrambi verdure e formaggi, ma perché una macchina impari a riconoscere la somiglianza tra questi due piatti, non deve sapere nulla di tutto ciò.
È molto probabile che mentre cerchiamo nella nostra montagna di dati, ogni volta che vediamo una caesar salad, questa possa essere vista abbinata ad altri piatti italiani ed è anche probabile che quando la vediamo, non vedremo un'altra insalata nel pasto. Lo stesso si può dire dell'insalata caprese: di solito non compare con altre insalate, ma appare con piatti italiani.
Poiché questi due piatti spesso vengono abbinati con gli stessi tipi di altri piatti, possiamo classificarli come simili. Poiché tendono a essere trovati negli stessi schemi di cibo potremmo dire che "un piatto è classificato da quelli a cui si accompagna". E questo non è così intuitivo.
Si noti che non abbiamo cercato alcun pasto in cui le insalate caesar e caprese siano presenti insieme. Non è mai necessario che si presentino insieme per considerare i piatti simili. È sufficiente che si trovino tra gli stessi piatti per stabilire che le persone le trovano generalmente intercambiabili e quindi molto simili.
Ecco un altro modo di pensare a ciò che abbiamo appena fatto. Si immagini di inserire tutto il cibo su un grafico:
E per iniziare, prendiamo tutti i piatti possibili che abbiamo trovato nei nostri dati e li inseriamo casualmente:
(Qui mostriamo solo quattro piatti a scopo illustrativo ma immagina letteralmente ogni piatto possibile)
Ora, mentre esaminiamo i nostri dati, ogni volta che troviamo due alimenti che si abbinano ad altri piatti, possiamo avvicinarli. Se vediamo diversi tipi di sushi che tendono a essere abbinati alla stessa zuppa di miso, faremo avvicinare i sushi l'uno all'altro. Se vediamo che la pizza e gli spaghetti compaiono entrambi insieme al pane all'aglio, lasceremo che anche loro si avvicinino:
E dopo averlo fatto molte volte (e intendo molte, molte volte), si verifica qualcosa di magico. I piatti che sono intercambiabili si raggruppano molto vicini tra loro. I piatti che sono in qualche modo intercambiabili (ad esempio, tacos e burritos) appariranno più vicini l'uno all'altro. E i piatti che sono raramente, se non mai, intercambiabili (ad esempio, hamburger e sushi) saranno molto distanti tra loro.
Nella pratica due dimensioni non sono sufficienti: ogni cucina e ogni pasto dissimile deve essere sufficientemente distanziato dall'altro/a, il che significa che il vero giusto modo di tracciare un grafico sarebbe un grafico composto da molti più assi (centinaia, forse migliaia). È impossibile da visualizzare, ma il concetto di fondo è lo stesso. Posizioniamo casualmente tutti i nostri alimenti e li avviciniamo quando si presentano insieme a piatti simili.
Come abbreviazione, questo grafico a molti assi verrà chiamato con il nome di spazio-pasto. Ogni possibile alimento esiste nello spazio del pasto, in coordinate vicine a quelle degli alimenti con cui è intercambiabile e lontane da quelle degli alimenti molto diversi.
Si è così creato un modello molto accurato di tipi di cibo in cui quelli simili sono raggruppati insieme e quelli diversi sono lontani. E tutto questo è stato fatto senza tenere nulla in considerazione circa il sapore dei cibi o di cosa sono composti.
Inoltre, poiché questo modello è stato formato su così tanti dati, si sarà in grado di fare qualcos'altro: aritmetica del cibo.
In che modo? Guardando bene al modello sarà possibile notare che la posizione dei piatti nel nostro spazio-pasto non è casuale: infatti non solo i pasti simili sono posizionati insieme, ma la relazione tra i cibi ha un senso logico. I cibi contenenti pane compaiono tutti insieme su un piano, i cibi salati sono tutti su una linea comune mentre i cibi al gusto d'acero hanno qualche tipo di collegamento matematico.
Ciò ci permette di fare cose come questa: se si dovesse prendere le coordinate per un burrito e sottrarre le coordinate per una tortilla, si finirebbe vicino al punto di una ciotola di burrito. Se si prendessero le coordinate per una zuppa di pollo e noodles, si sottraessero le coordinate per i noodles e aggiungessero le coordinate per il riso, si finirebbe vicino al punto per una zuppa di pollo e riso.
Aritmetica alimentare! 🤯
Il risultato più importante: il posizionamento dei pasti nello spazio non è più casuale. Esistono infatti schemi matematici sottostanti e nascosti che fanno sì che ogni alimento sia posizionato in modo logico rispetto a tutti gli altri.
2. Trovare i modelli
Ok, bene, è stato creato lo spazio dei pasti e dato a ogni tipo di alimento una sorta di coordinata che ha senso rispetto a ogni altro alimento. E adesso?
Beh, addestriamo di nuovo il modello. Questa volta, però, gli "daremo in pasto" tutti i pasti possibili - tutti i pasti che abbiamo mai visto - e gli chiederemo di trovare degli schemi. In particolare, vogliamo addestrare il nostro programma a rispondere a questa domanda: Se un pasto contiene A, B e C, quale tipo di piatto è più probabile che contenga D?
E per farlo, tutto ciò che dobbiamo fare è chiedere, per ogni pasto su cui ci alleniamo: Come si presenta nello spazio del pasto? Per esempio, diciamo che vediamo molti pasti che condividono piatti in queste quattro aree del grafico:
Ora possiamo generalizzare e pensare solo alle coordinate nello spazio dei pasti, ignorando quali cibi ci hanno persino addestrato a riconoscere questo modello in primo luogo. Possiamo concludere che se un pasto contiene già piatti in queste tre regioni, il miglior quarto componente si troverebbe in quell'ultima regione:
Si ricordi che "un piatto è classificato da quelli a cui si accompagna". Poiché il nostro modello è stato addestrato a pensare ai tipi di alimenti e alle relazioni tra gli alimenti, piuttosto che a ciò che contengono i piatti specifici e al loro sapore, può prendere qualsiasi scenario e qualsiasi combinazione di sapori e capire quale sia il piatto migliore da aggiungere al pasto. Date alcune regioni di cibo, deve solo trovare la regione più comune in cui si trova il piatto successivo, che riporta all'obiettivo originale, ora completato.
Volevamo costruire un'app che potesse dirci affidabilmente quali piatti abbinare a una selezione di altri piatti e abbiamo fatto proprio questo.
Parole anzichè Ricette
Quindi, cosa ha a che fare tutto ciò con gli LLM?
Basta sostituire il concetto di pasto con quello di frase. E sostituire il concetto di piatti in quei pasti con parole. Questa semplice sostituzione, con la stessa struttura e lo stesso approccio, porta essenzialmente agli strumenti di AI generativa basati sul testo che oggi conosciamo bene.
Primo step: Addestrare un modello a capire le relazioni tra le parole in base alla frequenza con cui appaiono in contesti simili. "Una parola viene classificata in base a quelle a cui si accompagna". Dategli in pasto una tonnellata di dati scritti dall'uomo ("e quando dico una tonnellata, intendo essenzialmente l'intero Internet") e lasciate che muova le coordinate delle parole in modo appropriato.
L'output non si chiama più spazio dei pasti. Si chiama spazio vettoriale, ma i principi sono gli stessi. Il sistema non è consapevole del significato di una parola (così come non è consapevole del sapore di un piatto). Capisce solo come quella parola è collegata a tutte le altre nello spazio vettoriale.
Secondo step: trovare modelli. Se una frase contiene le parole A, B, C, qual è la parola successiva più probabile che appaia? Se contiene X e Y, in quale regione dello spazio vettoriale si deve cercare la parola successiva?
Nel caso degli LLM, tutto ciò che fanno in realtà è la cosiddetta "previsione della parola successiva" (proprio come la nostra analogia originale eseguiva la "previsione del piatto successivo"). Per esempio, si supponga di aver interrogato un LLM con la frase: "Dimmi che mi ami". L'LLM cercherebbe in tutti i suoi modelli di ricerca una risposta a una domanda: "Quale parola è più probabile che segua questa sequenza di parole?" Oppure, con una formulazione diversa: "Date le coordinate dello spazio vettoriale delle parole in quella frase, quali modelli ho visto in altre frasi per determinare dove posso trovare la parola successiva?"
La risposta che l'LLM troverà è "Io". E avendolo determinato, aggiornerà "Io" alla fine del prompt originale e lo reinserirà tutto in se stesso.
Ora, quale parola è più probabile che venga dopo "Dimmi che mi ami. Io"? Naturalmente, "amo"! Aggiungilo, prendi tutto e reinseriscilo. Qual è la probabilità che venga dopo: "Dimmi che mi ami. Io amo"?...
E così via.
Conclusioni
Naturalmente, ci sono un po' più di sfumature. C'è un po' di matematica e di calcoli complessi. Ma le basi non sono diverse da quelle dell'esempio della pianificazione dei pasti fornita da Nir Zicherman.
Data e considerata la continua trasformazione di questa tecnologia, speriamo di aver fatto un pò di chiarezza, rendendo la comprensione del funzionamento delle LLM un pò più comprensibile: pochi e semplici concetti matematici, molti dati di addestramento, una spolverata di sale e pepe, ed ecco che si è costruita una macchina potentissima. Bon apetit!
Condividi articolo:
Boraso è la prima agenzia full service in Italia di Conversion Marketing specializzata in Conversion Optimization, UX Design, SEO, Digital Advertising, Marketing Automation, Brand Identity, Data Analysis, Strategia Marketing, Content Marketing, Sviluppo eCommerce Magento, Sviluppo eCommerce in Shopify e Shopify Plus, Sviluppo siti custom e Sviluppo siti web con obiettivi di conversione.