Introduzione alla progettazione rapida

I modelli GPT-3, GPT-3.5 e GPT-4 di OpenAI sono basati su prompt. Con tali modelli basati su prompt, l'utente interagisce con il modello immettendo una richiesta di testo, a cui il modello risponde con un completamento del testo. Questo completamento è la continuazione del modello del testo di input.

Sebbene questi modelli siano estremamente potenti, il loro comportamento è anche molto sensibile al prompt. Ciò rende la creazione di un prompt una competenza importante da sviluppare.

La costruzione di richieste può essere difficile. In pratica, il prompt agisce per configurare i pesi del modello per completare l'attività desiderata, ma è più un'arte che una scienza, dato che spesso richiede esperienza e intuizione per creare una richiesta di successo. L'obiettivo di questo articolo è quello di iniziare a usare questo processo di apprendimento. Tenta di acquisire concetti e modelli generali che si applicano a tutti i modelli GPT. Tuttavia, è importante comprendere che ogni modello si comporta in modo diverso, quindi gli apprendimento potrebbero non essere applicabili allo stesso modo a tutti i modelli.

Nozioni di base

Questa sezione illustra i concetti e gli elementi di base delle richieste GPT.

Le richieste di testo sono il modo in cui gli utenti interagiscono con i modelli GPT. Come per tutti i modelli linguistici generativi, i modelli GPT tentano di produrre la serie successiva di parole che probabilmente seguono dal testo precedente. È come se diciamo Che cosa è la prima cosa che arriva alla tua mente quando dico <prompt>?. Gli esempi seguenti illustrano questo comportamento. Data la prima parola del contenuto famoso, il modello è in grado di continuare con precisione il testo.

Richiesta Completion
Quattro punteggi e sette anni fa il nostro padri hanno portato avanti in questo continente, una nuova nazione, concepita in Liberty, e dedicata alla proposta che tutti gli uomini sono creati uguali. [...]
"Chiamami Ishmael." "Alcuni anni fa , non mente quanto tempo esattamente , avendo poco o nessun denaro nella mia borsa, e niente di particolare per interessarmi sulla riva, ho pensato di navigare circa un po 'e vedere la parte acquasa del mondo." [...]

Man mano che si sviluppano richieste più complesse, è utile tenere presente questo comportamento fondamentale. Indipendentemente dalla richiesta fornita, il modello risponde semplicemente a ciò che determina è molto probabile (in base ai dati di training e alle destinazioni di training). Se si pone una domanda nel prompt, il modello non segue un percorso di codice "Q&A" separato, ma sembra piuttosto rispondere alla domanda perché una risposta è il tipo di risposta più probabile per la domanda specificata come input.

Componenti richiesta

Quando si usa l'API di completamento, mentre non esiste alcuna differenziazione tra parti diverse del prompt, può comunque essere utile per apprendere e discutere per identificare i componenti del prompt sottostanti. Con l'API Completamento chat sono presenti sezioni distinte del prompt inviate all'API sotto forma di una matrice di dizionari con ruoli associati: sistema, utente e assistente. Questa guida è incentrata più in generale su come considerare la costruzione di richieste anziché fornire indicazioni prescrittive specifiche per un'API rispetto a un'altra.

È anche importante comprendere che, anche se potrebbero esserci altri modi validi per dissect prompt, l'obiettivo di questa suddivisione è fornire un modo relativamente semplice per pensare alla costruzione di richieste. Con l'API Completamento, tutti i componenti sono facoltativi, ma almeno uno deve essere presente e la maggior parte delle richieste include più componenti. Tra i componenti può essere presente anche un'area grigia. L'ordine presentato di seguito corrisponde approssimativamente al modo in cui ogni componente viene usato, dalla maggior parte al minimo.

Istruzioni

Le istruzioni sono probabilmente il componente prompt più comunemente usato. Le istruzioni sono semplicemente: istruzioni per il modello su cosa fare. Sebbene sia semplice nel concetto, possono essere complessi in pratica. La tabella seguente illustra questa operazione mostrando istruzioni semplici e più complesse, in due forme diverse.

