OpenAI
Questa pagina è stata tradotta automaticamente. Visualizza l'articolo originale in inglese.

Best practice per il prompt engineering con l’API OpenAI

Come dare istruzioni chiare ed efficaci ai modelli OpenAI

Aggiornato: 16 hours ago

Come funziona il prompt engineering

Per via del modo in cui vengono addestrati i modelli OpenAI, esistono formati di prompt specifici che funzionano particolarmente bene e portano a output del modello più utili.

La guida ufficiale al prompt engineering di OpenAI è di solito il punto di partenza migliore per suggerimenti su come scrivere i prompt.

Qui sotto presentiamo alcuni formati di prompt che per noi funzionano bene, ma sentiti libero di esplorare formati diversi, che potrebbero adattarsi meglio al tuo compito.

Regole pratiche ed esempi

Nota: "{text input here}" è un segnaposto per testo/contesto reale

1. Usa il modello più recente

Per ottenere i risultati migliori, in genere consigliamo di usare i modelli più recenti e più capaci. I modelli più nuovi tendono a essere più facili da guidare con i prompt.


Nota: ci sono alcune differenze da considerare quando si scrive un prompt per un modello di ragionamento rispetto a un modello GPT. Maggiori dettagli qui.

2. Metti le istruzioni all’inizio del prompt e usa ### o """ per separare istruzione e contesto

Meno efficace ❌:

Riassumi il testo qui sotto come elenco puntato dei punti più importanti.

{text input here}

Migliore ✅:

Riassumi il testo qui sotto come elenco puntato dei punti più importanti.

Testo: """
{text input here}
"""

3. Sii specifico, descrittivo e il più dettagliato possibile su contesto, risultato, lunghezza, formato, stile, ecc. desiderati

Sii specifico su contesto, risultato, lunghezza, formato, stile, ecc.

Meno efficace ❌:

Scrivi una poesia su OpenAI. 

Migliore ✅:

Scrivi una breve poesia ispirazionale su OpenAI, concentrandoti sul recente lancio del prodotto DALL-E (DALL-E è un modello ML da testo a immagine) nello stile di un {famous poet}

4. Esplicita il formato di output desiderato tramite esempi

Meno efficace ❌:

Estrai le entità menzionate nel testo qui sotto. Estrai i seguenti 4 tipi di entità: nomi di aziende, nomi di persone, argomenti specifici e temi.

Testo: {text}

Mostra e spiega: i modelli rispondono meglio quando vedono requisiti di formato specifici. Questo rende anche più facile estrarre in modo affidabile più output con parsing programmatico.

Migliore ✅:

Estrai le entità importanti menzionate nel testo qui sotto. Prima estrai tutti i nomi di aziende, poi estrai tutti i nomi di persone, quindi estrai argomenti specifici coerenti con il contenuto e infine estrai temi generali di ampio respiro

Formato desiderato:
Company names: <comma_separated_list_of_company_names>
People names: -||-
Specific topics: -||-
General themes: -||-

Testo: {text}

5. Inizia con zero-shot, poi few-shot; se nessuno dei due funziona, allora fai fine-tuning

✅ Zero-shot

Estrai le parole chiave dal testo qui sotto.

Testo: {text}

Parole chiave:

✅ Few-shot - fornisci un paio di esempi

Estrai le parole chiave dai testi corrispondenti qui sotto.

Text 1: Stripe provides APIs that web developers can use to integrate payment processing into their websites and mobile applications.
Keywords 1: Stripe, payment processing, APIs, web developers, websites, mobile applications
##
Text 2: OpenAI has trained cutting-edge language models that are very good at understanding and generating text. Our API provides access to these models and can be used to solve virtually any task that involves processing language.
Keywords 2: OpenAI, language models, text processing, API.
##
Text 3: {text}
Keywords 3:

✅Fine-tune: vedi le best practice per il fine-tuning qui.

6. Riduci descrizioni “fumose” e imprecise

Meno efficace ❌:

La descrizione di questo prodotto dovrebbe essere piuttosto breve, solo poche frasi, e non molto di più.

Migliore ✅:

Usa un paragrafo di 3-5 frasi per descrivere questo prodotto.

7. Invece di dire solo cosa non fare, dì cosa fare al suo posto

Meno efficace ❌:

Di seguito trovi una conversazione tra un Agente e un Cliente. NON CHIEDERE USERNAME O PASSWORD. NON RIPETERE.

Cliente: Non riesco ad accedere al mio account.
Agente:

Migliore ✅:

Di seguito trovi una conversazione tra un Agente e un Cliente. L’agente cercherà di diagnosticare il problema e suggerire una soluzione, evitando di fare domande relative a PII. Invece di chiedere PII, come username o password, indirizza l’utente all’articolo di supporto www.samplewebsite.com/help/faq

Cliente: Non riesco ad accedere al mio account.
Agente:

8. Specifico per la generazione di codice - usa “parole guida” per indirizzare il modello verso un pattern specifico

Meno efficace ❌:

# Scrivi una semplice funzione python che
# 1. Mi chiede un numero in miglia
# 2. Converte le miglia in chilometri

Nell’esempio di codice qui sotto, aggiungere “import” suggerisce al modello che dovrebbe iniziare a scrivere in Python. (Allo stesso modo, “SELECT” è un buon suggerimento per l’inizio di un’istruzione SQL.)

Migliore ✅:

# Scrivi una semplice funzione python che
# 1. Mi chiede un numero in miglia
# 2. Converte le miglia in chilometri

import

9. Usa la funzionalità Generate Anything

Gli sviluppatori possono usare la funzionalità 'Generate Anything' per descrivere un’attività o l’output in linguaggio naturale atteso e ricevere un prompt su misura.

Scopri di più su come usare la funzionalità 'Generate Anything'.

Parametri

In generale, abbiamo notato che model e temperature sono i parametri più usati per modificare l’output del modello.

  1. model - I modelli con prestazioni più elevate sono in genere più costosi e possono avere una latenza maggiore.

  2. temperature - Una misura di quanto spesso il modello produce un token meno probabile. Più alta è la temperature, più casuale (e di solito creativo) sarà l’output. Questo, però, non è la stessa cosa della “veridicità”. Per la maggior parte dei casi d’uso fattuali, come l’estrazione dati e Q&A veritiere, una temperature pari a 0 è la scelta migliore.

  3. max_completion_tokens (lunghezza massima) - Non controlla la lunghezza dell’output, ma impone un limite rigido alla generazione di token. Idealmente non raggiungerai spesso questo limite, perché il modello si fermerà quando pensa di aver finito oppure quando raggiunge una sequenza di stop che hai definito.

  4. stop (sequenze di stop) - Un insieme di caratteri (token) che, quando generati, faranno interrompere la generazione del testo.

Per le descrizioni degli altri parametri, vedi la documentazione di riferimento dell’API.

Questo articolo è stato utile?