Skip to content

Latest commit

 

History

History
409 lines (255 loc) · 45.6 KB

File metadata and controls

409 lines (255 loc) · 45.6 KB

Promptin suunnittelun perusteet

Promptin suunnittelun perusteet

Johdanto

Tässä moduulissa käsitellään olennaisia käsitteitä ja tekniikoita tehokkaiden promptien luomiseksi generatiivisissa tekoälymalleissa. Tapa, jolla kirjoitat promptin LLM:lle, on myös tärkeä. Huolellisesti laadittu prompti voi saada aikaan laadukkaamman vastauksen. Mutta mitä tarkalleen termit prompt ja promptin suunnittelu tarkoittavat? Ja miten parannan promptin syötettä, jonka lähetän LLM:lle? Näihin kysymyksiin pyrimme vastaamaan tässä ja seuraavassa luvussa.

Generatiivinen tekoäly pystyy luomaan uutta sisältöä (esim. tekstiä, kuvia, ääntä, koodia jne.) käyttäjän pyyntöjen perusteella. Se saavuttaa tämän käyttämällä suuria kielimalleja kuten OpenAI:n GPT ("Generative Pre-trained Transformer") -sarjaa, jotka on koulutettu käyttämään luonnollista kieltä ja koodia.

Käyttäjät voivat nyt olla vuorovaikutuksessa näiden mallien kanssa tutun kaltaisilla paradigmailla kuten chat, ilman teknistä osaamista tai koulutusta. Mallit ovat prompt-pohjaisia – käyttäjät lähettävät tekstisyötteen (promptin) ja saavat takaisin tekoälyn vastauksen (täydennyksen). He voivat sitten "keskustella tekoälyn kanssa" iteratiivisesti, monikertaisissa vuorovaikutuksissa, hiomalla promptiaan, kunnes vastaus vastaa heidän odotuksiaan.

"Promptit" muodostavat nyt generatiivisten tekoälysovellusten ensisijaisen ohjelmointirajapinnan, joka kertoo malleille, mitä tehdä, ja vaikuttaa palautettujen vastausten laatuun. "Promptin suunnittelu" on nopeasti kasvava tutkimusala, joka keskittyy promptien suunnitteluun ja optimointiin tuottaakseen johdonmukaisia ja laadukkaita vastauksia suurissa määrin.

Oppimistavoitteet

Tässä oppitunnissa opimme, mitä promptin suunnittelu on, miksi se on tärkeää ja miten voimme luoda tehokkaampia promptteja tietylle mallille ja sovellustavoitteelle. Ymmärrämme promptin suunnittelun keskeiset käsitteet ja parhaat käytännöt – sekä tutustumme interaktiiviseen Jupyter Notebook - "hiekkalaatikko"-ympäristöön, jossa voimme nähdä nämä käsitteet sovellettuna käytännön esimerkkeihin.

Oppitunnin lopussa osaat:

  1. Selittää, mitä promptin suunnittelu on ja miksi se on tärkeää.
  2. Kuvailla promptin osat ja niiden käyttötavat.
  3. Oppia parhaat käytännöt ja tekniikat promptin suunnitteluun.
  4. Soveltaa opittuja tekniikoita käytännön esimerkkeihin käyttäen OpenAI:n päätepistettä.

Keskeiset termit

Promptin suunnittelu: Teksti-inputtien suunnittelu ja hionta, joilla ohjataan tekoälymalleja tuottamaan haluttuja tuloksia.
Tokenisointi: Prosessi, jossa teksti muutetaan pienemmiksi yksiköiksi, ns. tokeneiksi, joita malli voi ymmärtää ja käsitellä.
Ohjeistettu LLM (Instruction-Tuned LLM): Suuret kielimallit, jotka on hienosäädetty erityisillä ohjeilla parantamaan vastausten tarkkuutta ja merkityksellisyyttä.

Oppimisen hiekkalaatikko

Promptin suunnittelu on tällä hetkellä enemmän taitolaji kuin tiede. Paras tapa parantaa intuitiota on harjoitella enemmän ja käyttää kokeilu- ja erehdysmenetelmää, joka yhdistää sovellusalueen asiantuntemuksen suositeltuihin tekniikoihin ja mallikohtaisiin optimointeihin.

Tähän oppituntiin liittyvä Jupyter Notebook tarjoaa hiekkalaatikko-ympäristön, jossa voit kokeilla oppimaasi – joko matkan varrella tai lopun kooditehtävissä. Harjoitusten suorittamiseen tarvitset:

  1. Azure OpenAI API -avaimen – palvelun päätepisteen käyttöön otettuun LLM:ään.
  2. Python-ympäristön – jossa Notebook voidaan suorittaa.
  3. Paikalliset ympäristömuuttujatviimeistele ASENNUS -vaiheet nyt valmiiksi.

Notebook sisältää aloitus harjoituksia – mutta sinun odotetaan lisäävän omia Markdown (kuvaus) ja Code (prompt-pyynnöt) osioita kokeillaksesi lisää esimerkkejä tai ideoita – ja rakennat intuitiota promptin suunnitteluun.

Kuvitettu opas

