La costruzione di un prompt efficace è sia un'arte che una scienza. Di seguito sono riportate alcune delle migliori pratiche per aiutarti a costruire prompt efficaci:

Essere chiari e concisi.
I prompt dovrebbero essere semplici, diretti ed evitare ambiguità. I prompt chiari portano a risposte più coerenti. Una regola generale è questa: se la formulazione è confusa per gli umani, è probabile che sia confusa anche per questi modelli generativi. Semplifica quando possibile.

Essere creativi.
Prompt nuovi e stimolanti possono portare a risposte del modello inaspettate, migliori, a volte persino innovative.

Spostare l'istruzione alla fine del prompt per grandi quantità di testo.
Se il contesto e i dati di input sono lunghi, prova a spostare l'istruzione alla fine, proprio prima dell'indicatore di output.

Esempio: Prompt con pochi dati di input e l'istruzione all'inizio:

Riassumi la seguente conversazione:
Cliente: Come faccio a cancellare il mio abbonamento?
Rappresentante di supporto: Clicca il pulsante di annullamento a questo link: ...
Cliente: Grazie, ha funzionato!
Riassunto:

Esempio: Prompt con molti dati in input e l'istruzione alla fine del prompt:

Cliente: Dove è il mio ordine? Non è ancora stato consegnato.
Rappresentante di supporto: Puoi darmi il tuo ID ordine, numero di telefono,
e le ultime 4 cifre del tuo numero di carta di credito?
Lunga conversazione tra cliente e rappresentante di supporto...
Riassumi la conversazione sopra.
Riassunto:

Trasmettere chiaramente l'argomento.
Indica chiaramente uno dei seguenti: chi, cosa, dove, quando, perché, come, ecc.

Usare direttive esplicite.
Se vuoi che il modello produca un formato particolare, specifica direttamente. Ad esempio, “Riassumi il seguente dialogo di assistenza clienti in una singola frase:”.

Evitare formulazioni negative.
Le formulazioni negative, sebbene sintatticamente corrette, possono causare confusione. Ad esempio, usa “Riassumi in 5 frasi o meno” invece di “Riassumi in non più di 5 frasi.” Evita formulazioni negative se esiste una variazione linguistica più diretta.

Includere contesto ed esempi di prompt (few shots).
Fornisci contesto aggiuntivo che aiuti il modello a rispondere più accuratamente. Puoi specificare un contesto unico per tutti gli input o un contesto specifico per ciascun input (shot).

Specificare la dimensione della risposta.
Includi la dimensione dell'output richiesta alla fine del prompt per focalizzare il modello. Ad esempio: “Elenca le prime 3 lamentele dalla seguente conversazione di assistenza clienti:”

Fornire un formato di risposta specifico.
Dà il formato di risposta usando un esempio. Includi parentesi per chiarezza. Ad esempio, “Riassumi questo articolo in 10 parole o meno come mostrato qui: [Nuovo modello di AI generativa supera il benchmark X di Y %.]”

Definire cosa fare se il modello non può rispondere con sicurezza. Puoi chiedere al modello di rispondere con "Non lo so" se non può rispondere con sicurezza al prompt. Altrimenti, il modello potrebbe generare una risposta "allucinatoria", come mostrato in questo esempio.

Prompt:

Quale veicolo necessita di un acconto maggiore in base alle seguenti informazioni:
Il costo totale del veicolo A è di $40000 e necessita del 30% come acconto.
Il costo totale del veicolo B è di $50000 e necessita del 20% come acconto.

Completamento errato (allucinazione)

In base alle informazioni fornite, il veicolo B richiede un acconto maggiore rispetto al veicolo A. L'acconto per il veicolo B è di $10000, che è $2000 in più rispetto all'acconto per il veicolo A.
Tuttavia, è importante notare che l'acconto non è l'unico fattore da considerare quando si acquista un veicolo.

In questo esempio, il modello ha calcolato correttamente l'acconto per il veicolo B ($10.000), ma ha affermato erroneamente che è di $2.000 in più rispetto all'acconto per il veicolo A. La risposta corretta sarebbe che l'acconto per il veicolo A è maggiore ($12.000). Il modello non conosceva la risposta giusta e ha semplicemente "allucinato" una risposta.

Sebbene le allucinazioni siano spesso divertenti da condividere con i colleghi durante lo sviluppo, non sono divertenti da condividere con i tuoi utenti finali in produzione!

Vediamo come puoi risolvere questo. Ecco un esempio di prompt che permette al modello di rispondere con "Non lo so" in tali casi.


Prompt:

Quale veicolo necessita di un acconto maggiore in base alle seguenti informazioni.
Se non sei sicuro, rispondi semplicemente "Non lo so."
Il costo totale del veicolo A è di $40000 e necessita del 30% come acconto.
Il costo totale del veicolo B è di $50000 e necessita del 20% come acconto.

Completamento

Non lo so.

