Delen via


Prompt engineering-technieken

GPT-3-, GPT-3.5-, GPT-4- en GPT-4o-modellen van OpenAI zijn gebaseerd op prompts. Met modellen op basis van prompts communiceert de gebruiker met het model door een tekstprompt in te voeren, waarop het model reageert met een tekstvoltooiing. Deze voltooiing is hoe het model de invoertekst aanvult. Deze technieken worden niet aanbevolen voor modellen uit de o-serie.

Hoewel deze modellen zeer krachtig zijn, is hun gedrag ook zeer gevoelig voor de prompt. Een belangrijke vaardigheid om te ontwikkelen is dan ook het maken van prompts.

Prompt constructie kan moeilijk zijn. In de praktijk wordt de prompt gebruikt om de gewichten van het model te configureren voor het voltooien van de gewenste taak, maar het is meer een kunst dan een wetenschap. Het vereist vaak ervaring en intuïtie om een succesvolle prompt te creëren. Het doel van dit artikel is om u te helpen aan de slag te gaan met dit leerproces. Het probeert algemene concepten en patronen vast te leggen die van toepassing zijn op alle GPT-modellen. Het is echter belangrijk om te begrijpen dat elk model zich anders gedraagt, dus de lessen zijn mogelijk niet evenzeer van toepassing op alle modellen.

Basisprincipes

In deze sectie worden de basisconcepten en elementen van GPT-prompts behandeld.

Tekstprompts zijn hoe gebruikers communiceren met GPT-modellen. Net als bij alle generatieve taalmodellen proberen GPT-modellen de volgende reeks woorden te produceren die waarschijnlijk zullen volgen uit de vorige tekst. Het is alsof we zeggen Wat is het eerste wat in je gedachten komt als ik zeg <prompt>? In de onderstaande voorbeelden ziet u dit gedrag. Op basis van de eerste woorden van beroemde teksten, kan het model de tekst nauwkeurig voortzetten.

Snel Afronding
Vierentachtig en zeven jaar geleden onze De vaders brachten op dit continent een nieuwe natie voort, gegrondvest in Vrijheid en gewijd aan de stelling dat alle mensen gelijk worden geschapen. […]
"Noem me Ishmael." "Een paar jaar geleden—niet van belang hoe lang precies—dat ik weinig of geen geld in mijn portemonnee had, en niets bijzonders dat me aan de wal interesseerde, dacht ik dat ik een beetje zou varen en het natte deel van de wereld zou zien."

Wanneer u complexere prompts ontwikkelt, is het handig om rekening te houden met dit fundamentele gedrag. Ongeacht de prompt die wordt gegeven, reageert het model gewoon met wat het waarschijnlijkst bepaalt (gezien de trainingsgegevens en trainingsdoelen). Als u een vraag in uw prompt stelt, volgt het model geen afzonderlijk Q&A-codepad, maar lijkt het erop dat deze de vraag beantwoordt omdat een antwoord het meest waarschijnlijke antwoord is voor de gegeven vraag als invoer.

Onderdelen van de prompt

Wanneer u de voltooiings-API gebruikt terwijl er geen onderscheid is tussen verschillende onderdelen van de prompt, kan het nog steeds nuttig zijn voor leren en bespreken om onderliggende promptonderdelen te identificeren. Met de CHAT-voltooiings-API zijn er verschillende secties van de prompt die naar de API worden verzonden in de vorm van een matrix met woordenlijsten met gekoppelde rollen: systeem, gebruiker en assistent. Deze richtlijnen richten zich meer in het algemeen op hoe na te denken over de constructie van prompts in plaats van het bieden van prescriptieve richtlijnen die specifiek zijn voor de ene API boven een andere.

Het is ook belangrijk om te begrijpen dat hoewel er andere geldige manieren zijn om prompts te ontleden, het doel van deze uitsplitsing is om een relatief eenvoudige manier te bieden om na te denken over promptconstructie. Met de voltooiings-API zijn alle onderdelen optioneel, maar ten minste één moet aanwezig zijn en de meeste prompts bevatten meer dan één onderdeel. Er kan ook een grijs gebied tussen onderdelen zijn. De onderstaande volgorde komt ongeveer overeen met hoe vaak elk onderdeel wordt gebruikt, van de meeste tot de minste.

Aanwijzingen

Instructies zijn waarschijnlijk het meest gebruikte promptonderdeel. Instructies zijn gewoon dat: instructies voor het model over wat u moet doen. Hoewel eenvoudig in concept, kunnen ze in de praktijk complex zijn. De volgende tabel illustreert dit door zowel eenvoudige als complexere instructies weer te geven, in twee verschillende vormen.

Instructietype Snel Afronding
Eenvoudige instructies Schrijf een inleiding voor een wekelijkse nieuwsbrief. Welkom bij onze wekelijkse nieuwsbrief. Deze week hebben we een speciale focus op productiviteit. We delen tips en trucs om productief te zijn op alle gebieden van uw leven. We hopen dat je geniet en deel met je vrienden!
Complexe instructies Schrijf een inleiding voor een wekelijkse nieuwsbrief naar mijn bedrijf met de naam Contoso. Het zou de geweldige algemene vergadering die we vorige week hebben gehad moeten vermelden en het team bedanken voor al hun harde werk gedurende de zware afgelopen maanden. Welkom bij de wekelijkse nieuwsbrief van Contoso! We hadden vorige week een geweldige plenaire vergadering en ik wil het team bedanken voor al hun harde werk gedurende de moeilijke afgelopen maanden. We kijken uit naar een heldere toekomst en ik ben ervan overtuigd dat we met de toewijding en inzet van ons team geweldige dingen zullen bereiken. Bedankt dat u deel uitmaakt van ons team en ik kijk ernaar uit om in de komende weken en maanden met u samen te werken. Met vriendelijke groet, [Uw naam].
Complexe instructies Schrijf een inleiding voor een wekelijkse nieuwsbrief, waaronder de volgende:
- Mijn bedrijf heeft de naam contoso
- Een uitbundig begroeting
- Het team bedanken voor hun harde werk gedurende een paar moeilijke maanden
- Positieve vooruitzichten voor het komende kwartaal
- Ondertekend door de SLT
Hallo Contoso-team! Ik wilde u bedanken voor al uw harde werk in de afgelopen maanden. Het is een moeilijke paar maanden geweest, maar jullie hebben allemaal een geweldige klus gedaan. Ik ben echt trots op jullie allemaal. Vooruitkijkend naar het volgende kwartaal, voel ik me echt positief. Ik denk dat we een aantal geweldige dingen gaan bereiken. Nogmaals bedankt, het senior leiderschapsteam.