Tipo di istruzione Richiesta Completion
Istruzioni semplici Scrivi un'introduzione per una newsletter settimanale. Benvenuti nella nostra newsletter settimanale. Questa settimana abbiamo un focus particolare sulla produttività. Condivideremo suggerimenti e trucchi su come essere produttivi in tutte le aree della vita. Speriamo che ti diverti e ti prego di condividere con i tuoi amici!
Istruzioni complesse Scrivere un'introduzione per una newsletter settimanale all'azienda denominata Contoso. Dovrebbe menzionare la grande riunione di tutte le mani che abbiamo avuto la scorsa settimana e ringraziare il team per tutto il loro duro lavoro negli ultimi mesi difficili. Benvenuti nella newsletter settimanale di Contoso. La settimana scorsa abbiamo avuto un grande incontro con tutte le mani e voglio ringraziare il team per tutto il loro duro lavoro negli ultimi mesi. Non vediamo l'ora di un futuro luminoso e sono fiducioso che con la dedizione e l'impegno del nostro team, otterremo grandi cose. Grazie per essere parte del nostro team e non vedo l'ora di lavorare con voi tutti nelle prossime settimane e mesi. Cordiali saluti, [Il proprio nome].
Istruzioni complesse Scrivi un'introduzione per una newsletter settimanale, tra cui le seguenti:
- La mia azienda è denominata contoso
- Un saluto esuberante
- Ringraziando il team per il loro duro lavoro in un paio di mesi difficili
- Prospettive positive per il prossimo trimestre
- Firmato da SLT
Hello Contoso team! Volevo dedicarti un attimo a ringraziarti per tutto il tuo duro lavoro negli ultimi mesi. È stato un paio di mesi difficile, ma hai fatto tutto insieme e fatto un lavoro straordinario. Sono davvero orgoglioso di voi tutti. Guardando avanti al prossimo trimestre, mi sento davvero positivo. Penso che riusciremo a realizzare alcune cose grandiose. Grazie ancora, il team di leadership senior.

Contenuto primario

Il contenuto primario si riferisce a un tipo di testo elaborato o trasformato dal modello. Il contenuto principale viene in genere usato in combinazione con le istruzioni. Un semplice esempio è la traduzione linguistica. Nell'esempio seguente, il testo inglese verrebbe considerato il contenuto principale mentre "Translate to French:" è un'istruzione.

Richiesta Completion
Puoi dirmi come arrivare al museo?
Tradurre in francese:
Pouvez-vous s'il vous plaît me dire comment aller au musée?

Il contenuto principale può anche essere molto più lungo. Nell'esempio seguente, il contenuto principale è la sezione introduttiva della voce wikipedia sulla complessità del tempo, che è lunga quasi 300 parole. Questo contenuto è stato abbreviato nella tabella per facilitare la visualizzazione.

Richiesta Completion
Nell'informatica, la complessità del tempo è la complessità computazionale che descrive la quantità di tempo necessario per l'esecuzione di un algoritmo. La complessità temporale è comunemente stimata da [...]
Riepilogare il testo precedente in alcune frasi:
La complessità del tempo è una misura del tempo necessario per l'esecuzione di un algoritmo. In genere viene espresso come funzione delle dimensioni dell'input. La misura più comune è la complessità del tempo peggiore, ovvero la quantità massima di tempo necessaria per gli input di una determinata dimensione.
Nell'informatica, la complessità del tempo è la complessità computazionale che descrive la quantità di tempo necessario per l'esecuzione di un algoritmo. La complessità temporale è comunemente stimata da [...]
TL;DR (Troppo tempo non ha letto)
La complessità temporale di un algoritmo è la quantità di tempo impiegato per eseguire un algoritmo. La complessità del tempo viene comunemente stimata conteggiando il numero di operazioni elementari eseguite dall'algoritmo, supponendo che ogni operazione elementare richiede una quantità fissa di tempo per l'esecuzione. La complessità temporale viene in genere espressa come funzione delle dimensioni dell'input.

I modelli GPT possono anche gestire il contenuto primario strutturato. Nell'esempio seguente, una TSV relativa alle birre in Belgio (abbreviata per la visualizzazione in questo articolo) viene passata al modello come parte della richiesta. È in grado di interpretare correttamente il contenuto e rispondere a domande sui dati.

Richiesta Completion
Belgian Beer Brands
Beer name Beer style color ABV Brewery
"Chimay Gold: ""Doree""" trappist pale ale gold 4.80% Chimay Brewery (official trappist)
"Chimay Blue: ""Grande Reserve""" trappist dark ale dark 9.00%
[...]
Facendo riferimento alla tabella precedente, quanti birre sono inferiori al 6% di ABV?
Nella tabella sono presenti 10 birre inferiori al 6%.

Esempi

Le richieste di successo spesso si basano sulla pratica dell'apprendimento "one-shot" o "few-shot". Questo si riferisce all'inclusione di uno o più esempi del comportamento desiderato del modello, in genere includendo coppie di input e output. Questo non è l'apprendimento nel senso che il modello viene modificato in modo permanente, ma piuttosto che gli esempi migliorano la condizione del modello per rispondere come desiderato solo per l'inferenza corrente. L'uso di prompt senza esempi viene talvolta definito apprendimento "zero-shot". Si noti che con gli esempi di apprendimento con pochi scatti dell'API Completamento chat vengono in genere aggiunti alla matrice di messaggi sotto forma di interazioni utente/assistente di esempio dopo il messaggio di sistema iniziale.

