Menu

Zero-shot prompting: esempi e quando funziona

Lo zero-shot prompting consiste nel chiedere a un modello un compito con le sole istruzioni, senza esempi della risposta. È il modo in cui la maggior parte delle persone usa ChatGPT, Claude e Gemini, e funziona bene quando il compito è comune e l'istruzione è precisa.

Ogni prompt qui sotto è modificabile: cambialo, poi aprilo in ChatGPT, Claude o un'altra app di AI.

Lo zero-shot prompting consiste nel chiedere a un modello un compito con la sola istruzione, senza mostrargli nessun esempio della risposta che vuoi. "Traduci questo paragrafo in inglese" e "Riassumi questa email in due frasi" sono prompt zero-shot. È il modo normale in cui le persone usano i modelli di chat, e per i compiti comuni di solito è tutto ciò che serve.

Cosa significa zero-shot

Nel machine learning uno "shot" è un esempio svolto. I termini sono più vecchi dei modelli di chat, ma il loro senso nel prompting è stato reso popolare da Brown et al. 2020, "Language Models are Few-Shot Learners", che ha testato GPT-3 in tre situazioni: una descrizione del compito con zero, una o poche dimostrazioni nel prompt, e nessun riaddestramento in nessuna delle tre. Per quel modello, qualche esempio di solito batteva l'assenza di esempi.

Da allora i modelli di chat sono stati addestrati a fondo a seguire le istruzioni, ed è per questo che oggi una richiesta semplice funziona così bene. Un prompt zero-shot è esattamente la situazione per cui sono stati addestrati: qualcuno descrive un lavoro a parole e si aspetta che venga fatto.

Zero-shot non significa zero contesto. Un buon prompt zero-shot indica comunque il pubblico, incolla l'input e descrive il formato e i limiti. L'unica cosa che lascia fuori è un esempio finito dell'output.

Un prompt zero-shot fatto bene

Il prompt qui sotto estrae le attività da svolgere dagli appunti di una riunione senza nessun esempio dell'output, solo con una descrizione precisa. Disattiva le parti per vedere quali righe fanno il lavoro.

Attività dagli appunti di una riunione
Parts
Estrai le attività da svolgere da questi appunti di riunione.
L'elenco finisce nel task tracker del nostro team, quindi ogni attività ha bisogno di esattamente un responsabile.
Una riga per attività: il responsabile, i due punti, l'attività che inizia con un verbo, poi la scadenza tra parentesi se gli appunti la indicano.
Includi solo il lavoro che qualcuno ha accettato di fare. Salta le discussioni e le idee che nessuno si è preso in carico. Se un'attività non ha un responsabile, scrivi "Non assegnata" come responsabile.
Riunione dello sprint, martedì Priya sistemerà il timeout del login entro venerdì. Parlato di passare a un nuovo provider di CI, nessuna decisione. Tom scrive le note di rilascio della 2.4. Qualcuno dovrebbe aggiornare il documento di onboarding. Lena: rivedo le note di Tom entro giovedì.
Try it
Example replyReplies vary between models and runs.

Priya: Sistemare il timeout del login (entro venerdì) Tom: Scrivere le note di rilascio della 2.4 Non assegnata: Aggiornare il documento di onboarding Lena: Rivedere le note di rilascio di Tom (entro giovedì)

La riga sul formato fa il lavoro che farebbe un esempio: descrive la forma esatta di ogni riga, quindi non c'è niente da copiare. Disattivala e la risposta sceglie una forma sua, spesso un elenco puntato con i nomi in grassetto, che si legge bene ma non si incolla più in modo pulito in un tracker. Disattiva i vincoli e la discussione sulla CI può comparire come attività, perché niente ha detto al modello che gli argomenti senza decisione non contano.

Quando lo zero-shot basta

Lo zero-shot funziona quando il modello può dedurre tutto dalle tue parole:

  • Il compito è comune. Riassumere, tradurre, spiegare, correggere la grammatica e scrivere una funzione a partire da una specifica chiara sono compiti che il modello ha visto infinite volte durante l'addestramento.
  • Puoi descrivere l'output con esattezza. "Una riga per attività, prima il responsabile" è chiaro quanto un esempio. Vedi output strutturato per descrivere formati che leggerà un programma.
  • Le categorie significano quello che dicono. Classificare le recensioni in positive e negative di solito non richiede esempi, perché quelle etichette significano la stessa cosa per quasi tutti.

Quando aggiungere esempi

