Scrivere richieste più efficaci

Completato

I modelli OpenAI di Azure sono in grado di generare risposte alle query in linguaggio naturale con notevole accuratezza. Tuttavia, la qualità delle risposte dipende in gran parte dal modo in cui viene scritta la richiesta. Gli sviluppatori possono ottimizzare le prestazioni dei modelli OpenAI di Azure usando tecniche diverse nelle richieste, ottenendo risposte più accurate e pertinenti.

Fornire istruzioni chiare

Chiedere chiaramente al modello OpenAI di Azure ciò che si desidera è un modo per ottenere i risultati desiderati. Essendo il più descrittivi possibile, il modello può generare una risposta che corrisponde il più possibile a ciò che si sta cercando.

Si supponga, ad esempio, di voler creare una descrizione del prodotto per una nuova bottiglia di acqua. Prendere in considerazione la risposta associata a ogni richiesta:

Prompt

Write a product description for a new water bottle

Response

Introducing the latest addition to our product line - the innovative and eco-friendly water bottle.
Made from high-quality, BPA-free materials, this bottle is designed to keep your beverages at the
perfect temperature for hours. Its sleek and stylish design makes it the perfect accessory for any
outdoor activity or workout session. With its convenient carrying handle and leak-proof lid, you 
can take it with you wherever you go, without worrying about spills or leaks. Plus, its easy-to-clean
design ensures that you can use it again and again, making it the perfect choice for anyone looking 
for a reliable and sustainable water bottle.

Rispetto a una richiesta simile, con istruzioni chiare.

Prompt

Write a product description for a new water bottle that is 100% recycled. Be sure to include that
it comes in natural colors with no dyes, and each purchase removes 10 pounds of plastic from our 
oceans

Response

Introducing our newest water bottle, the eco-friendly choice for the conscious consumer. Made from 
100% recycled materials and available in natural colors with no dyes, this bottle is not only 
stylish but also sustainable. Each purchase of this bottle removes 10 pounds of plastic from 
our oceans, making it a responsible choice for those who care about the environment. Its durable 
and leak-proof design makes it perfect for outdoor activities, while its easy-to-carry handle 
makes it convenient to take on the go. Join us in our mission to reduce plastic waste and choose 
this eco-friendly water bottle for your daily hydration needs.

Includere le specifiche che devono essere incluse consente al modello di sapere quali informazioni aggiungere alla descrizione, rendendola più accurata per il nuovo prodotto.

Questo metodo può essere estrapolato per includere istruzioni complesse, ad esempio un elenco puntato di dettagli da includere, lunghezza della risposta o formati desiderati da includere nell'output. Provare a chiedere esattamente ciò che si vuole visualizzare nel risultato e si potrebbe rimanere sorpresi del modo in cui il modello soddisfa la richiesta.

Formato delle istruzioni

Il formato delle istruzioni può influire sul modo in cui il modello interpreta la richiesta. Il recency bias, ovvero la distorsione dell'attualità, può influire sui modelli, per cui le informazioni che si trovano verso la fine della richiesta possono avere un'influenza maggiore sull'output rispetto a quelle che si trovano all'inizio. È possibile ottenere risposte migliori ripetendo le istruzioni alla fine della richiesta e valutando come ciò influisca sulla risposta generata.

Il recency bias può anche entrare in gioco quando si usa ChatCompletion in uno scenario di chat, dove i messaggi più recenti della conversazione inclusa nella richiesta hanno un impatto maggiore sulla risposta. L'unità successiva approfondisce maggiormente l'uso delle conversazioni per migliorare la qualità delle risposte, ma l'inserimento di informazioni importanti verso la fine della richiesta può comportare una risposta migliore.

Usare gli indicatori di sezione

Una tecnica specifica per la formattazione delle istruzioni consiste nel suddividere le istruzioni all'inizio o alla fine della richiesta e far sì che il contenuto dell'utente sia inserito all'interno di blocchi --- o ###. Questi tag consentono al modello di distinguere più chiaramente tra istruzioni e contenuti. Ad esempio:

Translate the text into French

---
What's the weather going to be like today?
---

Nota

Le procedure consigliate per gli indicatori di sezione possono cambiare con le versioni future.