Haluatko saada kokonaiskuvan tästä oppitunnista ennen kuin sukellet syvemmälle? Tutustu tähän kuvitettuun oppaaseen, joka antaa sinistä pääaiheista ja avainkohdista mietittäväksi. Oppitunnin tiekartta johdattaa sinut keskeisten käsitteiden ja haasteiden ymmärtämisestä niiden ratkaisuihin relevanttien promptin suunnittelutekniikoiden ja parhaiden käytäntöjen avulla. Huomaa, että tässä oppaassa "Kehittyneet tekniikat" -osio viittaa tämän oppimateriaalin seuraavan luvun sisältöön.

Kuvitettu opas promptin suunnitteluun

Meidän startup

Käydään nyt läpi, miten tämä aihe liittyy startup-yrityksemme missioon tuoda tekoälyinnovaatio koulutukseen. Haluamme rakentaa tekoälypohjaisia sovelluksia persoonalliseen oppimiseen – joten pohditaan, miten eri sovelluksen käyttäjät voisivat "suunnitella" promptteja:

  • Ylläpitäjät voivat pyytää tekoälyä analysoimaan opetussuunnitelman tietoja löytääkseen aukkoja kattavuudesta. Tekoäly voi tiivistää tulokset tai visualisoida niitä koodilla.
  • Opettajat voivat pyytää tekoälyä luomaan oppituntisuunnitelman kohdeyleisölle ja aiheelle. Tekoäly rakentaa persoonallisen suunnitelman määritellyssä muodossa.
  • Oppilaat voivat pyytää tekoälyä ohjaamaan heitä vaikeassa aineessa. Tekoäly voi nyt opastaa oppilaita oppitunneilla, vihjeillä ja esimerkeillä heidän tasonsa mukaan.

Tässä oli vasta pintaraapaisu. Tutustu Prompts For Education – avoimen lähdekoodin prompt-kokoelmaan, jota koulutusasiantuntijat ylläpitävät – saadaksesi laajemman kuvan mahdollisuuksista! Kokeile ajamaan joitakin näistä prompteista hiekkalaatikossa tai OpenAI Playgroundissa nähdäksesi, mitä tapahtuu!

Mitä on promptin suunnittelu?

Aloitimme tämän oppitunnin määrittelemällä promptin suunnittelun tekstisyötteiden (promptien) suunnitteluksi ja optimoinniksi, jotta voidaan tuottaa johdonmukaisia ja laadukkaita vastauksia (täydennyksiä) tietylle sovellustavoitteelle ja mallille. Voimme ajatella tätä kaksiportaisena prosessina:

  • suunnitella alkuperäinen prompti tietylle mallille ja tavoitteelle
  • hioa promptia iteratiivisesti vastauksen laadun parantamiseksi

Tämä on välttämättä koe- ja virhe -prosessi, joka vaatii käyttäjän intuitiota ja vaivaa optimaalisten tulosten saavuttamiseksi. Miksi se sitten on tärkeää? Vastaus löytyy, kun ymmärrämme kolme käsitettä:

  • Tokenisointi = miten malli "näkee" promptin
  • Perus-LLM:t = miten perustamalli "käsittelee" promptin
  • Ohjeistettu LLM = miten malli voi nyt nähdä "tehtäviä"

Tokenisointi

LLM näkee promptit tokenien sekvenssinä, ja eri mallit (tai malliversiot) voivat tokenisoida saman promptin eri tavoin. Koska LLM:t on koulutettu tokeneilla (eivät raakattekstillä), promptin tokenisointitavalla on suora vaikutus luodun vastauksen laatuun.

Saadaksesi intuitiota tokenisoinnista, kokeile työkaluja kuten OpenAI Tokenizer, joka näkyy alla. Kopioi promptisi – ja näet, miten se muunnetaan tokeneiksi, kiinnittäen huomiota välilyöntien ja välimerkkien käsittelyyn. Huomaa, että tämä esimerkki näyttää vanhemman LLM:n (GPT-3) – joten uuden mallin kanssa kokeileminen voi tuottaa erilaisen tuloksen.

Tokenisointi

Käsite: Perusmallit

Kun prompti on tokenisoitu, "Perus-LLM:n" (tai perusmallin) päätehtävä on ennustaa seuraava token sekvenssissä. Koska LLM:t on koulutettu valtavilla tekstidatamassoilla, niillä on hyvä käsitys tokenien tilastollisista suhteista, ja ne voivat tehdä ennusteen suhteellisen varmuudella. Huomaa, että ne eivät ymmärrä promptin sanojen merkitystä tai tokenien sisältöä; ne vain näkevät mallin, jonka voivat "täydentää" seuraavalla ennusteellaan. Ne voivat jatkaa sekvenssin ennustamista, kunnes käyttäjä keskeyttää tai jokin ennalta määrätty ehto täyttyy.

Haluatko nähdä, miten prompt-pohjainen täydennys toimii? Syötä yllä oleva prompt Azure OpenAI Studioon Chat Playground oletusasetuksilla. Järjestelmä on konfiguroitu käsittelemään promptit tiedonpyynnöiksi – joten näet vastauksen, joka täyttää tämän kontekstin.

Mutta entä jos käyttäjä haluaisi nähdä jotain erityistä, joka täyttää jonkin kriteerin tai tehtävän tavoitteen? Tässä tulevat kuvaan ohjeistetut LLM:t.

Perus-LLM:n chat-täydennys

Käsite: Ohjeistetut LLM:t

Ohjeistettu LLM perustuu perusmalliin, jota hienosäädetään esimerkkien tai syöte–vastaus -pareilla (esim. monikertaiset "viestit"), jotka sisältävät selkeitä ohjeita – ja tekoälyn vastaus pyrkii noudattamaan kyseistä ohjetta.

Tässä käytetään tekniikoita kuten vahvistusoppimista ihmispalautteen kanssa (RLHF), joka voi opetuttaa mallin noudattamaan ohjeita ja oppimaan palautteesta, jotta malli tuottaa vastauksia, jotka soveltuvat paremmin käytännön sovelluksiin ja ovat merkityksellisempiä käyttäjän tavoitteille.

Kokeillaanpa – palaa yllä olevaan promptiin, mutta muuta nyt järjestelmäviestiä antamaan seuraava ohje kontekstiksi:

Tiivistä annetun sisällön pääkohdat toisen luokan oppilaalle. Pidä tulos yhdessä kappaleessa ja 3–5 luettelokohdassa.

Näetkö, miten tulos on nyt viritetty vastaamaan haluttua tavoitetta ja muotoa? Opettaja voi nyt käyttää tätä vastausta suoraan tunnin dioissaan.

Ohjeistettu LLM:n chat-täydennys

Miksi tarvitsemme promptin suunnittelua?

Kun tiedämme, miten LLM:t käsittelevät prompteja, keskustellaan miksi promptin suunnittelu on tarpeen. Vastaus löytyy siitä, että nykyiset LLM:t aiheuttavat haasteita, jotka tekevät luotettavien ja johdonmukaisten vastausten saavuttamisesta haastavampaa ilman vaivannäköä promptien laadinnassa ja optimoinnissa. Esimerkiksi:

  1. Mallin vastaukset ovat stokastisia. Sama prompti tuottaa todennäköisesti erilaisia vastauksia eri malleissa tai malliversioissa. Ja se saattaa tuottaa eri tuloksia samalla mallilla eri aikoina. Promptin suunnittelun tekniikat voivat auttaa minimoimaan näitä vaihteluita tarjoamalla parempia suojakaiteita.

  2. Mallien vastaukset voivat olla keksittyjä. Mallit on esikoulutettu suurella mutta rajallisella aineistolla, mikä tarkoittaa, etteivät ne tunne käsitteitä koulutusdatansa ulkopuolelta. Tämän seurauksena ne voivat tuottaa vastauksia, jotka ovat epätarkkoja, kuvitteellisia tai suoraan ristiriidassa tunnetun tiedon kanssa. Promptin suunnittelun tekniikat auttavat käyttäjiä tunnistamaan ja lieventämään tällaisia keksintöjä, esim. pyytämällä tekoälyltä lähdeviitteitä tai perusteluja.

  3. Mallien kyvykkyydet vaihtelevat. Uudemmat mallit tai mallisukupolvet tarjoavat monipuolisempia kykyjä, mutta samalla myös erityisiä luonteenpiirteitä ja kompromisseja kustannuksissa ja monimutkaisuudessa. Promptin suunnittelu voi auttaa kehittämään parhaita käytäntöjä ja työnkulkuja, jotka abstrahoivat erot ja sopeutuvat mallikohtaisiin vaatimuksiin skaalautuvasti ja saumattomasti.

Kokeillaan tätä käytännössä OpenAI:n tai Azure OpenAI Playgroundissa:

  • Käytä samaa promptia eri LLM-julkaisuissa (esim. OpenAI, Azure OpenAI, Hugging Face) – huomasitko vaihteluita?
  • Käytä samaa promptia toistuvasti samassa LLM-julkaisussa (esim. Azure OpenAI Playground) – kuinka nämä vaihtelut erosivat?

Keksinnöt – esimerkki

Tässä kurssissa käytämme termiä "keksintö" kuvaamaan ilmiötä, jossa LLM:t joskus luovat totuudenmukaisesti virheellistä tietoa koulutuksensa rajoitusten tai muiden syiden takia. Olet saattanut kuulla tätä kutsuttavan "harhoiksi" suosituissa artikkeleissa tai tutkimuspapereissa. Suosittelemme kuitenkin käyttämään termiä "keksintö", jotta emme vahingossa ihmisellistäisi käyttäytymistä antamalla koneohjatulle tulokselle ihmismäisiä piirteitä. Tämä myös vahvistaa Vastuullisen tekoälyn ohjeita terminologian näkökulmasta, poistamalla termejä, jotka voivat joissain konteksteissa olla loukkaavia tai ei-inklusiivisia.

Haluatko saada käsityksen siitä, miten keksinnöt toimivat? Ajattele promptia, joka ohjeistaa tekoälyä tuottamaan sisältöä olemattomasta aiheesta (varmistaakseen, ettei sitä löydy koulutusdatasta). Esimerkiksi – kokeilin tätä promptia:

