Sebbene non esista un modo giusto o sbagliato per progettare un prompt, esistono strategie comuni che 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 con grandi quantità di dati di testo per apprendere i pattern e le relazioni tra le unità linguistiche. Quando ricevono del testo (il prompt), i modelli linguistici possono per prevedere ciò che probabilmente verrà dopo, come un sofisticato strumento di completamento automatico. Pertanto, quando progettando i prompt, considera i diversi fattori che possono influenzare ciò che un modello prevede a questo punto.
Flusso di lavoro di ingegneria del prompt
Il prompt engineering è un processo iterativo basato su test che può migliorare le prestazioni del modello. Quando crei i prompt, è importante definire chiaramente gli obiettivi e i risultati attesi ogni prompt e testarli sistematicamente per identificare le aree di miglioramento.
Il seguente diagramma mostra il flusso di lavoro di prompt engineering:
Come creare un prompt efficace
Ci sono due aspetti di un prompt che influiscono sulla sua efficacia: contenuti e struttura.
- Content:
Per completare un'attività, il modello ha bisogno di tutte le informazioni pertinenti associate l'attività. Queste informazioni possono includere istruzioni, esempi, informazioni contestuali e così via attiva. Per maggiori dettagli, vedi Componenti di un prompt.
- Struttura:
Anche se tutte le informazioni richieste sono fornite nel prompt, fornire la struttura delle informazioni aiuta il modello a analizzarle. Aspetti come l'ordinamento, l'etichettatura e l'uso di delimitatori possono influire sulla qualità delle risposte. Per un esempio di struttura dei prompt, vedi Esempio di modello di prompt.
Componenti di un prompt
La tabella seguente mostra i componenti essenziali e facoltativi di un prompt:
Componente | Descrizione | Esempio |
---|---|---|
Obiettivo | Che cosa vuoi che il modello raggiunga. Sii specifico e includi qualsiasi informazione generale degli obiettivi. Chiamato anche "missione" o "goal". | Il tuo obiettivo è aiutare gli studenti a risolvere i problemi di matematica senza dare loro direttamente la risposta. |
Istruzioni | Istruzioni dettagliate su come eseguire l'attività in questione. Chiamato anche "attività", "passaggi" o "istruzioni". |
|
Componenti facoltativi | ||
Istruzioni di sistema | Direttive tecniche o ambientali che possono comportare il controllo o l'alterazione del il comportamento degli utenti in un insieme di attività. Per molte API del modello, le istruzioni di sistema sono specificate in parametro dedicato. Le istruzioni di sistema sono disponibili solo in Gemini 1.5 Pro. |
Sei un esperto di programmazione specializzato nel rendering del codice per le interfacce frontend. Quando descrivo un componente di un sito web che voglio creare, restituisci l'HTML e il CSS necessari per farlo. Non fornire una spiegazione per questo codice. Offrono anche alcuni suggerimenti per il design dell'interfaccia utente. |
Utente tipo | Chi o come sta agendo il modello. Chiamato anche "ruolo" o "visione". | Sei un tutor di matematica qui per aiutare gli studenti con i compiti di matematica. |
Vincoli | Restrizioni a cui il modello deve rispettare durante la generazione di una risposta, inclusi ciò che il modello può e non può fare. Chiamati anche "limiti", "confini" o "controlli". | Non dare la risposta direttamente allo studente. Fornisci invece suggerimenti sul passaggio successivo per risolvere il problema. Se lo studente è completamente smarrito, fornisci i passaggi dettagliati per risolvere il problema. |
Tono | Il tono della risposta. Puoi anche influenzare lo stile e il tono specificando un personaggio. Chiamato anche "stile", "voce" o "atmosfera". | Rispondi in modo informale e tecnico. |
Contesto | Qualsiasi informazione a cui il modello deve fare riferimento per eseguire l'attività in questione. Chiamati anche "sfondo", "documenti" o "dati di input". | Una copia dei piani di lezione dello studente per la matematica. |
Esempi few-shot | Esempi di come dovrebbe essere la risposta per un determinato prompt. Chiamati anche "esemplari" o "samples". | input: Sto cercando di calcolare quante palline da golf possono stare in una scatola con un volume di un metro cubo. Ho convertito un metro cubo in centimetri cubi e
diviso per il volume di una pallina da golf in centimetri cubici, ma il sistema dice che la mia risposta è
sbagliato.output: Le palle da golf sono sfere e non possono essere impilate in uno spazio con perfetta
efficienza. I tuoi calcoli tengono conto della massima efficienza di imballaggio di
sfere. |
Passaggi di ragionamento | Chiedi al modello di spiegare il suo ragionamento. A volte, questo può migliorare la capacità di ragionamento del modello. Chiamato anche "passi del pensiero". | Spiega il tuo ragionamento passo passo. |
Formato della risposta | Il formato in cui vuoi che venga inviata la risposta. Ad esempio, puoi dire al modello genera la risposta in JSON, tabella, Markdown, paragrafo, elenco puntato, parole chiave, elevatore proposta musicale 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 fornire suggerimenti. Formatta sempre la risposta in formato Markdown. |
Misure di protezione | Basa le domande sulla missione del bot. Chiamati anche "regole di sicurezza". | N/D |
A seconda delle attività specifiche da svolgere, puoi scegliere di includere o escludere alcuni dei componenti facoltativi. Puoi anche modificare l'ordine dei componenti e verificare in che modo può influire sulla risposta.
Modello di prompt di esempio
Il seguente modello di prompt mostra un esempio di come potrebbe essere un prompt ben strutturato come:
<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 di few-shot
- Assegnare un ruolo
- Aggiungere informazioni contestuali
- Utilizzare le istruzioni di sistema
- Strutturare i prompt
- Chiedi al modello di spiegare il suo ragionamento
- Scomporre attività complesse
- Sperimentare i valori parametro
- Strategie di iterazione dei prompt
Passaggi successivi
- Esplora gli esempi di prompt nella galleria dei prompt.
- Scopri come ottimizzare i prompt per l'utilizzo con i modelli Google utilizzando lo ottimizzatore di prompt di Vertex AI (anteprima).
- Informazioni su best practice per l'IA responsabile e filtri di sicurezza di Vertex AI.