See moodul käsitleb olulisi mõisteid ja tehnikaid tõhusate päringute loomisel generatiivsete tehisintellekti mudelite jaoks. Kuidas sa kirjutad oma päringu LLM-ile on samuti oluline. Hoolikalt koostatud päring võib saavutada parema vastuste kvaliteedi. Kuid mida täpselt tähendavad mõisted nagu päring ja päringu insenertehnika? Ja kuidas ma saan parandada päringu sisendit, mida ma LLM-ile saadan? Need on küsimused, millele püüame vastata käesolevas ja järgnevates peatükkides.
Generatiivne tehisintellekt suudab luua uut sisu (nt tekst, pildid, heli, kood jms) kasutajate päringutele vastuses. Seda saavutatakse kasutades suurte keelemudelite nagu OpenAI GPT ("Generative Pre-trained Transformer") seeria, mida on treenitud kasutama loomulikku keelt ja koodi.
Kasutajad saavad nüüd nendega suhelda tuttavate paradigmade kaudu nagu vestlus, ilma et oleks vaja tehnilisi teadmisi või koolitust. Mudelid töötavad päringupõhiselt – kasutajad saadavad tekstisisendi (päringu) ja saavad tagasi tehisintellekti vastuse (täienduse). Nad saavad seejärel AI-ga "vestelda" järjepidevalt, mitme vooruga, täiendades oma päringut, kuni vastus vastab nende ootustele.
"Päringud" muutuvad nüüd generatiivsete AI rakenduste peamiseks programmeermisliideseks, mis ütlevad mudelitele, mida teha ja mõjutavad tagastatud vastuste kvaliteeti. "Päringu insenertehnika" on kiiresti kasvav uurimisvaldkond, mis keskendub päringute disainile ja optimeerimisele, eesmärgiga tagada järjepidevad ja kvaliteetsed vastused suures mahus.
Selles õppetükis õpime, mis on päringu insenertehnika, miks see on tähtis ja kuidas saame koostada tõhusamaid päringuid antud mudeli ja rakenduse eesmärgi jaoks. Mõistame põhikontseptsioone ja parimaid tavasid päringute insenertehnikas – ning tutvume interaktiivse Jupyteri märkmiku "liivakastiga", kus saame neid kontseptsioone reaalses näites rakendada.
Selle õppetüki lõpuks oskame:
- Selgitada, mis on päringu insenertehnika ja miks see oluline on.
- Kirjeldada päringu komponente ja nende kasutust.
- Õppida päringu insenertehnika parimaid tavasid ja tehnikaid.
- Rakendada õpitud tehnikaid reaalsetes näidetes, kasutades OpenAI lõpp-punkti.
Päringu insenertehnika: Tehisintellekti mudelite juhendamiseks soovitud väljundite tootmiseks sisendite kujundamise ja täiustamise praktika. Tokeniseerimine: Teksti teisendamise protsess väiksemateks üksusteks, mida nimetatakse tokeniteks, mida mudel suudab mõista ja töödelda. Juhendusega treenitud LLM-id: Suured keelemudelid, mida on peenhäälestatud konkreetsete juhistega, et parandada nende vastuste täpsust ja asjakohasust.
Päringu insenertehnika on praegu rohkem kunst kui teadus. Parim viis oma intuitsiooni parandamiseks on rohkem harjutada ja rakendada katse-eksituse meetodit, mis ühendab rakendusvaldkonna ekspertiisi soovitatud tehnikate ja mudelispetsiifiliste optimeerimistega.
Selle õppetüki Jupyteri märkmik pakub liivakasti keskkonna, kus saad testiida õpitut – kas jooksvalt või koodiülesande osana õppetüki lõpus. Harjutuste täitmiseks vajad:
- Azure OpenAI API võtit – teenuse lõpp-punkti väljaantud LLM-ile.
- Python'i jooksutamiskeskkonda – kus märkmikku saab täita.
- Kohalikke keskkonnamuutujaid – täida nüüd SEADISTUS sammud, et valmis saada.
Märkmik sisaldab algus harjutusi – kuid sind julgustatakse lisama ka oma Markdown (kirjeldus) ja Koodi (päringu taotluste) sektsioone, et proovida rohkem näiteid või ideid – ning arendada oma intuitsiooni päringu disainis.
Kas soovid saada suuremat ülevaadet sellest, mida see õppetükk katab, enne sukeldumist? Vaata seda illustreeritud juhendit, mis annab sulle aimu peamistest käsitletavatest teemadest ja võtmevõttest, mille üle mõelda igas neist. Õppetüki teejuht viib sind põhikontseptsioonide ja väljakutsete mõistmisest nende lahendamise juurde asjakohaste päringu insenertehnika tehnikate ja parimate tavadega. Pane tähele, et selle juhendi jaotis "Täpsemad tehnikad" viitab järgmises õppekava peatükis käsitletavale sisule.
Nüüd räägime, kuidas see teema seostub meie idufirma missiooniga tuua AI innovatsiooni haridusse. Me tahame luua AI-jõulisi rakendusi isikliku õppe toetamiseks – mõtleme siis, kuidas erinevad kasutajad meie rakendust kasutades päringuid "kujundavad":
- Administraatorid võivad paluda AI-l analüüsida õppekava andmeid, et tuvastada kaetud teemade lüngad. AI saab tulemusi kokku võtta või neid koodiga visualiseerida.
- Õpetajad võivad paluda AI-l luua õppetunni plaan sihtrühma ja teema jaoks. AI saab koostada personaalse plaani määratud vormingus.
- Õpilased võivad paluda AI-l õpetada neid keerulises aines. AI saab juhendada õpilasi nende tasemele kohandatud tundide, vihjete ja näidetega.
See on alles jäämäe tipp. Vaata Prompts For Education – avatud lähtekoodiga päringute kogu, mida kureerivad hariduseksperdid – et saada laiem arusaam võimalustest! Proovi mõnda neist päringutest liivakastis või OpenAI mänguväljal, et näha, mis juhtub!
Alustasime seda õppetükki, määratledes päringu insenertehnikat kui protsessi päringutekstide (päringute) kujundamiseks ja optimeerimiseks, et pakkuda järjepidevaid ja kvaliteetseid vastuseid (täiendusi) antud rakenduse eesmärgi ja mudeli jaoks. Seda võib vaadelda ka kaheastmelise protsessina:
- kujundamine algse päringu jaoks antud mudelis ja eesmärgil
- täiustamine päringu iteratiivseks parandamiseks vastuse kvaliteedis
See on tingimata katse-eksituse protsess, mis nõuab kasutaja intuitsiooni ja pingutust optimaalse tulemuse saavutamiseks. Miks see siis oluline on? Selle küsimuse vastamiseks peame esmalt mõistma kolme mõistet:
- Tokeniseerimine = kuidas mudel "näeb" päringut
- Põhimudelitena LLM-id = kuidas põhimudel "töötab" päringuga
- Juhendusega treenitud LLM-id = kuidas mudel näeb nüüd "ülesandeid"
LLM näeb päringuid kui tokenite jada, kus erinevad mudelid (või sama mudeli versioonid) võivad sama päringu tokeniseerida erinevalt. Kuna LLM-e on treenitud tokenitel (mitte toortekstil), mõjutab päringute tokeniseerimine otseselt genereeritud vastuse kvaliteeti.
Intuitsiooni saamiseks tokeniseerimisest proovi näiteks tööriista OpenAI Tokenizer allpool toodud näidet. Kopeeri oma päring ja vaata, kuidas seda tokeniteks teisendatakse, pöörates tähelepanu tühikute ja punktuatsiooni käsitsemisele. Pane tähele, et see näide kasutab vanemat LLM-i (GPT-3) – nii et uuema mudeliga katsetamisel võib tulemus olla erinev.
Kui päring on tokeniseeritud, siis "Põhimudeli" (Base LLM) põhifunktsiooniks on selle tokenite jadat prognoosida. Kuna LLM-e on treenitud ulatuslike tekstikogumitega, tunnevad nad hästi tokenite statistilisi seoseid ning saavad seda prognoosi õige kindlusega teha. Tuleb märkida, et nad ei mõista päringus kasutatud sõnade tähendust; nad näevad mustrit, mida saavad järgmise prognoosiga "täita". Nad saavad prognoosida jadat edasi, kuni kasutaja sekkumine või mõni eelnevalt määratletud tingimus selle lõpetab.
Kas soovid näha, kuidas päringul põhinev täiendamine töötab? Sisesta ülaltoodud päring Microsoft Foundry mänguväljakule vaikeseadetega. Süsteem on konfigureeritud võtma päringuid informatsiooni päringutena – nii et peaksid nägema vastust, mis vastab sellele kontekstile.
Ent mis siis, kui kasutaja tahaks näha midagi konkreetset, mis vastab mõnele kriteeriumile või ülesande eesmärgile? Siin tulevad mängu juhendusega treenitud LLM-id.
Juhendusega treenitud LLM algab põhimudelist ja täiustab seda näidete või sisend/väljund paaride (näiteks mitme vooruga "sõnumite") abil, mis võivad sisaldada selgeid juhiseid – ning tehisintellekti vastus püüab neid juhiseid järgida.
See kasutab tehnikaid nagu inimtagasisidega tugevdamisõpe (RLHF), mis suudab mudelit õpetada juhiseid järgima ja tagasisidest õppima, nii et see toodab vastuseid, mis sobivad paremini praktiliste rakenduste jaoks ja on kasutaja eesmärkide suhtes asjakohasemad.
Proovime järele – külasta eelmise päringu kontekstit vastav süsteemi sõnum ja muuda see järgmise juhisega:
Kokkuvõtle sulle antud sisu teise klassi õpilase jaoks. Hoia tulemus ühe lõigu pikkune, 3–5 punktiga.
Näed, kuidas tulemus on nüüd häälestatud peegeldama soovitud eesmärki ja vormingut? Õpetaja saab selle vastuse nüüd otse oma tunnis slaididel kasutada.
Nüüd, kui teame, kuidas LLM-id päringuid töötlevad, räägime, miks meil on päringu insenertehnika vaja. Vastus peitub selles, et praegustel LLM-idel on omajagu väljakutseid, mis muudavad usaldusväärsete ja järjepidevate täienduste saamise keeruliseks ilma pingutusteta päringu koostamisel ja optimeerimisel. Näiteks:
-
Mudeli vastused on stokastilised. Sama päring tõenäoliselt toodab erinevate mudelite või mudeli versioonidega erinevaid vastuseid. Ja see võib anda erinevaid tulemusi ka sama mudeli kasutamisel erinevatel kordadel. Päringu insenertehnika tehnikad aitavad meil neid varieerumisi minimaliseerida, pakkudes paremaid kontrollmehhanisme.
-
Mudelid võivad genereerida väljamõeldud vastuseid. Mudelid on eelnevalt treenitud suurtel, kuid piiratud andmestikel, mis tähendab, et neil puudub teadmine mõistetest väljaspool seda treeningut. Seetõttu võivad nad esitada täiendusi, mis on ebatäpsed, fantaasiarikkad või otseselt vastuolus tuntud faktidega. Päringu insenertehnika tehnikad aitavad kasutajatel selliseid väljamõeldisi tuvastada ja leevendada, nt nõudes AI-lt allikaviiteid või põhjendusi.
-
Mudelite võimekus varieerub. Uuemad mudelid või mudelipõlvkonnad omavad rikkalikumaid võimeid, kuid toovad kaasa unikaalseid eripärasid ning kulude ja keerukuse kompromisse. Päringu insenertehnika aitab välja töötada parimaid tavasid ja töövooge, mis varjavad erinevusi ning kohanevad mudelispetsiifiliste nõuetega skaleeritavalt ja sujuvalt.
Näeme seda praktikas OpenAI või Azure OpenAI mänguväljakul:
- Kasuta sama päringut erinevate LLM-de juurutuste puhul (nt OpenAI, Azure OpenAI, Hugging Face) – kas märkasid erinevusi?
- Kasuta sama päringut korduvalt sama LLM juurutuse juures (nt Azure OpenAI mänguväljak) – kuidas need varieerumised erinesid?
Selles kursuses kasutame mõistet "väljamõeldis" viitamaks nähtusele, kus LLM-id mõnikord genereerivad faktuaalselt ebatäpset informatsiooni oma piirangute või muude tingimuste tõttu. Võid olla kuulnud ka mõistet "hallutsinatsioonid" populaarsetes artiklites või teadustöös. Soovitame siiski kasutada "väljamõeldis" terminit, et vältida käitumise antropomorfiseerimist, omistades masinajuhitud tulemusele inimlikke omadusi. See toetab ka Vastutustundliku AI juhiseid terminoloogia vaatenurgast, eemaldades termineid, mis mõnes kontekstis võivad olla solvavad või mittekaasavad.
Soovid tunnet saada, kuidas väljamõeldised toimivad? Mõtle päringule, mis palub AI-l genereerida sisu olemasolemata teema kohta (et veenduda, et seda ei leidu treeningandmestikus). Näiteks – proovisin järgmist päringut:
Päring: genereeri õppetunni plaan Marsi sõja kohta aastast 2076.
Veebipäring näitas mulle, et leidub ilukirjanduslikke kirjeldusi (nt telesarjad või raamatud) Marsi sõdadest, kuid mitte aastast 2076. Tervislik mõistus ütleb, et aasta 2076 on tulevikus, seega ei saa see olla seotud päris sündmusega.
Mida siis juhtub, kui me kasutame seda prompti erinevate LLM-i teenusepakkujatega?
Vastus 1: OpenAI Playground (GPT-35)
Vastus 2: Azure OpenAI Playground (GPT-35)
Vastus 3: : Hugging Face Chat Playground (LLama-2)
Nagu oodata oli, toodab iga mudel (või mudeli versioon) veidi erinevaid vastuseid tänu juhuslikule käitumisele ja mudeli võimekuse erinevustele. Näiteks üks mudel sihib 8. klassi taset, samas kui teine arvestab keskkooliõpilasega. Kuid kõik kolm mudelit lõid vastuseid, mis võivad veenda teadmatus kasutajat, et sündmus oli tõeline.
Promptide insenertehnika meetodid nagu metaprompting ja temperatuuri seadistamine võivad mõningal määral vähendada mudeli väljamõeldisi. Uued promptide insenertehnika arhitektuurid integreerivad sujuvalt uusi tööriistu ja tehnikaid prompti voogu, et neid mõjusid vähendada või leevendada.
Lõpetame selle osa, saades aimu, kuidas promptide insenertehnikat kasutatakse reaalses maailmas ühe juhtumiuuringu näitel: GitHub Copilot.
GitHub Copilot on sinu "tehisintellekti paarisprogrammeerija" - see teisendab tekstikäsud kooditäidisteks ja on integreeritud sinu arenduskeskkonda (nt Visual Studio Code) sujuva kasutajakogemuse jaoks. Allolevates blogide seerias on dokumenteeritud, et varasem versioon põhines OpenAI Codex mudelil - insenerid mõistsid kiiresti vajadust mudelit täpsemalt häälestada ja arendada paremaid promptide insenertehnikaid koodikvaliteedi parandamiseks. Juulis nad esitlesid täiustatud tehisintellekti mudelit, mis läheb Codex-ist kaugemale veelgi kiiremaks soovitamiseks.
Loe postitusi järjekorras, et jälgida nende õppeteekonda.
- Mai 2023 | GitHub Copilot paraneb sinu koodi mõistmisel
- Mai 2023 | GitHub sees: Töötades LLM-idega GitHub Copiloti taga.
- Juuni 2023 | Kuidas kirjutada paremaid handiseid GitHub Copilotile.
- Juuli 2023 | .. GitHub Copilot läheb Codex-ist kaugemale täiustatud tehisintellekti mudeliga
- Juuli 2023 | Arendaja juhend promptide insenertehnikaks ja LLM-ideks
- September 2023 | Kuidas ehitada ettevõtte LLM rakendust: õppetunnid GitHub Copilotilt
Võid sirvida ka nende Inseneriblogi, kus on postitusi nagu see siin, mis näitab, kuidas neid mudeleid ja tehnikaid rakendatakse reaalse maailma lahenduste loomiseks.
Oleme näinud, miks promptide insenertehnika on oluline – nüüd mõistame, kuidas promptid on ehitatud, et saaksime hinnata erinevaid tehnikaid tõhusamaks promptide kujundamiseks.
Alustame põhipromptist: tekstisisend, mis saadetakse mudelile ilma muu kontekstita. Näiteks, kui saadame USA hümni esimesed sõnad OpenAI Completion API-le, siis see koheselt täidab vastuse järgmiste ridadega, illustreerides põhilist ennustuskäitumist.
| Prompt (sisend) | Täidise (väljundi) |
|---|---|
| Oh say can you see | Tundub, et alustad lauluga "The Star-Spangled Banner", USA riigihümn. Täislaulusõnad on ... |
Lisame nüüd konteksti ja juhised sellele põhipromptile. Chat Completion API võimaldab meil konstrueerida keeruka prompti sõnumite kogumina, milles on:
- Sissetulevad/väljaminevad paarid, mis peegeldavad kasutaja sisestust ja abilise vastust.
- Süsteemisõnum, mis seab abilise käitumise või isiksuse konteksti.
Nüüd on taotlus alljärgnevas vormis, kus tokeniseerimine haarab efektiivselt relevantset teavet kontekstist ja vestlusest. Süsteemse konteksti muutmine võib värskete vastuste kvaliteeti mõjutada sama oluliselt kui kasutaja sisendid.
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?"}
]
)Ülaltoodud näidetes oli kasutaja prompt lihtne tekstipäring, mida võidi tõlgendada infotaotluseks. Juhenduspõhiste promptide puhul saame seda teksti kasutada ülesande täpsemaks määratlemiseks, andes tehisintellektile paremaid juhiseid. Näide:
| Prompt (sisend) | Täidis (väljund) | Juhendustüüp |
|---|---|---|
| Kirjuta Ameerika kodusõja kirjeldus | tagastas lihtsa lõigu | Lihtne |
| Kirjuta Ameerika kodusõja kirjeldus. Too välja tähtsamad kuupäevad ja sündmused ning kirjuta nende tähtsusest | tagastas lõigu koos nimekirjaga tähtsatest kuupäevadest ja kirjeldustest | Komplekssed |
| Kirjuta Ameerika kodusõja kirjeldus 1 lõigus. Too 3 peamist võtmekuupäeva koos tähtsusega. Too veel 3 peamist ajaloolist tegelast ja nende panust. Tagasta väljund JSON-failina | tagastab ulatuslikumaid andmeid tekstiboksis, vormindatuna JSON-ina, mida saad kopeerida ja vajadusel valideerida | Komplekssed. Vormindatud. |
Ülaltoodud näidetes oli prompt endiselt suhteliselt avatud, võimaldades LLM-il otsustada, milline osa selle eelõppemehhanismist on relevantne. Põhisisu disainimall jagab sisendteksti kaheks osaks:
- juhend (tegevus)
- asjakohane sisu (mis mõjutab tegevust)
Näide, kus juhis on "kokkuvõtke see 2 lauses".
| Prompt (sisend) | Täidis (väljund) |
|---|---|
| Jupiter on päikesest viies planeet ja suurim Päikesesüsteemis. See on gaasihiiglane, mille mass on tuhandik Päikese massist, kuid kaks ja pool korda suurem kui kõik teised planeedid kokku. Jupiter on üks eredamaid objekti, mida palja silmaga öötaevas näha saab, ja see on tuntud iidsetest tsivilisatsioonidest juba enne ajaloo algust. Selle nimi tuleb Rooma jumala Jupiteri järgi.[19] Maalt vaadates võib Jupiter olla piisavalt ere, et peegeldunud valgus tekitab nähtavaid varje,[20] ja keskmiselt on see öötaeva kolmas eredaim looduslik objekt pärast Kuud ja Veenust. Kokkuvõtke see 2 lühikeses lauses |
Jupiter, päikesest viies planeet, on Päikesesüsteemi suurim ja tuntud kui üks eredamaid taevalaotusel nähtavaid objekte. Nime sai see Rooma jumala Jupiteri järgi ja on gaasihiiglane, mille mass on kaks ja pool korda suurem kui kõigi teiste planeetideühikute kogum. |
Põhisisu segmenti saab kasutada mitmel viisil, et anda tõhusamaid juhiseid:
- Näited - mudelile ei öelda otseselt, mida teha, vaid antakse näited, mida teha ja lastakse mudelil mustrit tuletada.
- Vihjed - juhisele järgneb "vihje", mis suunab mudelit relevantsemate vastusteni.
- Mustrid - korduvkasutatavad 'retseptid' promptide jaoks koos kohatäiteks muutuja-dega, mida saab kohandada konkreetseteks juhtudeks.
Vaatame neid teemasid praktikas.
See lähenemine kasutab põhisisu, et "toita mudelit" soovitud väljundi näidetega antud juhise põhjal ning võimaldab mudelil tuletada mustrikäitumise. Näidete arvu põhjal võib olla null-korral promptimine, ühe-korral promptimine, mõne-korral promptimine jne.
Prompt koosneb nüüd kolmest komponendist:
- Ülesande kirjeldus
- Mõned näited soovitud väljundi kohta
- Uue näite algus (mis muutub kaudseks ülesande kirjelduseks)
| Õppimise tüüp | Prompt (sisend) | Täidis (väljund) |
|---|---|---|
| Null-korral | "The Sun is Shining". Tõlgi hispaania keelde | "El Sol está brillando". |
| Ühe-korral | "The Sun is Shining" => ""El Sol está brillando". "It's a Cold and Windy Day" => |
"Es un día frío y ventoso". |
| Mõne-korral | Mängija jooksis baasidel => Pesapall Mängija lõi ässa => Tennis Mängija lõi kuue => Kriket Mängija tegi slam-dunki => |
Korvpall |
Märka, kuidas me pidime null-korral promptimisel andma otsese juhise ("Tõlgi hispaania keelde"), kuid ühe-korral promptimisel tuletatakse see juba ise. Mõne-korrase näide näitab, kuidas rohkemate näidete lisamine võimaldab mudelil teha täpsemaid järeldusi ilma täiendavate juhisteta.
Teine tehnika põhisisu kasutamisel on vihjete andmine näidete asemel. Sel juhul anname mudelile suunise, alustades vastava vormingu näitega. Mudel siis "võtab vihje vastu" ja jätkab antud stiilis.
| Vihjete arv | Prompt (sisend) | Täidis (väljund) |
|---|---|---|
| 0 | Jupiter on päikesest viies planeet ja suurim Päikesesüsteemis. See on gaasihiiglane, mille mass on tuhandik Päikese massist, kuid kaks ja pool korda suurem kui kõik teised planeedid kokku. Jupiter on üks eredamaid objekti, mida palja silmaga öötaevas näha saab, ja see on tuntud iidsetest tsivilisatsioonidest juba enne ajaloo algust. Kokkuvõtke see |
Jupiter on suurim planeet meie Päikesesüsteemis ja päikesest viies planeet. See on gaasihiiglane, mille mass on 1/1000 Päikese massist, kuid raskem kui kõik teised planeedid kokku. Iidsetest tsivilisatsioonidest on Jupiter teada olnud kaua ja see on öötaevas kergesti nähtav.. |
| 1 | Jupiter on päikesest viies planeet ja suurim Päikesesüsteemis. See on gaasihiiglane, mille mass on tuhandik Päikese massist, kuid kaks ja pool korda suurem kui kõik teised planeedid kokku. Jupiter on üks eredamaid objekti, mida palja silmaga öötaevas näha saab, ja see on tuntud iidsetest tsivilisatsioonidest juba enne ajaloo algust. Kokkuvõtke see Mida me õppisime, on see, et Jupiter |
on päikesest viies planeet ja suurim Päikesesüsteemis. See on gaasihiiglane, mille mass on tuhandik Päikese massist, kuid kaks ja pool korda suurem kui kõik teised planeedid kokku. See on palja silmaga hõlpsasti nähtav ja on tuntud iidsetest aegadest. |
| 2 | Jupiter on Päikesest viies planeet ja Päikesesüsteemi suurim. See on gaasihiid, mille mass on üks tuhandik Päikese massist, kuid kaks ja pool korda suurem kui kõigi teiste Päikesesüsteemi planeetide masside summa. Jupiter on üks eredamaid palja silmaga öötaevas nähtavaid objekte ning on olnud tuntud iidsetele tsivilisatsioonidele juba enne ajaloo kirjalikku algust. Kokkuvõte Kolm peamist fakti, mida õppisime: |
1. Jupiter on Päikesest viies planeet ja Päikesesüsteemi suurim. 2. See on gaasihiid, mille mass on üks tuhandik Päikese massist... 3. Jupiter on olnud palja silmaga nähtav juba antiikajast alates ... |
Päringu mall on eelnevalt määratletud päringu retsept, mida saab salvestada ja vajadusel uuesti kasutada, et juhendada sujuvamaid kasutajakogemusi ulatuslikult. Lihtsamas vormis on see lihtsalt päringunäidete kogum nagu see OpenAI näide, mis pakub nii interaktiivseid päringu komponente (kasutaja ja süsteemi sõnumid) kui ka API-põhise päringu formaati - taaskasutuse toetamiseks.
Keerulisemas vormis nagu see näide LangChainist sisaldab see kohatäiteid, mida saab asendada andmetega mitmest allikast (kasutaja sisend, süsteemi kontekst, välised andmeallikad jne) dünaamilise päringu loomiseks. See võimaldab meil koostada taaskasutatavate päringute kogu, mida saab programmi abil kasutada järjepidevate kasutajakogemuste loomiseks ulatuslikult.
Lõpuks seisneb mallide tegelik väärtus võimes luua ja avaldada päringukogusid vertikaalsete rakendusvaldkondade jaoks - kus päringu mall on nüüd optimeeritud, et peegeldada rakenduspõhist konteksti või näiteid, mis muudavad vastused sihtrühmale asjakohasemaks ja täpsemaks. Prompts For Edu hoidla on suurepärane näide sellest lähenemisest, koondades haridusvaldkonna päringute kogu, mille rõhk on olulistel eesmärkidel nagu tunniplaani koostamine, õppekava disain, õpilaste juhendamine jms.
Kui me mõtleme päringu koostamist kui juhist (ülesande) ja sihtmärki (põhisisu), siis teisene sisu on nagu lisakontekst, mida me anname, et mõnel viisil väljundit mõjutada. See võib olla häälestusparameetrid, vormindusjuhised, teema taksonoomiad jne, mis aitavad mudelil kohandada vastust soovitud kasutajaeesmärkide või ootustega.
Näiteks: kui meil on kursusekataloog, mis sisaldab põhjalikku metainfot (nimi, kirjeldus, tase, metatähed, õppejõud jne) kõigi õppekava välistingimustes olevate kursuste kohta:
- me saame määratleda juhise "kokkuvõtke sügissemestri 2023 kursuste kataloog"
- me saame kasutada peamist sisu, et anda mõned soovitud väljundi näited
- me saame kasutada teisest sisust, et määratleda 5 enim huvi pakkuvat "märksõna"
Nüüd saab mudel pakkuda kokkuvõtet vormingus, mida näitavad paar eeskuju - kuid kui tulemuses on mitu märksõna, saab ta anda prioriteedi teisest sisust määratud viiele märksõnale.
Nüüd, kui me teame, kuidas päringuid saab koostada, võime hakata mõtlema, kuidas neid kujundada, võttes arvesse parimaid tavasid. Võime seda käsitleda kahes osas - õige mõtteviisi omamine ja sobivate tehnikate rakendamine.
Päringu inseneritehnika on katsumus- ja eksitusprotsess, seega pidage meeles kolme laiemat juhist:
-
Valdkonna mõistmine on oluline. Vastuse täpsus ja asjakohasus sõltub valdkonnast, milles rakendus või kasutaja tegutseb. Kasutage oma intuitsiooni ja valdkonnapädevust, et kohandada tehnikaid veelgi. Näiteks määrake süsteemi päringutes valdkonnapõhised isiksused või kasutage kasutaja päringutes valdkonnapõhiseid malle. Lisage teisene sisu, mis peegeldab valdkonnapõhist konteksti, või kasutage valdkonnapõhiseid viiteid ja näiteid, et juhendada mudelit tuttavate kasutusmusterite suunas.
-
Mudelipõhine mõistmine on oluline. Teame, et mudelid on oma olemuselt stokastilised. Kuid mudelite rakendused võivad erineda seoses kasutatava treeningandmestikuga (eelõppe teadmised), nende pakutavate võimalustega (nt API või SDK kaudu) ja optimeeritud sisutüübiga (nt kood, pildid või tekst). Mõistke enda kasutatava mudeli tugevusi ja nõrkusi ning kasutage seda teadmist, et prioriseerida ülesandeid või ehitada kohandatud malle, mis on optimeeritud mudeli võimalustele.
-
Iteratsioon ja valideerimine on olulised. Mudelid arenevad kiiresti ja nii ka päringuinseneritehnika tehnikad. Valdkonnaeksperdina võite omada lisakonteksti või kriteeriume oma spetsiifilise rakenduse jaoks, mis ei pruugi kehtida laiemale kogukonnale. Kasutage päringu inseneritehnika tööriistu ja tehnikaid, et "kiirendada" päringu koostamist, seejärel korduge ja valideerige tulemusi oma intuitsiooni ja valdkonnapädevuse abil. Salvestage oma tähelepanekud ja looge teadmistebaas (nt päringukogud), mida teised saavad kasutada uue lähtepunktina kiiremateks iteratsioonideks tulevikus.
Vaatame nüüd levinud parimaid tavasid, mida soovitavad OpenAI ja Azure OpenAI praktikandid.
| Mida | Miks |
|---|---|
| Hinnake uusimaid mudeleid. | Uued mudelisukupõlved tõenäoliselt pakuvad paremaid omadusi ja kvaliteeti - kuid võivad tuua kaasa ka kõrgemaid kulusid. Hinnake nende mõju ja seejärel tehke üleminekuga seotud otsused. |
| Eraldage juhised ja kontekst | Kontrollige, kas teie mudel/teenusepakkuja määratleb piirajad, mis eristavad juhiseid, põhisisu ja teisest sisu selgemalt. See aitab mudelitel tähemärkidele anda täpsemaid kaalu. |
| Olge spetsiifiline ja selge | Andke rohkem detaile soovitud konteksti, tulemuse, pikkuse, formaadi, stiili jms kohta. See parandab nii vastuste kvaliteeti kui järjepidevust. Salvestage retseptid taaskasutatavates mallides. |
| Olge kirjeldav, kasutage näiteid | Mudelid võivad reageerida paremini "näita ja räägi" lähenemise korral. Alustage zero-shot meetodiga, kus annate juhise (kuid mitte näiteid), seejärel proovige few-shot meetodit täpsustamiseks, pakkudes paar näidet soovitud väljundist. Kasutage võrdlusi. |
| Kasutage vihjeid vastuste alustamiseks | Suunake mudelit soovitud tulemuse poole, andes hüüdsõnade või fraaside algused, mida ta saab vastuse alustamiseks kasutada. |
| Korrake vajalikul juhul | Mõnikord peate mudelile korduvalt juhiseid andma. Lisage juhised nii enne kui pärast põhisisu, kasutage juhist ja vihjet jms. Korduge ja valideerige, et näha, mis toimib. |
| Järjestus loeb | Informatsiooni esitamise järjekord mudelile võib mõjutada väljundit, isegi õppekordustes tänu värske mälu eelistusele. Proovige erinevaid variante, et näha, mis töötab kõige paremini. |
| Andke mudelile "väljatulek" | Paku mudelile varuvastus, mida ta saab anda, kui ei suuda mingil põhjusel ülesannet täita. See võib vähendada vale- või väljamõeldud vastuste tekkimise tõenäosust. |
Nagu iga parima tava puhul, pidage meeles, et teie kogemus võib varieeruda mudeli, ülesande ja valdkonna järgi. Kasutage neid lähtepunktina ja iteratsioonideks, et leida enda jaoks parim. Hinnake pidevalt oma päringu inseneritehnika protsessi, kui uued mudelid ja tööriistad muutuvad kättesaadavaks, keskendudes protsessi skaleeritavusele ja vastuste kvaliteedile.
Palju õnne! Sa jõudsid tunni lõpuni! On aeg mõnda neist kontseptsioonidest ja tehnikatest proovile panna tõeliste näidetega!
Meie ülesande jaoks kasutame Jupyter notebook'i koos harjutustega, mida saate interaktiivselt täita. Samuti saate notebooki laiendada oma Markdown ja koodirakkudega, et iseseisvalt ideid ja tehnikaid uurida.
- (Soovituslik) Käivitage GitHub Codespaces
- (Või) Kloonige hoidla oma kohalikku seadmesse ning kasutage seda Docker Desktopiga
- (Või) Avage notebook oma eelistatud notebook-tarkvara keskkonnas.
- Kopeerige hoidla juurkaustas olev
.env.copyfail.envnimega ja täitkeAZURE_OPENAI_API_KEY,AZURE_OPENAI_ENDPOINTjaAZURE_OPENAI_DEPLOYMENTväärtused. Tulge tagasi Learning Sandbox jaotisesse, et õppida, kuidas seda teha.
- Valige töötlusmootori kernel. Kui kasutate võimalusi 1 või 2, valige lihtsalt dev konteineri vaikimisi pakutav Python 3.10.x kernel.
Olete valmis harjutusi läbi viima. Pange tähele, et siin pole õigeid ega valesid vastuseid - see on katsetamine ja intuitsiooni arendamine selle kohta, mis konkreetsele mudelile ja rakendusvaldkonnale sobib.
Seetõttu pole selles tunnis koodilahenduse lõike. Selle asemel on notebookis markdown-rakud pealkirjaga "Minu lahendus:", mis näevad ühe näidisväljundi viitena.
Milline järgmistest on hea päring, mis järgib mõistlikke parimaid tavasid?
- Näita mulle pilti punasest autost
- Näita mulle pilti punasest Volvost XC90 mudelist, mis on parkis kalju ääres päikeseloojangul
- Näita mulle pilti punasest Volvo XC90 mudelist
Vastus: 2 on parim, kuna see annab üksikasju "mida" ja läheb spetsiifikasse (mitte lihtsalt üks auto, vaid konkreetne margi ja mudeli järgi) ning kirjeldab ka kogu stseeni. 3 on järgmine parim, kuna sisaldab samuti palju kirjeldust.
Proovi kasutada "vihje" tehnikat päringuga: Täienda lauset "Näita mulle pilti punasest autost margiga Volvo ja ". Mida see vastab, ja kuidas saaksid seda parandada?
Kas soovid õppida rohkem erinevate päringu inseneritehnika kontseptsioonide kohta? Mine edaspidise õppimise lehele, et leida selle teema kohta teisi suurepäraseid ressursse.
Mine 5. õppetundi, kus vaatleme edasijõudnud päringu tehnikat!
Lahtiütlus: See dokument on tõlgitud kasutades AI tõlketeenust Co-op Translator. Kuigi me püüdleme täpsuse poole, palun pange tähele, et automatiseeritud tõlgetes võib esineda vigu või ebatäpsusi. Originaaldokument selle emakeeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlkega seotud eksimustest või valesti mõistmistest.