Prompt: luo oppituntisuunnitelma Marsin sodasta vuonna 2076. Verkkohaku näytti, että Marsin sodista oli olemassa kuvitteellisia kertomuksia (esim. televisiosarjoja tai kirjoja) – mutta ei vuonna 2076. Terve järki myös kertoo, että vuosi 2076 on tulevaisuudessa, eikä sitä siten voi liittää todelliseen tapahtumaan.

Mitä siis tapahtuu, kun tätä kehotetta kokeillaan eri LLM-palveluntarjoajilla?

Vastaus 1: OpenAI Playground (GPT-35)

Vastaus 1

Vastaus 2: Azure OpenAI Playground (GPT-35)

Vastaus 2

Vastaus 3: : Hugging Face Chat Playground (LLama-2)

Vastaus 3

Kuten odotettua, kukin malli (tai malliversio) tuottaa hieman erilaisia vastauksia stokastisen käyttäytymisen ja mallin kyvykkyyserojen vuoksi. Esimerkiksi eräs malli kohdistaa vastauksen 8. luokan tasolle, kun taas toinen olettaa lukioikäisen. Kaikki kolme mallia kuitenkin tuottivat vastauksia, jotka voisivat saada tietämättömän käyttäjän uskomaan, että tapahtuma oli todellinen.

Kehoteinsinöörauksen tekniikat kuten metakehotteet ja lämpötilan säätö voivat jossain määrin vähentää mallien keksimiä tietoja. Uudet kehotteiden suunnittelu arkkitehtuurit myös yhdistävät saumattomasti uusia työkaluja ja tekniikoita kehotteen kulkuun, lieventäen tai vähentäen näitä ilmiöitä.

Tapaustutkimus: GitHub Copilot

Katsotaan lopuksi, miten kehotteiden suunnittelua hyödynnetään todellisissa ratkaisuissa, tarkastelemalla yhtä tapaustutkimusta: GitHub Copilot.

GitHub Copilot on sinun "tekoälypari-ohjelmoijasi" – se muuntaa tekstikehotteet koodin täydentämisiksi ja on integroitu kehitysympäristöösi (esim. Visual Studio Code) sujuvan käyttökokemuksen takaamiseksi. Kuten alla olevissa blogisarjoissa dokumentoidaan, varhaisin versio perustui OpenAI Codex -malliin – ja insinöörit ymmärsivät nopeasti mallin hienosäädön ja parempien kehotteiden suunnittelutekniikoiden tarpeen parantaakseen koodin laatua. Heinäkuussa he julkaisivat parannetun tekoälymallin, joka menee Codexin ohi tarjoten vielä nopeampia ehdotuksia.

Lue postaukset järjestyksessä heidän oppimisprosessinsa seuraamiseksi.

Voit myös selata heidän Insinööriblogiaan löytääksesi lisää kirjoituksia, kuten tämän, joka näyttää, miten näitä malleja ja tekniikoita sovelletaan todellisten sovellusten luomisessa.


Kehotteen rakentaminen

Olemme nähneet, miksi kehotteiden suunnittelu on tärkeää – nyt ymmärretään, miten kehotteet rakennetaan, jotta voimme arvioida erilaisia tekniikoita tehokkaamman kehotesuunnittelun hyväksi.

Peruskehotteet

Aloitetaan peruskehotteesta: teksti, joka lähetetään mallille ilman muuta kontekstia. Tässä esimerkki – kun lähetämme Yhdysvaltojen kansallislaulun ensimmäiset sanat OpenAI:n Completion API:lle, se täydentää vastauksen heti seuraavilla riveillä, ilmaisten perusennustekäyttäytymisen.

Kehote (syöte) Täydennys (tuotos)
Oh say can you see Näyttää siltä, että olet aloittamassa "The Star-Spangled Banner" -kansallislaulun sanoja. Laulu menee näin ...

Monimutkainen kehotteet

Lisätään nyt peruskehotteeseen konteksti ja ohjeet. Chat Completion API antaa meidän rakentaa monimutkaisen kehotteen kokoelmana viestejä, joissa on

  • Tulot/menot -parit, jotka heijastavat käyttäjän syötettä ja avustajan vastausta.
  • Järjestelmäviesti, joka asettaa kontekstin avustajan käyttäytymiselle tai persoonalle.

Pyyntö on nyt muotoa, jossa tokenisointi vangitsee tehokkaasti olennaisen tiedon kontekstista ja keskustelusta. Järjestelmäkontekstin muuttaminen voi vaikuttaa yhtä paljon lopputuloksen laatuun kuin käyttäjältä saadut syötteet.

response = openai.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"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?"}
    ]
)

Ohjeistuskehotteet

Edellä esimerkeissä käyttäjän kehotteena oli yksinkertainen tekstikysely, joka voidaan tulkita tietopyyntönä. _Ohjeistus_kehotteilla voimme käyttää tekstiä tehtävän tarkempaan määrittelyyn ja antaa tekoälylle parempia ohjeita. Tässä esimerkki:

