OpenAI prompt engineering

Voltooid

De kwaliteit van de invoerprompts die we verzenden naar een AI-model, zoals die beschikbaar zijn in Azure OpenAI, heeft rechtstreeks invloed op de kwaliteit van wat we terugkrijmen. Door de prompts die we naar het model verzenden zorgvuldig samen te stellen, kan het model betere en interessantere antwoorden bieden.

Wat is prompt-engineering

Prompt engineering is het proces voor het ontwerpen en optimaliseren van prompts om AI-modellen beter te kunnen gebruiken. Het ontwerpen van effectieve prompts is essentieel voor het succes van prompt-engineering en het kan de prestaties van het AI-model voor specifieke taken aanzienlijk verbeteren. Het leveren van relevante, specifieke, ondubbelzinnige en goed gestructureerde prompts kan het model helpen de context beter te begrijpen en nauwkeurigere antwoorden te genereren.

Als we bijvoorbeeld willen dat een OpenAI-model productbeschrijvingen genereert, kunnen we het voorzien van een gedetailleerde beschrijving die de functies en voordelen van het product beschrijft. Door deze context te bieden, kan het model nauwkeurigere en relevante productbeschrijvingen genereren.

Prompt engineering kan ook helpen bij het beperken van vooroordelen en het verbeteren van de billijkheid in AI-modellen. Door prompts te ontwerpen die divers en inclusief zijn, kunnen we ervoor zorgen dat het model niet voor een bepaalde groep of perspectief wordt vooroordelen.

Belangrijk

Ongeacht hoe goed een prompt u kunt ontwerpen, reacties van AI-modellen mogen nooit als feit worden beschouwd of volledig vrij zijn van vooroordelen. Gebruik altijd op verantwoorde wijze AI. Zie de transparantienotitie van Microsoft over azure OpenAI en de AI-principes van Microsoft voor meer informatie.

Bovendien kan prompt-engineering ons helpen begrijpen welke verwijzingen het model gebruikt om het antwoord te genereren. Generatieve AI-modellen hebben een ton parameters en de logica die volgt, is grotendeels onbekend voor gebruikers, dus het kan verwarrend zijn hoe het aankomt op het antwoord dat het geeft. Door prompts te ontwerpen die gemakkelijk te begrijpen en te interpreteren zijn, kunnen we mensen helpen beter te begrijpen hoe het model de reacties genereert. Dit kan met name belangrijk zijn in domeinen zoals gezondheidszorg, waar het essentieel is om te begrijpen hoe het model beslissingen neemt.

Er zijn verschillende methoden om te gebruiken bij het ontwerpen van uw eigen prompts. Dit zijn onder andere instructies, contextuele inhoud, aanwijzingen of enkele shot-voorbeelden en het correct ordenen van inhoud in uw prompt. De hier behandelde methoden zijn niet volledig, omdat dit gebied een genuanceerd en vloeiend onderwerp is.

Overwegingen voor API-eindpunten

De voorbeelden in de rest van deze les zijn gericht op ChatCompletion. Het is de moeite waard om te vermelden dat ChatCompletion deze ook kan worden gebruikt voor niet-chatscenario's, waarbij eventuele instructies worden opgenomen in het systeembericht en de gebruikersinhoud in het bericht van de gebruikersrol. De meeste van deze voorbeelden kunnen desgewenst worden gewijzigd om het Completion eindpunt te gebruiken.

Wat betreft de beschikbaarheid van modellen kan het Completion eindpunt worden gebruikt met gpt-3 en eerder en ChatCompletion kan het worden gebruikt met gpt-35-turbo en latere modellen.

Modelparameters aanpassen

Naast technieken die in deze eenheid worden besproken, kan het aanpassen van parameters van het model een aanzienlijke invloed hebben op het antwoord. Met name temperature , en top_p (top_probability) zijn de meest waarschijnlijke invloed op het antwoord van een model omdat ze beide willekeurigheid in het model beheren, maar op verschillende manieren.

Hogere waarden produceren creatievere en willekeurige antwoorden, maar zijn waarschijnlijk minder consistent of gericht. Reacties die naar verwachting fictief of uniek zijn, profiteren van hogere waarden voor deze parameters, terwijl inhoud consistenter wil zijn en beton lagere waarden moet gebruiken.

Met name high temperature maakt meer variatie in zinsstructuur en hoog top_p mogelijk voor meer variatie in woorden die worden gebruikt (met behulp van een verscheidenheid aan synoniemen).

Probeer deze parameters aan te passen met dezelfde prompt om te zien hoe deze van invloed zijn op het antwoord. Het is raadzaam om een van beide of top_p tegelijk te wijzigentemperature, maar niet beide.

Effectieve prompts schrijven

Azure OpenAI-modellen kunnen reacties genereren op query's in natuurlijke taal met opmerkelijke nauwkeurigheid. De kwaliteit van de antwoorden hangt echter grotendeels af van hoe goed de prompt is geschreven. Ontwikkelaars kunnen de prestaties van Azure OpenAI-modellen optimaliseren met behulp van verschillende technieken in hun prompts, wat resulteert in nauwkeurigere en relevante antwoorden.

