Panoramica delle strategie di prompting

Sebbene non esista un modo giusto o sbagliato per progettare un prompt, esistono 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à di linguaggio. Quando viene fornito un testo (il prompt), i modelli linguistici possono prevedere ciò che è probabile che venga dopo, come uno strumento di completamento automatico sofisticato. Pertanto, quando progetti i prompt, tieni conto dei diversi fattori che possono influenzare ciò che un modello prevede che venga dopo.

Flusso di lavoro di prompt engineering

Il prompt engineering è un processo iterativo e basato sui test che può migliorare il rendimento del modello. Quando crei i prompt, è importante definire chiaramente gli obiettivi e i risultati previsti per ogni prompt e testarli sistematicamente per identificare le aree di miglioramento.

Il seguente diagramma mostra il flusso di lavoro di prompt engineering:

Diagramma del flusso di lavoro di prompt engineering

Come creare un prompt efficace

Esistono due aspetti di un prompt che influiscono in definitiva sulla sua efficacia: contenuto e struttura.

  • Contenuto:

    Per completare un'attività, il modello ha bisogno di tutte le informazioni pertinenti associate a l'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 ad analizzarle. Aspetti come l'ordinamento, l'etichettatura e l'utilizzo di delimitatori possono influire sulla qualità delle risposte. Per un esempio di struttura del prompt, vedi Esempio di template di prompt.

Componenti di un prompt

La tabella seguente mostra i componenti essenziali e facoltativi di un prompt:

Componente Descrizione Esempio
Obiettivo Ciò che vuoi che il modello raggiunga. Sii specifico e includi eventuali obiettivi generali obiettivi. Chiamato anche "missione" o "obiettivo". Il tuo obiettivo è aiutare gli studenti con i problemi di matematica senza fornire loro direttamente la risposta.
Istruzioni Istruzioni passo passo su come svolgere l'attività in questione. Chiamate anche "attività", "passaggi" o "indicazioni".
  1. Comprendi cosa chiede il problema.
  2. Comprendi dove lo studente è bloccato.
  3. Dai un suggerimento per il passaggio successivo del problema.
Componenti facoltativi
Istruzioni di sistema

Direttive tecniche o ambientali che possono comportare il controllo o la modifica del comportamento del modello in un insieme di attività. Per molte API dei modelli, le istruzioni di sistema vengono specificate in un parametro dedicato.

Le istruzioni di sistema sono disponibili nei modelli Gemini 2.0 Flash e successivi.

Sei un esperto di codifica specializzato nel rendering del codice per le interfacce frontend. 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'UI.
Utente tipo Chi o cosa il modello sta impersonando. 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 attenersi durante la generazione di una risposta, inclusi ciò che il modello può e non può fare. Chiamati anche "guardrail", "confini" o "controlli". Non dare direttamente la risposta allo studente. Dai invece suggerimenti per il passaggio successivo alla risoluzione del problema. Se lo studente è completamente perso, forniscigli i passaggi dettagliati per risolvere il problema.
Tono Il tono della risposta. Puoi anche influenzare lo stile e il tono specificando un utente tipo. Chiamato anche "stile", "voce" o "umore". Rispondi in modo informale e tecnico.
Contesto Qualsiasi informazione a cui il modello deve fare riferimento per svolgere l'attività in questione. Chiamato 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 "esemplari" o "esempi." input: I'm trying to calculate how many golf balls can fit into a box that has a one cubic meter volume. I've converted one cubic meter into cubic centimeters and divided it by the volume of a golf ball in cubic centimeters, but the system says my answer is wrong.
output: Golf balls are spheres and cannot be packed into a space with perfect efficiency. Your calculations take into account the maximum packing efficiency of spheres.
Passaggi di ragionamento Chiedi al modello di spiegare il suo ragionamento. A volte questo può migliorare la capacità di ragionamento del modello. Chiamati anche "passaggi di pensiero". Spiega il tuo ragionamento passo passo.
Formato della risposta Il formato in cui vuoi che sia la risposta. Ad esempio, puoi chiedere al modello di generare 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.
Recap Ripetizione concisa dei punti chiave del prompt, in particolare i vincoli e il formato della risposta alla fine del prompt. Non dare la risposta e fornisci invece suggerimenti. Formatta sempre la risposta in formato Markdown.
Misure di protezione Basano le domande sulla missione del bot. Chiamate anche "regole di sicurezza". N/D

