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
- Struttura e chiarezza del prompt
- SpecificitĂ e informazione
- Interazione e coinvolgimento dellâutente
- Contenuto e stile linguistico
- Task complessi e prompt per il coding
# | Prompt Principle | Esempio | categoria |
1 | Se 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. | ||
2 | Integra 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. | |
3 | Scomponi 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. | |
4 | Impiega frasi affermative come âfaiâ, mentre evita il linguaggio negativo come ânonâ. | Come fanno gli edifici a rimanere stabili durante i terremoti? | |
5 | Quando 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? | |
6 | Aggiungi: â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. | |
7 | Implementa 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â). | |
8 | Quando 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â? | |
9 | Incorpora 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. | |
10 | Incorpora 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. | |
11 | Utilizza una frase tipo âRispondi in modo naturale e simile a quello umanoâ | Scrivi un paragrafo in linguaggio naturale sul cibo sano. | |
12 | Utilizza parole guida come âpensa passo dopo passoâ CoT | Scrivi un codice Python per eseguire un ciclo su 10 numeri e sommarli tutti. Pensa passo dopo passo | |
13 | Aggiungi 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. | |
14 | Permetti 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. | |
15 | Per 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. | |
16 | Assegnare 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? | |
17 | Utilizza i delimitatori. | Componi un saggio persuasivo che discuta lâimportanza delle âfonti energetiche rinnovabiliâ nella riduzione delle emissioni di gas serra. | |
18 | Ripeti 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? | |
19 | Combina 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 èâŚ? | |
20 | Utilizza 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: | |
21 | Specificare 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. | |
22 | Per correggere/modificare un testo specifico senza cambiarne lo stile | Rivedi 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 | |
23 | Quando 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Ă . | |
24 | Quando 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. | |
25 | Indica 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. | |
26 | Per 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. |
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!