Tipo di apprendimento Richiesta Completion
Colpo zero Titolo: Infortunio sicuro coach non rail Warriors
Argomento:
L'allenatore è sicuro che l'infortunio non rallierà la stagione dei Warriors. Il team è ancora incentrato sui loro obiettivi e che continueranno a lavorare duramente per raggiungerli.
Pochi colpi Titolo: Correa dei gemelli per l'uso del rifiuto esplicito, test free agency
Argomento: Baseball
Titolo: Coppa del Mondo del Qatar per avere zone di sobrietà
Argomento: Calcio
Titolo: Yates: Fantasy football intel per la settimana 6
Argomento: Calcio
Titolo: Infortunio sicuro coach non rail Warriors
Argomento:
Basket

L'esempio precedente illustra l'utilità dell'apprendimento con pochi scatti. Senza gli esempi, il modello sembra indovinare il comportamento desiderato, mentre gli esempi mostrano correttamente il funzionamento del modello. Ciò dimostra anche la potenza del modello, può dedurre la categoria di etichetta desiderata, anche senza un'etichetta "basket" negli esempi.

Segnale

I segnali fungono da "jumpstart" per l'output del modello, consentendo di indirizzare il modello all'output desiderato. Spesso si tratta di un prefisso in cui il modello può essere compilato. Nell'esempio seguente viene illustrato il segnale che indirizza la storia in modo da includere elementi chiave. I segnali vengono spesso usati insieme alle istruzioni, ma non sempre. Negli esempi seguenti il modello viene usato per riepilogare un messaggio di posta elettronica di annuncio lungo. Un segnale viene usato in un caso per concentrare l'output del modello e suggerire un formato di output specifico (punti elenco) nell'altro.

Nel contesto delle istruzioni dell'API Completamento chat si forma di messaggio di sistema e alcuni esempi sono indicati fornendo una serie di interazioni utente/assistente di esempio per aiutare il modello.

Numero di segnali Richiesta Completion
0 Le revisioni delle prestazioni sono un componente fondamentale dell'approccio performance &development di Contoso. [...]
Riepilogare il messaggio di posta elettronica precedente:
Lo scopo di questo messaggio di posta elettronica è informare i dipendenti delle modifiche recenti apportate all'esperienza di revisione delle prestazioni, che fa parte dell'approccio di Sviluppo e prestazioni di Contoso. Le modifiche includono una struttura migliorata, l'esperienza utente degli strumenti aggiornata e le richieste incentrate. Inoltre, è ora disponibile una sezione facoltativa di Conversation Starters per i dipendenti che contrassegnano gli argomenti che vogliono discutere con i responsabili.
1 Le revisioni delle prestazioni sono un componente fondamentale dell'approccio performance &development di Contoso. [...]
Riepilogare il messaggio di posta elettronica precedente:
La chiave del messaggio è
Che Contoso sta migliorando l'esperienza di revisione delle prestazioni, rendendolo più incentrato sulle priorità di base, le aspettative e l'impatto. Inoltre, stanno aggiornando l'esperienza utente in-tool con suggerimenti, risorse e indicazioni. Infine, aggiungono indicazioni su come attivare le priorità principali a livello aziendale.
2 Le revisioni delle prestazioni sono un componente fondamentale dell'approccio performance &development di Contoso. [...]
Riepilogare il messaggio di posta elettronica precedente:
Punti chiave:
Contoso introduce modifiche all'esperienza di revisione delle prestazioni, in base al feedback dei dipendenti.
• Le modifiche includono un nuovo focus sulle priorità principali, sulle aspettative e sull'impatto; un'esperienza utente aggiornata; e nuove linee guida sulle priorità principali a livello aziendale.
• Le revisioni delle prestazioni sono un momento per riflettere sulle prestazioni passate e sull'apprendimento, nonché per pianificare le priorità future e le opportunità di crescita.
• I dipendenti e i responsabili devono scrivere commenti prima della riunione di revisione delle prestazioni.
• Ci dovrebbero essere almeno due revisioni delle prestazioni all'anno.
• L'investimento di tempo per ogni revisione deve rimanere circa lo stesso.

Contenuto di supporto

