Slik fungerer promptutforming
På grunn av måten OpenAI modeller trenes på, finnes det bestemte promptformater som fungerer spesielt godt og fører til mer nyttige modellutdata.
Den offisielle veiledningen i promptutforming fra OpenAI er vanligvis det beste stedet å starte for tips om prompting.
Nedenfor presenterer vi en rekke promptformater som vi synes fungerer godt, men utforsk gjerne ulike formater, som kan passe bedre til oppgaven din.
Tommelfingerregler og eksempler
Merk: «{text input here}» er en plassholder for faktisk tekst/kontekst
1. Bruk den nyeste modellen
For best resultat anbefaler vi generelt å bruke de nyeste og mest kapable modellene. Nyere modeller er vanligvis enklere å drive promptutforming for.
Merk: Det er noen forskjeller å ta hensyn til når du prompter en Resonneringsmodell kontra når du prompter en GPT-modell. Flere detaljer her.
2. Plasser instruksjoner i begynnelsen av prompten og bruk ### eller """ for å skille instruksjonen fra konteksten
Mindre effektivt ❌:
Oppsummer teksten nedenfor som en punktliste over de viktigste punktene.
{text input here}Bedre ✅:
Oppsummer teksten nedenfor som en punktliste over de viktigste punktene.
Tekst: """
{text input here}
"""3. Vær spesifikk, beskrivende og så detaljert som mulig om ønsket kontekst, resultat, lengde, format, stil osv.
Vær spesifikk om kontekst, resultat, lengde, format, stil osv.
Mindre effektivt ❌:
Skriv et dikt om OpenAI. Bedre ✅:
Skriv et kort inspirerende dikt om OpenAI, med fokus på den nylige produktlanseringen av DALL-E (DALL-E er en ML-modell som går fra tekst til bilde) i stilen til en {famous poet}4. Formuler ønsket utdataformat gjennom eksempler
Mindre effektivt ❌:
Trekk ut entitetene som er nevnt i teksten nedenfor. Trekk ut følgende 4 entitetstyper: selskapsnavn, personnavn, spesifikke emner og temaer.
Tekst: {text}Vis, og fortell – modellene svarer bedre når de får se spesifikke formatkrav. Dette gjør det også lettere å programmessig analysere flere utdata pålitelig.
Bedre ✅:
Trekk ut de viktige entitetene som er nevnt i teksten nedenfor. Trekk først ut alle selskapsnavn, deretter alle personnavn, så spesifikke emner som passer til innholdet, og til slutt generelle overordnede temaer
Ønsket format:
Selskapsnavn: <kommaseparert_liste_over_selskapsnavn>
Personnavn: -||-
Spesifikke emner: -||-
Generelle temaer: -||-
Tekst: {text}5. Start med zero-shot, deretter med få eksempler, hvis ingen av delene fungerte, så finjuster
✅ Zero-shot
Trekk ut nøkkelord fra teksten nedenfor.
Tekst: {text}
Nøkkelord:✅ Med få eksempler - gi et par eksempler
Trekk ut nøkkelord fra de tilhørende tekstene nedenfor.
Tekst 1: Stripe tilbyr API-er som nettutviklere kan bruke til å integrere betalingsbehandling i nettstedene og mobilapplikasjonene sine.
Nøkkelord 1: Stripe, betalingsbehandling, API-er, nettutviklere, nettsteder, mobilapplikasjoner
##
Tekst 2: OpenAI har trent banebrytende språkmodeller som er svært gode til å forstå og generere tekst. API-en vår gir tilgang til disse modellene og kan brukes til å løse praktisk talt enhver oppgave som innebærer språkbehandling.
Nøkkelord 2: OpenAI, språkmodeller, tekstbehandling, API.
##
Tekst 3: {text}
Nøkkelord 3:✅Finjuster: se beste praksis for finjustering her.
6. Reduser «fluffy» og upresise beskrivelser
Mindre effektivt ❌:
Beskrivelsen for dette produktet bør være ganske kort, bare noen få setninger, og ikke stort mer.Bedre ✅:
Bruk et avsnitt på 3 til 5 setninger for å beskrive dette produktet.7. I stedet for bare å si hva du ikke skal gjøre, si hva du skal gjøre i stedet
Mindre effektivt ❌:
Følgende er en samtale mellom en agent og en kunde. IKKE BE OM BRUKERNAVN ELLER PASSORD. IKKE GJENTA.
Kunde: Jeg kan ikke logge inn på kontoen min.
Agent:Bedre ✅:
Følgende er en samtale mellom en agent og en kunde. agenten vil forsøke å diagnostisere problemet og foreslå en løsning, samtidig som den avstår fra å stille spørsmål knyttet til PII. I stedet for å be om PII, som brukernavn eller passord, henvis brukeren til hjelpeartikkelen www.samplewebsite.com/help/faq
Kunde: Jeg kan ikke logge inn på kontoen min.
Agent:8. Spesifikt for kodegenerering - bruk «ledende ord» for å dytte modellen mot et bestemt mønster
Mindre effektivt ❌:
# Skriv en enkel python-funksjon som
# 1. Ber meg om et tall i miles
# 2. Konverterer miles til kilometerI kodeeksemplet nedenfor antyder det å legge til «import» for modellen at den bør begynne å skrive i Python. (På samme måte er «SELECT» et godt hint for starten på en SQL-setning.)
Bedre ✅:
# Skriv en enkel python-funksjon som
# 1. Ber meg om et tall i miles
# 2. Konverterer miles til kilometer
import9. Bruk funksjonen Generate Anything
Utviklere kan bruke funksjonen 'Generate Anything' til å beskrive en oppgave eller forventet utdata i naturlig språk og motta en skreddersydd prompt.
Les mer om å bruke funksjonen 'Generate Anything'.
Parametere
Generelt opplever vi at model og temperature er de mest brukte parameterne for å endre modellutdata.
model- Modeller med høyere ytelse er generelt dyrere og kan ha høyere latens.temperature- Et mål på hvor ofte modellen gir ut en mindre sannsynlig token. Jo høyeretemperature, desto mer tilfeldig (og vanligvis kreativt) er resultatet. Dette er imidlertid ikke det samme som «sannferdighet». For de fleste faktabaserte bruksområder, som datauttrekk og sannferdig spørsmål og svar, ertemperaturepå 0 best.max_completion_tokens(maksimal lengde) - Kontrollerer ikke lengden på utdataene, men en hard avskjæringsgrense for tokengenerering. Ideelt sett vil du ikke treffe denne grensen ofte, siden modellen stopper enten når den tror den er ferdig, eller når den treffer en stoppsekvens du har definert.stop(stoppsekvenser) - Et sett med tegn (token) som, når de genereres, vil få tekstgenereringen til å stoppe.
For andre parameterbeskrivelser, se API-referansen.