Primaire inhoud

Primaire inhoud verwijst naar een soort tekst die wordt verwerkt of getransformeerd door het model. Primaire inhoud wordt meestal gebruikt in combinatie met instructies. Een eenvoudig voorbeeld is taalomzetting. In het onderstaande voorbeeld wordt de Engelse tekst beschouwd als de primaire inhoud terwijl 'Vertalen naar Frans:' een instructie is.

Snel Afronding
Kun je me alsjeblieft vertellen hoe je naar het museum gaat?
Vertalen naar het Frans:
Pouvez-vous s'il vous plaît me dire comment aller au musée?

Primaire inhoud kan ook veel langer zijn. In het volgende voorbeeld is de primaire inhoud de introductiesectie van de Wikipedia-vermelding over tijdcomplexiteit, die bijna 300 woorden lang is. Deze inhoud wordt afgekort in onze tabel voor het gemak van de weergave.

Snel Afronding
In computerwetenschap is de tijdcomplexiteit de rekenkundige complexiteit die de hoeveelheid computertijd beschrijft die nodig is om een algoritme uit te voeren. Tijdcomplexiteit wordt vaak geschat door [...]
De vorige tekst in een paar zinnen samenvatten:
Tijdcomplexiteit is een meting van hoe lang het duurt voordat een algoritme wordt uitgevoerd. Deze wordt meestal uitgedrukt als een functie van de grootte van de invoer. De meest voorkomende meting is slechtste tijdcomplexiteit, wat de maximale tijdsduur is die nodig is voor invoer van een bepaalde grootte.
In computerwetenschap is de tijdcomplexiteit de rekenkundige complexiteit die de hoeveelheid computertijd beschrijft die nodig is om een algoritme uit te voeren. Tijdcomplexiteit wordt vaak geschat door [...]
TL;DR (Te lang niet gelezen)
De tijdcomplexiteit van een algoritme is de hoeveelheid tijd die nodig is om een algoritme uit te voeren. Tijdcomplexiteit wordt meestal geschat door het aantal elementaire bewerkingen te tellen dat door het algoritme wordt uitgevoerd, waarbij wordt aangenomen dat elke elementaire bewerking een vaste hoeveelheid tijd kost om uit te voeren. De tijdcomplexiteit wordt over het algemeen uitgedrukt als een functie van de grootte van de invoer.

GPT-modellen kunnen ook primaire inhoud verwerken die is gestructureerd. In het onderstaande voorbeeld wordt een TSV over bieren in België (afgekort voor weergave in dit artikel) doorgegeven aan het model als onderdeel van de prompt. Het is in staat om de inhoud goed te interpreteren en vragen over de gegevens te beantwoorden.

Snel Afronding
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%
[…]
Naar de bovenstaande tabel verwijst, hoeveel bieren zijn er minder dan 6% ABV?
Er zijn 10 bieren in de tafel die minder dan 6% ABV zijn.

Voorbeelden

Geslaagde prompts zijn vaak gebaseerd op het gebruik van 'one-shot' of 'few-shot' leren. Dit verwijst naar het opnemen van een of meer voorbeelden van het gewenste gedrag van het model, meestal door invoer- en uitvoerparen op te nemen. Dit leert niet in de zin dat het model permanent wordt gewijzigd, maar dat de voorbeelden beter in staat zijn om alleen op de huidige deductie te reageren. Het gebruik van prompts zonder voorbeelden wordt soms 'zero-shot' learning genoemd. Houd er rekening mee dat bij de Chat Completion API few-shot learning-voorbeelden gewoonlijk worden toegevoegd aan de berichtenarray in de vorm van voorbeeldinteracties tussen de gebruiker en de assistent, na het initiële systeembericht.

Leertype Snel Afronding
Zero-shot (inzet zonder voorafgaande training) Kop: Coach heeft vertrouwen dat letsel de Warriors niet zal ontsporen
Onderwerp:
De coach is ervan overtuigd dat de blessure het seizoen van de Warriors niet zal verpesten. Het team is nog steeds gericht op hun doelen en dat ze hard blijven werken om ze te bereiken.
Paar foto's Kop: Twins' Correa gebruikt opt-out en test vrije spelersmarkt
Onderwerp: Honkbal
Kop: Qatar World Cup zal ontnuchteringszones hebben
Onderwerp: Voetbal
Kop: Yates: Fantasy football informatie voor de zesde week
Onderwerp: Voetbal
Kop: Coach heeft vertrouwen dat letsel de Warriors niet zal ontsporen
Onderwerp:
Basketbal

In het bovenstaande voorbeeld ziet u het nut van weinig-shot learning. Zonder de voorbeelden lijkt het model te raden naar het gewenste gedrag, terwijl de voorbeelden het model op een schone manier laten zien hoe het werkt. Dit toont ook de kracht van het model, het kan de categorie label afleiden die is gewenst, zelfs zonder een "basketbal" label in de voorbeelden.

Signaal

Aanwijzingen fungeren als de 'startmotor' voor de uitvoer van het model en helpen het model naar de gewenste uitvoer te leiden. Het is vaak een voorvoegsel waarop het model op gebouwd kan worden. In het onderstaande voorbeeld laten we de aanwijzingen zien die het verhaal omleiden om belangrijke elementen op te nemen. Aanwijzingen worden vaak samen met instructies gebruikt, maar niet altijd. In de onderstaande voorbeelden wordt het model gebruikt om een lang aankondigingsbericht samen te vatten. Een aanwijzing wordt in één geval gebruikt om de uitvoer van het model te concentreren en om een specifieke uitvoerindeling (opsommingstekens) in het andere voor te stellen.

