OpenAI
Den här sidan har maskinöversatts. Visa den ursprungliga engelska artikeln.

Bästa praxis för Promptutformning med OpenAI API

Så ger du tydliga och effektiva instruktioner till OpenAI-modeller

Uppdaterades: 14 days ago

Så fungerar promptutformning

På grund av hur OpenAI:s modeller tränas finns det specifika promptformat som fungerar särskilt bra och leder till mer användbara modellutdata. Den officiella guiden om promptutformning från OpenAI är vanligtvis det bästa stället att börja på för tips om promptar.

Nedan presenterar vi ett antal promptformat som vi tycker fungerar bra, men utforska gärna olika format som kan passa din uppgift bättre.

Tumregler och exempel

Obs!: "{text input here}" är en platshållare för faktisk text/kontext

1. Använd den senaste modellen

För bästa resultat rekommenderar vi i allmänhet att du använder de senaste och mest kapabla modellerna. Nyare modeller tenderar att vara lättare att utforma prompter för.


Obs!: Det finns vissa skillnader att ta hänsyn till när man promptar en resonemangsmodell jämfört med när man promptar en GPT-modell. Mer information här.

2. Placera instruktioner i början av prompten och använd ### eller """ för att skilja instruktionen från kontexten

Mindre effektivt ❌:

Sammanfatta texten nedan som en punktlista med de viktigaste punkterna.

{text input here}

Bättre ✅:

Sammanfatta texten nedan som en punktlista med de viktigaste punkterna.

Text: """
{text input here}
"""

3. Var specifik, beskrivande och så detaljerad som möjligt om önskad kontext, resultat, längd, format, stil osv.

Var specifik om kontext, resultat, längd, format, stil osv.

Mindre effektivt ❌:

Skriv en dikt om OpenAI. 

Bättre ✅:

Skriv en kort inspirerande dikt om OpenAI, med fokus på den senaste produktlanseringen av DALL-E (DALL-E är en text-till-bild-ML-modell) i stil med en {famous poet}

4. Beskriv önskat utdataformat med hjälp av exempel

Mindre effektivt ❌:

Extrahera de entiteter som nämns i texten nedan. Extrahera följande 4 entitetstyper: företagsnamn, personnamn, specifika ämnen och teman.

Text: {text}

Visa och berätta – modellerna svarar bättre när de får se specifika formatkrav. Det gör det också enklare att programmatiskt tolka flera utdata på ett tillförlitligt sätt.

Bättre ✅:

Extrahera de viktiga entiteter som nämns i texten nedan. Extrahera först alla företagsnamn, sedan alla personnamn, därefter specifika ämnen som passar innehållet och slutligen allmänna övergripande teman

Önskat format:
Företagsnamn: <kommaseparerad_lista_med_företagsnamn>
Personnamn: -||-
Specifika ämnen: -||-
Allmänna teman: -||-

Text: {text}

5. Börja med zero-shot, sedan few-shot; om inget av dem fungerade, finjustera

✅ Zero-shot

Extrahera nyckelord från texten nedan.

Text: {text}

Nyckelord:

✅ Few-shot – ange ett par exempel

Extrahera nyckelord från motsvarande texter nedan.

Text 1: Stripe tillhandahåller API:er som webbutvecklare kan använda för att integrera betalningshantering i sina webbplatser och mobilapplikationer.
Nyckelord 1: Stripe, betalningshantering, API:er, webbutvecklare, webbplatser, mobilapplikationer
##
Text 2: OpenAI har tränat banbrytande språkmodeller som är mycket bra på att förstå och generera text. Vårt API ger åtkomst till dessa modeller och kan användas för att lösa i stort sett alla uppgifter som innebär språkbehandling.
Nyckelord 2: OpenAI, språkmodeller, textbehandling, API.
##
Text 3: {text}
Nyckelord 3:

✅Finjustera: se bästa praxis för finjustering här.

6. Minska ”fluffiga” och oprecisa beskrivningar

Mindre effektivt ❌:

Beskrivningen av den här produkten ska vara ganska kort, bara några meningar, och inte mycket mer.

Bättre ✅:

Använd ett stycke på 3 till 5 meningar för att beskriva den här produkten.

7. I stället för att bara säga vad som inte ska göras, säg vad som ska göras i stället

Mindre effektivt ❌:

Följande är en konversation mellan en Agent och en kund. FRÅGA INTE EFTER ANVÄNDARNAMN ELLER LÖSENORD. UPPREPA INTE.

Kund: Jag kan inte logga in på mitt konto.
Agent:

Bättre ✅:

Följande är en konversation mellan en Agent och en kund. Agenten ska försöka diagnostisera problemet och föreslå en lösning, samtidigt som den avstår från att ställa frågor relaterade till PII. I stället för att be om PII, såsom användarnamn eller lösenord, hänvisa användaren till hjälpartikeln www.samplewebsite.com/help/faq

Kund: Jag kan inte logga in på mitt konto.
Agent:

8. Specifikt för kodgenerering – använd ”inledande ord” för att styra modellen mot ett visst mönster

Mindre effektivt ❌:

# Skriv en enkel pythonfunktion som
# 1. Ber mig om ett tal i miles
# 2. Konverterar miles till kilometer

I kodexemplet nedan antyder tillägget av ”import” för modellen att den ska börja skriva i Python. (På samma sätt är ”SELECT” en bra ledtråd för början av en SQL-sats.)

Bättre ✅:

# Skriv en enkel pythonfunktion som
# 1. Ber mig om ett tal i miles
# 2. Konverterar miles till kilometer

import

9. Använd funktionen Generera vad som helst

Utvecklare kan använda funktionen ”Generera vad som helst” för att beskriva en uppgift eller förväntade utdata på naturligt språk och få en skräddarsydd prompt.


Läs mer om hur du använder funktionen ”Generera vad som helst”.

Parametrar

I allmänhet ser vi att `model` och `temperature` är de parametrar som oftast används för att ändra modellens utdata.

  1. `model` – Modeller med högre prestanda är i allmänhet dyrare och kan ha högre latens.

  2. `temperature` – Ett mått på hur ofta modellen matar ut en mindre sannolik token. Ju högre temperature, desto mer slumpmässigt (och vanligtvis kreativt) blir resultatet. Detta är dock inte samma sak som ”sanningsenlighet”. För de flesta faktabaserade användningsfall, som dataextraktion och sanningsenliga frågor och svar, är en temperature på 0 bäst.

  3. `max_completion_tokens` (maximal längd) – Styr inte längden på utdata, utan är en hård gräns för tokengenerering. Helst når du inte den här gränsen ofta, eftersom modellen slutar antingen när den tror att den är klar eller när den når en stoppsekvens du har definierat.

  4. `stop` (stoppsekvenser) – En uppsättning tecken (token) som, när de genereras, gör att textgenereringen stoppas.

Andra parameterbeskrivningar finns i API-referensen.

Var den här artikeln till hjälp?