Una tecnica di prompting più avanzata per affrontare tali scenari è chiamata Chain-of-Thought Prompting (CoT). Il prompting CoT mostra al modello come ragionare attraverso compiti più complessi passo dopo passo per trovare la risposta corretta.

  • Chiedere al modello di "pensare passo dopo passo" (step-by-step).
    Chiedi al modello di "pensare passo dopo passo". Se il modello è confuso riguardo alle istruzioni, puoi chiedere al modello di "pensare passo dopo passo", il che dà al modello la libertà di suddividere un'unica istruzione in più passaggi.

Ecco un esempio di un prompt che utilizza la Chain-of-Thought (pensa passo dopo passo).


Prompt

Quale veicolo richiede un acconto maggiore in base alle seguenti informazioni (pensa passo dopo passo):
Il costo totale del veicolo A è di $40000 e richiede il 30% come acconto.
Il costo totale del veicolo B è di $50000 e richiede il 20% come acconto.

Completamento

In base alle informazioni fornite, il veicolo A richiede un acconto più elevato.
Il costo totale del veicolo A è di $40000 e richiede il 30% di acconto, che equivale a $12000.
Il costo totale del veicolo B è di $50000 e richiede il 20% di acconto, che equivale a $10000.
Quindi, il veicolo A richiede un acconto più elevato.

Nota come ora il modello ha ragionato attraverso il compito e generato la risposta corretta.

A seconda di come sono stati addestrati e ottimizzati, alcuni modelli possono rispondere ad altre varianti di "pensa passo dopo passo" come "dividi in sottocompiti", "affronta il problema sistematicamente", "ragiona attraverso il problema un passo alla volta", ecc. È importante riconoscere quando il modello si sta confondendo e quando è necessario suddividere manualmente il prompt in più passaggi.

Aggiungere vincoli per un maggior controllo.
Limita le risposte per lunghezza, formato, informazioni incluse, informazioni escluse, ecc. Ad esempio, “Riassumi questo processo esattamente in 5 passaggi:”.

Valutare la risposta.
Rivedi le risposte dei modelli per assicurarti che siano di alta qualità e interessino il tuo pubblico. Apporta modifiche ai prompt secondo necessità.

Usare disclaimer o evitare prompt a cui il modello non dovrebbe rispondere.
Se il tuo modello generativo non è attrezzato per rispondere a determinati domini come legge, medicina o religione, puoi istruire il tuo modello a rispondere con qualcosa come "Non sei autorizzato a fornire consulenza medica. Si prega di consultare un professionista medico autorizzato."

Usare tag XML/HTML nel tuo prompt.
Alcuni modelli supportano i tag XML/HTML come <tag>questo è importante</tag> per creare struttura all'interno del prompt. Ad esempio, se vuoi fare riferimento a un pezzo importante di testo nei tuoi dati di input, puoi racchiudere quel testo in un tag per indicare dove inizia e finisce il testo importante. Puoi anche chiedere ad alcuni modelli di marcare parti importanti della risposta in modo da poter analizzare la risposta ed estrarre dati importanti in modo strutturato.

Concentrati selettivamente. Puoi chiedere al modello di concentrarsi solo su certe parti del testo di input. Per esempio, puoi chiedere che il modello riassuma solo il primo e l'ultimo paragrafo dei tuoi dati di input.

Maschera le informazioni identificative personali (PII). Alcuni modelli possono mascherare i dati PII nella risposta. Puoi chiedere a questi modelli di "rimuovere tutte le informazioni identificative personali e sostituirle con XXX", per esempio. Ecco un esempio.


Prompt

Umano: Ecco del testo all'interno dei tag XML <text></text>. Per favore
rimuovi tutte le informazioni identificative personali da questo testo e
sostituiscile con XXX. È molto importante che nomi, numeri di telefono,
e indirizzi email siano sostituiti con XXX.
<text>
Joe: Ciao Hannah!
Hannah: Ciao Joe! Vieni da me?
Joe: Sì! Ehm, ho dimenticato dove abiti."
Hannah: Nessun problema! È al 1234 Wrightwood St, Chicago IL 60614.
Joe: Capito, grazie!
</text>
Per favore metti la tua versione del testo con le PII rimosse nei
tag XML <response></response>

Completamento

Assistente:
<response>
XXX: Ciao XXX!
XXX: Ciao XXX! Vieni da me?
XXX: Sì! Ehm, ho dimenticato dove abiti."
XXX: Nessun problema! È XXX XXX, XXX XXX XXX XXX.
XXX: Capito, grazie!
</response>

Provando diversi prompt e combinando tecniche di Prompt Engineering, vedrai cosa funziona e cosa non. Continua a perfezionare il tuo prompt secondo necessità. Con sempre più sperimentazioni, acquisirai l'intuizione necessaria per creare e ottimizzare rapidamente un prompt per adattarlo al meglio al tuo compito e caso d'uso.