Promptit ja prompt engineering
Hyvän promptin rakenne: näin kysyt tekoälyltä oikein
Kielimalli ei arvaa mitä tarkoitat. Näin rakennat promptin viidestä osasta, näet kaksi ennen ja jälkeen -esimerkkiä ja vältät tavallisimmat virheet.
Lyhyt vastaus
Hyvä prompti kertoo viisi asiaa: tehtävän, kontekstin, halutun muodon, rajoitteet ja tarvittaessa esimerkin halutusta vastauksesta. Kielimalli ei tiedä tilannettasi eikä lukijaasi, joten se täydentää jokaisen puuttuvan tiedon todennäköisimmällä oletuksella. Mitä tarkemmin rajaat tehtävän ja lopputuloksen, sitä vähemmän mallin tarvitsee arvata ja sitä käyttökelpoisempi vastaus on.
Sisällys
- Miksi rakenne toimii mallin kannalta
- Promptin viisi osaa
- Kaksi ennen ja jälkeen -esimerkkiä
- Esimerkkiohjaus ja roolin antaminen
- Pitkä aineisto: mihin se kannattaa laittaa
- Iterointi: toinen kysymys on usein tärkein
- Viisi tavallista virhettä
- Milloin prompt ei pelasta
- Usein kysytyt kysymykset
- Lähteet ja lisälukemista
Sama malli tuottaa samasta aiheesta joko kelvottoman tai käyttökelpoisen vastauksen. Ero ei yleensä ole mallissa vaan siinä, mitä sille kerrottiin tehtävästä. Tämä on hyvä uutinen, koska tehtävänanto on ainoa osa järjestelmää, johon sinä voit vaikuttaa.
Prompti eli kehote on se teksti, jonka annat mallille. Sen kirjoittaminen ei ole taikasanojen etsimistä vaan tavallista tehtävänannon laatimista: samaa taitoa, jota tarvitaan, kun ohjeistat harjoittelijaa, joka on lukenut paljon mutta ei tunne sinua eikä työpaikkaasi.
Tässä artikkelissa käydään läpi promptin viisi osaa, kaksi kokonaista ennen ja jälkeen -esimerkkiä, esimerkkiohjaus, roolin todelliset rajat ja ne tilanteet, joissa parempi promptikaan ei auta.
Miksi rakenne toimii mallin kannalta
Kielimalli tuottaa vastauksen ennustamalla, mikä teksti jatkaa annettua tekstiä uskottavimmin. Mekanismi on kuvattu tarkemmin artikkelissa miten kielimalli toimii. Kaikki, mitä malli tietää tilanteestasi, on siinä tekstissä, jonka sille annat.
Tästä seuraa yksi käytännön sääntö.
Jokainen asia, jota et kerro promptissa, korvautuu mallin oletuksella. Promptin kirjoittaminen on ennen kaikkea oletusten poistamista.
Oletukset eivät ole satunnaisia vaan keskimääräisiä. Kun pyydät tekstiä ilman yleisöä, saat tekstiä keskivertolukijalle. Kun pyydät tiivistelmää ilman pituutta, saat sen mittaisen tiivistelmän kuin vastaavat tiivistelmät yleensä ovat. Rakenteen tarkoitus on korvata nämä keskiarvot sinun tilanteellasi.
Promptin viisi osaa
| Osa | Mitä se tekee | Esimerkki suomeksi |
|---|---|---|
| Tehtävä | Nimeää yhden konkreettisen toimenpiteen verbillä | "Tiivistä alla oleva taloyhtiön pöytäkirja." |
| Konteksti | Kertoo tilanteen, lukijan ja käyttötarkoituksen | "Lukijoina ovat osakkaat, jotka eivät olleet kokouksessa eivätkä tunne rakennustermejä." |
| Muoto | Määrää rakenteen, pituuden ja tyylin | "Viisi luetelmakohtaa, enintään 150 sanaa yhteensä, ei erillistä johdantoa." |
| Rajoitteet | Kertoo mihin nojataan ja mitä ei tehdä | "Käytä vain pöytäkirjan tietoja. Jos summaa ei mainita, kirjoita 'ei mainittu' äläkä arvioi." |
| Esimerkki | Näyttää halutun jäljen sen sijaan että kuvailisi sitä | "Kohdan pitää näyttää tältä: 'Katto: korjaus alkaa toukokuussa, kustannus 42 000 euroa.'" |
Kaikkia viittä ei tarvita joka kerta. Yhden virkkeen kysymykseen riittää tehtävä. Mitä enemmän vastauksesta riippuu, sitä useampi osa kannattaa kirjoittaa auki. Nopea tapa tarkistaa oma prompti on käydä osat läpi listana, ja siihen on erillinen promptin tarkistuslista.
Kaksi ennen ja jälkeen -esimerkkiä
Esimerkit ovat kuvitteellisia, mutta ne vastaavat tavallisia arjen tehtäviä.
Esimerkki 1, asiakasviesti.
Ennen:
Kirjoita sähköposti asiakkaalle myöhästyneestä toimituksesta.
Tästä tulee geneerinen pahoittelu, jossa on hakasulkeita ja tyhjää kohteliaisuutta. Malli ei tiedä, kuka asiakas on, kuinka paljon myöhästyy tai mitä lupaat.
Jälkeen:
Kirjoita suomenkielinen sähköposti pitkäaikaiselle yritysasiakkaalle.
Tilaus 4412 (30 toimistotuolia) myöhästyy kahdella viikolla alihankkijan
komponenttipulan takia. Uusi arvioitu toimituspäivä on 12.5.
Tarjoamme 10 prosentin hyvityksen.
Asiakas on tilannut meiltä neljä vuotta, joten sävy on asiallinen ja suora,
ei anteeksipyytelevä.
Rakenne: aihe-rivi, kolme lyhyttä kappaletta, lopuksi yksi kysymys siitä,
käykö uusi aikataulu. Enintään 150 sanaa.
Älä lupaa mitään, mitä viestissä ei mainita, äläkä käytä sanaa
"valitettavasti" useammin kuin kerran.
Mikä muuttui: tehtävä sai kohteen ja faktat (konteksti), pituus ja rakenne lukittiin (muoto), ja kielletyt asiat kirjattiin (rajoitteet). Vastaus paranee, koska malli ei enää täytä aukkoja keksityillä yksityiskohdilla. Se on myös suora keino vähentää hallusinaatioita: kun faktat annetaan, niitä ei tarvitse arvata.
Esimerkki 2, pitkä asiakirja.
Ennen:
Mitä tässä vakuutusehdossa sanotaan? [30 sivua tekstiä]
Tästä tulee yleiskuvaus, joka toistaa otsikot. Malli ei tiedä, mitä olet päättämässä.
Jälkeen:
Tehtävä: etsi alla olevista vakuutusehdoista kaikki kohdat, jotka
koskevat vesivahinkoa kerrostaloasunnossa.
Konteksti: harkitsen, kannattaako ottaa laajempi kotivakuutus.
Minulla ei ole vakuutusalan taustaa.
Muoto: taulukko, jossa sarakkeet ovat "korvataan", "ei korvata" ja
"ehdon kohta". Taulukon jälkeen kolme selkokielistä virkettä siitä,
mikä jää vastuulleni.
Rajoitteet: siteeraa jokaisesta rivistä ehtojen oma sanamuoto. Jos
ehdoissa ei sanota asiasta mitään, kirjoita "ei mainittu ehdoissa".
Älä vertaa muihin vakuutusyhtiöihin.
AINEISTO ALKAA
[vakuutusehtojen teksti]
AINEISTO LOPPUU
Käytä vain yllä olevaa aineistoa.
Mikä muuttui: kysymys rajattiin yhteen päätökseen, tulos sai tarkistettavan muodon (ehdon kohta ja sitaatti), ja mallille annettiin tapa sanoa "ei tietoa" ilman että sen tarvitsee keksiä jotain. Sitaattivaatimus on tärkein yksittäinen lisäys, koska sen ansiosta voit tarkistaa vastauksen alkuperäisestä tekstistä.
Esimerkkiohjaus ja roolin antaminen
Adjektiivi on epämääräinen ohje. "Kirjoita ytimekkäästi" tarkoittaa eri asiaa eri ihmisille ja mallille keskiarvoa kaikista ytimekkäistä teksteistä. Esimerkki poistaa tulkinnanvaran.
Esimerkkiohjaus (few-shot) tarkoittaa, että annat promptissa yhdestä kolmeen paria: tällainen syöte, tällainen vastaus. Malli päättelee esimerkeistä säännön ja soveltaa sitä uuteen tapaukseen. Tekniikka on ollut kielimallien perusominaisuus siitä asti, kun se dokumentoitiin ensimmäisen kerran laajasti vuoden 2020 tutkimuksessa.
Kolme käytännön sääntöä. Muotoile esimerkit täsmälleen niin kuin haluat vastauksen näyttävän, myös välimerkit ja isot alkukirjaimet. Pidä esimerkit keskenään samanmuotoisina, koska malli kopioi myös epäjohdonmukaisuuden. Ota mukaan yksi hankala tapaus, esimerkiksi rivi, jossa tieto puuttuu, jotta malli näkee miten silloin toimitaan.
Rooli auttaa sävyssä, ei tiedossa. "Olet kokenut kirjanpitäjä" on hyödyllinen lause, mutta ei siitä syystä, josta usein kuvitellaan. Rooli valitsee sanaston, oletetun lukijan ja käsittelytavan. Se ei tuo malliin yhtään uutta tietoa, koska mallin parametrit eivät muutu kesken keskustelun.
Käytännössä rooli tekee kaksi asiaa. Se siirtää vastauksen tyyliä ammattikielen suuntaan, ja se ohjaa mallia tuottamaan sellaisia näkökulmia, joita kyseisen alan teksteissä yleensä esiintyy. Molemmat ovat tyylivaikutuksia.
Väärinkäsitys on olettaa, että roolilause tekee vastauksesta ammattilaisen vastauksen. Malli, jolle sanotaan "olet lakimies", ei ole vastuussa mistään eikä tunne sinun sopimustasi. Sen sijaan konkreettinen konteksti toimii paremmin kuin arvonimi: "kirjoita niin, että lukija on 15-vuotias" ohjaa tekstiä luotettavammin kuin "olet pedagogiikan asiantuntija".
Pitkä aineisto: mihin se kannattaa laittaa
Kun liität mukaan pitkän tekstin, sijoittelulla on merkitystä. Tutkimuksissa on havaittu, että mallit hyödyntävät pitkän syötteen alkua ja loppua paremmin kuin keskikohtaa. Ilmiö tunnetaan nimellä "lost in the middle".
Toimiva järjestys on tämä.
- Ohje ensin. Kerro tehtävä, muoto ja rajoitteet ennen aineistoa, jotta malli lukee aineiston oikea kysymys mielessään.
- Aineisto selvästi merkittynä. Käytä erotinta, esimerkiksi rivi "AINEISTO ALKAA" ja "AINEISTO LOPPUU". Näin malli erottaa ohjeen ja datan toisistaan.
- Tärkein vaatimus toistetaan lopuksi. Yksi rivi riittää: "Vastaa vain yllä olevan aineiston perusteella."
- Yksi aineisto kerrallaan. Kolme raporttia samassa promptissa sekoittuu helposti, ja lähdeviittaukset menevät ristiin.
Muista myös, että liittämäsi teksti siirtyy palveluntarjoajan palvelimille. Mitä sinne kannattaa laittaa ja mitä ei, käsitellään artikkelissa tekoäly ja omat tietosi.
Iterointi: toinen kysymys on usein tärkein
Ensimmäinen vastaus on luonnos. Nopein tapa parantaa sitä ei ole kirjoittaa promptia alusta uusiksi vaan kertoa, mikä vastauksessa oli pielessä.
Neljä jatkoliikettä, jotka toimivat lähes aina:
- Korjaa kohdistetusti. "Toinen kappale on liian yleinen. Korvaa se yhdellä konkreettisella esimerkillä, muut kappaleet pidät ennallaan."
- Kysy puuttuvat tiedot etukäteen. "Ennen kuin vastaat, listaa mitä tietoja sinulta puuttuu tehtävän tekemiseen." Tämä paljastaa oletukset ennen kuin ne päätyvät tekstiin.
- Pyydä vaihtoehtoja. Kolme erilaista versiota kertoo enemmän kuin yksi hiottu, koska näet mihin suuntaan tehtävää voi viedä.
- Aloita puhtaalta pöydältä, kun keskustelu on ajautunut sivuun. Pitkässä keskustelussa aiemmat virheet jäävät kontekstiin ja ohjaavat vastauksia. Uusi keskustelu korjatulla promptilla on usein nopeampi kuin kymmenes korjauskierros.
Viisi tavallista virhettä
Liian väljä tehtävä. "Paranna tätä tekstiä" antaa mallille vapauden valita, mitä parantaminen tarkoittaa. Kerro mitä parannetaan: pituutta, rakennetta, termien johdonmukaisuutta vai lukijan tasoa.
Monta tehtävää kerralla. Käännä, tiivistä, muuta tyyliä ja tee taulukko samassa promptissa johtaa siihen, että osa vaatimuksista jää huomiotta. Ketjuta tehtävät peräkkäin ja tarkista välissä.
Oletus, että malli tietää kontekstin. Malli ei näe kalenteriasi, aiempaa keskusteluasi toisessa ikkunassa eikä yrityksesi käytäntöjä. Se ei myöskään muista eilistä keskustelua, ellei palvelussa ole erikseen päällä muistiominaisuus.
Kohteliaisuustaikausko. Sanat "kiitos" ja "ole hyvä" eivät paranna vastauksen laatua, eivätkä uhkaukset tai palkkiolupaukset. Ne ovat vain lisää tekstiä, jonka jatkoa malli ennustaa. Kohteliaisuus on tapa-asia, ei tekniikka.
Kielto ilman korvaajaa. "Älä käytä vaikeita sanoja" jättää auki, mitä pitäisi tehdä. Positiivinen ohje toimii paremmin: "käytä arkikieltä ja selitä jokainen ammattitermi suluissa".
Milloin prompt ei pelasta
Promptin muotoilu vaikuttaa siihen, miten malli käyttää tietoaan. Se ei vaikuta siihen, mitä tietoa mallilla on.
Jos kysyt asiaa, jota mallin opetusaineistossa ei ollut, mikään kysymystapa ei tuo sitä esiin. Tällaisia ovat opetusaineiston jälkeen tapahtuneet asiat, organisaatiosi sisäiset tiedot, yksittäisten ihmisten yksityiskohdat ja monet tarkat luvut. Vaativampi prompti tuottaa silloin vain itsevarmemman arvauksen.
Tunnistat tilanteen siitä, että vastaus on sujuva mutta tarkistettavat yksityiskohdat eivät täsmää. Ratkaisu ei ole parempi prompti vaan aineiston liittäminen mukaan, hakuun kytketty työkalu tai se, että etsit tiedon itse. Eri assistenteilla on tässä eroja, ja niitä vertaillaan artikkelissa tekoälyassistenttien erot.
Usein kysytyt kysymykset
Pitääkö promptit kirjoittaa englanniksi?
Ei tarvitse. Suuret mallit toimivat suomeksi hyvin tavallisissa tehtävissä. Englanti voi tuottaa hieman parempaa jälkeä hyvin erikoistuneissa aiheissa, koska opetusaineistoa on enemmän, mutta ero on pienempi kuin usein oletetaan. Tärkeämpää on tehtävänannon tarkkuus kuin kieli.
Auttaako "ajattele askel askeleelta"?
Se voi auttaa monivaiheisissa päättely- ja laskutehtävissä, koska se saa mallin tuottamaan välivaiheet näkyviin, ja välivaiheet ohjaavat lopputulosta. Vaikutus on dokumentoitu tutkimuksessa. Osa uudemmista malleista tekee saman automaattisesti, jolloin lisäys ei muuta mitään. Yksinkertaisissa tehtävissä se vain pidentää vastausta.
Kuinka pitkä hyvän promptin pitää olla?
Niin pitkä, että kaikki tarvittava on mukana, eikä pidempi. Kolmen sanan prompti riittää kysymykseen "mitä tarkoittaa DNS". Työkäyttöön tarkoitettu tehtävänanto on usein kappaleen tai kaksi. Pituus ei ole itsessään hyve: turha täyte vie tilaa ja hämärtää tärkeimmät vaatimukset.
Miksi sama prompti antaa eri vastauksen joka kerta?
Mallit valitsevat seuraavan sanan osittain satunnaisesti, jotta teksti olisi luontevaa eikä toistaisi itseään. Siksi sama syöte voi tuottaa hieman eri tuloksen. Se on ominaisuus, ei vika. Jos tarvitset toistettavuutta, pyydä tiukkaa muotoa tai käytä työkalua, jossa satunnaisuutta voi säätää.
Kannattaako mallia pyytää arvioimaan oma vastauksensa?
Osittain. Malli löytää usein muotoiluvirheitä ja puuttuvia kohtia, kun pyydät sitä tarkistamaan vastauksen ohjeita vasten. Se on selvästi huonompi tunnistamaan omat asiavirheensä, koska se ei tiedä olevansa väärässä. Faktojen tarkistus kuuluu ihmiselle.
Voiko valmiita promptipohjia käyttää?
Voi, ja oma pohja kannattaa tallentaa toistuviin tehtäviin. Pohja on kuitenkin runko, johon täytetään konteksti joka kerta erikseen. Netistä kopioitu pitkä "supermahtava prompti" harvoin toimii paremmin kuin lyhyt tehtävänanto, jossa oma tilanne on kerrottu tarkasti.