Prompting come Mediazione tra Due Epistemologie (2/2)
Indice:
1. L’epistemologia e la distinzione del vero dal falso (qui)
2. La progressiva nebulizzazione della verità (qui)
3. Il contributo dell’AI alla diffusione della conoscenza (qui)
4. Il prompting, ponte tra due epistemologie
4.1 Assegnazione dei ruoli (Role Assignment)
4.2 Input e output strutturati (Structured Input/Output)
4.3 Risposte precompilate (Prefill)
4.4 Richiesta n-shot (n-Shot Prompting)
4.5 Chain-of-Thought
4.6 Scomposizione dei prompt (Splitting Prompts)
4.7 L’opzione “Non so”
4.8 Invitare l’AI a farsi una domanda
4.9 Porre limiti alla risposta attesa
4.10 Regolare la temperatura
4.11 La cortesia non conta, ma…
Conclusione
— — —
4) Il prompting, ponte tra due epistemologie
I modelli AI non “comprendono” nel senso umano, ma funzionano elaborando correlazioni statistiche tra parole e pattern estratti da enormi dataset. La loro “conoscenza” è un’aggregazione probabilistica di dati testuali, senza intenzionalità o coscienza (Iasima, secondo il nome proposto da Massimo Chiriatti). Per questo motivo, per l’AI si può forse parlare di epistemologia algoritmica, un concetto già discusso in letteratura da autori come Luciano Floridi, Massimo Chiriatti, Nick Bostrom, Kate Crawford e Shannon Vallor.
Appare ora in tutta evidenza che l’interazione tra uomo e AI richieda innanzitutto un ponte che non solo funga da connessione, ma anche da traduzione tra due diverse modalità di acquisizione e gestione della conoscenza. Questo ponte è il prompting, intendendo l’intero processo di interrogazione dell’AI.
Quando formuliamo un prompt, stiamo cercando di trasmettere un’intenzione comunicativa a un sistema che non possiede un modello mentale del mondo come il nostro. Il modello AI può produrre risposte coerenti e ben strutturate, ma questo non significa necessariamente che siano vere nel senso fattuale. La coerenza interna è un criterio utile per valutare una risposta, ma non è sufficiente a garantire che questa corrisponda alla realtà. L’AI può generare risposte plausibili ma completamente errate (allucinazioni).
Molto è stato scritto sull’argomento: uno dei primi tutorial sistematici è stato pubblicato nell’ottobre 2022 da Sander Schulhoff (Learn Prompting), e già poco dopo il rilascio al grande pubblico del primo LLM (OpenAI, ad oggi solo 2 anni e 2 mesi fa!), sono state prodotte svariate checklist, buone pratiche, elenchi di esempi e video tutorial. D’altra parte, così come evolve la tecnologia sottostante, anche le modalità di interrogazione vanno affinandosi. Rivediamo le principali alla luce del confronto tra le due epistemologie.
4.1. Assegnazione dei ruoli (Role Assignment)
Sarebbe sicuramente curioso, nel dialogo tra umani, che un interlocutore chieda ad un altro di assumere un ruolo particolare, eppure qualche volta succede. “Te lo chiedo parlando all’avvocato”. “Dimmelo senza tanti giri di parole”. “Dimmelo tu che sei esperto”. Assumendo cioè che l’interlocutore possa adottare diversi stili di comunicazione, si indica esplicitamente quello preferito. A maggior ragione questo vale con un LLM che potrebbe adottare qualsiasi tipo di eloquio, tono di voce, livello di dettaglio.
Inoltre, non è solo una questione di impostazione dello stile comunicativo: l’indicazione sul ruolo da assumere funziona proprio come condizionamento mentale e filtro di contestualizzazione. Il LLM peserà di conseguenza le diverse permutazioni di token in ragione della loro pertinenza con il contesto specificato indirettamente, e del loro allineamento con altre rappresentazioni associate a quel ruolo. Invece che procedere attraverso un universo di possibili risposte, potrà convergere più velocemente e precisamente su quelle appropriate.
A questo punto, anche la scelta di esemplificare il ruolo da assumere va valutata con attenzione. “Assumi il ruolo di insegnante”, non vale come “Assumi il ruolo di un professore universitario in …”, o come “Immagina di essere un esperto di … che ha scritto un best seller sull’argomento”, e nemmeno come “Sei un C-level con responsabilità legale in questo ambito”. Nei diversi casi l’AI valuterà con maggiore attenzione diversi aspetti del tema posto, riguardanti la comunicazione, il dettaglio operativo, e nell’esempio, anche i risvolti normativi.
Se l’assegnazione di ruoli diventa una prassi ricorrente nell’interazione col modello, e porta come conseguenza una serie di dettagli collegati (incipit, espressioni gergali particolari, tone of voice …), allora sarà utile definire i ruoli e le loro caratteristiche distintive in qualche forma tabellare o equivalente, e istruire il modello a procurarsi i parametri associati al ruolo in base alla sua semplice indicazione.
4.2. Input e output strutturati (Structured Input/Output)
I LLM elaborano e generano testi in linguaggio naturale, ma restano pur sempre dei sistemi informatici che operano fondamentalmente su strutture dati. La prima e l’ultima fase del processo è la decomposizione e ricomposizione del testo in linguaggio naturale. Noi umani possiamo avvalerci in questa fase di svariati strumenti, dalla memoria storica, alla conoscenza specifica dell’interlocutore, all’empatia che ci permette di impostare e riconoscere il tono della voce e altri gesti che accompagnano il parlato. Questo fa sì che normalmente noi “capiamo” cosa ci viene chiesto, anche se sappiamo bene quanto spesso non sia proprio così, e che gli equivoci non si contano.
E’ curioso pretendere che l’AI abbia la capacità di leggere nel pensiero e quindi di comprendere sempre, con esattezza, cosa viene richiesto. Anche quando si sottopone all’AI un classico test logico-matematico, viene spesso commesso l’errore di trascurare la formulazione del problema (maliziosamente?) inducendo l’AI in confusione.
Per esempio il test formulato come in figura 1, fallisce perché l’AI si concentra (correttamente) sul compito richiesto, cioè eseguire una traduzione letterale del testo, parola per parola, frase per frase. Però è sufficiente precisare la richiesta, chiedendo quindi che il testo tradotto mantenga un significato corretto dal punto di vista logico, come in figura 2.
Questo fa capire che si possono adottare accorgimenti per facilitare questo lavoro di decodifica, rendendo esplicite ulteriori informazioni che strutturano e classificano l’informazione trasmessa (come nell’esempio, appunto). Questo permette al modello di non confondersi già all’inizio, e quindi di non divagare nel processo successivo. Anche senza arrivare a formati rigorosamente strutturati, come i tag XML, è utile adottare qualunque forma di strutturazione del testo che evidenzia i temi, i punti, le parole chiave, i riferimenti…
Conviene anche passare al modello istruzioni per la generazione di output convenientemente strutturati, in modo che risultino più leggibili e comprensibili, e più facilmente utilizzabili in seguito come input per nuove interrogazioni.
4.3. Risposte precompilate (Prefill)
Precompilare la risposta di un LLM è come “mettergli le parole in bocca”. In pratica consiste nel fornire attraverso il prompt una prima parte della risposta, chiedendo di completarla, oppure una risposta incompleta che contiene dei marcatori, chiedendo di sostituirli con le parole più appropriate.
Questo aiuto è particolarmente efficace, perché gli LLM sono costruiti proprio per aggiungere a una sequenza di token quello che risulta più adatto in quella posizione. Inoltre assicura che il contenuto e il formato della risposta siano il più vicino possibile alle aspettative, e a quanto necessario per utilizzare la risposta nel processo a valle.
Personalmente, questa è una delle tecniche che uso più spesso selezionando il frammento della risposta precedente che più direttamente influenza l’interrogazione successiva, e quindi assicurandomi che il dialogo prosegua seguendo un filo logico complessivo. In generale, è buona prassi riprendere i passaggi chiave delle interazioni precedenti per contestualizzare le nuove, senza contare troppo sull’intuito del modello nel cogliere i sottintesi e nel mantenere una visione d’insieme.
4.4 Richiesta n-shot (n-Shot Prompting)
Un’altra buona pratica è quella di fornire al modello un certo numero di esempi per migliorare la qualità e la coerenza dell’output. Consiste, in sostanza, in un’estensione della tecnica prefill, fornendo più schemi alternativi come riferimento per la risposta. Generalmente gli esempi vengono da una libreria di formati di output desiderati.
Occorre valutare con attenzione quanti esempi siano sufficienti, perché se forniamo troppo pochi esempi, diciamo da tre a cinque, rischiamo di “sovra-adattare” il modello a quegli esempi (in-context learning). Come conseguenza, quando l’interrogazione merita una risposta che esula dagli schemi predefiniti, avremo costretto il modello a forzarla in un formato inadatto, e quindi rendendola di scarsa qualità.
Una dozzina di campioni può essere già sufficiente, ma questo dipende molto da quanto generico è l’ambito di indagine: porre quesiti sui contenuti delle pagine prodotto di un ecommerce verticale, non è come porli sui contenuti delle pagine prodotto di Amazon. Ambiti che richiedono maggiore rigore e formalità, per esempio quelli accademici, rendono necessari più spesso decine di esempi.
4.5 Chain-of-Thought
Il principio alla base della Catena di Pensiero può essere sintetizzato nell’espressione “passo dopo passo”. A tutti gli effetti, si tratta di molto più di questo, e la frequenza con cui si raccomanda di inserire questa dicitura nei prompt è solo figlia della fretta di trovare una formula magica che possa risolvere ogni problema di consistenza delle risposte generate dai LLM. Anche l’idea di “scomporre una domanda complessa in domande più semplici”, valida nei casi più semplici, è riduttiva rispetto al potenziale di questa tecnica.
Proposto da alcuni ricercatori di Google Research, col paper “”Chain-of-Thought Prompting Elicits Reasoning in Large Language Models”, introduce il concetto di ragionamento intermedio (intermediate reasoning). Si tratta in sostanza di ragionare insieme al modello (ragionare col supporto del modello) sulla possibile risposta all’interrogativo iniziale e alle sue progressive specificazioni.
Oggi lo troviamo applicato (“cablato”) nelle versioni dei modelli cosiddetti “reasoning model”, i quali dedicano la prima parte dell’elaborazione a scomporre qualunque interrogazione in una sequenza di passi, e ad eseguirli. Prima di fornire la risposta viene visualizzato un rapporto sull’esecuzione dei passi preliminari. Questo stage iniziale, i pochi secondi che richiede, e il modo con cui viene documentato, fanno gridare molti al miracolo, credendo che la macchina “pensi”.
Ad oggi, secondo Perplexity il reasoning è possibile solo con DeepSeek R1 e ChatGPT o3-mini, ma hanno funzionalità che vanno in questa direzione: ChatGPT o4 (OpenAI), PaLM 2 (Google), LLaMA (Meta), Orca (Microsoft).
Il potenziale di questa tecnica va ben oltre l’obiettivo, pur prezioso, di rendere esplicita e spiegabile l’elaborazione da parte dell’AI, e di prevenire errori o allucinazioni. Consiste nell’incentivare prima di tutto l’umano, a inquadrare l’interrogazione in un ragionamento più ampio e strutturato, ed esplicito, durante il quale l’umano può focalizzare meglio, e il quesito stesso può evolvere.
4.6. Scomposizione dei prompt (Splitting Prompts)
Proprio per quanto detto a proposito della Chain-of-Thoughts, la tecnica che prevede la suddivisione di prompt complessi in parti più piccole, è pur sempre utile sia per prevenire errori e allucinazioni, e per migliorare le prestazioni del modello. Merita quindi un posto a parte in questo elenco.
Questa tecnica permette anche di sottoporre i quesiti iniziali di inquadramento, spesso più semplici, a versioni del modello meno potenti, e quindi anche più economiche. Questo porta a contenere i costi di elaborazione, che altrimenti potrebbero aumentare insieme al numero di interrogazioni.
Personalmente, trovo utile iniziare spesso una sessione (chat) con una serie di domande “di apertura”, che oltre a portare i benefici ricordati qui sopra, permettono anche al modello di costruirsi un contesto utile non solo per la sessione in corso, ma anche eventuali altre successive. Questa tecnica richiede di operare con strumenti che permettono al modello di considerare più sessioni all’interno di un unico contenitore (progetto o agente), condividendo tra tutte le stesse informazioni di contesto.
4.7. L’opzione “Non so”
Può sorprendere, ma uno dei modi più efficaci per evitare allucinazioni è istruire il modello a confessare di non conoscere la risposta, quando non ne dovesse trovare una sufficientemente valida. Per la sua natura, infatti, il modello tenderebbe a fornire sempre la risposta migliore tra tutte le possibili, anche se non supera il nostro criterio di soddisfazione e di affidabilità. Del resto, il modello non sempre lo conosce.
Quando viene chiesto al modello di rispondere con un riepilogo sul nostro lavoro/personalità/biografia, o su quello di altri personaggi per i quali non è facile recuperare informazioni in rete, non dobbiamo stupirci se risponde in modo bizzarro, o, peggio, affermando cose che squalificano o danneggiano il profilo stesso. Per coerenza, non dovremmo nemmeno compiacerci se risponde magnificando doti che il profilo non ha proprio mai espresso.
In mancanza di una contestualizzazione precisa, e di informazioni disponibili in rete, non è colpa del modello fornire una risposta inappropriata. La generazione di una risposta che sembra di fantasia, ma in realtà è prodotta dalla variabilità statistica, solo un po’ credibile, è una nostra responsabilità.
Possiamo solo essere consapevoli della scarsa qualità del nostro prompt, e cercare di migliorarlo. In ogni caso, per essere sicuri di evitare risposte imbarazzanti, è utile inserire nel prompt indicazioni come “Se la domanda non può essere risolta in una risposta di cui sei assolutamente certo che sia corretta nei fatti, rispondi con ‘Non lo so’”.
4.8. Invitare l’AI a farsi una domanda
Spesso nelle interazioni tra umani, ci si affida alla capacità di ragionamento autonoma dell’interlocutore invece di sforzarsi di esplicitare e argomentare il proprio ragionamento. Analogamente, anche nell’interazione con i LLM può essere conveniente sfruttare la loro stessa capacità per valutare, approfondire e perfino verificare proprio le loro stesse risposte.
Può sembrare controintuitivo, se si pensa che il rischio di errori e allucinazioni riguarda tutte le risposte del modello, quindi anche quelle in merito alle sue stesse risposte. Eppure bisogna ricordare la natura adattiva del processo di generazione, che quindi difficilmente consente al modello di fornire la stessa risposta alla stessa domanda (per non dire mai), qualora questa abbia un minimo livello di complessità.
Invitare quindi il modello a riformulare una sua precedente risposta, significa portarlo a ripetere il processo generativo, che inevitabilmente userà una diversa pesatura dei parametri di contesto, e quindi a concludere una diversa risposta. La rilevazione di incoerenze e contraddizioni sarà un indicatore della qualità di entrambe le risposte.
Inoltre, dare in pasto ad una nuova interrogazione la risposta generata al giro precedente, porterà il modello a contestualizzare in maniera diversa. La nuova risposta sarà generata senza soffermarsi sui passaggi che hanno portato alla prima, e risulterà più accurata anche in una nuova e più ampia prospettiva.
Sarà come quando chiediamo a qualcuno di ripetere una sua affermazione che non ci sembra pienamente comprensibile: se si tratta di concetti articolati, l’interlocutore non sarà capace di ripetere parola per parola, e la stessa richiesta di riformulare l’affermazione, lo porterà a considerare gli stessi elementi diversamente, o altri precedentemente trascurati.
4.9. Porre limiti alla risposta attesa
Sempre nei casi di una certa complessità, è opportuno delimitare lo spazio di informazioni che il modello deve esplorare, specificando esplicitamente cosa non è richiesto. A me personalmente capita spesso di specificare nel prompt “senza riscrivere questo…”, “mi interessano solo questi aspetti…”. Qualche volta mi è sufficiente che il risultato sia “memorizzato”, all’interno di una sessione o chat, senza che sia generata alcuna risposta esplicita.
Questo comporta innanzitutto un risparmio computazionale, ma anche e soprattutto una maggiore focalizzazione del processo generativo, e in definitiva un minore rischio di errori e allucinazioni.
4.10. Regolare la temperatura
I modelli più evoluti hanno la possibilità di regolare la “temperatura” delle risposte. Questo parametro controlla la “creatività” nel generare l’output: valori più alti (generalmente di poco inferiori a 1) determinano risposte più diversificate e imprevedibili, mentre valori più bassi (generalmente prossimi a zero) producono output più mirati e deterministici.
Trattandosi di un’innovazione introdotta recentemente, non tutti i modelli ne sono dotati, e non tutti l’hanno implementata nello stesso modo. Ad oggi, test empirici mostrerebbero che ChatGPT funziona meglio con temperature elevate sempre, anche nel caso di quesiti deterministici, e in generale abbassando la temperatura si riduce il quoziente di intelligenza dimostrato nelle risposte.
4.11 La cortesia non conta, ma…
In ultimo, una considerazione divertente, che può avere una valore da non sottovalutare. Nell’interazione tra umani, è opinione comune che porre quesiti sia un’attività sempre accolta (sempre lecita), e quindi non necessita una particolare pressione sull’interlocutore, né in forma di adulazione o proposta di compensi, né attraverso imposizioni o minaccie. Diverso è il caso di un interlocutore riluttante nel rispondere.
L’AI è sempre disponibile a rispondere a qualsiasi domanda, e almeno per questo non c’è motivo di usare espressioni di cortesia o di pretesa nel prompt. Empiricamente, formule come “Per favore” e “Grazie”, “Non dire sciocchezze” o “Non farmi incavolare”, o simili, non hanno alcun effetto sulla qualità delle risposte generate.
Ciò detto, io qualche volta uso la stessa cortesia, per un’abitudine che non vorrei perdere man mano che aumentano le mie interazioni con l’AI. Non vorrei ritrovarmi ad usare una postura fredda e sgradevole alla quale mi sarei abituato interagendo con le macchine, quando poi mi trovo ad interagire con altri umani.
Sono anche convinto che fare finta che l’interlocutore non sia una macchina, mi stimola a ragionarci insieme, e ad interrogarlo con un’attenzione che riterrei adeguata solo con altri umani. Credo che questo sia molto utile, non per la macchina, per me.
— — —
Conclusione
Posto che l’epistemologia umana non coincide con quella algoritmica, ammesso che se ne possa definire una, il prompting rappresenta il punto di convergenza. Se da un lato la crescente digitalizzazione dell’informazione ha portato nuove sfide in termini di verifica e interpretazione della verità, dall’altro l’uso strategico del prompting emerge come uno strumento chiave per influenzare la qualità delle risposte generate, e valutarne il contenuto di verità.
Il progressivo miglioramento delle tecniche di prompting e l’affinamento delle strategie di interrogazione dell’AI va di pari passo con l’evoluzione dei modelli LLM, pur rimanendo invariate le raccomandazioni di base. Sono state considerate considerate una serie di tecniche, valutandole con la prospettiva epistemologica introdotta inizialmente.
Comprendere come formulare domande efficaci e sfruttare al meglio i modelli di linguaggio non è solo una competenza tecnica, ma un’esigenza per sviluppare le caratteristiche distintive dei processi cognitivi umani, e in definitiva per potenziare il ruolo stesso degli umani, nell’era della conoscenza digitale e dell’intelligenza artificiale.
Fonti
- “Existential Risk Prevention as Global Priority”, di Nick Bostrom (2014)
Future of Humanity Institute, University of Oxford - “Technology and the Virtues: A Philosophical Guide to a Future Worth Wanting Get access Arrow”, di Shannon Vallor (2016), in “The Oxford Handbook of Artificial Intelligence”
Oxford University Press - “Atlas of AI: Power, Politics, and the Planetary Costs of Artificial Intelligence”, di Kate Crawford (2021)
Amazon - “Pretrain Prompt Optimize: Exploring the Utility of Prompt Tuning for Large-Scale Models”, di Jason Wei e altri (2022)
arXiv - “Etica dell’intelligenza artificiale”, di Luciano Floridi (2023)
Raffaello Cortina Editore - “Prompting Fundamentals and How to Apply them Effectively”, di Eugen Yan, Ziyou (2024)
Eugen Yan - “Learn Prompting — Prompt Engineering Guide”, Learn Prompting (2024)
Learn Prompting - “Prompt Engineering Survey”, di Sander Schulhoff, Michael Ilie e altri (2024)
GitHub - “Incoscienza artificiale”, di Massimo Chiriatti (2024)
LUISS University Press
#epistemologia #conoscenza #interrogazioni #prompting #llm #ArtificialIntelligence #knowledge #verità