Skip to content

Latest commit

 

History

History
411 lines (255 loc) · 47.6 KB

File metadata and controls

411 lines (255 loc) · 47.6 KB

Prompt Műszaki Alapok

Prompt Műszaki Alapok

Bevezetés

Ez a modul a generatív MI modellekben hatékony promptok létrehozásához szükséges alapvető fogalmakat és technikákat tárgyalja. Fontos az is, hogyan írjuk meg a promptot az LLM számára. Egy gondosan megtervezett prompt jobb választ eredményezhet. De pontosan mit jelentenek a prompt és prompt mérnöki munka kifejezések? És hogyan javíthatom az LLM-nek küldött prompt bemenetet? Ezekre a kérdésekre próbálunk választ adni ebben és a következő fejezetben.

A generatív MI képes új tartalmakat (például szöveget, képeket, hangot, kódot stb.) létrehozni a felhasználó kéréseire reagálva. Ezt olyan Nagy Nyelvi Modellek segítségével éri el, mint az OpenAI GPT (Generative Pre-trained Transformer) sorozata, amelyeket természetes nyelv és kód használatára képeztek ki.

A felhasználók most már ismerős párbeszédes formában léphetnek kapcsolatba ezekkel a modellekkel, technikai tudás vagy képzés nélkül. A modellek prompt alapúak – a felhasználók szöveges bemenetet (promptot) küldenek, és az MI választ (befejezést) kap vissza. Ezután több körben, iteratívan „beszélgethetnek az MI-vel”, finomítva a promptot, amíg a válasz megfelel az elvárásaiknak.

A „promptok” mostantól a generatív MI alkalmazások elsődleges programozási felületévé váltak, megmondva a modelleknek, mit tegyenek és befolyásolva a visszakapott válaszok minőségét. A „Prompt Mérnöki Munka” egy gyorsan fejlődő tudományterület, amely a promptok tervezésére és optimalizálására összpontosít, hogy méretezhetően konzisztens és minőségi válaszokat adjon.

Tanulási célok

Ebben az órában megtanuljuk, mi az a Prompt Mérnöki Munka, miért fontos, és hogyan alkothatunk hatékonyabb promptokat egy adott modell és alkalmazási cél számára. Megismerjük a prompt mérnöki munka alapfogalmait és bevált módszereit – és bemutatjuk az interaktív Jupyter Notebook „játszóteret”, ahol láthatjuk ezen elvek gyakorlati alkalmazását.

Az óra végére képesek leszünk:

  1. Megmagyarázni, mi az a prompt mérnöki munka és miért lényeges.
  2. Leírni a prompt összetevőit és azok használatát.
  3. Megtanulni a prompt mérnöki munka legjobb gyakorlatait és technikáit.
  4. Az elsajátított technikákat valós példákon alkalmazni, OpenAI végpont használatával.

Főbb fogalmak

Prompt Mérnöki Munka: A bemenetek tervezésének és finomításának folyamata annak érdekében, hogy az MI modellek a kívánt kimeneteket állítsák elő. Tokenizáció: A szöveg kisebb egységekre, úgynevezett tokenekre bontásának folyamata, amelyet a modell megért és feldolgoz. Instrukcióra hangolt LLM-ek: Nagy Nyelvi Modellek (LLM-ek), amelyeket specifikus utasításokkal finomhangoltak a válaszok pontosságának és relevanciájának javítására.

Tanuló játszótér

A prompt mérnöki munka jelenleg inkább művészet, mint tudomány. Az intuíció fejlesztésének legjobb módja a gyakorlás, és a próbálkozás alapú megközelítés alkalmazása, amely kombinálja az alkalmazási terület szakértelmét a javasolt technikákkal és modellspecifikus optimalizációkkal.

Az ehhez az órához tartozó Jupyter Notebook egy játszótér környezetet biztosít, ahol kipróbálhatod, amit tanulsz – folyamatosan vagy a kód kihívás részeként a végén. A feladatok végrehajtásához szükséged lesz:

  1. Egy Azure OpenAI API kulcsra - a telepített LLM szolgáltatás végpontja.
  2. Egy Python futtatókörnyezetre - amelyben a Notebook végrehajtható.
  3. Helyi környezeti változókra - most végezd el a BEÁLLÍTÁS lépéseit, hogy készen állj.

A notebook kezdő feladatokat tartalmaz – de bátorítunk, hogy adj hozzá saját Markdown (leírás) és Kód (prompt kérés) szakaszokat, hogy több példát vagy ötletet próbálj ki – és fejleszd az intuíciódat a prompt tervezéshez.

Illusztrált útmutató

Szeretnéd látni a tananyag nagy egészét, mielőtt belevágsz? Nézd meg ezt az illusztrált útmutatót, amely bemutatja a főbb témákat és a legfontosabb gondolatokat, amelyeket érdemes átgondolnod. Az útiterv az alapfogalmak és kihívások megértésétől vezet el a releváns prompt mérnöki technikák és legjobb gyakorlatok alkalmazásáig. Ne feledd, hogy ennek az útmutatónak az „Haladó technikák” része a tananyag következő fejezetéhez kapcsolódik.

Illusztrált útmutató a prompt mérnöki munkához

A mi startupunk

Most nézzük meg, hogyan kapcsolódik ez a téma startup küldetésünkhöz, az MI innováció oktatásba való behozatalához. Célunk, hogy MI-alapú, személyre szabott tanulási alkalmazásokat fejlesszünk – így gondolkodjunk el arról, hogyan „tervezhetnek” promptokat alkalmazásunk különböző felhasználói:

  • Adminisztrátorok az MI-t arra kérhetik, hogy elemezze a tantervi adatokat, hogy azonosítsa a lefedetlenségi hiányosságokat. Az MI összefoglalhatja az eredményeket vagy vizualizálhatja őket kóddal.
  • Oktatók az MI-t arra kérhetik, hogy készítsen tantervet egy célközönség és téma számára. Az MI a személyre szabott tervet meghatározott formátumban készítheti el.
  • Diákok az MI-t arra kérhetik, hogy támogassa őket nehéz tantárgyban. Az MI most már tanórákkal, tippekkel és példákkal segíti őket, szintjükre szabva.

Ez csak a jéghegy csúcsa. Nézd meg a Prompts For Education nyílt forráskódú, oktatási szakértők által összeállított prompt könyvtárat – hogy szélesebb képet kapj a lehetőségekről! Próbáld ki néhány promptot a játszótéren vagy az OpenAI Playground-ban, hogy lásd, mi történik!

Mi az a Prompt Mérnöki Munka?

Ezt az órát azzal kezdtük, hogy a prompt mérnöki munkát a szöveges bemenetek (promptok) megtervezésének és optimalizálásának folyamataként határoztuk meg, ami következetes és minőségi válaszokat (befejezéseket) eredményez adott alkalmazási cél és modell alapján. Ezt egy kétlépcsős folyamatként képzelhetjük el:

  • a kezdő prompt megtervezése adott modell és cél érdekében
  • a prompt finomítása iteratívan a válasz minőségének javításához

Ez szükségszerűen egy próbálkozásos folyamat, amely felhasználói intuíciót és erőfeszítést igényel az optimális eredmény eléréséhez. Miért fontos ez akkor? A válaszhoz először három fogalmat kell megértenünk:

  • Tokenizáció = hogyan „látja” a modell a promptot
  • Alap LLM-ek = hogyan „feldolgozza” a modell a promptot
  • Instrukcióra hangolt LLM-ek = hogyan „látja” most már a feladatokat a modell

Tokenizáció

Egy LLM a promptokat tokenek sorozataként látja, ahol különböző modellek (vagy ugyanazon modell verziói) másként tokenizálhatják ugyanazt a promptot. Mivel az LLM-ek tokeneken (nem nyers szövegen) tanultak, a promptok tokenizálásának módja közvetlenül befolyásolja a generált válasz minőségét.

Az tokenizáció intuíciójának megértéséhez kipróbálhatod az alábbi OpenAI Tokenizer eszközt. Másold be a promptodat – és nézd meg, hogyan alakul tokenekké, figyelve arra, hogyan kezeli a szóközöket és írásjeleket. Megjegyzés: itt egy régebbi LLM-et (GPT-3) látsz - így egy újabb modell más eredményt adhat.

Tokenizáció

Fogalom: Alapmodell (Foundation Models)

Amint a prompt tokenizálva van, az "Alap LLM" (vagy Alapmodell) elsődleges feladata az adott token előrejelzése a sorozatban. Az LLM-ek hatalmas szövegadatokon vannak kiképezve, így jó statisztikai érzékük van a tokenek közötti összefüggésekhez, és bizonyos fokú magabiztossággal képesek előre jelezni a következőt. Nem értik a prompt vagy token értelmét; csak egy mintát látnak, amit „kiegészíthetnek” a következő előrejelzéssel. Ezt a folyamatot addig folytatják, amíg a felhasználó nem állítja le, vagy ki nem teljesül egy előre meghatározott feltétel.

Szeretnéd látni, hogyan működik a prompt alapú befejezés? Írd be a fenti promptot a Microsoft Foundry playground oldalra az alapértelmezett beállításokkal. A rendszer úgy kezeli a promptokat, mint információkérés - így olyan befejezést kapsz, ami illeszkedik ehhez a kontextushoz.

De mi van akkor, ha a felhasználó pontosabb vagy valamilyen kritériumnak, célfeladatnak megfelelő választ szeretne látni? Itt lépnek be a képbe az instrukcióra hangolt LLM-ek.

Alap LLM chat befejezés

Fogalom: Instrukcióra hangolt LLM-ek

Egy Instrukcióra Hangolt LLM az alapmodellből indul ki, és példák vagy bemenet/kimenet párok (például többkörös „üzenetek”) segítségével finomhangolja azt, melyek tartalmazhatnak egyértelmű utasításokat – az MI válasza pedig követi ezeket az utasításokat.

Ehhez olyan technikákat alkalmaznak, mint az Emberi Visszacsatolásos Megerősítéses Tanulás (RLHF), amely a modellt arra tanítja, hogy kövesse az utasításokat, és tanuljon a visszajelzésekből, így a válaszok jobban alkalmazkodnak a gyakorlati alkalmazásokhoz és relevánsabbak a felhasználói célok szempontjából.

Próbáljuk ki – térj vissza a fenti prompthoz, de most változtasd meg a rendszer üzenetet és add meg a következő utasítást a kontextusként:

Összegzed a megadott tartalmat egy másodikos diáknak. Egy bekezdésből álljon az összefoglaló 3-5 felsorolási ponttal.

Látod, hogy most a válasz az elvárt célnak és formátumnak megfelelően lett hangolva? Egy oktató közvetlenül felhasználhatja ezt a választ az adott tanórán.

Instrukcióra hangolt LLM chat befejezés

Miért van szükségünk prompt mérnöki munkára?

Most, hogy tudjuk, hogyan dolgozzák fel az LLM-ek a promptokat, beszéljünk arról, miért van szükség prompt mérnöki munkára. A válasz abban rejlik, hogy a jelenlegi LLM-ek számos kihívást jelentenek, amelyek megnehezítik a megbízható és következetes válaszok elérését anélkül, hogy erőfeszítést tennénk a prompt felépítésébe és optimalizálásába. Például:

  1. A modellválaszok sztochasztikusak. Az ugyanaz a prompt különböző modelleknél vagy verzióknál eltérő válaszokat adhat. Sőt, ugyanazzal a modellel különböző időpontokban is eltérő eredményeket generálhat. A prompt mérnöki technikák segíthetnek minimalizálni ezeket a változásokat jobb védőkorlátok biztosításával.

  2. A modellek valótlan válaszokat generálhatnak. A modellek nagy, de véges adathalmazokon vannak előképzve, így hiányos a tudásuk a tanítási határon kívüli fogalmakról. Ennek következtében pontatlan, kitalált vagy ellentmondó válaszokat is adhatnak. A prompt mérnöki technikák segítenek azonosítani és kezelni ezeket a kitalált válaszokat, például idézetek vagy érvelések kérésével az MItől.

  3. A modellek képességei eltérőek lehetnek. Az újabb modellek vagy generációk gazdagabb képességekkel rendelkeznek, de sajátos furcsaságokat és költség- illetve komplexitás-különbségeket is hoznak. A prompt mérnökség segít kidolgozni bevált gyakorlatokat és munkafolyamatokat, amelyek elrejtik a különbségeket és alkalmazkodnak a modellspecifikus követelményekhez, méretezhető és zökkenőmentes módon.

Nézzük meg ezt gyakorlatban az OpenAI vagy Azure OpenAI Playground-ban:

  • Használd ugyanazt a promptot különböző LLM telepítéseknél (pl. OpenAI, Azure OpenAI, Hugging Face) – tapasztaltad a különbségeket?
  • Használd ugyanazt a promptot többször ugyanazzal az LLM telepítéssel (pl. Azure OpenAI playground) – mik voltak a különbségek?

Kitalált válasz példa

Ebben a tanfolyamban a „kitalálás” (fabrication) kifejezést használjuk arra a jelenségre, amikor az LLM-k néha tényszerűen hibás információt generálnak a képzésük vagy egyéb korlátok miatt. Ezt gyakran „hallucinációnak” is nevezik népszerű cikkekben vagy kutatási anyagokban. Javasoljuk azonban, hogy a „kitalálás” kifejezést használjuk, hogy elkerüljük az emberi jellemvonások mesterséges alkalmazását egy gépi eredményre. Ez erősíti a Felelős MI iránymutatásokat terminológiai szempontból, eltávolítva olyan kifejezéseket, amelyek bizonyos kontextusokban sértők vagy nem befogadóak lehetnek.

Szeretnéd látni, hogyan működnek a kitalált válaszok? Gondolj arra a promtra, amely az MI-t arra utasítja, hogy generáljon tartalmat egy nem létező témáról (hogy biztosan ne legyen benne a képzési adathalmazban). Például ezt a promptot próbáltam:

Prompt: készíts tantervet a Marsi háború 2076-os eseményeiről.

Egy webes keresés azt mutatta, hogy vannak képzeletbeli művek (például tévésorozatok vagy könyvek) a Marsi háborúkról – de egyik sem 2076-ban. Az egészséges ész azt is mondja, hogy 2076 a jövőben van, tehát nem társítható valós eseményhez.

Mi történik, ha ezt a promptot különböző LLM szolgáltatókkal futtatjuk?

Válasz 1: OpenAI Playground (GPT-35)

Response 1

Válasz 2: Azure OpenAI Playground (GPT-35)

Response 2

Válasz 3: : Hugging Face Chat Playground (LLama-2)

Response 3

Ahogy várható volt, minden modell (vagy modellverzió) kissé eltérő válaszokat ad a sztochasztikus viselkedés és a modell képességeinek különbségei miatt. Például az egyik modell egy 8. osztályos közönséget céloz meg, míg a másik egy középiskolás tanulóra számít. Azonban mindhárom modell olyan válaszokat generált, amelyek meggyőzhetnek egy tájékozatlan felhasználót arról, hogy az esemény valódi volt.

A prompt mérnökség technikák, mint a metaprompting és a hőmérséklet konfiguráció bizonyos mértékben csökkenthetik a modell által generált hamis információkat. Az új prompt mérnökségi architektúrák pedig zavartalanul integrálják az új eszközöket és technikákat a prompt folyamba, hogy mérsékeljék vagy csökkentsék ezeknek az effekteknek egy részét.

Esettanulmány: GitHub Copilot

Zárjuk ezt a szakaszt azzal, hogy megvizsgáljuk, hogyan alkalmazzák a prompt mérnökséget valós megoldásokban egy esettanulmányon keresztül: GitHub Copilot.

A GitHub Copilot a „te AI Párprogramozód” – amely szöveges promptokat alakít át kód kiegészítésekké, és integráltan működik a fejlesztői környezetedben (például Visual Studio Code), zökkenőmentes felhasználói élményt biztosítva. Az alábbi blog sorozatban dokumentáltak szerint a legrégebbi verzió az OpenAI Codex modellen alapult – a mérnökök pedig gyorsan rájöttek, hogy szükség van a modell finomhangolására és jobb prompt mérnökségi technikák kidolgozására a kód minőségének javítása érdekében. Júliusban bemutatták a Codex-t túlszárnyaló, továbbfejlesztett AI modellt, amely még gyorsabb javaslatokat ad.

Olvasd el a bejegyzéseket sorrendben, hogy kövesd a tanulási folyamatukat.

Böngészhetsz a Mérnökségi blogjukban is további bejegyzésekért, például ebben, amely bemutatja, hogyan alkalmazzák ezeket a modelleket és technikákat valós alkalmazások létrehozására.


Prompt felépítése

Láttuk, miért fontos a prompt mérnökség - most értsük meg, hogyan épülnek fel a promptok, hogy különböző technikákat tudjunk értékelni a hatékonyabb prompt tervezéshez.

Alapvető prompt

Kezdjük az alapvető prompttal: egy szöveges bemenet, amelyet a modellnek küldünk kontextus nélkül. Íme egy példa - amikor az amerikai himnusz első néhány szavát küldjük az OpenAI Completion API felé, azonnal kiegészíti a választ a következő néhány sorral, bemutatva az alapvető előrejelzési működést.

Prompt (Bemenet) Befejezés (Kimenet)
Oh say can you see Úgy hangzik, mintha az "A csillagos lobogó" (The Star-Spangled Banner) amerikai himnusz kezdősora lenne. A teljes szöveg így hangzik ...

Összetett prompt

Most adjunk kontextust és utasításokat az alapvető prompthoz. A Chat Completion API lehetővé teszi, hogy egy összetett promptot üzenetek gyűjteményeként állítsunk össze:

  • Bemenet/kimenet párok, amelyek tükrözik a felhasználó kérdését és az asszisztens válaszát.
  • Rendszerüzenet, amely beállítja az asszisztens viselkedésének vagy személyiségének kontextusát.

A kérés most az alábbi formában van, ahol a tokenizáció hatékonyan rögzíti a kontextusból és a beszélgetésből kinyert releváns információkat. A rendszerkontextus megváltoztatása legalább olyan jelentős hatással lehet a válaszok minőségére, mint a felhasználó által megadott bemenetek.

response = client.responses.create(
    model="gpt-5-mini",
    input=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}
    ]
)

Utasító prompt

A fenti példákban a felhasználói prompt egy egyszerű szöveges kérés volt, amely információkérésként értelmezhető. Az utasító promptokkal a szöveget arra használhatjuk, hogy részletesebben meghatározzunk egy feladatot, ezzel jobb útmutatást adva az AI-nak. Íme egy példa:

Prompt (Bemenet) Befejezés (Kimenet) Utasítás típusa
Írj leírást a Polgárháborúról egyszerű bekezdést adott vissza Egyszerű
Írj leírást a Polgárháborúról. Adj kulcsfontosságú dátumokat és eseményeket, és ismertesd a jelentőségüket egy bekezdést adott és kulcs események dátumainak listáját ismertetővel Összetett
Írj leírást a Polgárháborúról 1 bekezdésben. Adj 3 pontban kulcsfontosságú dátumokat azok jelentőségével. Adj további 3 pontot jelentős történelmi személyekről és hozzájárulásaikról. Az eredményt JSON fájl formátumban add vissza. szövegdobozban több részletes adatot ad vissza, JSON formátumban, amit másolhatsz, menthetsz, és szükség szerint validálhatsz Összetett. Formázott.

Elsődleges tartalom

A fenti példákban a prompt még eléggé nyitott volt, lehetővé téve az LLM számára, hogy eldöntse, a kipreparált adatainak mely része releváns. Az elsődleges tartalom tervezési mintával a bemeneti szöveget két részre bontjuk:

  • egy utasításra (tevékenység)
  • releváns tartalomra (ami befolyásolja a tevékenységet)

Íme egy példa, ahol az utasítás: "fogalmazd össze 2 mondatban".

Prompt (Bemenet) Befejezés (Kimenet)
A Jupiter a Nap ötödik bolygója és a Naprendszer legnagyobb bolygója. Gázóriás, amelynek tömege a Nap tömegének ezredrésze, de a Naprendszer összes többi bolygójának tömegének két és félszerese. A Jupiter az egyik legfényesebb égitest, amely szabad szemmel látható az éjszakai égbolton, és már az ókori civilizációk is ismerték. A nevét a római Jupiter istenről kapta.[19] Földről nézve a Jupiter elég fényes lehet ahhoz, hogy visszavert fényével látható árnyékokat vetítsen,[20] és általában az éjszakai égbolt harmadik legfényesebb természetes objektuma a Hold és a Vénusz után.
Fogalmazd meg ezt 2 rövid mondatban
A Jupiter, a Nap ötödik bolygója, a Naprendszer legnagyobb bolygója, és az éjszakai égbolt egyik legfényesebb objektuma. Nevét a római Jupiter istenről kapta, és gázóriás, amelynek tömege a Naprendszer többi bolygójának két és félszerese.

Az elsődleges tartalmi szegmenst különböző módon lehet használni a hatékonyabb utasításokhoz:

  • Példák - ahelyett, hogy explicite megmondanánk a modellnek, mit tegyen, adjunk neki példákat, hogy levonja a mintát.
  • Jelek - az utasítást kövesse egy "jel", amely előkészíti a modellt a választához, irányítva a modellt relevánsabb válaszok felé.
  • Sablonok - ismételhető 'receptek' promptokra helyőrzőkkel (változókkal), amelyeket speciális adatokról lehet testreszabni.

Nézzük meg ezt működés közben.

Példák használata

Ez egy olyan megközelítés, ahol az elsődleges tartalommal "etetjük" a modellt néhány példával a kívánt kimenetre adott utasításra, és hagyjuk, hogy kihámozza a mintát a kívánt kimenethez. A példák számától függően beszélhetünk zero-shot, one-shot, few-shot promptolásról stb.

A prompt most három összetevőből áll:

  • Egy feladat leírása
  • Néhány példa a kívánt kimenetre
  • Egy újabb példa kezdete (ami implicit feladatleírássá válik)
Tanulási típus Prompt (Bemenet) Befejezés (Kimenet)
Zero-shot "The Sun is Shining". Fordítsd le spanyolra "El Sol está brillando".
One-shot "The Sun is Shining" => ""El Sol está brillando".
"It's a Cold and Windy Day" =>
"Es un día frío y ventoso".
Few-shot A játékos körbefutott az alapoknál => Baseball
A játékos ászt ütött => Tenisz
A játékos hatost ütött => Krikett
A játékos zsákolt =>
Kosárlabda

Figyeld meg, hogy zero-shot promptolásnál explicite kellett megadni az utasítást ("Fordítsd le spanyolra"), míg one-shot promptolásnál ezt már a modell kihámozza. A few-shot példa pedig mutatja, hogy több példa hozzáadása pontosabb következtetések levonását teszi lehetővé utasítás nélkül.

Prompt jelek