Kehote (Syöte) Täydennys (Tuotos) Ohjetyyppi
Kirjoita kuvaus sisällissodasta palauttaa yksinkertaisen kappaleen Yksinkertainen
Kirjoita kuvaus sisällissodasta. Anna keskeiset päivämäärät ja tapahtumat ja kuvaa niiden merkitys palauttaa kappaleen, jota seuraa luettelo tärkeistä päivämääristä ja tapahtumista kuvauksineen Monimutkainen
Kirjoita kuvaus sisällissodasta yhdessä kappaleessa. Anna 3 luettelokohtaa, joissa on tärkeät päivämäärät ja niiden merkitys. Anna 3 lisää luettelokohtaa tärkeistä historiallisista henkilöistä ja heidän panoksistaan. Palauta tulos JSON-tiedostona palauttaa yksityiskohtaisemman tekstikentän, joka on JSON-muodossa, jonka voi kopioida ja tarvittaessa validoida Monimutkainen. Muotoiltu.

Pääasiallinen sisältö

Edellä esimerkeissä kehotteet olivat melko avoimia, jolloin LLM päätti itse, mikä osa sen esikoulutetusta aineistosta oli relevanttia. Pääasiallinen sisältö -suunnittelumallissa syöteteksti jaetaan kahteen osaan:

  • ohje (toiminto)
  • relevantti sisältö (joka ohjaa toimintaa)

Tässä esimerkki, jossa ohjeena on "tiivistä tämä kahteen lauseeseen".

Kehote (Syöte) Täydennys (Tuotos)
Jupiter on aurinkoa lähin viides planeetta ja aurinkokunnan suurin. Se on kaasujättiläinen, jonka massa on tuhannesosa Auringon massasta, mutta kaksi ja puoli kertaa kaikkien muiden aurinkokunnan planeettojen massojen summa. Jupiter on yksi paljain silmin näkyvistä kirkkaimmista taivaankappaleista ja sitä on tunnettu muinaisista sivilisaatioista ennen kirjoitettua historiaa. Se on nimetty roomalaisen jumalan Jupiterin mukaan.[19] Maasta katsottuna Jupiter voi olla riittävän kirkas, jotta sen heijastama valo voi heittää näkyviä varjoja,[20] ja on keskimäärin kolmanneksi kirkain luonnollinen kohde yötaivaalla Kuun ja Venuksen jälkeen.
Tiivistä tämä kahteen lyhyeen lauseeseen
Jupiter on aurinkokunnan suurin kaukokävely ja viides planeetta Auringosta. Se on kaasujättiläinen, jonka massa on kaksi ja puoli kertaa kaikkien muiden planeettojen yhteismassa, ja se on nimetty roomalaisen jumalan Jupiterin mukaan.

Pääasiallista sisältöä voidaan käyttää monin tavoin tehokkaampien ohjeiden antamiseksi:

  • Esimerkit – sen sijaan, että kerrotaan mallille eksplisiittisesti, mitä tehdä, annetaan esimerkkejä ja mallin annetaan päätellä kaava.
  • Vihjeet – ohjeen perään annetaan "vihje" ensimmäisestä vastauksesta, joka ohjaa mallia kohti relevantimpia vastauksia.
  • Mallit – toistettavia 'resepti'-tyylisiä kehotteita, joissa on paikkoja (muuttujia) datalle, jota voidaan räätälöidä eri käyttötarkoituksiin.

Tutkitaan näitä konkreettisesti.

Esimerkkien käyttö

Tässä lähestymistavassa käytetään pääasiallista sisältöä "ruokkimaan mallia" esimerkeillä halutusta lopputuloksesta annetulle ohjeelle, jolloin malli voi päätellä halutun lopputuloksen kaavan. Annettujen esimerkkien määrän perusteella voidaan erottaa nolla-, yhden- ja muutaman esimerkin kehotteet.

Kehote koostuu nyt kolmesta osasta:

  • Tehtävän kuvaus
  • Muutama esimerkki halutusta lopputuloksesta
  • Uuden esimerkin alku (josta tulee implisiittinen tehtävän kuvaus)
Oppiminen Kehote (Syöte) Täydennys (Tuotos)
Nolla-esimerkkiä "The Sun is Shining". Käännä espanjaksi "El Sol está brillando".
Yksi esimerkki "The Sun is Shining" => "El Sol está brillando".
"It's a Cold and Windy Day" =>
"Es un día frío y ventoso".
Muutamia esimerkkejä Pelaaja juoksi pesät => Pesäpallo
Pelaaja teki ässän => Tennis
Pelaaja teki kuutosen => Kriketti
Pelaaja teki donkin => Koripallo
Koripallo

Huomaa, että nolla-esimerkkitapauksessa piti antaa eksplisiittinen ohje ("Käännä espanjaksi"), mutta yhden esimerkin kehotteessa se pääteltiin. Muutama esimerkin esimerkki havainnollistaa, kuinka lisäämällä esimerkkejä mallit voivat tehdä tarkempia päätelmiä ilman lisäohjeita.

Kehotevihjeet