Alcune cose sono difficili da esprimere a parole, ed è lì che i prompt zero-shot cominciano a sbagliare:

  • I tuoi confini. Se il tuo team di supporto archivia "non riesco ad accedere" tra i problemi di account e non tra i bug, il modello non può saperlo. Sceglierà l'interpretazione che darebbe la maggior parte delle persone.
  • Uno stile della casa. I messaggi di commit del tuo team o il tono della tua newsletter sono più facili da mostrare che da descrivere.
  • Errori di poco che si ripetono. Se hai già riformulato l'istruzione due volte e l'output sbaglia ancora di poco nello stesso modo, smetti di riformulare e mostra due o tre risposte corrette.

Questo è il few-shot prompting. Un'abitudine sensata è partire con lo zero-shot, guardare cosa torna indietro e aggiungere esempi solo per la cosa specifica che sbaglia.

Chain of thought zero-shot

Kojima et al. 2022, "Large Language Models are Zero-Shot Reasoners", hanno scoperto che aggiungere una sola frase, "Ragioniamo passo dopo passo" (Let's think step by step), rendeva i modelli grandi decisamente migliori nei problemi di aritmetica, simbolici e di logica, senza alcun esempio. La frase fa scrivere al modello i passaggi intermedi prima della risposta, e ogni passaggio che scrive diventa contesto per il successivo. Il loro metodo usava due chiamate: la prima produceva il ragionamento, la seconda chiedeva la risposta finale.

Nel blocco qui sotto, la prima scheda obbliga a una risposta immediata e la seconda lascia al modello lo spazio per lavorare.

Un treno deve partire alle 9:40. Parte con 25 minuti di ritardo. Il viaggio dura di solito 2 ore e 35 minuti, ma il treno recupera 10 minuti lungo il percorso. A che ora arriva? Rispondi solo con l'orario.
Try it
Example replyReplies vary between models and runs.

12:40

La prima risposta ha dimenticato i 10 minuti recuperati dal treno: il tipo di svista che capita quando un modello deve impegnarsi sulla risposta nei suoi primi token. Un modello attuale potrebbe benissimo azzeccare questo problema in entrambi i modi; la differenza cresce con il numero di passaggi del problema. La seconda versione ha un vantaggio in più: ogni passaggio è visibile, quindi puoi vedere dove una risposta è andata storta.

I modelli che ragionano internamente prima di rispondere fanno già questo lavoro senza che tu lo chieda, quindi "Ragioniamo passo dopo passo" aggiunge per loro poco più di una risposta più lunga. Il chain of thought prompting tratta la tecnica in profondità, compresa la versione few-shot.

Zero-shot e few-shot a colpo d'occhio

Zero-shotFew-shot
Cosa contiene il promptIstruzioni, contesto e inputLo stesso, più qualche coppia di input e risposta
Ideale perCompiti comuni con un output facile da descrivereEtichette personalizzate, formati insoliti, stile della casa
CostoPrompt brevePrompt più lungo, più token per chiamata
Errore tipicoSceglie l'interpretazione più comune, non la tuaCopia schemi casuali presenti negli esempi

Domande frequenti

Cos'è lo zero-shot prompting?

Lo zero-shot prompting consiste nel dare a un modello linguistico un compito con le sole istruzioni, senza esempi svolti dell'output. "Riassumi questa email in due frasi" è un prompt zero-shot. I modelli di chat attuali sono addestrati a seguire le istruzioni, quindi i prompt zero-shot gestiscono bene la maggior parte dei compiti di tutti i giorni.

Che differenza c'è tra zero-shot e few-shot prompting?

Un prompt zero-shot descrive il compito a parole. Un prompt few-shot aggiunge qualche esempio, ciascuno un input abbinato alla risposta che vuoi, così il modello può copiare lo schema. Parti con lo zero-shot; passa al few-shot quando l'output continua a sbagliare un formato o una distinzione più facile da mostrare che da descrivere.

Perché si chiama zero-shot?

Nel machine learning uno "shot" è un esempio svolto. L'articolo del 2020 di Brown et al. su GPT-3, "Language Models are Few-Shot Learners", ha testato il modello con zero, una o poche dimostrazioni di un compito nel prompt, e questo ha reso standard quei nomi nel prompting: zero-shot, one-shot e few-shot.

Quando lo zero-shot prompting non funziona?

Fa fatica quando il compito dipende da regole che conosci solo tu, come le categorie del tuo team o lo stile della casa, quando il formato di output è insolito e nei ragionamenti a più passaggi in cui il modello risponde troppo in fretta. Gli esempi risolvono i primi due casi; chiedere al modello di procedere passo dopo passo aiuta nel terzo.

Cos'è la chain of thought zero-shot?

È un prompt zero-shot che chiede al modello di ragionare prima di rispondere, nel modo più famoso aggiungendo "Ragioniamo passo dopo passo" (Let's think step by step). Kojima et al. hanno mostrato nel 2022 che questa sola frase, senza esempi, migliorava i risultati dei modelli grandi nei problemi di aritmetica e logica.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA