OpenAI
Ova je stranica strojno prevedena. Pogledajte izvorni članak na engleskom jeziku.

Najbolji primjeri iz prakse za inženjering upita s OpenAI API-jem

Kako dati jasne i učinkovite upute OpenAI modelima

Ažurirano: 15 hours ago

Kako funkcionira inženjering upita

Zbog načina na koji se OpenAI modeli treniraju, postoje posebni formati upita koji osobito dobro funkcioniraju i dovode do korisnijih izlaza modela. Službeni vodič za inženjering upita tvrtke OpenAI obično je najbolje mjesto za početak ako tražite savjete za pisanje upita.

U nastavku predstavljamo niz formata upita za koje smatramo da dobro funkcioniraju, ali slobodno istražite i druge formate koji mogu bolje odgovarati vašem zadatku.

Osnovna pravila i primjeri

Napomena: „{text input here}” rezervirano je mjesto za stvarni tekst/kontekst

1. Upotrijebite najnoviji model

Za najbolje rezultate općenito preporučujemo upotrebu najnovijih i najsposobnijih modela. Noviji su modeli obično lakši za inženjering upita.


Napomena: Postoje neke razlike koje treba uzeti u obzir pri pisanju upita za model za rasuđivanje u odnosu na pisanje upita za GPT model. Više pojedinosti pronađite ovdje.

2. Upute stavite na početak upita i upotrijebite ### ili „”” za odvajanje upute od konteksta

Manje učinkovito ❌:

Sažmite tekst u nastavku kao popis s grafičkim oznakama najvažnijih točaka.

{text input here}

Bolje ✅:

Sažmite tekst u nastavku kao popis s grafičkim oznakama najvažnijih točaka.

Tekst: """
{text input here}
"""

3. Budite što konkretniji, opisniji i detaljniji o željenom kontekstu, ishodu, duljini, formatu, stilu itd.

Budite konkretni u pogledu konteksta, ishoda, duljine, formata, stila itd.

Manje učinkovito ❌:

Napišite pjesmu o OpenAI-ju. 

Bolje ✅:

Napišite kratku nadahnjujuću pjesmu o OpenAI-ju, usredotočenu na nedavno lansiranje proizvoda DALL-E (DALL-E je ML model za pretvaranje teksta u sliku) u stilu {famous poet}

4. Prikažite željeni format izlaza pomoću primjera

Manje učinkovito ❌:

Izdvojite entitete spomenute u tekstu u nastavku. Izdvojite sljedeće 4 vrste entiteta: nazive tvrtki, imena osoba, specifične teme i opće teme.

Tekst: {text}

Pokažite i recite – modeli bolje reagiraju kad im se pokažu konkretni zahtjevi za format. To također olakšava pouzdano programsko raščlanjivanje više izlaza.

Bolje ✅:

Izdvojite važne entitete spomenute u tekstu u nastavku. Prvo izdvojite sve nazive tvrtki, zatim sva imena osoba, potom specifične teme koje odgovaraju sadržaju i na kraju opće krovne teme

Željeni format:
Nazivi tvrtki: <zarezima_odvojen_popis_naziva_tvrtki>
Imena osoba: -||-
Specifične teme: -||-
Opće teme: -||-

Tekst: {text}

5. Počnite s učenjem bez primjera, zatim s učenjem s malim brojem primjera, a ako nijedno ne uspije, fino ugodite model

✅ Učenje bez primjera

Izdvojite ključne riječi iz teksta u nastavku.

Tekst: {text}

Ključne riječi:

✅ Učenje s malim brojem primjera – navedite nekoliko primjera

Izdvojite ključne riječi iz odgovarajućih tekstova u nastavku.

Tekst 1: Stripe nudi API-je koje web-programeri mogu koristiti za integraciju obrade plaćanja u svoje web-stranice i mobilne aplikacije.
Ključne riječi 1: Stripe, obrada plaćanja, API-ji, web-programeri, web-stranice, mobilne aplikacije
##
Tekst 2: OpenAI je trenirao napredne jezične modele koji su vrlo dobri u razumijevanju i generiranju teksta. Naš API pruža pristup tim modelima i može se koristiti za rješavanje gotovo svakog zadatka koji uključuje obradu jezika.
Ključne riječi 2: OpenAI, jezični modeli, obrada teksta, API.
##
Tekst 3: {text}
Ključne riječi 3:

✅Fino ugađanje: najbolje prakse finog ugađanja pogledajte ovdje.

6. Smanjite „prazne” i neprecizne opise

Manje učinkovito ❌:

Opis ovog proizvoda trebao bi biti prilično kratak, svega nekoliko rečenica i ne puno više od toga.

Bolje ✅:

Upotrijebite odlomak od 3 do 5 rečenica da opišete ovaj proizvod.

7. Umjesto da samo kažete što ne treba raditi, recite što treba raditi umjesto toga

Manje učinkovito ❌:

Slijedi razgovor između agenta i korisnika. NE TRAŽI KORISNIČKO IME ILI LOZINKU. NE PONAVLJAJ.

Korisnik: Ne mogu se prijaviti na svoj račun.
Agent:

Bolje ✅:

Slijedi razgovor između agenta i korisnika. agent će pokušati dijagnosticirati problem i predložiti rješenje, pritom se suzdržavajući od postavljanja bilo kakvih pitanja povezanih s PII-jem. Umjesto traženja PII-ja, kao što su korisničko ime ili lozinka, uputite korisnika na članak pomoći www.samplewebsite.com/help/faq

Korisnik: Ne mogu se prijaviti na svoj račun.
Agent:

8. Specifično za generiranje koda – upotrijebite „početne riječi” kako biste usmjerili model prema određenom obrascu

Manje učinkovito ❌:

# Napišite jednostavnu python funkciju koja
# 1. Traži od mene broj u miljama
# 2. Pretvara milje u kilometre

U primjeru koda u nastavku dodavanje „import” daje modelu naznaku da treba početi pisati u Pythonu. (Slično tome, „SELECT” je dobra naznaka za početak SQL izraza.)

Bolje ✅:

# Napišite jednostavnu python funkciju koja
# 1. Traži od mene broj u miljama
# 2. Pretvara milje u kilometre

import

9. Upotrijebite značajku Generiraj bilo što

Razvojni programeri mogu upotrijebiti značajku „Generiraj bilo što” kako bi opisali zadatak ili očekivani izlaz na prirodnom jeziku i dobili prilagođeni upit.


Saznajte više o upotrebi značajke „Generiraj bilo što”.

Parametri

Općenito smatramo da su `model` i `temperature` najčešće upotrebljavani parametri za mijenjanje izlaza modela.

  1. `model` - Modeli s boljim performansama općenito su skuplji i mogu imati veću latenciju.

  2. `temperature` - Mjera koliko često model generira manje vjerojatan token. Što je temperature viši, izlaz je nasumičniji (i obično kreativniji). To, međutim, nije isto što i „istinitost”. Za većinu činjeničnih slučajeva upotrebe, kao što su izdvajanje podataka i istinito odgovaranje na pitanja, najbolja je vrijednost temperature 0.

  3. `max_completion_tokens` (maksimalna duljina) - Ne upravlja duljinom izlaza, već postavlja strogu granicu za generiranje tokena. U idealnom slučaju nećete često dosegnuti tu granicu jer će se model zaustaviti ili kad procijeni da je završio ili kad dosegne sekvencu zaustavljanja koju ste definirali.

  4. `stop` (sekvence zaustavljanja) - Skup znakova (tokena) koji će, kad se generiraju, zaustaviti generiranje teksta.

Opise ostalih parametara potražite u referenci API-ja.

Je li vam ovaj članak bio koristan?