Toinen tapa käyttää pääasiallista sisältöä on antaa vihjeitä esimerkkien sijaan. Tässä annamme mallille pienen sysäyksen oikeaan suuntaan antamalla aloituksen, joka kuvastaa haluttua vastausmuotoa. Malli "ottaa vihjeestä kiinni" ja jatkaa samalla tyylillä.

Vihjeiden määrä Kehote (Syöte) Täydennys (Tuotos)
0 Jupiter on Aurinkoa lähin viides planeetta ja aurinkokunnan suurin. Se on kaasujättiläinen, jonka massa on tuhannesosa Auringosta, mutta kaksi ja puoli kertaa kaikkien muiden aurinkokunnan planeettojen massojen summa. Jupiter on yksi kirkkaimmista paljain silmin nähtävistä taivaankappaleista ja sitä on tunnettu muinaisista sivilisaatioista ennen kirjoitettua historiaa.
Tiivistä tämä
Jupiter on aurinkokunnan suurin planeetta ja viides Auringosta. Se on kaasujättiläinen, jonka massa on 1/1000 osa Auringon massasta, mutta se painaa enemmän kuin kaikkien muiden planeettojen massa yhteensä. Muinaiset sivilisaatiot ovat tunteneet Jupiterin kauan, ja se on helposti nähtävissä yötaivaalla..
1 Jupiter on aurinkoa lähinnä viides planeetta ja aurinkokunnan suurin planeetta. Se on kaasujättiläinen, jonka massa on tuhannesosa Auringon massasta, mutta kaksi ja puoli kertaa kaikkien muiden aurinkokunnan planeettojen massan yhteismäärä. Jupiter on yksi kirkkaimmista paljain silmin nähtävistä kohteista yötaivaalla, ja se on ollut tunnettu muinaisista sivilisaatioista ennen kirjoitettua historiaa.
Tiivistä tämä
Mitä opimme, on että Jupiter
on aurinkoa lähinnä viides planeetta ja aurinkokunnan suurin planeetta. Se on kaasujättiläinen, jonka massa on tuhannesosa Auringon massasta, mutta kaksi ja puoli kertaa kaikkien muiden planeettojen yhteismäärä. Se näkyy helposti paljain silmin ja se on tunnettu jo muinaisajoilta.
2 Jupiter on aurinkoa lähinnä viides planeetta ja aurinkokunnan suurin planeetta. Se on kaasujättiläinen, jonka massa on tuhannesosa Auringon massasta, mutta kaksi ja puoli kertaa kaikkien muiden aurinkokunnan planeettojen massan yhteismäärä. Jupiter on yksi kirkkaimmista paljain silmin nähtävistä kohteista yötaivaalla, ja se on ollut tunnettu muinaisista sivilisaatioista ennen kirjoitettua historiaa.
Tiivistä tämä
Kolme tärkeintä faktaa, jotka opimme:
1. Jupiter on aurinkoa lähinnä viides planeetta ja suurin aurinkokunnassa.
2. Se on kaasujättiläinen, jonka massa on tuhannesosa Auringosta...
3. Jupiter on ollut paljain silmin nähtävissä jo muinaisajoista lähtien ...

Kehotekstimalleja

Kehotekstimalli on ennalta määritelty kaava kehotteelle, jota voidaan tallentaa ja käyttää uudelleen tarpeen mukaan, tarjoten tasaisempia käyttäjäkokemuksia suuremmassa mittakaavassa. Yksinkertaisimmillaan se on kokoelma kehotteiden esimerkkejä kuten tämä OpenAI:n esimerkki, joka sisältää interaktiiviset kehotteet (käyttäjä- ja järjestelmäviestit) sekä API-pohjaisen pyyntömuodon uudelleenkäyttöä varten.

Monimutkaisemmassa muodossaan, kuten tämä LangChainin esimerkki, se sisältää paikkamerkkejä, jotka voidaan korvata eri lähteistä saaduilla tiedoilla (käyttäjän syöttö, järjestelmän konteksti, ulkoiset tietolähteet jne.) dynaamisen kehotteen luomiseksi. Tämä mahdollistaa uudelleenkäytettävien kehotteiden kirjaston luomisen, joita voidaan käyttää ohjelmallisesti yhtenäisten käyttäjäkokemusten aikaansaamisessa suuressa mittakaavassa.

Lopuksi, mallien todellinen arvo on kyvyssä luoda ja julkaista kehotekstejä vertikaalisiin sovellusalueisiin – missä kehotekstimalli on nyt optimoitu heijastamaan sovelluskohtaisia konteksteja tai esimerkkejä, jotka tekevät vastauksista relevantimpia ja tarkempia kohdeyleisölle. Prompts For Edu -arkisto on tästä hyvä esimerkki, se kokoaa koulutusalueen kehotekstikirjaston painottaen keskeisiä tavoitteita kuten oppituntisuunnittelua, opetussuunnitelman suunnittelua, opiskelijan ohjausta jne.

Tue materiaali