In de context van de api-instructies voor chatvoltooiing krijgen de vorm van het systeembericht en enkele voorbeelden worden aangegeven door een reeks voorbeeldinteracties van gebruikers/assistenten te bieden om het model te helpen primen.

Aantal aanwijzingen Snel Afronding
0 Prestatiebeoordelingen zijn een belangrijk onderdeel van onze Performance & Development-benadering bij Contoso. […]
Het bovenstaande e-mailbericht samenvatten:
Het doel van deze e-mail is om werknemers te informeren over recente wijzigingen in de prestatiebeoordelingservaring, die deel uitmaakt van de benadering Performance & Development van Contoso. De wijzigingen omvatten een verbeterde structuur, bijgewerkte gebruikerservaring in het hulpprogramma en gerichte prompts. Daarnaast is er nu een optionele sectie Gespreksstarters voor werknemers om onderwerpen te markeren die ze willen bespreken met hun managers.
1 Prestatiebeoordelingen zijn een belangrijk onderdeel van onze Performance & Development-benadering bij Contoso. […]
Het bovenstaande e-mailbericht samenvatten:
Het belangrijkste leerpunt van het bericht is
dat Contoso de ervaring voor prestatiebeoordeling verbetert door deze meer gericht te maken op de kernprioriteiten, verwachtingen en impact. Daarnaast upgraden ze de gebruikerservaring in het hulpprogramma met tips, resources en richtlijnen. Ten slotte voegen ze richtlijnen toe voor het activeren van bedrijfsbrede kernprioriteiten.
2 Prestatiebeoordelingen zijn een belangrijk onderdeel van onze Performance & Development-benadering bij Contoso. […]
Het bovenstaande e-mailbericht samenvatten:
Belangrijkste punten:
Contoso introduceert wijzigingen in de ervaring voor het beoordelen van prestaties, op basis van feedback van werknemers.
• De wijzigingen omvatten een nieuwe focus op kernprioriteiten, verwachtingen en impact; een bijgewerkte gebruikerservaring; en nieuwe richtlijnen voor bedrijfsbrede kernprioriteiten.
• Prestatiebeoordelingen zijn een tijd om na te denken over eerdere prestaties en leren en om toekomstige prioriteiten en groeikansen te plannen.
• Werknemers en managers moeten opmerkingen schrijven voorafgaand aan de vergadering van de prestatiebeoordeling.
• Er moeten ten minste twee prestatiebeoordelingen per jaar zijn.
• De tijdsinvestering voor elke beoordeling moet ongeveer hetzelfde blijven.

Ondersteunende inhoud

Ondersteunende inhoud is informatie die het model kan gebruiken om de uitvoer op een of andere manier te beïnvloeden. Het verschilt van de primaire inhoud omdat deze niet het belangrijkste doel van de taak is, maar deze wordt meestal samen met primaire inhoud gebruikt. Veelvoorkomende voorbeelden zijn contextuele informatie, zoals de huidige datum, de naam van de gebruiker, gebruikersvoorkeuren, enzovoort. In het onderstaande voorbeeld wordt ondersteunende inhoud gebruikt om een reeks geplande workshops voor de gebruiker te organiseren. Zonder de ondersteunende (belangrijke onderwerpen) vermeldt het model gewoon de workshops (afgekapt voor weergave), wanneer het model op de hoogte is van mijn belangrijke onderwerpen, kan het model de vergaderingen nauwkeurig groeperen.

Ondersteunende inhoud Snel Afronding
Zonder Workshoplijst:
Titelbeschrijving
Start van de Planningsworkshop Doe mee met ons om onze workshop van start te gaan! Hoor van onze leiders over prioriteiten voor groepen en leertrajecten voor het komende jaar. De uitnodiging voor deze gebeurtenis is al verzonden naar iedereen in [...]
Samenvatten van de bovenstaande workshops, gegroepeerd op onderwerp:
Workshoplijst:
Start van de planningsworkshop
-Afronding van de Planningsworkshop
- Core MeetUp
- Klantgestuurde perspectieven
-Impact en belangrijkste aandachtsgebieden
-Beste praktijken
-App-acceptatie versnellen [...]
Met Workshoplijst:
Titelbeschrijving
Start van de Planningsworkshop Doe mee met ons om onze workshop van start te gaan! Hoor van onze leiders over prioriteiten voor groepen en leertrajecten voor het komende jaar. De uitnodiging voor deze gebeurtenis is al verzonden naar iedereen in [...]
Mijn belangrijke onderwerpen: prompt engineering, zoeken, GPT-modellen
Samenvatten van de bovenstaande workshops, gegroepeerd op mijn belangrijke onderwerpen:
1. Prompttechniek:
- Nieuwe prompt technische tips
- De kunst van prompt engineering
2. Zoeken:
-Inleiding tot vectorzoeken met embedding
3. GPT-modellen:
- Inleiding tot GPT-4
- Diepgaande analyse van GPT-35-Turbo.

Scenariospecifieke richtlijnen

Hoewel de principes van prompt-engineering kunnen worden gegeneraliseerd voor veel verschillende modeltypen, verwachten bepaalde modellen een gespecialiseerde promptstructuur. Voor AZURE OpenAI GPT-modellen zijn er momenteel twee verschillende API's waar prompt-engineering aan de orde komt:

  • Api voor voltooiing van chat.
  • Voltooiings-API.

Voor elke API moeten invoergegevens anders worden opgemaakt, wat op zijn beurt van invloed is op het algehele promptontwerp. De Chatvoltooiings-API ondersteunt de GPT-35-Turbo- en GPT-4-modellen. Deze modellen zijn ontworpen voor invoer die is opgemaakt in een specifieke chatachtige transcriptie die is opgeslagen in een matrix met woordenlijsten.

De Voltooiings-API ondersteunt de oudere GPT-3-modellen en heeft veel flexibelere invoervereisten omdat er een tekenreeks met tekst zonder specifieke notatieregels nodig is.

Met de technieken in deze sectie leert u strategieën voor het verhogen van de nauwkeurigheid en aarding van reacties die u genereert met een Large Language Model (LLM). Het is echter belangrijk om te onthouden dat zelfs wanneer u prompt engineering effectief gebruikt, u nog steeds de antwoorden moet valideren die de modellen genereren. Omdat een zorgvuldig ontworpen prompt goed werkte voor een bepaald scenario, betekent dit niet noodzakelijkerwijs dat het algemener wordt voor bepaalde gebruiksscenario's. Het begrijpen van de beperkingen van LLM's is net zo belangrijk als het begrijpen van hun sterke punten.

Deze handleiding gaat niet dieper in op de mechanica achter de berichtstructuur voor chatvoltooiingen. Als u niet bekend bent met interactie met modellen voor chatvoltooiingen via een programma, raden we u aan eerst onze instructiegids te lezen over de CHAT-voltooiings-API.

Opmerking

Alle voorbeelden in deze sectie van de handleiding zijn getest op basis van een GPT-4-basismodel in het Engels. Sommige technieken kunnen verschillende resultaten opleveren met nieuwere modellen zoals gpt-4o en gpt 4.5. Als u een gelokaliseerde versie van dit artikel leest in een andere taal, vertegenwoordigen deze antwoorden een gelokaliseerde vertaling van de Engelse resultaten. Voor meer informatie over mogelijke beperkingen, afhankelijk van de taal die u gebruikt om een model te vragen, raadpleegt u onze verantwoordelijke AI-transparantienotitie.

Few-shot leren

Een veelgebruikte manier om taalmodellen aan te passen aan nieuwe taken is het gebruik van few-shot learning. Bij few-shot leren wordt een reeks trainingsvoorbeelden gegeven als onderdeel van de prompt om het model extra context te bieden.

Wanneer u de API voor chatvoltooiingen gebruikt, kan een reeks berichten tussen de gebruiker en assistent (geschreven in de nieuwe promptindeling) fungeren als voorbeelden voor weinig-shot learning. Deze voorbeelden kunnen worden gebruikt om het model op een bepaalde manier te laten reageren, bepaalde gedragingen te emuleren en antwoorden op veelgestelde vragen te zaaien.

Systeembericht Paar-shot-voorbeelden
Assistent is een intelligente chatbot die is ontworpen om gebruikers te helpen hun belastinggerelateerde vragen te beantwoorden.
Aanwijzingen
- Beantwoord alleen vragen met betrekking tot belastingen.
- Als u niet zeker bent van een antwoord, kunt u zeggen 'Ik weet het niet' of 'Ik weet het niet zeker' en raad gebruikers aan om naar de IRS-website te gaan voor meer informatie.
Gebruiker : 'Wanneer moet ik mijn belastingen indienen?'
Assistent : "In 2023 moet u uw belastingen indienen op 18 april. De datum valt na de gebruikelijke deadline van 15 april omdat 15 april valt op een zaterdag in 2023. Zie voor meer informatie https://www.irs.gov/filing/individuals/when-to-file "

Gebruiker : "Hoe kan ik de status van mijn belastingrestitutie controleren?"
Assistent - "U kunt de status van uw belastingrestitutie controleren door naar https://www.irs.gov/refunds "

In de bovenstaande tabel wordt de structuur van de basisprompt beschreven, maar voor een gedetailleerde uitleg van de exacte promptindeling moet u verwijzen naar de handleiding chatvoltooiing.

Niet-chatscenario's

Hoewel de API voor chatvoltooiing is geoptimaliseerd voor gebruik met gesprekken met meerdere beurten, kan deze ook worden gebruikt voor niet-chat-gerelateerde scenario's. Voor een sentimentanalyse scenario kunt u bijvoorbeeld de volgende prompt gebruiken:

Systeembericht Gebruiker Assistent
U bent een assistent die bedoeld is om sentiment uit spraakgegevens te analyseren. Gebruikers plakken een tekenreeks met tekst en u reageert met een evaluatie van het antwoord van de spreker. Rente op een schaal van 1-10 (10 hoogste). Leg uit waarom deze classificatie is gegeven. Hallo, bedankt voor het bellen van contoso apotheek, met wie spreek ik vandaag? Ik begrijp je frustratie, Mary. Kun je me vertellen wat je precies probeert te bereiken? OK, zeker, ik kijk dat graag voor je na, een moment alsjeblieft. Ik zie hier dat je een generieke vorm van Lipitor gebruikte, klopt dat? OK, dus ik zie dat uw arts gestopt is met het voorschrijven van deze medicijnen in tweeduizend eenentwintig. OK, ja, ik kijk dat graag voor je na, omdat er soms een hiaat in het systeem is en het gewoon niet wordt gerapporteerd, dus laat me even kijken. Dus ik zie hier dat uw arts deze geneesmiddelen voor u heeft voorgeschreven van tweeduizend twaalf tot tweeduizend eenentwintig. OK, volgens de laatste gegevens van het dokterskantoor bent u nu op een ander medicijn, metformine. Wilt u dat we dat recept voor u klaarmaken om op te halen, 500 milligram? Graag gedaan, Mary. Laat ons weten als er nog iets anders is wat we vandaag voor u kunnen doen. Gevoelsclassificatie: 8
De spreker in deze tekst lijkt beleefd, behulpzaam en geduldig te zijn tijdens het aanpakken van de zorgen van de klant. Ze nemen de tijd om de informatie te controleren, duidelijke uitleg te geven en hulp te bieden. De waardering is echter geen 10, omdat er nog steeds een hint is van onzekerheid in sommige delen van het gesprek, waardoor de klant mogelijk niet volledig vertrouwen heeft.

Begin met duidelijke instructies

De volgordegegevens worden weergegeven in de prompt. Dit komt doordat GPT-stijlmodellen op een bepaalde manier zijn gebouwd die bepalen hoe ze de invoer verwerken. Ons onderzoek suggereert dat het model aan het begin van de prompt geïnformeerd moet worden over de taak die het moet uitvoeren, voordat aanvullende contextuele informatie of voorbeelden worden gedeeld, om uitvoer van hogere kwaliteit te helpen produceren.

Opmerking

Hoewel het volgen van deze techniek nog steeds algemeen wordt aanbevolen, in tegenstelling tot eerdere modelversies (GPT-3 en eerdere), bleek uit onze tests dat het modelantwoord met ChatGPT- en GPT-4-modellen hetzelfde was, ongeacht of de techniek wordt gebruikt. In het onderstaande voorbeeld zien we dat het toevoegen van de instructie 'Verschillende bronnen ... "Eruptie" aan het begin of eind van de prompt veroorzaakte geen verandering in de uiteindelijke reactie van het model.

Systeembericht Gebruiker Assistent
U bent een AI-assistent waarmee mensen informatie kunnen vinden. Uw taak is om te controleren of de instructie 'Meerdere bronnen een kans op een andere grote uitbarsting vermelden' wordt ondersteund door een specifiek citaat uit de volgende set fragmenten.
---
FRAGMENTEN
Experts zeggen dat er een kans van 14 procent is op een megabeving die Seattle treft.
SEATTLE - Er is een kans van 14 procent op een aardbeving met een magnitude van 9 in de regio Cascadia die Seattle in de komende 50 jaar zal treffen, volgens schattingen van de Amerikaanse Geologische Dienst. "Helaas kunnen we niet...

[2] Aardbevingsexperts leggen de nieuwste outlook uit voor 'Really Big One' van Seattle
"We zeggen dat er ongeveer 14% kans is op een andere ongeveer grootte-9 aardbeving die de komende 50 jaar optreedt", zei een geofysicus aan de Universiteit van Washington...
---
Is de verklaring "Verschillende bronnen noemen een kans op een andere grote uitbarsting" rechtstreeks vermeld of geïmpliceerd door de fragmenten?
Nee, de instructie wordt niet rechtstreeks geïmpliceerd of vermeld door de fragmenten. De fragmenten noemen een kans op een "megaquake" en een "magnitude 9 Cascadia aardbeving" die Seattle in de komende 50 jaar zou kunnen treffen, maar noemen geen kans op een andere grote uitbarsting.

Herhaal de instructies aan het einde

Modellen kunnen vatbaar zijn voor recency bias, wat in deze context betekent dat informatie aan het einde van de prompt mogelijk meer invloed heeft op de uitvoer dan informatie aan het begin van de prompt. Daarom is het de moeite waard om te experimenteren met het herhalen van de instructies aan het einde van de prompt en het evalueren van de impact op het gegenereerde antwoord.

De uitvoer voorbereiden

Dit verwijst naar het opnemen van enkele woorden of woordgroepen aan het einde van de prompt om een modelantwoord te verkrijgen dat volgt op het gewenste formulier. Als u bijvoorbeeld een hint zoals “Here’s a bulleted list of key points:\n- ” gebruikt om ervoor te zorgen dat de uitvoer wordt opgemaakt als een lijst met opsommingstekens.

Systeembericht Gebruiker Assistent
U bent een AI-assistent waarmee mensen informatie kunnen vinden. Beantwoord zo weinig mogelijk woorden. John Smith is getrouwd met Lucy Smith. Ze hebben vijf kinderen en hij werkt als software-engineer bij Microsoft. Welke zoekquery's moet ik doen om dit te controleren? ## Een mogelijke zoekquery is: "John Smith trouwde met Lucy Smith vijf kinderen software engineer Microsoft"

In de bovenstaande prompt bereidt de tekst Een mogelijke zoekquery is: het model voor om een enkele uitvoer te genereren. Zonder deze aanwijzing produceert het model verschillende zoekquery's als uitvoer.

Duidelijke syntaxis toevoegen

Door duidelijke syntaxis te gebruiken, inclusief leestekens, koppen en sectiemarkeringen, kunt u de intentie communiceren, wat de uitvoer vaak makkelijker te begrijpen maakt.

In het onderstaande voorbeeld zijn scheidingstekens (--- in dit geval) toegevoegd tussen verschillende informatiebronnen of stappen. Hierdoor kan het gebruik van --- als stopvoorwaarde voor het genereren worden gebruikt. Daarnaast worden sectiekoppen of speciale variabelen in hoofdletters weergegeven om deze te onderscheiden.

Systeembericht Gebruiker Assistent
U bent een AI-assistent waarmee mensen informatie kunnen vinden. U leest een alinea en geeft vervolgens query's uit aan een zoekmachine om deze te controleren. Leg ook de query's uit.
---
ALINEA
John Smith is getrouwd met Lucy Smith. Ze hebben vijf kinderen en hij werkt als software-engineer bij Microsoft. Welke zoekquery's moet ik doen om dit te controleren?
---
Query's
1. "John Smith Microsoft": om te controleren of John Smith inderdaad bij Microsoft werkt.
2. "John Smith Lucy Smith" - Om te controleren of John Smith getrouwd is met Lucy Smith.
3. "John Smith kinderen" - Om te controleren of John Smith vijf kinderen heeft.

Als u niet zeker weet welke syntaxis u moet gebruiken, kunt u Markdown of XML gebruiken. De modellen zijn getraind op een grote hoeveelheid webinhoud in XML en Markdown, wat betere resultaten kan opleveren.

De taak opsplitsen

Grote taalmodellen (LLM's) presteren vaak beter als de taak wordt opgesplitst in kleinere stappen. In de queryprompt waarnaar eerder wordt verwezen, kan de prompt bijvoorbeeld worden geherstructureerd, zodat het model eerst wordt geïnstrueerd om relevante feiten te extraheren en vervolgens wordt geïnstrueerd om zoekquery's te genereren die kunnen worden gebruikt om deze feiten te verifiëren.

Systeembericht Gebruiker Assistent
U bent een AI-assistent waarmee mensen informatie kunnen vinden. U leest een alinea en geeft vervolgens query's uit aan een zoekmachine om deze te controleren.
---
ALINEA
John Smith is getrouwd met Lucy Smith. Ze hebben vijf kinderen en hij werkt als software-engineer bij Microsoft. Welke zoekquery's moet ik doen om dit te controleren?
---
Nu extraheert u feitelijke claims en stelt u vragen op om ze te controleren. Wanneer u een query uitgeeft, gebruikt u de functie SEARCH("query")

FEITELIJKE CLAIMS
1. John Smith is getrouwd met Lucy Smith
2. Ze hebben vijf kinderen
3. Hij werkt als software-engineer bij Microsoft

Query's
SEARCH("John Smith trouwde met Lucy Smith")
ZOEK("John Smith gezinsgrootte")
SEARCH("John Smith Microsoft-software-engineer")

Let op het gebruik van duidelijke syntaxis om de secties te onderscheiden en de uitvoer te primen. In dit eenvoudige voorbeeld is het opsplitsen van de taak van één tot twee stappen niet erg dramatisch, maar wanneer u dit probeert te doen voor een groter stuk tekst met veel feitelijke claims, kan het opsplitsen van de taak een aanzienlijk verschil maken.

Gebruik van betaalbaarheid

Soms kunnen we het model krijgen om een betaalbaarheid te gebruiken in plaats van te vertrouwen op zijn eigen parameters voor informatie en antwoorden. Zoeken kan bijvoorbeeld een hulpmiddel zijn om verzonnen antwoorden tegen te gaan en om actuele informatie te verkrijgen.

Een eenvoudige manier om een betaalbaarheid te gebruiken, is door de generatie te stoppen zodra de betaalbaarheidsaanroepen door het model worden gegenereerd en de resultaten vervolgens weer in de prompt te plakken. Hieronder ziet u een voorbeeld van wat de opvolgingsoproep kan zijn na het uitvoeren van de bovenstaande ZOEK-aanroepen . U ziet hoe we de zoekresultaten in de prompt hebben geplakt en de vorige SEARCH-aanroepen hebben vervangen.

Systeembericht Gebruiker Assistent
U bent een AI-assistent waarmee mensen informatie kunnen vinden. U leest een alinea, extraheert feitelijke claims en gebruikt vervolgens zoekresultaten om ze te controleren
---
ALINEA
John Smith is getrouwd met Lucy Smith. Ze hebben vijf kinderen en hij werkt als software-engineer bij Microsoft. Welke zoekquery's moet ik doen om dit te controleren?
---
FEITELIJKE CLAIMS
- John Smith is getrouwd met Lucy Smith
- John en Lucy hebben vijf kinderen
- John werkt als software-engineer bij Microsoft
---
Hier volgen verschillende zoekquery's die zijn uitgegeven om de bovenstaande claims te onderzoeken:
ZOEKOPDRACHTEN
- John Smith gehuwd met Lucy Smith
- John Smith aantal kinderen
- John Smith-software-engineer Microsoft
---
Dit zijn fragmenten van de zoekresultaten:
FRAGMENTEN:
[1] De bruiloft van John Smith was op 25 september 2012 ...
[2] John Smith werd vergezeld door zijn vrouw Lucy aan een feestje
[3]John werd vergezeld van het voetbalspel door zijn twee dochters en drie zonen
[4] Na 10 jaar bij Microsoft, richtte Smith zijn eigen startup op, Tailspin Toys
John M is de smid van de stad, en hij trouwde met Fiona. Ze hebben een dochter genaamd Lucy
---
Op basis van de codefragmenten controleert u elk van de bovenstaande feitelijke claims:
- John Smith is getrouwd met Lucy Smith: Bevestigd. Fragment [1] en [2] vermelden allebei John Smiths vrouw als Lucy.

- John en Lucy hebben vijf kinderen: Bevestigd. Fragment [3] vermeldt dat John vergezeld was van zijn twee dochters en drie zonen.

- John werkt als software-engineer bij Microsoft: Gedeeltelijk bevestigd. Fragment [4] vermeldt dat John 10 jaar bij Microsoft heeft doorgebracht, maar niet expliciet vermeldt dat hij daar momenteel werkt. Verder onderzoek kan nodig zijn om zijn huidige arbeidsstatus te bevestigen.

Keten van gedachteprompt

Dit is een variatie op de techniek voor het opsplitsen van de taak. In plaats van een taak op te splitsen in kleinere stappen, wordt in deze benadering het modelantwoord stapsgewijs uitgelegd en worden alle betrokken stappen weergegeven. Dit vermindert de kans op onnauwkeurigheid van resultaten en maakt het beoordelen van de modelrespons eenvoudiger.

Systeembericht Gebruiker Assistent
U bent een AI-assistent waarmee mensen informatie kunnen vinden. Wie was de meest versierde (maximum medailles) individuele atleet in de Olympische spelen die werden gehouden in Sydney? Neem een stapsgewijze benadering in uw antwoord, citeer bronnen en geef redenering voordat u het laatste antwoord deelt in de onderstaande indeling: ANSWER is: <name> Stap 1: Bepaal het jaar van de Olympische Spelen van Sydney. De Olympische Spelen van Sydney werden gehouden in het jaar 2000.

Stap 2: Zoek een lijst met individuele atleten die meerdere medailles hebben gewonnen op de Olympische Spelen van Sydney 2000.

Volgens de officiële website van de Olympische Spelen waren er verschillende individuele atleten die meerdere medailles wonn op de Olympische Spelen van Sydney in 2000. Enkele van de belangrijke namen zijn:
• Ian Thorpe (Australië) - 3 goud, 2 zilver, 0 brons
• Pieter van den Hoogenband (Nederland) - 2 goud, 0 zilver, 2 brons
• Lenny Krayzelburg (USA) - 3 goud, 0 zilver, 0 brons
• Inge de Bruijn (Nederland) - 3 goud, 1 zilver, 0 brons

Stap 3: Bepaal de atleet met de meeste medailles. Na het bekijken van de lijst met individuele atleten die meerdere medailles won op de Olympische Spelen van 2000 in Sydney, kunnen we zien dat de atleet met de meeste medailles Ian Thorpe uit Australië is, die in totaal 5 medailles won (3 goud en 2 zilver).

Daarom is het ANTWOORD: Ian Thorpe.

De uitvoerstructuur opgeven

Door uw prompt te gebruiken om de structuur van de uitvoer op te geven, kan dit een aanzienlijk effect hebben op de aard en kwaliteit van de resultaten. Soms zijn systeemberichtinvoeren als 'alleen echte feiten schrijven' of 'geen informatie fabriceren' mogelijk niet voldoende oplossingen. In plaats daarvan kan het vragen om het modelantwoord ook bronvermeldingen op te nemen, leiden tot een vermindering van de prevalentie van onjuiste antwoorden.

Als u het model instrueert om het bronmateriaal te citeren wanneer het uitspraken doet, zijn deze uitspraken veel beter onderbouwd. Als u om bronvermeldingen vraagt, moet het model twee fouten maken telkens wanneer er een antwoord wordt gegenereerd: de eerste fout is het ge fabriceerde antwoord en de tweede is de slechte bronvermelding. Houd er rekening mee dat hoe dichter de bronvermelding is bij de tekst die wordt ondersteund, hoe korter de afstand voor het model is om te anticiperen op de bronvermelding, wat aangeeft dat inline-bronvermeldingen betere oplossingen zijn voor het genereren van valse inhoud dan bronvermeldingen aan het einde van de inhoud.

Als u het model vraagt om feitelijke instructies uit een alinea te extraheren, kan het ook samengestelde instructies extraheren, zoals 'X doet Y EN Z' (wat moeilijker kan zijn om te verifiëren). Dit kan worden vermeden door een uitvoerstructuur op te geven, zoals (entiteit1, relatie, entiteit2).

In de onderstaande voorbeelden ziet u het gebruik van bronvermeldingen en het omsturen van het modelantwoord op een gedefinieerde structuur.

Systeembericht Gebruiker Assistent
U bent een AI-assistent waarmee mensen informatie kunnen vinden Vermeld in het volgende gesprek het verschillende gedrag van de klantondersteuningsmedewerker.
---
Hallo, bedankt voor het bellen van contoso apotheek, met wie spreek ik vandaag? Ik begrijp je frustratie, Mary. Kun je me vertellen wat je precies probeert te bereiken? OK, zeker, ik kijk dat graag voor je na, een moment alsjeblieft. Ik zie hier dat je een generieke vorm van Lipitor gebruikte, klopt dat? OK, dus ik zie dat uw arts gestopt is met het voorschrijven van deze medicijnen in tweeduizend eenentwintig. OK, ja, ik kijk dat graag voor je na, omdat er soms een hiaat in het systeem is en het gewoon niet wordt gerapporteerd, dus laat me even kijken. Dus ik zie hier dat uw arts deze geneesmiddelen voor u heeft voorgeschreven van tweeduizend twaalf tot tweeduizend eenentwintig. OK, volgens de laatste gegevens van het dokterskantoor bent u nu op een ander medicijn, metformine. Wilt u dat we dat recept voor u klaarmaken om op te halen, 500 milligram? Graag gedaan, Mary. Laat ons weten als er nog iets anders is wat we vandaag voor u kunnen doen.
---
Hoe is het antwoord van de klantondersteuningsmedewerker?
Classificeer en vermeld hun verschillende gedragingen en citeer de reden achter de classificatie, met behulp van de notatie BEHAVIOR("reason")
1. Beleefd begroetingSGEDRAG("Agent start het gesprek met een beleefde begroeting en vraagt om de naam van de beller")
2. Empathetisch GEDRAG("Agent erkent Mary's frustratie en probeert haar bezorgdheid te begrijpen")
3. Attent GEDRAG("Agent luistert naar het probleem van de klant en vraagt om meer informatie")
4. Proactief GEDRAG("Agent biedt aan om het probleem voor de klant te controleren")
5. Informatief GEDRAG("Agent verstrekt de relevante informatie over de voorschriftgeschiedenis van de klant")
6. Grondig GEDRAG("Agent controleert op mogelijke hiaten in het systeem en levert een volledig antwoord")
7. Confirmatory BEHAVIOR("Agent bevestigt de huidige medicatie bij de klant")
8. Oplossingsgericht GEDRAG("Agent biedt aan om het nieuwe recept voor de klant te vullen")
9. Beleefde GEDRAG("Agent bedankt de klant en biedt verdere hulp aan indien nodig")
Systeembericht Gebruiker Assistent
U bent een AI-assistent waarmee mensen informatie kunnen vinden. Cluster de volgende nieuwskoppen in onderwerpcategorieën op basis van patronen die in de tekst worden gezien. Vermeld ook redenering achter de wijze waarop deze categorieën zijn gedefinieerd.
Uitvoerindeling:
{
"TOPIC_NAME": "",
"KOPPEN": [],
"REDENEREN": ""
}

Nieuwskoppen invoeren:
1. "Van boeken tot presentaties in 10s met AR + ML"
2. "Demo uit 1993 van 32-jarige Yann LeCun toont het eerste Convolutional Network for Text Recognition ter wereld"
3. "First Order Motion Model toegepast om schilderijen tot leven te brengen"
4. "Robinhood en andere brokers blokkeren letterlijk de aankoop van $GME, $NOK, $BB, $AMC; verkopen toestaan"
5. "United Airlines aandelen daalden met meer dan 5% in de handel voor de opening van de markt"
Uitvoer:

{
"KUNSTMATIGE_INTELLIGENTIE": {
"KOPPEN": [
Van boeken tot presentaties in 10 seconden met AR + ML
"Demo uit 1993 van 32-jarige Yann LeCun toont het eerste Convolutional Network for Text Recognition ter wereld",
"Eerstelingsbewegingsmodel toegepast om schilderijen te animeren"
],
"REDENERING": "Deze koppen zijn gerelateerd aan kunstmatige intelligentie, machinaal leren en hun toepassingen in verschillende gebieden."
},
"FINANCIËLE_MARKTEN": {
"KOPPEN": [
"Robinhood en andere brokers blokkeren letterlijk de aankoop van $GME, $NOK, $BB, $AMC; verkopen toestaan",
"Aandelen van United Airlines dalen met meer dan 5% in de voorbeurshandel"
Bitcoin was vandaag een jaar geleden bijna $20.000.
],
"VERKLARING": "Deze koppen zijn gerelateerd aan financiële markten, aandelen, cryptovaluta en handelsplatforms."
}
}

Temperatuur- en Top_p parameters

Als u de temperatuurparameter wijzigt, wordt de uitvoer van het model gewijzigd. De temperatuurparameter kan tussen 0 en 2 worden ingesteld. Een hogere waarde, bijvoorbeeld 0,7, maakt de uitvoer willekeuriger en produceert meer uiteenlopende antwoorden, terwijl een lagere waarde, zoals. 0.2, maakt de uitvoer meer gericht en concreet. Een fictief verhaal kan worden gegenereerd met een hogere temperatuur. Voor het genereren van een juridisch document is het raadzaam om een veel lagere temperatuur te gebruiken. Top_probability is een andere parameter en is vergelijkbaar met Temperatuur omdat hiermee ook de willekeurigheid van het modelantwoord wordt gecontroleerd, maar dit op een andere manier doet. De algemene aanbeveling is om een van deze twee parameters tegelijk te wijzigen, niet beide.

Basiscontext opgeven

Een van de meest effectieve manieren om betrouwbare antwoorden te geven, is door het model gegevens te bieden waaruit het zijn reacties kan putten (grondgegevens). Als uw use-case afhankelijk is van actuele, betrouwbare informatie en niet uitsluitend een creatief scenario is, raden we u ten zeerste aan grondgegevens op te geven. Over het algemeen, hoe dichter u uw bronmateriaal kunt krijgen bij de uiteindelijke vorm van het gewenste antwoord, hoe minder werk het model moet doen, wat betekent dat er minder kans is op fouten. Hier volgt een voorbeeld waarin het systeem een recent blog bevat met een beschrijving van de lancering van GPT-4 in Azure OpenAI in Azure AI Foundry Models en waarin wordt gevraagd om enkele van de vroege klanten een naam te geven.

Systeembericht Gebruiker Assistent
U bent een AI-assistent waarmee mensen informatie kunnen vinden. U geeft uitsluitend antwoorden van de onderstaande tekst en reageert in 100 woorden of minder:
"Bij Microsoft ontdekken we voortdurend nieuwe manieren om creativiteit te ontketenen, productiviteit te ontgrendelen en vaardigheden op niveau te verhogen, zodat meer mensen kunnen profiteren van het gebruik van AI. Hierdoor kunnen onze klanten ...

… waardoor de kans wordt verkleind dat het model een schadelijk antwoord genereert."1

Beantwoord in 100 woorden of minder. Gebruik waar mogelijk opsommingen.
Wie zijn enkele van de vroege klanten van de Azure OpenAI GPT-4-modellen? Hier volgen enkele van de vroege klanten van de Azure OpenAI GPT-4-modellen:
- Epic Healthcare: Ze zijn van plan gpt-4 te gebruiken om artsen en verpleegsters te helpen minder tijd te besteden aan het invoeren en onderzoeken van gegevens.
- Coursera: Ze gebruiken Azure OpenAI met GPT-4 om een nieuwe ai-leerervaring op hun platform te maken.
- Coca-Cola: Ze gebruiken Azure OpenAI om een kennishub te bouwen en gebruik te maken van de multimodale mogelijkheden van GPT-4 voor marketing, reclame, public relations en klantrelaties.
- Andere bedrijven van alle grootten maken gebruik van Azure AI om klantervaringen te verbeteren, lange-vorminhoud samen te vatten, software te schrijven en risico's te verminderen door de juiste belastinggegevens te voorspellen.

1 Tekst van de Azure OpenAI GPT-4 lancering blog.

Beste praktijken

  • Wees specifiek. Laat zo min mogelijk over aan interpretatie. Beperk de operationele ruimte.
  • Wees omschrijvend. Gebruik analogieën.
  • Dubbel omlaag. Soms moet u zich misschien herhalen bij het model. Geef instructies voor en na de primaire inhoud, gebruik een instructie en een aanwijzing, enzovoort.
  • Order Matters. De volgorde waarin u informatie aan het model presenteert, kan van invloed zijn op de uitvoer. Of u nu instructies plaatst voor uw inhoud ('het volgende samenvatten...') of na ('summarize the above...') kan een verschil maken in de uitvoer. Zelfs de volgorde van few-shot voorbeelden kan van belang zijn. Dit wordt recency bias genoemd.
  • Geef het model een 'uitweg'. Het kan soms handig zijn om het model een alternatief pad te geven als het de toegewezen taak niet kan voltooien. Als u bijvoorbeeld een vraag stelt over een stuk tekst, kunt u bijvoorbeeld 'reageren met 'niet gevonden' opnemen als het antwoord niet aanwezig is.' Dit kan helpen het model te voorkomen dat er valse antwoorden worden gegenereerd.

Ruimte-efficiëntie

Hoewel de invoergrootte toeneemt met elke nieuwe generatie GPT-modellen, blijven er scenario's bestaan die meer gegevens bieden dan het model aankan. GPT-modellen splitsen woorden in 'tokens'. Hoewel veelgebruikte woorden met meerdere lettergrepen vaak één token zijn, worden minder algemene woorden in lettergrepen verbroken. Tokens kunnen soms contra-intuïtief zijn, zoals wordt weergegeven in het onderstaande voorbeeld waarin tokengrenzen voor verschillende datumnotaties worden gedemonstreerd. In dit geval is het volledig uitschrijven van de naam van de maand ruimtebesparend in plaats van een volledig numerieke datum. Het huidige bereik van tokenondersteuning gaat van 2000 tokens met eerdere GPT-3-modellen tot maximaal 32.768 tokens met de 32k-versie van het nieuwste GPT-4-model.

Schermopname van een tekenreeks met gemarkeerde kleuren die tokengrenzen aangeven.

Gezien deze beperkte ruimte is het belangrijk om het zo efficiënt mogelijk te gebruiken.

  • Tabellen: zoals wordt weergegeven in de voorbeelden in de vorige sectie, kunnen GPT-modellen eenvoudig gegevens in tabelvorm begrijpen. Dit kan een ruimte-efficiënte manier zijn om gegevens op te nemen, in plaats van elk veld vooraf te laten gaan door een naam (zoals bij JSON).
  • Witruimte: opeenvolgende witruimten worden behandeld als afzonderlijke tokens, wat een eenvoudige manier kan zijn om ruimte te verspillen. Spaties voorafgaand aan een woord worden meestal behandeld als onderdeel van hetzelfde token als het woord. Wees voorzichtig met uw gebruik van witruimte en gebruik geen interpunctie wanneer een spatie voldoende is.