Egy másik technika az elsődleges tartalom használatára, hogy példák helyett jeleket adunk. Ilyenkor a modellt egy apró "lökéssel" irányítjuk a kívánt válaszformátum felé egy olyan részlettel, amely tükrözi a kívánt kimenetet. A modell ezután "felveszi a jelet", és hasonló módon folytatja.

A jelek száma Prompt (Bemenet) Befejezés (Kimenet)
0 A Jupiter a Nap ötödik bolygója és a Naprendszer legnagyobb bolygója. Gázóriás, amelynek tömege a Nap tömegének ezredrésze, de a Naprendszer összes többi bolygójának tömegének két és félszerese. A Jupiter az egyik legfényesebb égitest, amely szabad szemmel látható az éjszakai égbolton, és már az ókori civilizációk is ismerték.
Fogalmazd meg ezt
A Jupiter a Naprendszer legnagyobb bolygója és a Nap ötödik bolygója. Gázóriás, amelynek tömege a Nap tömegének ezredrésze, de nehezebb, mint az összes többi bolygó együttvéve. Az ókori civilizációk régóta ismerik, és könnyen látható az éjszakai égbolton.
1 A Jupiter a Nap ötödik bolygója és a Naprendszer legnagyobb bolygója. Gázóriás, amelynek tömege a Nap tömegének ezredrésze, de a Naprendszer összes többi bolygójának tömegének két és félszerese. A Jupiter az egyik legfényesebb égitest, amely szabad szemmel látható az éjszakai égbolton, és már az ókori civilizációk is ismerték.
Fogalmazd meg ezt
Amit megtudtunk, hogy a Jupiter
a Nap ötödik bolygója és a Naprendszer legnagyobb bolygója. Gázóriás, amelynek tömege a Nap tömegének ezredrésze, de a Naprendszer összes többi bolygójának tömegének két és félszerese. Szabad szemmel könnyen látható, és az ókor óta ismert.
2 A Jupiter a Naprendszer ötödik bolygója és a legnagyobb a rendszerben. Egy gázóriás, tömege a Nap tömege ezredrésze, de a többi Naprendszerbeli bolygó tömegének kétszer és félszerese. A Jupiter az egyik legfényesebb tárgy, amelyet szabad szemmel lehet látni az éjszakai égbolton, és az ókori civilizációk is ismerték már az írott történelem előtti időkből.
Összefoglaló
A három legfontosabb tény, amit megtanultunk:
1. A Jupiter a Naprendszer ötödik bolygója és a legnagyobb a Naprendszerben.
2. Egy gázóriás, tömege a Nap tömege ezredrésze...
3. A Jupiter az ókortól kezdve látható szabad szemmel ...

Parancs sablonok

A parancs sablon egy előre megírt recept egy parancshoz, amely elmenthető és szükség szerint újra felhasználható, hogy nagyobb léptékben következetesebb felhasználói élményeket biztosítson. Egyszerű formájában ez egy parancs példák gyűjteménye, mint például ez az OpenAI példája, amely biztosítja az interaktív parancs összetevőket (felhasználói és rendszerüzenetek) és az API-alapú kérés formátumát - a felhasználás támogatásához.

Összetettebb formájában, mint például ez a LangChain példája, tartalmaz helykitöltőket, amelyek különböző forrásokból származó adatokat helyettesíthetnek (felhasználói bevitel, rendszerkörnyezet, külső adatforrások stb.) a parancs dinamikus generálásához. Ez lehetővé teszi újrafelhasználható parancsok könyvtárának létrehozását, amelyeket programozottan használhatunk a következetes felhasználói élmények biztosítására nagy léptékben.

Végül a sablonok valódi értéke az, hogy képesek létrehozni és közzétenni parancs könyvtárakat vertikális alkalmazási területek számára - ahol a parancssablon most optimalizálva van az alkalmazás specifikus kontextus vagy példák tükrözésére, amelyek relevánsabbá és pontosabbá teszik a válaszokat a célzott felhasználói közönség számára. A Prompts For Edu adattár kiváló példája ennek a megközelítésnek, egy parancskönyvtárat válogat össze az oktatási terület számára, kiemelve a kulcscélokat, mint például az óratervezés, tantervtervezés, diák oktatás stb.

Támogató tartalom

Ha a parancs felépítését úgy gondoljuk, hogy van egy utasítás (feladat) és egy cél (elsődleges tartalom), akkor a másodlagos tartalom olyan plusz kontextus, amelyet adunk, hogy valamilyen módon befolyásoljuk a kimenetet. Ez lehet hangolási paraméterek, formázási utasítások, témataxonómiák stb., amelyek segíthetnek a modellnek testre szabni a választ, hogy megfeleljen a kívánt felhasználói céloknak vagy elvárásoknak.