I contenuti di supporto sono costituiti da informazioni che il modello può utilizzare per influenzare l'output in qualche modo. Differisce dal contenuto primario in quanto non è la destinazione principale dell'attività, ma in genere viene usata insieme al contenuto primario. Gli esempi comuni includono informazioni contestuali, ad esempio la data corrente, il nome dell'utente, le preferenze utente e così via. L'esempio seguente usa il contenuto di supporto per organizzare un set di workshop pianificati per l'utente. Senza il supporto (argomenti importanti) il modello elenca semplicemente i workshop (troncati per la visualizzazione), quando vengono informati dei miei argomenti importanti, il modello è in grado di raggruppare accuratamente le riunioni.

Contenuto di supporto Richiesta Completion
Senza Elenco workshop:
Descrizione titolo
Planning Workshop Kickoff Please join us to kick off our workshop! Ascoltate dai nostri leader le priorità e le esperienze tra gruppi per l'anno in anticipo. L'invito a questo evento è già stato inviato a tutti in [...]
Riepilogare i workshop precedenti, raggruppati in base all'argomento:
Elenco workshop:
Inizio del workshop di pianificazione
-Planning Workshop Wrap-up
- Core MeetUp
- Prospettive basate sui clienti
-Impact and Key Focus Areas
-Procedure consigliate
-Accelerazione dell'adozione di app [...]
With Elenco workshop:
Descrizione titolo
Planning Workshop Kickoff Please join us to kick off our workshop! Ascoltate dai nostri leader le priorità e le esperienze tra gruppi per l'anno in anticipo. L'invito a questo evento è già stato inviato a tutti in [...]
Argomenti importanti: progettazione, ricerca, modelli GPT
Riepilogare i workshop precedenti, raggruppati in base ai miei importanti argomenti:
1. Progettazione prompt:
- Nuovi suggerimenti per la progettazione dei prompt
- L'arte dell'ingegneria della richiesta
2. Ricerca:
-Intro alla ricerca vettoriale con incorporamento
3. Modelli GPT:
- Introduzione a GPT-4
- Profondità GPT-35-Turbo.

Procedure consigliate

  • Essere specifici. Lasciare il minimo possibile interpretazione. Limitare lo spazio operativo.
  • Essere descrittivi. Usare le analogie.
  • Doppio giù. In alcuni casi potrebbe essere necessario ripetere manualmente il modello. Fornire istruzioni prima e dopo il contenuto principale, usare un'istruzione e un segnale e così via.
  • Ordine. L'ordine in cui sono presenti informazioni al modello potrebbe influire sull'output. Se si inseriscono istruzioni prima del contenuto ("riepilogare quanto segue…") o dopo ("riepilogare quanto sopra…") può fare la differenza nell'output. Anche l'ordine degli esempi few-shot può essere importante. Questo processo viene chiamato recency bias.
  • Assegnare al modello un "out". A volte può essere utile assegnare al modello un percorso alternativo se non è in grado di completare l'attività assegnata. Ad esempio, quando si pone una domanda su una parte di testo, è possibile includere qualcosa come "rispondere con "non trovato" se la risposta non è presente. Ciò consente al modello di evitare di generare risposte false.

Efficienza dello spazio

Anche se le dimensioni di input aumentano con ogni nuova generazione di modelli GPT, continueranno a esistere scenari che forniscono più dati rispetto a quelli che il modello può gestire. I modelli GPT suddivideno le parole in "token". Anche se le parole multisllable comuni sono spesso un singolo token, le parole meno comuni vengono interrotte in sillabe. I token possono talvolta essere contro-intuitivi, come illustrato nell'esempio seguente, che illustra i limiti dei token per formati di data diversi. In questo caso, l'ortografia dell'intero mese è più efficiente dello spazio rispetto a una data completamente numerica. L'intervallo corrente di supporto dei token va da 2.000 token con modelli GPT-3 precedenti a un massimo di 32.768 token con la versione 32k del modello GPT-4 più recente.

Screenshot di una stringa di testo con colori evidenziati che delineano i limiti del token.

Dato questo spazio limitato, è importante usarlo nel modo più efficiente possibile.

  • Tabelle: come illustrato negli esempi della sezione precedente, i modelli GPT possono comprendere facilmente i dati in formato tabulare. Può trattarsi di un modo efficiente per includere i dati, anziché precedere ogni campo con nome ( ad esempio con JSON).
  • Spazio vuoto: gli spazi vuoti consecutivi vengono considerati come token separati che possono essere un modo semplice per sprecare spazio. Gli spazi che precedono una parola, d'altra parte, vengono in genere considerati come parte dello stesso token della parola. Osservare attentamente l'utilizzo degli spazi vuoti e non usare la punteggiatura quando uno spazio da solo farà.

Passaggi successivi

Altre informazioni su Azure OpenAI.