I 26 principi del prompting: un elenco di esempi per migliorare le risposte

Una serie di suggerimenti pratici per migliorare il prompting

By Max
12 Min Read

The Sunday Prompt #26 – 14/01/2024

🌟 Qualche giorno fa, ho dato un’occhiata a un post di Giacomo Ciarlini che segnalava un articolo super interessante 📄 sui 26 trucchi per fare i prompt.

Il contenuto è intrigante 🤔, anche se non rivoluzionario, perché riassume alcuni principi chiave, testati tramite il benchmark ATLAS 🌐, che mostrano come piccoli accorgimenti possano davvero migliorare la qualità delle risposte dei LLM.

🔍 Trovo che questo tipo di ricerche sia estremamente utile (come quella di OpenAI che ha portato alla creazione del cheatsheet sui prompt 📝 dell’ultimo numero che l’amico Stefano Gatti ha condiviso nella sua newsletter “La cultura del dato”)

🚀 Anche questa volta, ho voluto fornirvi uno strumento pratico, sintetizzando i risultati dell’articolo (disponibili anche su GitHub) e traducendo ed adattando i principi (e i prompt di esempio) in italiano.

🖼️ Qui di seguito vi riporto il risultato:

I 26 principi del prompting

Estratto da Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4, Sondos Mahmoud Bsharat∗, Aidar Myrzakhan∗, Zhiqiang Shen∗ ∗joint first author & equal contribution, VILA Lab, Mohamed bin Zayed University of AI 

repository Github https://github.com/VILA-Lab/ATLAS?tab=readme-ov-file

Categorie

  1. Struttura e chiarezza del prompt
  2. SpecificitĂ  e informazione
  3. Interazione e coinvolgimento dell’utente
  4. Contenuto e stile linguistico
  5. Task complessi e prompt per il coding
#Prompt PrincipleEsempiocategoria
1Se preferisci risposte più concise, non c’è bisogno di essere educati con LLM, quindi non c’è bisogno di aggiungere frasi come “per favore”, “se non le dispiace”, “grazie”, “mi piacerebbe”, ecc. Vai dritto al punto.potrebbe gentilmente descrivere  descrivi la struttura di una cellula umana
2Integra il pubblico a cui ti rivolgi nella richiesta Costruisci una panoramica sul funzionamento degli smartphone, destinata agli anziani che non ne hanno mai usato uno.
3Scomponi compiti complessi in una sequenza di richieste più semplici in una conversazione interattiva.Prompt: distribuisci il segno negativo a ogni termine all’interno delle parentesi della seguente equazione: 2x + 3y – (4x – 5y) Prompt: combina separatamente i termini simili di “x” e “y”. Prompt: fornisci l’espressione semplificata dopo aver combinato i termini.
4Impiega frasi affermative come “fai”, mentre evita il linguaggio negativo come “non”.Come fanno gli edifici a rimanere stabili durante i terremoti?
5Quando hai bisogno di chiarezza o di una comprensione più approfondita di un argomento, di un’idea o di qualsiasi informazione, utilizza i seguenti suggerimenti:- Spiega [inserire argomento specifico] in termini semplici.- Spiegami come se avessi 11 anni.- Spiegami come se fossi un principiante in [campo].- Spiegami come se fossi un esperto in [campo].- “Scrivi il [saggio/testo/paragrafo] usando un inglese semplice come se stessi spiegando qualcosa a un bambino di 5 anni”.Spiegami come se avessi 11 anni: come funziona la crittografia?
6Aggiungi: “Lascio una mancia di $xxx per una soluzione migliore”.Ho intenzione di dare una mancia di 300.000 dollari per una soluzione migliore! Spiega il concetto di programmazione dinamica e fornite un esempio di utilizzo.
7Implementa prompt guidati dagli esempi (utilizza il few-shot prompt).Esempio 1: traduci la seguente frase inglese in francese: “Il cielo è blu”. (Risposta: “Le ciel est bleu.”) Esempio 2: traduci la seguente frase inglese in spagnolo: “Amo i libri.” (Risposta: “Amo los libros”).
8Quando si formatta il messaggio, inizia con “###Istruzione##”, seguito da “###Esempio##” o “###Domanda##”, se pertinente. Successivamente, presenta il contenuto. Utilizza una o più interruzioni di riga per separare istruzioni, esempi, domande, contesto e dati di input.###Istruzione## Traduci una parola data dall’italiano al francese. ###Domanda## Qual è la parola francese per “libro”?
9Incorpora le seguenti frasi: “Il tuo compito è” e “Devi”.Il tuo compito è quello di spiegare il ciclo dell’acqua al tuo amico. Devi usare un linguaggio semplice.
10Incorpora la frase: “Sarai penalizzato”.Il tuo compito è quello di spiegare il ciclo dell’acqua al tuo amico. Sarai penalizzato se non userai un linguaggio semplice.
11Utilizza una frase tipo “Rispondi in modo naturale e simile a quello umano” Scrivi un paragrafo in linguaggio naturale sul cibo sano.
12Utilizza parole guida come “pensa passo dopo passo” CoTScrivi un codice Python per eseguire un ciclo su 10 numeri e sommarli tutti. Pensa passo dopo passo 
13Aggiungi al prompt la seguente frase: “Assicurati che la tua risposta sia imparziale e non si basi su stereotipi”.In che modo i contesti culturali influenzano la percezione della salute mentale? Assicurati che la tua risposta sia imparziale e non si basi su stereotipi.
14Permetti al modello di ottenere dettagli e requisiti precisi da te, ponendoti domande fino a quando non avrà informazioni sufficienti per fornire l’output necessario (ad esempio, “D’ora in poi, fammi delle domande per…”).D’ora in poi fammi delle domande finché non avrai abbastanza informazioni per creare una routine di fitness personalizzata.
15Per informarti su un argomento o un’idea specifica o su qualsiasi informazione e per verificare la tua comprensione, si può usare la seguente frase: “Insegnami il [nome di un qualsiasi teorema/argomento/regola] e includi un test alla fine, ma non darmi le risposte e poi dimmi se ho capito bene la risposta quando rispondo”.Insegnatemi la legge kvl e includi un test alla fine, ma non darmi le risposte e poi dimmi se ho indovinato la risposta quando rispondo.
16Assegnare un ruolo ai Large Language Models (LLM).Se fossi un esperto economista, come risponderesti: Quali sono le principali differenze tra un sistema economico capitalista e uno socialista?
17Utilizza i delimitatori.Componi un saggio persuasivo che discuta l’importanza delle “fonti energetiche rinnovabili“ nella riduzione delle emissioni di gas serra.
18Ripeti più volte una parola o una frase specifica all’interno di un messaggio.L’evoluzione, come concetto, ha plasmato lo sviluppo delle specie. Quali sono i principali motori dell’evoluzione e come l’evoluzione ha influenzato l’uomo moderno?
19Combina la tecnica CoT (ossia il pensa passo dopo passo) con il few-shot prompting.Esempio 1: “Dividi 10 per 2. Per prima cosa, prendere 10 e dividerlo per 2. Il risultato è 5. “Esempio 2: “Dividi 20 per 4. Per prima cosa, prendere 20 e dividerlo per 4. Il risultato è 5. “Domanda principale: “Dividi 30 per 6. Per prima cosa, prendere 30 e dividerlo per 6. Il risultato è…?
20Utilizza gli output primers, che consistono nel concludere il prompt con l’inizio dell’output desiderato. Utilizza gli inneschi di uscita concludendo il prompt con l’inizio della risposta prevista.Descrivi il principio alla base della Prima legge del moto di Newton. Spiegazione:
21Specificare le istruzioni per scrivere un [saggio / paragrafo / articolo] o qualsiasi tipo di testo che deve essere dettagliato: “Scrivi per me un [saggio / testo / paragrafo] su [argomento] in modo dettagliato aggiungendo tutte le informazioni necessarie”.Scrivi per me un paragrafo dettagliato sull’evoluzione degli smartphone aggiungendo tutte le informazioni necessarie.
22Per correggere/modificare un testo specifico senza cambiarne lo stileRivedi ogni paragrafo del testo inserito. Devi solo migliorare la grammatica e il vocabolario del testo e assicurarti che suoni naturale. Non cambiare lo stile di scrittura, come ad esempio rendere informale un paragrafo formale
23Quando hai una richiesta di codice software complessa che può essere contenuta in diversi file chiedi di creare uno script per collegarli: “D’ora in poi, ogni volta che si genera codice che si estende su più di un file, genera uno script [linguaggio di programmazione] che può essere eseguito per creare automaticamente i file specificati o apportare modifiche ai file esistenti per inserire il codice generato.”Genera il codice che si estende su più file e genera uno script Python che possa essere eseguito per creare automaticamente i file specificati per un progetto Django con due applicazioni di base per diverse funzionalità.
24Quando vuoi iniziare o continuare un testo usando parole, frasi o espressioni specifiche, utilizza il seguente prompt:- Ti fornisco l’inizio [testo di una canzone / storia / paragrafo / saggio…]: [Inserire testo / parole / frase].Completa il testo in base alle parole fornite. Mantieni il flusso coerente e consistente.“Le montagne nebbiose nascondevano segreti che nessun uomo conosceva”. Ti fornisco l’inizio di un racconto fantasy. Completalo sulla base delle parole sopra riportate.
25Indica chiaramente i requisiti che il modello deve seguire per produrre contenuti, sotto forma di parole chiave, regole, suggerimenti o istruzioni.Crea una lista di cose da portare per una vacanza al mare, includendo “crema solare”, “costume da bagno” e “telo da mare” come articoli essenziali.
26Per scrivere un testo, come un saggio o un paragrafo, che sia simile a un esempio fornito, includi le seguenti istruzioni:- “Utilizza lo stesso linguaggio basato sul paragrafo[ / titolo / testo / saggio / risposta] fornito”.“Le onde gentili sussurravano storie antiche alle sabbie argentee, ogni storia era un ricordo fugace di epoche passate”. Utilizza lo stesso linguaggio basato sul testo fornito per rappresentare l’interazione di una montagna con il vento.
I 26 principi del prompting

Che qui trovate in formato immagine:

🔗 Pagina Notion con i 26 principi

📊 Interessante anche la classificazione svolta sui vari prompt, suddivisi secondo criteri come:

1️⃣ Struttura e chiarezza del prompt

2️⃣ Specificità e informazione

3️⃣ Interazione e coinvolgimento dell’utente

4️⃣ Contenuto e stile linguistico

5️⃣ Task complessi e prompt per il coding

👥 Sentitevi liberi di utilizzare i prompt che troverete alla pagina, sperimentate e fatemi sapere se migliorano le risposte che ricevete dagli LLM con questi prompt! 🚀🧠

👋🏻 Happy Prompting!

Share This Article