Duidelijke instructies opgeven

Het duidelijk stellen van het Azure OpenAI-model voor wat u wilt, is een manier om de gewenste resultaten te verkrijgen. Door zo beschrijvend mogelijk te zijn, kan het model een antwoord genereren dat het meest overeenkomt met wat u zoekt.

Stel dat u een productbeschrijving wilt maken voor een nieuwe waterfles. Houd rekening met het antwoord dat aan elke prompt is gekoppeld:

Prompt

Write a product description for a new water bottle

Respons

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.

Versus een vergelijkbare prompt, met duidelijke instructies.

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

Respons

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.

Door specifieke gegevens op te nemen die moeten worden opgenomen, weet het model welke informatie aan de beschrijving moet worden toegevoegd, zodat het nauwkeuriger is voor het nieuwe product.

Deze methode kan worden extrapolated om complexe instructies op te nemen, zoals een lijst met details met opsommingstekens die moeten worden opgenomen, de lengte van het antwoord of de gewenste indelingen die moeten worden opgenomen in de uitvoer. Probeer precies te vragen wat u in het resultaat wilt zien en u bent misschien verbaasd over hoe goed het model voldoet aan uw aanvraag.

Indeling van instructies

Hoe instructies zijn opgemaakt, kan van invloed zijn op de manier waarop het model de prompt interpreteert. Recency bias kan van invloed zijn op modellen, waarbij informatie aan het einde van de prompt meer invloed kan hebben op de uitvoer dan informatie aan het begin. U krijgt mogelijk betere antwoorden door de instructies aan het einde van de prompt te herhalen en te beoordelen hoe dit van invloed is op het gegenereerde antwoord.

Deze recency bias kan ook worden afgespeeld bij gebruik ChatCompletion in een chatscenario, waarbij recentere berichten in het gesprek in de prompt een grotere invloed hebben op het antwoord.

Primaire, ondersteunende en grounding-inhoud

Als u inhoud opneemt voor het model dat in het antwoord wordt gebruikt, kan het model met een grotere nauwkeurigheid antwoorden. Deze inhoud kan op twee manieren worden gezien: primaire en ondersteunende inhoud.

Primaire inhoud verwijst naar inhoud die het onderwerp van de query is, zoals een zin die moet worden vertaald of een artikel om samen te vatten. Deze inhoud wordt vaak aan het begin of einde van de prompt (als instructie en gedifferentieerd door --- blokken) opgenomen, met instructies waarin wordt uitgelegd wat u ermee moet doen.

Stel dat we een lang artikel hebben dat we willen samenvatten. We kunnen het in een --- blok in de prompt plaatsen en vervolgens eindigen met de instructie.

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

Summarize this article and identify three takeaways in a bulleted list

Ondersteunende inhoud is inhoud die het antwoord kan wijzigen, maar niet de focus of het onderwerp van de prompt is. Voorbeelden van ondersteunende inhoud zijn onder andere namen, voorkeuren, toekomstige datum die in het antwoord moet worden opgenomen, enzovoort. Door ondersteunende inhoud te bieden, kan het model volledig, nauwkeuriger reageren en de gewenste informatie waarschijnlijker opnemen.

Als u bijvoorbeeld een zeer lange promotie-e-mail hebt, kan het model belangrijke informatie extraheren. Als u vervolgens ondersteunende inhoud toevoegt aan de prompt waarin u iets specifieks opgeeft, kan het model een nuttiger antwoord bieden. In dit geval is het e-mailbericht de primaire inhoud, met de details van wat u interesseert als ondersteunende inhoud

---
<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:

Met grounding-inhoud kan het model betrouwbare antwoorden geven door inhoud voor het model te verstrekken waaruit antwoorden kunnen worden getrokken. Grondinhoud kan een essay of artikel zijn waar u vervolgens vragen over stelt, een document met veelgestelde vragen over het bedrijf of informatie die recenter is dan de gegevens waarop het model is getraind. Als u betrouwbaardere en actuele antwoorden nodig hebt, of als u moet verwijzen naar niet-gepubliceerde of specifieke informatie, wordt grounding-inhoud ten zeerste aanbevolen.

Grounding-inhoud verschilt van primaire inhoud, omdat het de bron van informatie is om de promptquery te beantwoorden, in plaats van de inhoud waarop wordt gewerkt voor zaken zoals samenvatting of vertaling. Wanneer u bijvoorbeeld een niet-gepubliceerd onderzoeksdocument hebt verstrekt over de geschiedenis van AI, kan het vervolgens vragen beantwoorden met behulp van die grondinhoud.

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

Where and when did the field of AI start?

Met deze grondgegevens kan het model nauwkeurigere en geïnformeerde antwoorden geven die mogelijk geen deel uitmaken van de gegevensset waarop het is getraind.

Signalen

Aanwijzingen zijn voorloopwoorden voor het model om op voort te bouwen en helpen vaak om het antwoord in de juiste richting vorm te geven. Ze worden vaak gebruikt met instructies, maar niet altijd. Aanwijzingen zijn met name handig als u het model vraagt voor het genereren van code. Codegeneratie wordt uitgebreider behandeld in een volgende les.