Jos ajatellaan kehotteiden rakennetta ohjeena (tehtävä) ja kohteena (ensisijainen sisältö), niin toissijainen sisältö on kuin lisäkonteksti, jota annamme vaikuttaaksemme tavalla tai toisella vastaukseen. Se voi olla säätöparametreja, muotoiluohjeita, aiheiden taksonomioita jne., jotka auttavat mallia räätälöimään vastauksensa käyttäjän haluttujen tavoitteiden tai odotusten mukaisiksi.

Esimerkiksi: Kun käytössämme on kurssiluettelo, jossa on laajat metatiedot (nimi, kuvaus, taso, metatunnisteet, opettaja jne.) kaikista saatavilla olevista kursseista opetussuunnitelmassa:

  • voimme määrittää ohjeen "tiivistä syksyn 2023 kurssiluettelo"
  • voimme käyttää ensisijaista sisältöä muutamina esimerkkeinä halutusta vastauksesta
  • voimme käyttää toissijaista sisältöä tunnistaaksemme kiinnostavimmat 5 "tunnistetta".

Nyt malli voi antaa yhteenvedon esimerkkien mukaisessa muodossa – mutta jos tuloksessa on useita tunnisteita, se priorisoi toissijaisessa sisällössä määritellyt 5 tunnistetta.


Kehotekstin parhaat käytännöt

Nyt kun tiedämme, miten kehotteet voidaan rakentaa, voimme alkaa miettiä, miten ne suunnitella parhaiden käytäntöjen mukaisesti. Voimme ajatella tätä kahdessa osassa – oikean ajattelutavan omaksuminen ja oikeiden tekniikoiden käyttäminen.

Kehotekstin suunnittelun ajattelutapa

Kehotekstin suunnittelu on kokeiluprosessi, joten pidä mielessä kolme laajaa ohjaavaa tekijää:

  1. Alueen ymmärrys on tärkeää. Vastausten tarkkuus ja relevanssi riippuvat siitä alueesta, jolla sovellus tai käyttäjä toimii. Käytä intuitiotasi ja alan asiantuntemustasi räätälöidäksesi tekniikoita edelleen. Esimerkiksi määritä aluekohtaisia persoonia järjestelmäkehotteissasi tai käytä aluekohtaisia malleja käyttäjäkehotteissa. Tarjoa toissijaista sisältöä, joka heijastaa alakohtaisia konteksteja, tai käytä aluekohtaisia vihjeitä ja esimerkkejä ohjaamaan mallia tuttuun käyttötapaan.

  2. Mallin ymmärrys on tärkeää. Tiedämme, että mallit ovat luonteeltaan satunnaisia. Mallien toteutukset voivat myös vaihdella käyttämänsä opetusdatan (ennakkoon opetettu tieto), tarjoamiensa ominaisuuksien (API:n tai SDK:n kautta) ja niiden optimoiman sisällön tyypin (esim. koodi vs. kuvat vs. teksti) suhteen. Ymmärrä käyttämäsi mallin vahvuudet ja heikkoudet ja käytä tätä tietoa priorisoidaksesi tehtäviä tai rakentaaksesi räätälöityjä malleja, jotka on optimoitu mallin ominaisuuksille.

  3. Iteraatio ja validointi ovat tärkeitä. Mallit kehittyvät nopeasti, samoin kehotteen suunnittelutekniikat. Alan asiantuntijana sinulla saattaa olla muuta kontekstia tai kriteereitä sinun sovelluksellesi, jotka eivät päde laajemmassa yhteisössä. Käytä kehotteen suunnittelun työkaluja ja tekniikoita aloittaaksesi kehotteen rakentamisen, sitten iteroi ja validoi tulokset omalla intuitiollasi ja asiantuntemuksellasi. Tallenna oivalluksesi ja luo tietopohja (esim. kehotekirjastoja), jota muut voivat käyttää uutena lähtökohtana nopeampiin iterointeihin tulevaisuudessa.

Parhaat käytännöt

Katsotaanpa nyt yleisiä parhaita käytäntöjä, joita suosittelevat OpenAI ja Azure OpenAI -asiantuntijat.

Mikä Miksi
Arvioi uusin malli. Uudet mallisukupolvet sisältävät todennäköisesti parannettuja ominaisuuksia ja laatua – mutta ne saattavat myös nostaa kustannuksia. Arvioi niiden vaikutusta, ja tee siirtymispäätökset.
Erota ohjeet ja konteksti Tarkista, määritteleekö mallisi/tarjoajasi erottimet, jotka selkeyttävät ohjeiden, ensisijaisen ja toissijaisen sisällön välistä rajaa. Tämä auttaa mallia asettamaan oikeammat painotukset sanoille.
Ole tarkka ja selkeä Anna enemmän tietoa halutusta kontekstista, lopputuloksesta, pituudesta, formaatista, tyylistä jne. Tämä parantaa vastausten laatua ja johdonmukaisuutta. Tallenna kaavat uudelleenkäytettäviksi malleiksi.
Ole kuvaileva, käytä esimerkkejä Mallit saattavat vastata paremmin "näytä ja kerro" -lähestymistapaan. Aloita zero-shot-menetelmällä, jossa annat ohjeen (mutta et esimerkkejä) ja kokeile sitten few-shot -menetelmää hienosäädönä, antaen muutaman esimerkin halutusta tuloksesta. Käytä analogioita.
Käytä vihjeitä käynnistämään vastauksia Tue vastausta antamalla ennakkosanoja tai lauseita, joita se voi käyttää vastauksen aloituspisteenä.
Toista tarvittaessa Joskus sinun täytyy toistaa tila mallille. Anna ohjeet ennen ja jälkeen ensisijaisen sisällön, käytä ohjetta ja vihjettä, jne. Iteroi ja validoi, mitä menetelmää malli parhaiten ymmärtää.
Järjestyksellä on merkitystä Se, missä järjestyksessä esität tiedon mallille, voi vaikuttaa tulokseen, jopa oppimisesimerkeissä ajan vaikutuksen vuoksi. Kokeile erilaisia vaihtoehtoja parhaan lopputuloksen löytämiseksi.
Anna mallille ”uloskäynti” Tarjoa mallille varavastaus, jonka se voi antaa jos se ei syystä tai toisesta saa tehtävää valmiiksi. Tämä vähentää mallin tuottamien epäluotettavien tai tekaistujen vastausten riskiä.