Például: Vegyük egy tanfolyam katalógust kiterjedt metaadatokkal (név, leírás, szint, metaadat címkék, oktató stb.) az összes elérhető tanfolyamról a tanrendben:

  • meghatározhatunk egy utasítást, hogy "összefoglaljuk a tanfolyam katalógust 2023 őszére"
  • az elsődleges tartalmat használhatjuk néhány kívánt kimeneti példa bemutatására
  • a másodlagos tartalmat használhatjuk a legfontosabb 5 "címke" azonosítására.

Most a modell tud egy összefoglalót adni a néhány példával megadott formátumban - de ha egy eredmény több címkét tartalmaz, előnyben részesítheti azokat az 5 címkét, amelyeket a másodlagos tartalom azonosított.


Parancs adás legjobb gyakorlata

Most, hogy tudjuk, hogyan szerkeszthetők parancsok, elkezdhetjük gondolkodni azon, hogyan tervezhetjük meg őket, figyelembe véve a legjobb gyakorlatokat. Két részben gondolkodhatunk: a megfelelő hozzáállás és a megfelelő technikák alkalmazásában.

Parancs mérnöki hozzáállás

A parancs mérnökség próbálkozás és hibázás folyamat, ezért tarts három széles irányelveket szem előtt:

  1. A terület ismerete számít. A válasz pontossága és relevanciája a területtől függ, amelyben az alkalmazás vagy felhasználó működik. Használd az intuíciódat és a területi szakértelmedet, hogy testreszabd a technikákat. Például határozz meg területspecifikus személyiségeket rendszerparancsaidban, vagy használj területspecifikus sablonokat felhasználói parancsaidban. Adj meg másodlagos tartalmat, amely tükrözi a területspecifikus kontextusokat, vagy használj területspecifikus jeleket és példákat, hogy irányítsd a modellt ismerős felhasználási minták felé.

  2. A modell ismerete számít. Tudjuk, hogy a modellek természetüknél fogva sztochasztikusak. De a modell implementációk eltérhetnek a felhasznált tréning adatbázis (előzetesen tanult tudás), a kínált képességek (pl. API vagy SDK-n keresztül), és az optimalizált tartalomtípus (pl. kód vs. képek vs. szöveg) tekintetében. Ismerd meg a használt modell erősségeit és korlátait, és ezt a tudást használd fel, hogy prioritást adj a feladatoknak vagy készíts testreszabott sablonokat, amelyek optimalizáltak a modell képességeihez.

  3. Ismétlés és érvényesítés számít. A modellek gyorsan fejlődnek, ahogy a parancs mérnöki technikák is. Mint területi szakértő, lehet, hogy vannak más kontextusaid vagy kritériumaid a saját alkalmazásodra, amelyek nem alkalmazhatók a szélesebb közösségre. Használd a parancs mérnöki eszközöket és technikákat, hogy "beindítsd" a parancs felépítést, majd ismételd és érvényesítsd az eredményeket a saját intuícióddal és területi szakértelmeddel. Jegyezd fel meglátásaidat és hozz létre egy tudásbázist (pl. parancskönyvtárakat), amelyeket mások új alapként használhatnak a jövőbeni gyorsabb iterációkhoz.

Legjobb gyakorlatok

Nézzük most a gyakori legjobb gyakorlatokat, amelyeket az OpenAI és az Azure OpenAI szakértői ajánlanak.

Mi Miért
Értékeld a legújabb modelleket. Az új modellgenerációk valószínűleg fejlettebb funkciókkal és jobb minőséggel rendelkeznek - de magasabb költséget is jelenthetnek. Értékeld őket hatásuk alapján, majd hozz migrációs döntéseket.
Különítsd el az utasításokat és a kontextust Ellenőrizd, hogy a modell/szolgáltató definiál-e elválasztókat, amelyek egyértelműbben megkülönböztetik az utasításokat, elsődleges és másodlagos tartalmat. Ez segítheti a modelleket abban, hogy pontosabban súlyozzák a tokeneket.
Legyél specifikus és világos Adj több részletet a kívánt kontextusról, eredményről, hosszúságról, formátumról, stílusról stb. Ez javítja mind a válaszok minőségét, mind konzisztenciáját. Rögzítsd a recepteket újrafelhasználható sablonokban.
Legyél leíró, használj példákat A modellek jobban reagálhatnak a „mutasd és mondd el” megközelítésre. Kezdd egy zero-shot megoldással, ahol csak utasítást adsz (példák nélkül), majd próbáld ki a few-shot finomítást, ahol néhány példa segítségével adod meg az elvárt kimenetet. Használj analógiákat.
Használj jeleket a beindításhoz Bíztasd a modellt egy kívánt eredmény felé úgy, hogy adsz neki néhány kezdő szót vagy kifejezést, amelyet válaszként felhasználhat.
Ismételj meg Néha meg kell ismételned önmagad. Adj utasítást a fő tartalom előtt és után, használj utasítást és egy jelet, stb. Ismételj és validálj, hogy lásd, mi működik.
A sorrend számít Az információk bemutatásának sorrendje befolyásolhatja a kimenetet, még a tanulási példák esetén is a legfrissebb információk preferálása miatt. Próbálj ki több lehetőséget, hogy megtudd, melyik működik a legjobban.
Adj a modellnek egy „kimenekülési” lehetőséget Adj a modellnek egy visszavonási válaszként szolgáló befejezést, amelyet akkor adhat ki, ha bármilyen okból nem tudja teljesíteni a feladatot. Ez csökkenti az esetleges hamis vagy kitalált válaszok generálásának esélyét.

