Anche se non esiste un modo giusto o sbagliato per progettare un prompt, ci sono strategie comuni che puoi utilizzare per influenzare le risposte del modello. Test e valutazioni rigorosi rimangono fondamentali per ottimizzare il rendimento del modello.
I modelli linguistici di grandi dimensioni (LLM) vengono addestrati su grandi quantità di dati testuali per apprendere i pattern e le relazioni tra le unità linguistiche. Quando viene fornito un testo (il prompt), i modelli linguistici possono prevedere cosa è probabile che venga dopo, come uno strumento di completamento automatico sofisticato. Pertanto, quando progetti i prompt, considera i diversi fattori che possono influenzare ciò che un modello prevede che accadrà successivamente.
Flusso di lavoro di prompt engineering
Il prompt engineering è un processo iterativo e basato su test che può migliorare le prestazioni del modello. Quando crei prompt, è importante definire chiaramente gli obiettivi e i risultati attesi per ogni prompt e testarli sistematicamente per identificare le aree di miglioramento.
Il seguente diagramma mostra il flusso di lavoro di ingegneria dei prompt:

Come creare un prompt efficace
Esistono due aspetti di un prompt che influiscono in modo determinante sulla sua efficacia: contenuto e struttura.
- Content:
Per completare un'attività, il modello ha bisogno di tutte le informazioni pertinenti associate all'attività. Queste informazioni possono includere istruzioni, esempi, informazioni contestuali e così via. Per maggiori dettagli, vedi Componenti di un prompt.
- Struttura:
Anche quando tutte le informazioni richieste vengono fornite nel prompt, la struttura delle informazioni aiuta il modello a analizzarle. Elementi come l'ordine, l'etichettatura e l'utilizzo di delimitatori possono influire sulla qualità delle risposte. Per un esempio di struttura del prompt, consulta Modello di prompt di esempio.
Componenti di un prompt
La tabella seguente mostra i componenti essenziali e facoltativi di un prompt:
Componente | Descrizione | Esempio |
---|---|---|
Obiettivo | Cosa vuoi che ottenga il modello. Sii specifico e includi eventuali obiettivi generali. Chiamata anche "missione" o "obiettivo". | Il tuo obiettivo è aiutare gli studenti con i problemi di matematica senza fornire direttamente la risposta. |
Istruzioni | Istruzioni passo passo su come eseguire l'attività in questione. Chiamati anche "attività", "passaggi" o "indicazioni". |
|
Componenti facoltativi | ||
Istruzioni di sistema | Direttive tecniche o ambientali che potrebbero comportare il controllo o l'alterazione del comportamento del modello in una serie di attività. Per molte API di modelli, le istruzioni di sistema vengono specificate in un parametro dedicato. Le istruzioni di sistema sono disponibili in Gemini 2.0 Flash e modelli successivi. |
Sei un esperto di programmazione specializzato nel rendering del codice per le interfacce front-end. Quando descrivo un componente di un sito web che voglio creare, restituisci il codice HTML e CSS necessario per farlo. Non fornire una spiegazione per questo codice. Offri anche alcuni suggerimenti per la progettazione dell'interfaccia utente. |
Utente tipo | Chi o cosa interpreta il modello. Chiamata anche "ruolo" o "visione". | Sei un tutor di matematica e il tuo compito è aiutare gli studenti con i compiti di matematica. |
Vincoli | Limitazioni a cui il modello deve attenersi durante la generazione di una risposta, incluso ciò che il modello può e non può fare. Chiamate anche "guardrail", "confini" o "controlli". | Non dare direttamente la risposta allo studente. Fornisci invece suggerimenti nel passaggio successivo per risolvere il problema. Se lo studente è completamente bloccato, forniscigli i passaggi dettagliati per risolvere il problema. |
Tono | Il tono della risposta. Puoi anche influenzare lo stile e il tono specificando una persona. Chiamato anche "stile", "tono" o "atmosfera". | Rispondi in modo informale e tecnico. |
Contesto | Qualsiasi informazione a cui il modello deve fare riferimento per svolgere l'attività in questione. Chiamati anche "sfondo", "documenti" o "dati di input". | Una copia dei programmi delle lezioni di matematica dello studente. |
Esempi few-shot | Esempi di come dovrebbe apparire la risposta per un determinato prompt. Chiamati anche "esempi" o "campioni". | input: Sto cercando di calcolare quante palline da golf possono entrare in una scatola che
ha un volume di un metro cubo. Ho convertito un metro cubo in centimetri cubi e
l'ho diviso per il volume di una pallina da golf in centimetri cubi, ma il sistema dice che la mia risposta è
sbagliata.output: Le palline da golf sono sfere e non possono essere impacchettate in uno spazio con un'efficienza perfetta. I tuoi calcoli tengono conto della massima efficienza di impacchettamento delle sfere. |
Passaggi del ragionamento | Chiedi al modello di spiegare il suo ragionamento. A volte questo può migliorare la capacità di ragionamento del modello. Chiamati anche "passaggi di ragionamento". | Spiega il tuo ragionamento passo passo. |
Formato della risposta | Il formato in cui vuoi che venga visualizzata la risposta. Ad esempio, puoi chiedere al modello di restituire la risposta in formato JSON, tabella, Markdown, paragrafo, elenco puntato, parole chiave, elevator pitch e così via. Chiamato anche "struttura", "presentazione" o "layout". | Formatta la risposta in Markdown. |
Riepilogo | Ripetizione concisa dei punti chiave del prompt, in particolare dei vincoli e del formato della risposta, alla fine del prompt. | Non rivelare la risposta, ma fornisci invece degli indizi. Formatta sempre la risposta in formato Markdown. |
Misure di protezione | Ancora le domande alla missione del bot. Chiamate anche "regole di sicurezza". | N/D |
A seconda delle attività specifiche da svolgere, potresti scegliere di includere o escludere alcuni dei componenti opzionali. Puoi anche modificare l'ordine dei componenti e verificare in che modo ciò può influire sulla risposta.
Modello di prompt di esempio
Il seguente modello di prompt mostra un esempio di come potrebbe apparire un prompt ben strutturato:
<OBJECTIVE_AND_PERSONA> You are a [insert a persona, such as a "math teacher" or "automotive expert"]. Your task is to... </OBJECTIVE_AND_PERSONA> <INSTRUCTIONS> To complete the task, you need to follow these steps: 1. 2. ... </INSTRUCTIONS> ------------- Optional Components ------------ <CONSTRAINTS> Dos and don'ts for the following aspects 1. Dos 2. Don'ts </CONSTRAINTS> <CONTEXT> The provided context </CONTEXT> <OUTPUT_FORMAT> The output format must be 1. 2. ... </OUTPUT_FORMAT> <FEW_SHOT_EXAMPLES> Here we provide some examples: 1. Example #1 Input: Thoughts: Output: ... </FEW_SHOT_EXAMPLES> <RECAP> Re-emphasize the key aspects of the prompt, especially the constraints, output format, etc. </RECAP> |
Best practice
Le best practice per la progettazione dei prompt includono quanto segue:
- Fornisci istruzioni chiare e specifiche
- Includi esempi few-shot
- Assegnare un ruolo
- Aggiungere informazioni contestuali
- Utilizzare le istruzioni di sistema
- Prompt strutturali
- Chiedere al modello di spiegare il suo ragionamento
- Suddividere le attività complesse
- Sperimentare con i valori dei parametri
- Strategie di iterazione dei prompt
Elenco di controllo per la salute del prompt
Se un prompt non funziona come previsto, utilizza il seguente elenco di controllo per identificare potenziali problemi e migliorare il rendimento del prompt.
Problemi di scrittura
- Errori ortografici:controlla le parole chiave che definiscono l'attività (ad esempio, sumarize anziché summarize), i termini tecnici o i nomi di entità, poiché gli errori ortografici possono influire negativamente sul rendimento.
- Grammatica:se una frase è difficile da analizzare, contiene frammenti ininterrotti, ha soggetti e verbi non corrispondenti o risulta strutturalmente goffa, il modello potrebbe non comprendere correttamente il prompt.
- Punteggiatura:controlla l'uso di virgole, punti, virgolette e altri separatori, poiché una punteggiatura errata può indurre il modello a interpretare in modo errato il prompt.
- Uso di gergo non definito:evita di utilizzare termini, acronimi o inizialismi specifici del dominio come se avessero un significato universale, a meno che non siano definiti esplicitamente nel prompt.
- Chiarezza:se ti chiedi quale sia l'ambito, quali siano i passaggi specifici da seguire o quali siano le ipotesi implicite, è probabile che il prompt non sia chiaro.
- Ambiguità:evita di utilizzare qualificatori soggettivi o relativi che non hanno una definizione concreta e misurabile. Fornisci invece vincoli oggettivi (ad esempio, "scrivi un riassunto di massimo tre frasi" anziché "scrivi un breve riassunto").
- Informazioni chiave mancanti: se l'attività richiede la conoscenza di un documento, una policy aziendale, una cronologia utente o un set di dati specifico, assicurati che queste informazioni siano incluse in modo esplicito nel prompt.
- Scelta delle parole errata:controlla il prompt per individuare frasi inutilmente complesse, vaghe o prolisse, in quanto potrebbero confondere il modello.
- Revisione secondaria:se il modello continua a funzionare male, chiedi a un'altra persona di rivedere il prompt.
Problemi con le istruzioni e gli esempi
- Manipolazione palese:rimuovi dal prompt il linguaggio che non rientra nell'attività principale e che tenta di influenzare il rendimento utilizzando appelli emotivi, lusinghe o pressione artificiale. Mentre i modelli di base di prima generazione hanno mostrato miglioramenti in alcune circostanze con istruzioni come "se non rispondi correttamente, succederanno cose molto brutte", le prestazioni dei modelli di base non miglioreranno più e in molti casi peggioreranno.
- Istruzioni ed esempi in conflitto:verifica la presenza di contraddizioni logiche o incongruenze tra le istruzioni o tra un'istruzione e un esempio.
- Istruzioni ed esempi ridondanti: esamina il prompt e gli esempi per verificare se la stessa istruzione o lo stesso concetto viene ripetuto più volte in modi leggermente diversi senza aggiungere nuove informazioni o sfumature.
- Istruzioni ed esempi non pertinenti:verifica che tutte le istruzioni e gli esempi siano essenziali per l'attività principale. Se eventuali istruzioni o esempi possono essere rimossi senza diminuire la capacità del modello di svolgere l'attività principale, potrebbero essere irrilevanti.
- Utilizzo di esempi "few-shot": se l'attività è complessa, richiede un formato specifico o ha un tono sfumato, assicurati che siano presenti esempi concreti e illustrativi che mostrino un input di esempio e l'output corrispondente.
- Mancanza di specifiche del formato di output:evita di lasciare che il modello indovini la struttura dell'output. Utilizza invece un'istruzione chiara ed esplicita per specificare il formato e mostrare la struttura dell'output negli esempi few-shot.
- Definizione del ruolo mancante:se vuoi chiedere al modello di agire in un ruolo specifico, assicurati che questo ruolo sia definito nelle istruzioni di sistema.
Problemi di progettazione di prompt e sistemi
- Attività non specificata:assicurati che le istruzioni del prompt forniscano un percorso chiaro per la gestione dei casi limite e degli input imprevisti e forniscano istruzioni per la gestione dei dati mancanti anziché presupporre che i dati inseriti saranno sempre presenti e ben formati.
- Attività al di fuori delle funzionalità del modello: evita di utilizzare prompt che chiedono al modello di eseguire un'attività per la quale è nota una limitazione fondamentale.
- Troppe attività:se il prompt chiede al modello di eseguire diverse azioni cognitive distinte in un unico passaggio (ad esempio, 1. Riassumi, 2. Estrai entità, 3. Traduci e 4. scrivere una bozza di email), è probabile che stia cercando di fare troppo. Suddividi le richieste in prompt separati.
- Formato dati non standard: quando gli output del modello devono essere leggibili automaticamente o seguire un formato specifico, utilizza uno standard ampiamente riconosciuto come JSON, XML, Markdown o YAML che può essere analizzato da librerie comuni. Se il tuo caso d'uso richiede un formato non standard, valuta la possibilità di chiedere al modello di generare l'output in un formato comune e poi utilizzare il codice per convertire l'output.
- Ordine errato della catena di pensiero (CoT):evita di fornire esempi che mostrino il modello che genera la risposta finale strutturata prima di aver completato il ragionamento passo passo.
- Riferimenti interni in conflitto:evita di scrivere un prompt con logica non lineare o condizioni che richiedono al modello di mettere insieme istruzioni frammentate provenienti da più punti diversi del prompt.
- Rischio di prompt injection: verifica se esistono misure di salvaguardia esplicite relative all'input utentee non attendibile inserito nel prompt, in quanto può rappresentare un grave rischio per la sicurezza.
Passaggi successivi
- Esplora esempi di prompt nella galleria dei prompt.
- Scopri come ottimizzare i prompt per l'utilizzo con i modelli Google utilizzando lo strumento di ottimizzazione dei prompt di Vertex AI (anteprima).
- Scopri di più sulle best practice per l'AI responsabile e sui filtri di sicurezza di Vertex AI.