Contenuto primario, di supporto e di base

Includere contenuti che il modello possa usare per rispondere consente di ottenere risposte con maggiore precisione. Questo contenuto può essere considerato in due modi: contenuto primario e contenuto di supporto.

Il contenuto primario si riferisce al contenuto oggetto della query, ad esempio una frase da tradurre o un articolo da riepilogare. Questo contenuto viene spesso incluso all'inizio o alla fine della richiesta (come istruzione e differenziato da blocchi ---), con istruzioni che spiegano cosa farne.

Si supponga, ad esempio, di avere un lungo articolo da riepilogare. È possibile inserirlo in un blocco --- della richiesta, quindi terminare con l'istruzione.

---
<insert full article here, as primary content>
---

Summarize this article and identify three takeaways in a bulleted list

Il contenuto di supporto è un contenuto che può modificare la risposta, ma non è l'obiettivo o l'oggetto della richiesta. Esempi di contenuti di supporto includono elementi come nomi, preferenze, date future da includere nella risposta e così via. Fornire contenuti di supporto consente al modello di rispondere in modo più completo e accurato e di includere con maggiore probabilità le informazioni desiderate.

Ad esempio, se si riceve un messaggio promozionale tramite posta elettronica molto lungo, il modello è in grado di estrarre le informazioni chiave. Se si aggiunge quindi un contenuto di supporto alla richiesta specificando qualcosa di particolare che si sta cercando, il modello può fornire una risposta più utile. In questo caso il messaggio di posta elettronica è il contenuto primario, mentre il contenuto di supporto è costituito dalle informazioni specifiche di ciò a cui si è interessati

---
<insert full email here, as primary content>
---
<the next line is the supporting content>
Topics I'm very interested in: AI, webinar dates, submission deadlines

Extract the key points from the above email, and put them in a bulleted list:

Il contenuto di base consente al modello di fornire risposte affidabili fornendo contenuti da cui il modello può trarre le risposte. Il contenuto di base potrebbe essere un saggio o un articolo su cui porre domande, un documento di domande frequenti dell'azienda o informazioni più recenti rispetto ai dati su cui è stato eseguito il training del modello. Se sono necessarie risposte più affidabili e aggiornate oppure se è necessario fare riferimento a informazioni non pubblicate o specifiche, il contenuto di base è altamente consigliato.

Il contenuto di base è diverso dal contenuto primario perché è l'origine delle informazioni per rispondere alla query della richiesta, anziché il contenuto usato per elementi come il riepilogo o la traduzione. Ad esempio, quando viene fornito un documento di ricerca non pubblicato sulla storia dell'intelligenza artificiale, è possibile rispondere alle domande usando tale contenuto di base.

---
<insert unpublished paper on the history of AI here, as grounding content>
---

Where and when did the field of AI start?

Questi dati di base consentono al modello di fornire risposte più accurate e informate che potrebbero non essere parte del set di dati su cui è stato eseguito il training.

Suggerimenti

I suggerimenti sono parole iniziali su cui il modello può basarsi e spesso aiutano a orientare la risposta nella giusta direzione. Spesso vengono usati con le istruzioni, ma non sempre. I suggerimenti sono particolarmente utili quando si richiede al modello di generare codice. Gli attuali modelli OpenAI di Azure possono generare alcuni frammenti di codice interessanti, tuttavia la generazione di codice verrà trattata in modo più approfondito in un modulo futuro.

Ad esempio, se si desidera un aiuto per creare una query SQL, fornire le istruzioni necessarie insieme all'inizio della query:

Write a join query to get customer names with purchases in the past 30 days between tables named orders and customer on customer ID. 

SELECT

La risposta del modello riprende da dove si era interrotta la richiesta, continuando in SQL, anche se non è mai stato richiesto un linguaggio specifico. Altri esempi potrebbero essere di aiuto con il codice Python, fornendo commenti di codice sull'app desiderata e includendo import come parola iniziale alla fine della richiesta o simile nel linguaggio desiderato.

Un altro esempio è dato da una grande raccolta di recensioni di clienti in una richiesta, che termina con:

Summarize the reviews above:
Most common complaints:
- 

Il modello sa quindi come completare le istruzioni in base al contesto fornito nelle recensioni.