Last chance! 50% off DataCamp Premium
Sale ends in
I large language model possono comprendere e scrivere testi che suonano molto umani. Ma ottenere che li producano esattamente come vogliamo non è così semplice. Bisogna scegliere tecniche adeguate per arrivare a una risposta soddisfacente.
Una di queste tecniche è il few-shot prompting. È un metodo ingegnoso che aiuta a collegare ciò che il modello sa già con ciò che gli chiediamo di fare per un compito specifico: gli dai qualche esempio veloce per mostrargli cosa vuoi, così gli è più facile capire ed eseguire correttamente il task.
In questo tutorial imparerai:
Questo tutorial fa parte della mia serie di post “Prompt Engineering: From Zero to Hero”:
Il few-shot prompting è una tecnica che prevede di fornire a un modello linguistico un piccolo numero di esempi per guidare la sua risposta a un compito specifico. Questo metodo si colloca tra lo zero-shot learning (in cui non si fornisce alcun esempio) e il fine-tuning supervisionato completo (che richiede grandi quantità di dati etichettati). Il post sul blog dedicato al few-shot learning spiega in dettaglio questa tecnica di machine learning.
In altre parole, il few-shot prompting consiste nel dare a un modello linguistico una manciata di dimostrazioni o esempio all’interno del prompt stesso. Questi esempi fungono da guida, mostrando al modello come affrontare e rispondere a un certo tipo di task o domanda. Quando fornisci questi esempi, in sostanza stai dicendo al modello: "Ecco come dovresti rispondere in situazioni simili."
Vediamo un esempio.
Immagina di voler far classificare al modello il sentiment delle recensioni di film. Un prompt few-shot potrebbe essere così:
Prompt:
Classify the sentiment of the third movie review. Use the information from the first two examples:Review: "This movie was a waste of time."Sentiment: NegativeReview: "I couldn't stop laughing throughout the film!"Sentiment: PositiveReview: "The special effects were amazing, but the plot was confusing."Sentiment:```markdownIf we input this prompt to the LLM, and if it understands the task correctly, it will output:```markdownSentiment: MixedIn questo esempio, l’LLM usa gli esempi nel prompt per capire come classificare il sentiment della terza recensione e genera l’output di conseguenza.
Il few-shot prompting è importante perché rende gli LLM più utili e accessibili. Per prima cosa fa risparmiare tempo e fatica, dato che non serve riaddestrare completamente il modello o raccogliere enormi quantità di dati.
Inoltre è molto flessibile: puoi adattare rapidamente il modello a compiti diversi semplicemente cambiando gli esempi che gli fornisci. Spesso aiuta anche l’LLM a ottenere risultati migliori su compiti specifici o complessi rispetto a chiedergli di fare qualcosa senza alcuna guida. Questo metodo rende gli strumenti di IA più potenti alla portata di più persone, non solo degli esperti con molte risorse.
Il cuore del few-shot prompting sta nel fornire all’LLM un piccolo set di esempi o dimostrazioni pertinenti all’interno del prompt. Questi esempi guidano il modello, illustrando come affrontare e rispondere a un certo tipo di task o domanda. Le dimostrazioni sono in genere strutturate così:
Per esempio, se volessimo che il modello generasse distici in rima, un prompt few-shot potrebbe essere così:
Generate a rhyming couplet about a tree:Input: "cat"Output: The curious cat, so sleek and fat, Curled up cozy on the welcome mat.Input: "sky"Output: Look up high into the endless sky, Where birds and clouds go drifting by.Input: "tree"Output:Di fronte a queste dimostrazioni, il modello linguistico mette in atto un processo spesso chiamato “apprendimento in contesto” o “apprendimento per esempi”. Funziona così:
![]()
Questo processo consente al modello di adattare conoscenze e capacità a un compito specifico senza modificare i parametri sottostanti.
È importante notare che l’efficacia del few-shot prompting può variare in base a fattori come la complessità del compito, la qualità e la pertinenza degli esempi forniti e le capacità del modello linguistico sottostante. Tuttavia, se usato in modo efficace, il few-shot prompting può far svolgere ai modelli linguistici molti compiti diversi con notevole accuratezza e flessibilità.
Il few-shot prompting offre diversi benefici. Vediamo perché questo metodo è così utile.
Uno dei vantaggi più evidenti del few-shot prompting è il notevole miglioramento delle prestazioni rispetto agli approcci zero-shot.
Per esempio, considera uno scenario in cui vogliamo che il modello generi descrizioni di prodotto con un tono e un formato specifici.
Generate product descriptions:Product: Wireless EarbudsDescription: Immerse yourself in crystal-clear audio with our sleek wireless earbuds. Featuring noise-cancellation technology and a comfortable fit, these earbuds are perfect for music lovers on the go.Product: Smart WatchDescription: Stay connected and track your fitness with our advanced smart watch. With heart rate monitoring, GPS, and a vibrant touch screen, it's your perfect companion for an active lifestyle.Product: Ergonomic Office ChairDescription:Con questi esempi, il modello è più propenso a generare una descrizione pertinente e nello stile giusto per la sedia da ufficio, rispetto a un approccio zero-shot in cui potrebbe produrre una descrizione più generica o meno focalizzata.
Un possibile output potrebbe essere:```markdown
Description: Trasforma il tuo spazio di lavoro con la nostra sedia da ufficio ergonomica all’avanguardia. Progettata per il massimo comfort e supporto, offre supporto lombare regolabile, schienale in rete traspirante e braccioli personalizzabili. Che tu lavori da casa o in azienda, questa sedia è il perfetto equilibrio tra stile e funzionalità per il professionista moderno.
Faster adaptationFew-shot prompting helps the LLM to quickly learn new tasks or topics, making it fast and easy to switch between different jobs.Quick task learning: Models can quickly grasp new tasks with just a handful of examples, allowing for rapid prototyping and testing of new applications.Domain adaptation: It's easy to shift the model's focus to different domains or styles by simply changing the examples in the prompt.Iterative refinement: Users can quickly iterate and refine their prompts based on initial results, leading to a more agile development process.For example, if we wanted to adapt the model to generate different types of poetry, we could quickly switch between haikus, limericks, or sonnets just by changing the examples in our prompt:```markdownGenerate poetry based on the given theme and format.Theme: SpringHaiku: Cherry blossoms bloom Soft petals dance in the breeze Nature awakensTheme: SummerHaiku:Theme: A funny catLimerick: There once was a cat named Lou Who always knew just what to do He'd climb up a tree Then meow with glee And slide down as if on a chuteTheme: A clumsy dogLimerick:Un potenziale output sarebbe:
Haiku:Scorching sun aboveCicadas sing endlesslyBeach waves cool bare feetLimerick:There once was a dog quite unsteadyHis paws were not quite readyHe'd trip on his tailKnock over the mailBut his smile kept his owner steadyIl few-shot prompting riduce significativamente il bisogno di grandi quantità di dati etichettati, un grande vantaggio rispetto agli approcci di fine-tuning tradizionali.
Il few-shot prompting si può applicare in molti ambiti. La sua flessibilità ed efficienza lo rendono particolarmente utile per compiti che richiedono conoscenze specialistiche o output creativi. Esploriamo alcune applicazioni chiave:
Il few-shot prompting può migliorare sensibilmente la capacità di un LLM di gestire compiti che coinvolgono ragionamento multi-step, deduzione logica o conoscenze specifiche di dominio.
Vediamo come potremmo usare il few-shot prompting per un compito di diagnosi medica:
Provide a possible diagnosis and explain your reasoning:Symptoms: Fever, cough, fatigueDiagnosis: Common coldExplanation: The combination of fever, cough, and fatigue is typical of a common cold. No severe symptoms are present, suggesting a mild viral infection.Symptoms: Chest pain, shortness of breath, dizzinessDiagnosis: Possible heart attackExplanation: The combination of chest pain, shortness of breath, and dizziness are warning signs of a possible heart attack. Immediate medical attention is required.Symptoms: Headache, sensitivity to light, nauseaDiagnosis:Explanation: Questo prompt guida il modello a fornire non solo una diagnosi ma anche a spiegarne il ragionamento, mostrando un ragionamento medico complesso.
L’LLM produrrebbe:```markdown
Diagnosis: Emicrania
Explanation: Questi sintomi insieme sono tipici dell’emicrania. Il mal di testa combinato con la sensibilità alla luce (fotofobia) è un forte indicatore, e la nausea spesso accompagna questa condizione. Pur essendo possibili altre cause, questa combinazione suggerisce fortemente un’emicrania.
Creative writingFew-shot prompting is particularly effective in guiding LLMs to generate text in specific styles, formats, or genres.Let’s see how to generate movie synopsis in different genres using few-shot prompting:```markdownGenerate movie synopsis:Genre: Sci-FiSynopsis: In a world where dreams can be shared, a skilled "dream thief" is tasked with the impossible: planting an idea in someone's mind. As he delves deeper into the target's subconscious, the lines between reality and dreams blur, threatening to trap him forever.Genre: RomanceSynopsis: A chance encounter on a rainy day in Paris leads two strangers on a whirlwind 24-hour adventure. As they explore the city and each other's hearts, they must decide if their connection is strong enough to overcome the ocean that will separate them come morning.Genre: HorrorSynopsis: Questo prompt guida il modello a generare una sinossi che catturi gli elementi chiave e il tono del genere specificato.
Output:
Synopsis: A remote mountain town is plagued by a series of mysterious disappearances. As a skeptical detective investigates, she uncovers an ancient cult that awakens every hundred years to feed on the town's inhabitants. With time running out and the cult's power growing, she must confront her own dark past to save the remaining townspeople and herself from a terrifying fate.Il few-shot prompting può essere estremamente utile per aiutare gli LLM a generare codice che rispetti convenzioni specifiche, segua le best practice o soddisfi requisiti particolari. Gli esempi possono mostrare la sintassi e la struttura corrette per un determinato linguaggio di programmazione.
Vediamo come usare il few-shot prompting per generare funzioni Python con docstring e type hint:
def calculate_area(length: float, width: float) -> float: """ Calculate the area of a rectangle. Args: length (float): The length of the rectangle. width (float): The width of the rectangle. Returns: float: The area of the rectangle. """ return length * widthdef celsius_to_fahrenheit(celsius: float) -> float: """ Convert temperature from Celsius to Fahrenheit. Args: celsius (float): Temperature in Celsius. Returns: float: Temperature in Fahrenheit. """ return (celsius * 9/5) + 32def calculate_bmi(weight: float, height: float) -> float: """ [Generate a docstring for this function] """ # [Generate the function body]Questo prompt guida il modello a generare una funzione con type hint appropriati e una docstring dettagliata, seguendo lo schema stabilito.
L’output sarebbe:
def calculate_bmi(weight: float, height: float) -> float: """ Calculate the Body Mass Index (BMI) of a person. Args: weight (float): The weight of the person in kilograms. height (float): The height of the person in meters. Returns: float: The calculated BMI value. Note: BMI is calculated as weight (kg) divided by height squared (m^2). This function assumes weight is in kilograms and height is in meters. """ return weight / (height ** 2)Sebbene il few-shot prompting funzioni bene in molti casi, presenta anche alcune sfide. Capire queste sfide e seguire le best practice ci aiuta a massimizzare l’efficacia dei prompt e ottenere risultati migliori.
La qualità e la pertinenza degli esempi che scegli sono cruciali per un few-shot prompting di successo. Ecco alcuni consigli:
Creare prompt efficaci è un’arte che richiede un’attenta considerazione di come presentare gli esempi e come inquadrare il compito. Ecco alcune strategie da seguire:
Uno dei rischi del few-shot prompting è che il modello possa sovradattarsi agli esempi forniti, producendo output troppo simili agli esempi o incapaci di generalizzare bene a nuovi input. Per evitarlo:
Seguire queste best practice ti aiuterà a creare prompt few-shot più efficaci, che guidino il modello a svolgere il compito desiderato in modo accurato ed efficiente.

Il few-shot prompting è una tecnica che aiuta gli LLM ad applicare le proprie conoscenze a compiti specifici.
Consente un rapido adattamento a nuovi compiti senza un addestramento estensivo. Migliora l’accuratezza nei compiti complessi fornendo esempi pertinenti. È utile in vari ambiti, dal ragionamento alla scrittura creativa e al coding, e rende i modelli linguistici avanzati più accessibili e adattabili.
Tuttavia, la sua efficacia dipende da un’attenta selezione degli esempi e dalla progettazione del prompt. La qualità e la pertinenza degli esempi sono cruciali per prestazioni ottimali.
Guardando avanti, sono entusiasta delle possibili evoluzioni. Immagina sistemi capaci di scegliere automaticamente gli esempi perfetti o di adattarsi al volo in base ai risultati.
Ecco fatto: il few-shot prompting in poche parole. Continua a sperimentare, continua a imparare e ci vediamo al prossimo!
Sì, i miglioramenti possono essere misurati con metriche standard di machine learning, a seconda del compito. Per i compiti di classificazione si possono usare accuracy, precision, recall e F1-score. Per i compiti di generazione si possono usare metriche come BLEU, ROUGE o la valutazione umana.
Il few-shot prompting ha avuto successo in vari settori, tra cui customer service (per generare risposte), content creation (per assistenza alla scrittura) e sviluppo software (per generazione di codice). Si sta rivelando utile anche in sanità per attività come il riassunto delle cartelle cliniche e in finanza per l’analisi di mercato e la generazione di report.
Il few-shot prompting potrebbe democratizzare lo sviluppo di applicazioni di IA, permettendo ai non esperti di creare facilmente soluzioni specializzate. Questo potrebbe spostare l’attenzione di data scientist e ML engineer verso compiti più complessi, il prompt engineering e lo sviluppo di sistemi di IA più avanzati. Potrebbero nascere anche nuovi ruoli focalizzati sulla creazione di prompt ed esempi efficaci per diverse applicazioni.
In domini altamente specializzati, il few-shot prompting può faticare se il modello non ha conoscenze di base in quell’area. Può anche essere difficile catturare con pochi esempi regole o procedure complesse specifiche del dominio. In questi casi, potrebbe essere necessario un fine-tuning più esteso o un addestramento specifico per il dominio.
Sì, esistono preoccupazioni etiche. Il few-shot prompting potrebbe essere usato per guidare i modelli di IA a generare contenuti di parte o dannosi se gli esempi non sono scelti con cura. C’è anche il rischio di divulgazione involontaria di dati se nei prompt si includono informazioni sensibili.
Ana Rojo Echeburúa è una specialista di AI e dati con un dottorato in Matematica Applicata. Le piace trasformare i dati in insight azionabili e ha una vasta esperienza nella guida di team tecnici. Ana ama collaborare da vicino con i clienti per risolvere le loro sfide di business e creare soluzioni di AI innovative. Nota per le sue capacità di problem solving e la comunicazione chiara, è appassionata di AI, in particolare di AI generativa. Ana è dedita all’apprendimento continuo e allo sviluppo etico dell’AI, oltre a semplificare problemi complessi e spiegare la tecnologia in modo accessibile.
Impara l’IA con questi corsi!
Corso
Corso
Programma

blog
Abid Ali Awan
10 min

blog
Abid Ali Awan
15 min
blog
Tim Lu
12 min