Mint minden legjobb gyakorlat esetén, tartsd észben, hogy az eredmények eltérhetnek a modelltől, a feladattól és a területtől függően. Használd ezeket kiindulópontként, és ismételj, hogy megtaláld, mi működik a legjobban számodra. Folyamatosan értékeld újra parancs mérnöki folyamatodat, amint új modellek és eszközök állnak rendelkezésre, a folyamat skálázhatóságára és a válasz minőségére összpontosítva.

Feladat

Gratulálunk! Eljutottál az óra végére! Itt az idő, hogy néhány koncepciót és technikát valós példákon tesztelj!

Feladatunkhoz egy Jupyter Notebookot fogunk használni interaktívan végrehajtható gyakorlatokkal. A Notebookot saját Markdown és Kód cellákkal is bővítheted, hogy felfedezd az ötleteket és technikákat a saját tempódban.

A kezdéshez először készíts egy forkot a repóról, majd

  • (Ajánlott) Indítsd el a GitHub Codespaces-t
  • (Alternatív megoldás) Klónozd a repót helyi eszközödre és használd Docker Desktop-tal
  • (Alternatív megoldás) Nyisd meg a Notebookot a preferált környezetedben.

Ezután állítsd be a környezeti változókat

  • Másold a .env.copy fájlt a repó gyökérkönyvtárában .env névre, majd töltsd ki az AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT és AZURE_OPENAI_DEPLOYMENT értékeket. Térj vissza a Learning Sandbox szakaszhoz, hogy megtudd, hogyan.

Ezután nyisd meg a Jupyter Notebookot

  • Válaszd ki a futtatási kernelt. Ha az 1. vagy 2. opciót használod, egyszerűen válaszd a dev konténer által biztosított alapértelmezett Python 3.10.x kernelt.

Készen állsz, hogy fusd a gyakorlatokat. Ne feledd, hogy itt nincsenek helyes és helytelen válaszok – csak opciók kipróbálása próbálkozás útján és intuíció építése arról, hogy mi működik egy adott modell és alkalmazási terület esetében.

Ezért nincsenek Kód Megoldás szegmensek ebben az órában. Helyette a Notebookban lesznek Markdown cellák "Az én megoldásom:" címmel, amelyek egy példakimenetet mutatnak be referenciaként.

Tudásellenőrzés

Melyik a következők közül jó parancs, amely néhány ésszerű legjobb gyakorlatot követ?

  1. Mutass egy képet egy piros autóról
  2. Mutass egy képet egy piros Volvóról, XC90 modellről, amely egy szikla mellett parkol, a lemenő nap fényében
  3. Mutass egy képet egy piros Volvóról, XC90 modellről

Válasz: 2, mert ez a legjobb parancs, mivel részleteket ad "mit" akarunk, konkrét típust és modellt is megad, és leírja a környezetet is. A 3 a következő legjobb, mert szintén sok leírást tartalmaz.

🚀 Kihívás

Próbáld használni a "jel" technikát a következő paranccsal: Fejezd be a mondatot "Mutass egy képet egy piros Volvóról és ". Mit válaszol rá, és hogyan fejlesztenéd tovább?

Nagyszerű munka! Folytasd a tanulást

Szeretnél többet megtudni a különféle parancs mérnöki fogalmakról? Látogass el a további tanulási oldalra, ahol más nagyszerű forrásokat találsz ezen a témán.

Menj át az 5. leckébe, ahol haladó parancsadási technikákat tanulmányozunk!


Jogi nyilatkozat: Ez a dokumentum az AI fordítási szolgáltatás, a Co-op Translator segítségével készült. Bár az pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az anyanyelvén tekintendő hiteles forrásnak. Fontos információk esetén professzionális emberi fordítást javasolunk. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely ebből a fordításból ered.