Sådan fungerer prompt engineering
På grund af den måde, OpenAI modeller trænes på, er der bestemte prompt-formater, der fungerer særligt godt og fører til mere nyttige output fra modellen. Den officielle guide til prompt engineering fra OpenAI er som regel det bedste sted at starte for tips til prompts.
Nedenfor præsenterer vi en række prompt-formater, som vi synes fungerer godt, men du er velkommen til at udforske andre formater, som måske passer bedre til din opgave.
Tommelfingerregler og eksempler
Bemærk: »{text input here}« er en pladsholder for faktisk tekst/kontekst
1. Brug den nyeste model
For at opnå de bedste resultater anbefaler vi generelt at bruge de nyeste og mest kompetente modeller. Det er ofte lettere at bruge prompt engineering på nyere modeller.
Bemærk: Der er nogle forskelle at tage højde for, når man prompter en ræsonneringsmodel sammenlignet med en GPT-model. Flere oplysninger her.
2. Placer instruktioner i begyndelsen af prompten, og brug ### eller """ til at adskille instruktionen og konteksten
Mindre effektivt ❌:
Opsummér teksten nedenfor som en punktliste over de vigtigste pointer.
{text input here}Bedre ✅:
Opsummér teksten nedenfor som en punktliste over de vigtigste pointer.
Tekst: """
{text input here}
"""3. Vær så specifik, beskrivende og detaljeret som muligt om den ønskede kontekst, resultat, længde, format, stil osv.
Vær specifik om kontekst, resultat, længde, format, stil osv.
Mindre effektivt ❌:
Skriv et digt om OpenAI. Bedre ✅:
Skriv et kort inspirerende digt om OpenAI med fokus på den seneste DALL-E-produktlancering (DALL-E er en ML-model fra tekst til billede) i stilen fra en {famous poet}4. Formuler det ønskede outputformat gennem eksempler
Mindre effektivt ❌:
Udtræk de entiteter, der nævnes i teksten nedenfor. Udtræk følgende 4 entitetstyper: virksomhedsnavne, personnavne, specifikke emner og temaer.
Tekst: {text}Vis og fortæl – modellerne reagerer bedre, når de får vist specifikke formatkrav. Det gør det også lettere at udtrække flere output programmatisk og pålideligt.
Bedre ✅:
Udtræk de vigtige entiteter, der nævnes i teksten nedenfor. Udtræk først alle virksomhedsnavne, derefter alle personnavne, så specifikke emner, der passer til indholdet, og til sidst generelle overordnede temaer
Ønsket format:
Virksomhedsnavne: <kommasepareret_liste_over_virksomhedsnavne>
Personnavne: -||-
Specifikke emner: -||-
Generelle temaer: -||-
Tekst: {text}5. Start med zero-shot, derefter med få eksempler; hvis ingen af delene virker, så finjustér
✅ Zero-shot
Udtræk nøgleord fra teksten nedenfor.
Tekst: {text}
Nøgleord:✅ Med få eksempler - giv et par eksempler
Udtræk nøgleord fra de tilsvarende tekster nedenfor.
Tekst 1: Stripe leverer API'er, som webudviklere kan bruge til at integrere betalingsbehandling i deres websites og mobilapplikationer.
Nøgleord 1: Stripe, betalingsbehandling, API'er, webudviklere, websites, mobilapplikationer
##
Tekst 2: OpenAI har trænet banebrydende sprogmodeller, som er meget gode til at forstå og generere tekst. Vores API giver adgang til disse modeller og kan bruges til at løse stort set enhver opgave, der involverer sprogbehandling.
Nøgleord 2: OpenAI, sprogmodeller, tekstbehandling, API.
##
Tekst 3: {text}
Nøgleord 3:✅Finjustér: se bedste praksis for finjustering her.
6. Reducér »floskelfyldte« og upræcise beskrivelser
Mindre effektivt ❌:
Beskrivelsen af dette produkt bør være ret kort, kun nogle få sætninger og ikke meget mere.Bedre ✅:
Brug et afsnit på 3 til 5 sætninger til at beskrive dette produkt.7. I stedet for kun at sige, hvad der ikke skal gøres, så sig, hvad der skal gøres i stedet
Mindre effektivt ❌:
Følgende er en samtale mellem en agent og en kunde. SPØRG IKKE OM BRUGERNAVN ELLER ADGANGSKODE. GENTAG IKKE.
Kunde: Jeg kan ikke logge ind på min konto.
Agent:Bedre ✅:
Følgende er en samtale mellem en agent og en kunde. agenten vil forsøge at diagnosticere problemet og foreslå en løsning, mens den afholder sig fra at stille spørgsmål relateret til PII. I stedet for at bede om PII, såsom brugernavn eller adgangskode, henvis brugeren til hjælpeartiklen www.samplewebsite.com/help/faq
Kunde: Jeg kan ikke logge ind på min konto.
Agent:8. Specifikt for kodegenerering – brug »indledende ord« til at skubbe modellen mod et bestemt mønster
Mindre effektivt ❌:
# Skriv en simpel Python-funktion, der
# 1. Beder mig om et tal i miles
# 2. Konverterer miles til kilometerI kodeeksemplet nedenfor antyder tilføjelsen af »import« over for modellen, at den skal begynde at skrive i Python. (Tilsvarende er »SELECT« et godt hint til starten på en SQL-sætning.)
Bedre ✅:
# Skriv en simpel Python-funktion, der
# 1. Beder mig om et tal i miles
# 2. Konverterer miles til kilometer
import9. Brug funktionen »Generér hvad som helst«
Udviklere kan bruge funktionen »Generér hvad som helst« til at beskrive en opgave eller et forventet output i naturligt sprog og modtage en skræddersyet prompt.
Få mere at vide om at bruge funktionen »Generér hvad som helst«.
Parametre
Generelt er model og temperature de parametre, der oftest bruges til at ændre modellens output.
model – Modeller med højere ydeevne er generelt dyrere og kan have længere svartid.
temperature – Et mål for, hvor ofte modellen genererer en mindre sandsynlig token. Jo højere temperature, desto mere tilfældigt (og som regel kreativt) bliver outputtet. Det er dog ikke det samme som »sandfærdighed«. Til de fleste faktabaserede anvendelser, såsom dataudtræk og sandfærdige spørgsmål og svar, er en temperature på 0 bedst.
max_completion_tokens (maksimal længde) – Styrer ikke outputtets længde, men sætter en fast øvre grænse for genereringen af tokens. Ideelt set rammer du sjældent denne grænse, da modellen stopper, når den vurderer, at den er færdig, eller når den når en stopsekvens, du har defineret.
stop (stopsekvenser) – Et sæt tegn (tokens), der får tekstgenereringen til at stoppe, når de genereres.
Beskrivelser af andre parametre findes i API-referencen.