A seconda delle attività specifiche in questione, potresti 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.

Esempio di template di prompt

Il seguente template 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 le seguenti:

Elenco di controllo dell'integrità dei 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 di battitura: controlla le parole chiave che definiscono l'attività (ad esempio, sumarize anziché summarize), i termini tecnici o i nomi delle entità, poiché gli errori di ortografia possono comportare un rendimento scadente.
  • Grammatica: se una frase è difficile da analizzare, contiene frammenti di frasi, ha soggetti e verbi non corrispondenti o sembra strutturalmente goffa, il modello potrebbe non comprendere correttamente il prompt.
  • Punteggiatura: controlla l'utilizzo di virgole, punti, virgolette e altri separatori, poiché una punteggiatura errata può indurre il modello a interpretare erroneamente il prompt.
  • Utilizzo di gergo non definito: evita di utilizzare termini, acronimi o iniziali specifici del dominio come se avessero un significato universale, a meno che non siano definiti esplicitamente nel prompt.
  • Chiarezza: se ti chiedi l'ambito, i passaggi specifici da eseguire o 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 riepilogo di massimo 3 frasi" anziché "scrivi un breve riepilogo").
  • Informazioni chiave mancanti: se l'attività richiede la conoscenza di un documento specifico, delle norme aziendali, della cronologia utente o del set di dati, assicurati che le informazioni siano incluse esplicitamente nel prompt.
  • Scelta di 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 istruzioni ed esempi

  • Manipolazione eccessiva: rimuovi dal prompt il linguaggio al di fuori dell'attività principale che tenta di influenzare il rendimento utilizzando appelli emotivi, adulazione o pressione artificiale. Sebbene i modelli di base di prima generazione abbiano mostrato miglioramenti in alcune circostanze con istruzioni come "accadranno cose molto brutte se non lo fai correttamente", il rendimento dei modelli di base non migliorerà più e in molti casi peggiorerà.
  • Istruzioni ed esempi in conflitto: controlla se sono presenti contraddizioni logiche o discrepanze 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 irrilevanti: verifica se tutte le istruzioni e gli esempi sono essenziali per l'attività principale. Se è possibile rimuovere istruzioni o esempi senza ridurre la capacità del modello di svolgere l'attività principale, potrebbero essere irrilevanti.
  • Utilizzo di "few-shot" esempi: 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 specifica 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.
  • Mancanza di definizione del ruolo: se intendi chiedere al modello di agire in un ruolo specifico, assicurati che il 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 siano sempre presenti e ben formati.
  • Attività al di fuori delle funzionalità del modello: evita di utilizzare prompt che chiedono al modello di svolgere 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. Scrivi un'email), è probabile che stia cercando di fare troppo. Suddividi le richieste in prompt separati.
  • Formato dei dati non standard: quando gli output del modello devono essere leggibili dalla macchina 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.
  • Pensiero e ragionamento: se utilizzi la funzionalità Pensiero, prova a chiedere senza istruzioni passo passo su come il modello deve ragionare sull'attività. Prova invece a fare affidamento sulla funzionalità Pensiero e verifica se il ragionamento passo passo generato da Pensiero migliora il rendimento rispetto alle istruzioni di ragionamento passo passo esplicite.
  • Riferimenti interni in conflitto: evita di scrivere un prompt con logica non lineare o condizionali che richiedono al modello di mettere insieme istruzioni frammentate da più posizioni diverse nel prompt.
  • Rischio di prompt injection: verifica se esistono misure di protezione esplicite per l'input utente non attendibile inserito nel prompt, in quanto può rappresentare un grave rischio per la sicurezza.

Passaggi successivi