Kuten kaikissa parhaissa käytännöissä, muista että kokemuksesi voi vaihdella mallin, tehtävän ja toimialan mukaan. Käytä näitä lähtökohtina ja iteroi löytääksesi sinulle parhaiten sopivan tavan. Arvioi jatkuvasti kehotteen suunnitteluprosessia uusien mallien ja työkalujen myötä, keskittyen prosessin skaalaavuuteen ja vastausten laatuun.

Tehtävä

Onneksi olkoon! Pääsit oppitunnin loppuun! Nyt on aika kokeilla joitakin opittuja käsitteitä ja tekniikoita käytännön esimerkkien avulla!

Tehtävänämme on käyttää Jupyter Notebook -tiedostoa, jossa on harjoituksia, jotka voit suorittaa interaktiivisesti. Voit myös laajentaa Notebookia omilla Markdown- ja koodisoluillasi tutkiaksesi ideoita ja tekniikoita itseksesi.

Aloittaaksesi haarauta repo, sitten

  • (Suositeltu) Käynnistä GitHub Codespaces
  • (Vaihtoehtoisesti) Kloonaa repo paikalliselle laitteellesi ja käytä sitä Docker Desktopin kanssa
  • (Vaihtoehtoisesti) Avaa Notebook haluamassasi ajoympäristössä.

Seuraavaksi määritä ympäristömuuttujat

  • Kopioi repohakemistosta .env.copy tiedosto nimeksi .env ja täytä AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT ja AZURE_OPENAI_DEPLOYMENT arvot. Palaa Learning Sandbox -osioon oppiaksesi miten.

Avaa sitten Jupyter Notebook

  • Valitse ajoympäristön ydin. Jos käytät vaihtoehtoja 1 tai 2, valitse kehityssäiliössä oletuksena oleva Python 3.10.x -ydin.

Olet valmis suorittamaan harjoitukset. Huomaa, että täällä ei ole varsinaisia oikeita tai vääriä vastauksia – kyse on eri vaihtoehtojen kokeilemisesta ja intuitiosta sen löytämiseksi, mikä toimii parhaiten tietyssä mallissa ja sovellusalueessa.

Tämän vuoksi tähän oppituntiin ei sisälly koodiratkaisujen osioita. Sen sijaan Notebookissa on Markdown-soluja otsikolla "My Solution:", jotka esittävät yhden esimerkkituloksen vertailua varten.

Tietotarkistus

Mikä seuraavista on hyvä kehotus, joka noudattaa kohtuullisia parhaita käytäntöjä?

  1. Näytä minulle kuva punaisesta autosta
  2. Näytä minulle kuva punaisesta Volvo-merkkisestä XC90-mallista, joka on pysäköity kallion reunalle auringonlaskun aikaan
  3. Näytä minulle kuva punaisesta Volvo-merkkisestä XC90-mallista

Vastaus: 2, koska se on paras kehotus, jossa annetaan tietoja "mistä" ja mennään tarkkuuksiin (ei vain mikä tahansa auto, vaan tietty merkki ja malli) ja kuvaillaan myös koko tilanne. Seuraavaksi paras on 3, koska se sisältää myös paljon kuvausta.

🚀 Haaste

Kokeile "vihje" -tekniikkaa kehotteella: Täydennä lause "Näytä minulle kuva punaisesta Volvo-merkkisestä autosta, joka on ". Miten malli vastaa, ja miten parantaisit sitä?

Hienoa työtä! Jatka oppimista

Haluatko oppia lisää erilaisista kehotekstin suunnittelun käsitteistä? Mene jatko-opiskelusivulle, josta löydät muita hyviä resursseja aiheesta.

Siirry oppitunnille 5, jossa käsittelemme kehittyneitä kehotetekniikoita!


Vastuuvapauslauseke: Tämä asiakirja on käännetty käyttäen tekoälypohjaista käännöspalvelua Co-op Translator. Pyrimme tarkkuuteen, mutta automatisoidut käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Tärkeissä tiedoissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista.