Modeluitvoer optimaliseren met prompt-engineering
De meest toegankelijke manier om de prestaties van een model te optimaliseren, is via prompt engineering. Prompt engineering is het proces van het ontwerpen en verfijnen van prompts om de kwaliteit, nauwkeurigheid en relevantie van de antwoorden die een taalmodel genereert te verbeteren. Hiervoor zijn geen extra infrastructuur- of trainingsgegevens vereist en kunt u direct experimenteren.
Promptonderdelen begrijpen
Wanneer u communiceert met een taalmodel, heeft de kwaliteit van uw vraag rechtstreeks invloed op de kwaliteit van het antwoord. Een goed samengestelde prompt helpt het model te begrijpen wat u nodig hebt en een nuttiger antwoord te genereren.
Opdrachten voor chat-voltooiingsmodellen bevatten meestal de volgende onderdelen:
- Systeembericht: instructies voor het definiëren van het gedrag, de rol en de beperkingen van het model.
- Gebruikersbericht: De vraag of invoer van de gebruiker.
- Assistentbericht: Eerdere modelantwoorden, gebruikt in gesprekken in meerdere beurten.
- Voorbeelden: Voorbeeld van invoer-/uitvoerparen die de verwachte antwoordindeling demonstreren.
Hoe u deze onderdelen structureert en combineert, bepaalt hoe effectief het model reageert.
Effectieve systeemberichten ontwerpen
Een systeembericht is een reeks instructies die u aan het model verstrekt om de antwoorden te begeleiden. Systeemberichten verschijnen doorgaans eerst in het gesprek en fungeren als de set instructies op het hoogste niveau. U gebruikt ze om het volgende te doen:
- Definieer de rol en grenzen van de assistent.
- Stel de toon- en communicatiestijl in.
- Geef uitvoerindelingen op, zoals JSON of opsommingstekens.
- Voeg veiligheids- en kwaliteitsbeperkingen toe voor uw scenario.
Een systeembericht kan net zo eenvoudig zijn als:
You are a helpful AI assistant.
Of het kan gedetailleerde regels en opmaakvereisten bevatten. De chattoepassing van het reisbureau kan bijvoorbeeld het volgende gebruiken:
You are a friendly travel advisor for Margie's Travel.
Answer only questions related to travel, hotels, and trip planning.
Use a warm, conversational tone.
If you don't have enough information to answer, ask a clarifying question.
Format hotel recommendations as a bulleted list with the hotel name, location, and price range.
Belangrijk
Een systeembericht heeft invloed op het model, maar garandeert geen naleving. U moet uw systeemberichten testen en herhalen en deze in een laag plaatsen met andere oplossingen, zoals het filteren en evalueren van inhoud.
Volg deze controlelijst bij het ontwerpen van een systeembericht:
- Begin met de rol van de assistent: Geef de rol en het verwachte resultaat voor een typische aanvraag op.
- Definieer grenzen: vermeld de onderwerpen, acties en inhoudstypen die de assistent moet vermijden.
- Geef de uitvoerindeling op: Als u een specifieke indeling nodig hebt, geeft u deze duidelijk op en houdt u deze consistent.
- Voeg een 'wanneer niet zeker' beleid toe: Vertel het model wat te doen wanneer de aanvraag van de gebruiker niet eenduidig is, buiten het bereik valt of wanneer het model onvoldoende informatie heeft.
Promptpatronen toepassen
Effectieve prompts gebruiken patronen die het model helpen betere antwoorden te produceren. Hier volgen enkele veelvoorkomende patronen die u kunt gebruiken:
Persona-patroon
Instrueer het model om een specifiek perspectief of specifieke rol op te nemen. Als u bijvoorbeeld het model vraagt om te reageren als doorgewinterde marketingprofessional, levert u andere resultaten op dan helemaal geen persona te gebruiken.
| Geen persona | Met persona | |
|---|---|---|
| Systeembericht | Geen | U bent een doorgewinterde marketingprofessional die schrijft voor technische klanten. |
| gebruikersprompt | Schrijf een beschrijving van één zin van een CRM-product. | Schrijf een beschrijving van één zin van een CRM-product. |
| Antwoord | Een CRM-product is een softwarehulpprogramma dat is ontworpen om de interacties van een bedrijf met klanten te beheren. | Ervaar naadloos klantrelatiebeheer met onze CRM, ontworpen om de activiteiten te stroomlijnen en de verkoopgroei te stimuleren met robuuste analyses. |
Sjabloonpatroon opmaken
Geef een sjabloon of structuur op in uw prompt om uitvoer in een specifieke indeling op te halen. Als u bijvoorbeeld een gestructureerd antwoord nodig hebt over een hotel:
Format the result to show:
- Hotel name
- Location
- Star rating
- Price range per night
Dit patroon zorgt voor consistente, georganiseerde antwoorden die eenvoudig te parseren zijn in uw toepassing.
Denkstroompatroon
Vraag het model om stapsgewijze uitleg te geven over de redenering. Deze techniek, keten van gedachte genoemd, vermindert de kans op onnauwkeurige resultaten en maakt het gemakkelijker om de logica van het model te verifiëren.
In plaats van bijvoorbeeld te vragen 'Welk hotel is het beste voor een gezin van vier?', kunt u het volgende vragen:
Which hotel is best for a family of four? Take a step-by-step approach:
consider room size, amenities for children, location, and price.
Een gerelateerde techniek is het opsplitsen van de taak in expliciete substappen voordat het model reageert, in plaats van deze te vragen om alles tegelijk te redeneren. U kunt bijvoorbeeld eerst het model vragen om belangrijke feiten uit een passage te extraheren en vervolgens in een vervolgprompt deze vragen stellen om een vraag te beantwoorden op basis van die feiten. Het op deze manier opsplitsen van het werk vermindert fouten bij complexe, meerdelige taken.
Opmerking
Keten-van-gedachten-aanwijzing is een techniek voor niet-redenerende modellen. Redeneringsmodellen zoals o-seriemodellen verwerken intern stapsgewijze logica.
Paar-shot learning-patroon
Geef een of meer voorbeelden van de gewenste invoer en uitvoer op om het model te helpen het gewenste patroon te identificeren. Deze techniek wordt few-shot learning genoemd (of one-shot voor één voorbeeld). Wanneer er geen voorbeelden worden opgegeven, wordt dit zero-shot learning genoemd.
Als u bijvoorbeeld vragen van klanten wilt classificeren:
Classify the following customer messages:
Message: "I need to change my flight to Rome"
Category: Booking change
Message: "What's the weather like in Bali in March?"
Category: Travel information
Message: "Can I get a refund for my cancelled tour?"
Category:
Het model leert het classificatiepatroon uit de voorbeelden en voltooit de laatste vermelding correct.
Duidelijke syntaxis en scheidingstekens gebruiken
Wanneer uw prompt meerdere secties bevat, zoals instructies, brontekst en voorbeelden, gebruikt u scheidingstekens zoals ---Markdown-koppen of XML-tags om deze te scheiden. Duidelijke grenzen helpen het model om instructies te onderscheiden van inhoud en de kans op onjuiste interpretatie te verminderen.
Aanbeveling
Modellen kunnen vatbaar zijn voor recency bias, wat betekent dat tekst aan het einde van een prompt meer invloed kan hebben dan tekst aan het begin. Probeer de sleutelinstructie aan het einde van de prompt te herhalen als het model uw instructies niet consistent volgt.
Modelparameters configureren
Naast de tekst van uw prompts kunt u modelparameters aanpassen die bepalen hoe het model antwoorden genereert:
- Temperatuur: bepaalt de willekeurigheid van de uitvoer. Een hogere waarde (bijvoorbeeld 0,7) produceert meer creatieve en gevarieerde reacties, terwijl een lagere waarde (bijvoorbeeld 0,2) meer gerichte en deterministische antwoorden produceert. Gebruik lagere waarden voor feitelijke taken en hogere waarden voor creatieve taken.
-
Top_p: bepaalt ook willekeurigheid, maar op een andere manier. Het model wordt beperkt tot een subset van de meest waarschijnlijke volgende tokens. Een van 0,9 betekent bijvoorbeeld
top_pdat het model alleen de top 90% van waarschijnlijke tokens beschouwt.
Aanbeveling
De algemene aanbeveling is om de temperatuur of top_p aan te passen, niet beide tegelijk.
Voor het scenario van het reisbureau kunt u een lage temperatuur (0.2) gebruiken bij het beantwoorden van feitelijke vragen over hotelvoorzieningen, maar een hogere temperatuur (0,7) bij het genereren van creatieve reisschemasuggesties.
Wanneer prompt engineering voldoende is
Prompt engineering is het juiste uitgangspunt voor elke optimalisatie van modellen. Dit is effectief wanneer u het volgende moet doen:
- De toon, opmaak en gedrag van het model sturen.
- Geef specifieke instructies voor een taak op.
- Snel de resultaten herhalen zonder wijzigingen in de infrastructuur.
- De kosten laag houden, omdat er geen extra training of gegevensopslag nodig is.
Prompt engineering heeft echter limieten. Als het model niet beschikt over access aan de informatie die nodig is (zoals de hotelcatalogus van uw bedrijf) of als het consistent geen specifiek gedrag behoudt ondanks gedetailleerde instructies, moet u rekening houden met aanvullende strategieën.