0Pricing
AI Engineering Academy · Lezione

Prompting zero-shot e few-shot

Comprenderà la differenza tra porre una domanda direttamente al modello e fornire esempi, imparando quando ciascun approccio produce risultati migliori per attività di classificazione, estrazione e generazione.

Prompting zero-shot e few-shot è una lezione AI Engineering Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Engineering Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Engineering Academy include 4 lezioni in totale.

Che cos'è il prompting zero-shot?

Il prompting zero-shot consiste nel chiedere al modello di eseguire un'attività senza fornirgli esempi di come svolgerla. Descrive semplicemente l'attività e lascia che il modello applichi le conoscenze acquisite durante il pre-training. Funziona bene per attività che il modello ha incontrato molte volte durante l'addestramento, come la traduzione, la sintesi o la classificazione semplice.

Per esempio, chiedere al modello di Classificare questa recensione come Positiva o Negativa è un prompt zero-shot. Durante il pre-training, il modello ha assimilato migliaia di esempi di classificazione del sentimento, quindi può svolgere l'attività senza che gli vengano mostrati esempi direttamente nel prompt.

Un semplice esempio zero-shot

I prompt zero-shot sono concisi e si basano sulle conoscenze integrate nel modello. Funzionano meglio quando l'attività è comune e non ambigua. Noti che il prompt seguente definisce chiaramente l'attività senza mostrare esempi di output corretti.

import openai

client = openai.OpenAI()

prompt = 'Classify the sentiment of the following customer review.\nRespond with only one word: Positive, Negative, or Neutral.\n\nReview: The delivery was fast but the packaging was damaged.\n\nSentiment:'

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': prompt}],
    max_tokens=5
)
print(response.choices[0].message.content)  # Expected: Negative

Quando lo zero-shot non è sufficiente

Il prompting zero-shot può fallire quando il formato dell'attività è insolito, quando il modello deve seguire uno schema di output non comune o quando serve una formattazione coerente che il modello potrebbe interpretare diversamente a ogni esecuzione. Chiedere al modello di estrarre dati in una struttura JSON molto specifica, con nomi di campo personalizzati, è rischioso con un prompt zero-shot, perché il modello deve indovinare esattamente le Sue intenzioni.

Lo zero-shot presenta difficoltà anche con il gergo specifico del dominio o con categorie di classificazione di nicchia che il modello potrebbe non aver incontrato spesso durante il pre-training. In questi casi, fornire esempi migliora notevolmente la precisione.

Che cos'è il prompting few-shot?

Il prompting few-shot consiste nel fornire al modello da 2 a 8 esempi del compito (input e output desiderato) prima di presentare la query effettiva. Gli esempi insegnano al modello il formato esatto e lo schema di classificazione desiderati, senza richiedere fine-tuning o addestramento.

È una delle tecniche più potenti e meno utilizzate del prompt engineering. Il modello usa gli esempi per dedurre lo schema e applicarlo al nuovo input. La ricerca descritta nell'articolo su GPT-3 ha mostrato che le prestazioni su molti compiti aumentano significativamente con il numero di esempi, fino a circa 8; dopodiché i miglioramenti si stabilizzano e si sprecano solo token.

Struttura di un prompt few-shot

Un prompt few-shot segue uno schema coerente: mostrare N esempi sotto forma di coppie input-output, quindi presentare il nuovo input e lasciare che sia il modello a completare l'output. La formattazione degli esempi insegna al modello il formato esatto dell'output atteso.

import openai

client = openai.OpenAI()

prompt = ('Extract the product name and price from each sentence.\n'
          'Respond in the format: Product: <name> | Price: <price>\n\n'
          'Sentence: The blue headphones cost $79.99.\n'
          'Product: Blue Headphones | Price: $79.99\n\n'
          'Sentence: You can get the leather wallet for just $34.\n'
          'Product: Leather Wallet | Price: $34\n\n'
          'Sentence: Order the ergonomic keyboard for $129.99 today.\n')

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': prompt}],
    max_tokens=30
)
print(response.choices[0].message.content)

Scelta di buoni esempi few-shot

La qualità degli esempi è importante quanto la loro quantità. Scelga esempi che:

  • Coprono i casi limite — includano un esempio con un input ambiguo, così il modello capisce come desidera che venga gestito
  • Coprono l'intero spazio degli output — se sono disponibili tre classi, includa almeno un esempio per ciascuna
  • Sono rappresentativi — utilizzi esempi simili per stile e complessità agli input reali di produzione
  • Hanno un formato coerente — qualsiasi incoerenza di formato negli esempi si ripercuoterà sull'output del modello

Esempi scelti male possono addirittura peggiorare le prestazioni, inducendo il modello a farsi un'idea errata della distribuzione dei compiti.

Zero-shot e few-shot: quando usare ciascuno

Utilizzi lo zero-shot quando: il compito è comune e ben definito, desidera ridurre al minimo il costo in token oppure sta iterando rapidamente e non è ancora facile raccogliere esempi. Lo zero-shot è preferibile anche quando la conoscenza generale del modello non dovrebbe essere condizionata dagli esempi.

Utilizzi il few-shot quando: il formato dell'output è insolito o rigido, sono presenti categorie specifiche del dominio, lo zero-shot produce una formattazione incoerente oppure è necessario che il modello segua con coerenza uno stile o un tono particolare. Il few-shot è particolarmente efficace per l'estrazione, la classificazione e la generazione con vincoli di formato.

Few-shot per i compiti di classificazione

La classificazione è uno dei casi d'uso più vantaggiosi del prompting few-shot. Quando si utilizzano etichette personalizzate che non corrispondono a categorie comuni, fornire esempi addestra il modello sulla tassonomia desiderata. Gli esempi riportati di seguito definiscono esattamente il significato di Bug, Feature Request e Question nel contesto dei ticket di supporto.

import openai

client = openai.OpenAI()

prompt = ('Classify the support ticket into: Bug, Feature Request, or Question.\n\n'
          'Ticket: The login button does nothing when I click it.\n'
          'Category: Bug\n\n'
          'Ticket: Can you add dark mode to the dashboard?\n'
          'Category: Feature Request\n\n'
          'Ticket: How do I export my data to CSV?\n'
          'Category: Question\n\n'
          'Ticket: The export button crashes the app every time.\n'
          'Category:')

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': prompt}],
    max_tokens=10
)
print(response.choices[0].message.content)  # Bug

Prompting one-shot

Tra zero-shot e few-shot si colloca il prompting one-shot: fornire esattamente un esempio. Spesso è sufficiente per risolvere problemi di formattazione o chiarire compiti ambigui e richiede molti meno token rispetto a un prompt few-shot completo. L'approccio one-shot è un buon primo passo quando lo zero-shot produce risultati inaffidabili.

Nella pratica, inizi con lo zero-shot, valuti un campione di input reali e aggiunga esempi solo nei casi in cui il modello commette errori. In questo modo i prompt rimangono essenziali ed efficienti in termini di token, concentrando i miglioramenti dove sono più importanti.

Selezione dinamica few-shot

Nei sistemi di produzione, utilizzare sempre gli stessi pochi esempi per ogni query non è ottimale. La selezione dinamica few-shot recupera da un archivio di esempi etichettati quelli più simili all'input corrente, usando la similarità tra embedding, e inserisce nel prompt solo tali esempi.

In questo modo il modello vede sempre le dimostrazioni più pertinenti per lo specifico input, anziché esempi generici che potrebbero non corrispondere allo stile o al dominio dell'input. Questa tecnica combina i vantaggi del prompting few-shot con la scalabilità di un sistema di recupero ed è talvolta chiamata prompting aumentato dal recupero basato su esempi.

Vincoli di formato nei prompt few-shot

Il prompting few-shot è il metodo più affidabile per imporre formati di output rigidi prima di avere accesso agli structured outputs o alla modalità JSON. Mostrando al modello il formato esatto desiderato — inclusi nomi dei campi, delimitatori e ordinamento — si aumenta notevolmente la probabilità di ottenere un output analizzabile.

Termini sempre il prompt few-shot con l'inizio dello schema di output previsto (ad esempio, la parentesi graffa di apertura di un oggetto JSON o il nome del primo campo). In questo modo si orienta il modello a continuare lo schema, invece di indurlo potenzialmente a riassumere o commentare prima il compito.

Verifica rapida

Verifichi la Sua comprensione dei concetti di AI Engineering trattati in questa lezione.

Riepilogo della lezione

In questa lezione ha imparato che: il prompting zero-shot chiede al modello di eseguire i compiti basandosi solo sulla descrizione, il prompting few-shot fornisce da 2 a 8 esempi di input e output per insegnare il formato e la tassonomia e la selezione dinamica few-shot recupera gli esempi più pertinenti per ogni query usando la similarità tra embedding. Ora esamineremo il prompting chain-of-thought per i compiti di ragionamento complessi.

Domande Frequenti

La lezione «Prompting zero-shot e few-shot» è gratuita?

Sì — il testo completo di «Prompting zero-shot e few-shot» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Engineering Academy, passa a CoddyKit PRO. Il corso AI Engineering Academy include 4 lezioni in totale.

Cosa imparerò in «Prompting zero-shot e few-shot»?

Comprenderà la differenza tra porre una domanda direttamente al modello e fornire esempi, imparando quando ciascun approccio produce risultati migliori per attività di classificazione, estrazione e g… Eserciti AI Engineering Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Engineering Academy?

Non è richiesta alcuna esperienza precedente. AI Engineering Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Prompting zero-shot e few-shot»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Engineering Academy?

Sì. Ogni lezione AI Engineering Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Prompting zero-shot e few-shot
  2. Chain-of-Thought e ragionamento passo per passo
  3. Prompt di sistema e definizione della persona
  4. Iterazione e debugging dei prompt
← Torna a AI Engineering Academy