Colloquio AI Serie 12: Come ottimizzare il Prompt?
L'ottimizzazione del Prompt (Prompt Engineering / Optimization) è un'abilità chiave per far "ascoltare" i grandi modelli linguistici, specialmente nei sistemi RAG, dove determina direttamente se il modello rispetta fedelmente i contenuti recuperati, evita allucinazioni e rispetta il formato di output.
I. Principi fondamentali dell'ottimizzazione del Prompt
- Chiarezza > Complessità: istruzioni semplici e dirette sono spesso più efficaci di fancy chain-of-thought.
- Dare vincoli: dire esplicitamente al modello "cosa può fare e cosa non può fare".
- Fornire esempi: Few-shot è più stabile di Zero-shot.
- Verificabilità: far sì che il modello fornisca citazioni o livelli di confidenza per facilitare la valutazione a valle.
- Ottimizzazione iterativa: partire da una baseline, modificare una variabile per volta e confrontare i risultati.
II. Tecniche specifiche di ottimizzazione (dal semplice al complesso)
1. Impostazione del ruolo (System Prompt)
Sei un assistente clienti professionale. Puoi rispondere solo utilizzando il [Materiale di Riferimento] fornito qui sotto.
Se non conosci la risposta, di' direttamente "Nessuna informazione rilevante nel materiale", senza inventare.
- Effetto: definire confini e tono.
- Punti di ottimizzazione: tono (professionale/cordiale), forza dei vincoli (rigoroso/lassista).
2. Istruzioni chiare
❌ Scarso: "Rispondi alla domanda dell'utente."
✅ Buono: "Solo in base al [Materiale di Riferimento] qui sotto. Se il materiale non contiene la risposta, rispondi 'Non posso rispondere a questa domanda'."
3. Controllo del formato di output
Si prega di restituire l'output nel seguente formato JSON:
{
"answer": "La tua risposta",
"confidence": "alto/medio/basso",
"sources": [1, 3]
}
- Scopo: facilitare l'analisi, la citazione e il debug a valle.
4. Esempi Few-shot (molto efficaci)
Esempio 1:
Domanda: Quanti giorni di ferie ho?
Materiale di riferimento: Regole ferie: 1 anno 5 giorni, 10 anni 10 giorni.
Risposta: 1 anno 5 giorni, 10 anni 10 giorni.
Esempio 2:
Domanda: Come si calcola lo straordinario?
Materiale di riferimento: Giorni feriali 1,5x, weekend 2x.
Risposta: Giorni feriali 1,5x, weekend 2x.
Ora rispondi:
Domanda: {Domanda utente}
Materiale di riferimento: {Contenuto recuperato}
Risposta:
- Suggerimento: gli esempi devono coprire diversi livelli di difficoltà, includendo un esempio di "non posso rispondere".
5. Citazione forzata
Alla fine della risposta, indica il numero della fonte con [citation:X]. Ad esempio: "I giorni di ferie sono 5[citation:1]."
Se si combinano più fonti, indicarle separatamente.
6. Impostazione della soglia di rifiuto
- Vincolo duro: "Se il materiale di riferimento non è affatto correlato alla domanda, rispondi 'Materiale non pertinente'."
- Vincolo morbido: combinare il punteggio di confidenza del recupero; al di sotto della soglia, attivare automaticamente il ramo di rifiuto.
7. Catena di Pensiero (Chain-of-Thought) per ragionamenti multi-hop
Domanda: Chi è il capo di Zhang San?
Passaggi: 1. Prima trova il dipartimento di Zhang San. 2. Poi trova il responsabile di quel dipartimento. 3. Dai la risposta finale.
Ragiona per passi e poi fornisci l'output.
8. Istruzioni negative (Negative Prompting)
Non inventare risposte. Non usare parole vaghe come "forse" o "probabilmente". Non produrre numeri al di fuori del materiale di riferimento.
III. Come valutare la qualità del Prompt?
| Indicatore | Significato | Come misurarlo |
|---|---|---|
| Fedeltà | La risposta è strettamente basata sul materiale di riferimento | Manuale o RAGAS Faithfulness |
| Accuratezza del rifiuto | Se rifiuta quando dovrebbe | Calcolare sul test set senza risposta |
| Rispetto del formato | Se l'output è JSON/citazione come richiesto | Regex matching |
| Soddisfazione utente | Se la risposta è utile | Feedback online / A/B test |
Suggerimento: preparare un piccolo set di test (20-50 casi limite), eseguirlo ogni volta che si modifica il prompt e registrare le modifiche.
IV. Trappole comuni e direzioni di ottimizzazione
| Problema | Possibile causa | Metodo di ottimizzazione |
|---|---|---|
| Il modello ignora il materiale di riferimento e risponde da solo | Istruzioni non abbastanza forti | Cambiare in "Solo in base al materiale seguente" e mostrare rifiuto con few-shot |
| Il modello dice sempre "non lo so" | Soglia di rifiuto troppo alta | Abbassare la soglia o controllare la qualità del recupero |
| Output non conforme al JSON | Istruzioni poco chiare | Aggiungere esempi rigorosi di formato o usare function calling |
| Risposta troppo lunga/corta | Nessuna specifica sulla lunghezza | "Rispondi in non più di 3 frasi" |
| Ragionamento multi-hop errato | Capacità di ragionamento insufficiente del modello | Richiedere ragionamento passo-passo o passare a un modello più potente |
| Appaiono numeri/dati allucinati | Il modello si basa sulla propria conoscenza | Sottolineare "Non usare alcun numero che ricordi, guarda solo il materiale" |
评论
暂无已展示的评论。
发表评论(匿名)