# Kehotteiden perusteet ## Peruskehote Yksinkertaisilla kehotteilla voi saavuttaa paljon, mutta tulosten laatu riippuu siitä, kuinka paljon tietoa sisällytät ja kuinka hyvin se on muotoiltu. Kehote voi sisältää tietoa, kuten *ohjeen* tai *kysymyksen*, ja muita yksityiskohtia, kuten *kontekstia*, *tietosisältöä* tai *esimerkkejä*. Voit käyttää näitä elementtejä ohjeistamaan mallia paremmin ja saada parempia tuloksia. Aloitetaan tarkastelemalla perusesimerkkiä yksinkertaisesta kehotteesta: *Kehote* ``` Taivas on ``` *Tulos:* ``` sininen. Taivas on sininen johtuen Rayleigh'n sirontailmiöstä. Auringonvalo koostuu monista eri aallonpituuksista, ja kun se kulkee ilmakehän läpi, se kohtaa molekyylejä ja pienhiukkasia. Nämä molekyylit ja hiukkaset hajottavat auringonvaloa eri suuntiin. Lyhyemmät aallonpituudet, kuten sininen ja violetti, hajaantuvat voimakkaammin kuin pidemmät aallonpituudet, kuten punainen ja keltainen. ``` Kuten näet, kielimalli tuottaa jatkumon merkkijonoja, jotka ovat järkeviä annetussa kontekstissa "Taivas on". Tulos saattaa olla odottamaton tai kaukana tehtävästä, jonka haluat saavuttaa. Tämä perusesimerkki korostaa myös tarvetta antaa enemmän kontekstia tai ohjeita siitä, mitä haluat erityisesti saavuttaa. Kokeillaan parantaa sitä hieman: *Kehote:* ``` Täydennä lause: Taivas on ``` *Tulos:* ``` sininen ja pilvet leijailevat kevyesti tuulen mukana, luoden kauniin maiseman. ``` Onko se parempi? No, kerroit mallille, että sen pitää täydentää lause, joten tulos näyttää paljon paremmalta, koska se noudattaa tarkalleen sitä, mitä kerroit sen tekevän ("täydennä lause"). Tämä optimaalisten kehotteiden suunnittelun lähestymistapa mallin ohjeistamiseksi tehtävän suorittamiseen on sitä, mitä kutsutaan **kehotesuunnitteluksi**. Edellä oleva esimerkki on peruskuvaus siitä, mitä LLM:illä on mahdollista saavuttaa tänään. Nykyiset LLM:t pystyvät suorittamaan monenlaisia kehittyneitä tehtäviä, jotka vaihtelevat tekstin tiivistämisestä matemaattiseen päättelyyn ja koodin luontiin. ## Kehotteen Muotoilu Edellisessä esimerkissä kokeiltiin erittäin yksinkertaista kehotetta. Tavallinen kehote on seuraavassa muodossa: ``` ? ``` tai ``` ``` Voit muotoilla tämän kysymyksen ja vastauksen (QA) muotoon, joka on standardi monissa QA-aineistoissa, seuraavasti: ``` Q: ? A: ``` Kun käytät yllä olevan kaltaista kehotetta, sitä kutsutaan myös *nollaohjauskehotteeksi*, eli annat mallille suoraan kysymyksen, antamatta esimerkkejä tehtävästä, jonka haluat sen suorittavan. Jotkut suuret kielimallit pystyvät toteuttamaan nollaohjauskehotteita, mutta se riippuu tehtävän monimutkaisuudesta ja sen sisällöstä. Ottaen huomioon yllä olevan kehotteenn muotoilun, yksi suosittu ja tehokas kehotetekniikka on *vähäisen ohjauksen kehotteen* käyttö, jossa tarjoat esimerkkejä halutulle toiminnalle. Voit muotoilla muutaman vähäisen ohjauksen kehotteita seuraavasti: ``` ? ? ? ? ``` Kysymys/vastaus-tyyliin muotoiltu lopputulos näyttää tältä: ``` Q: ? A: Q: ? A: Q: ? A: Q: ? A: ``` Pidä mielessä että kysymys/vastaus-muotoilun käyttö ei ole ainoa tapa muotoilla kehotteita. Kehotteen muoto riippuu tehtävästä, johon haluat kielimallin keskittyvän. Esimerkiksi yksinkertaisen luokittelutehtävän suorittamiseksi voit antaa esimerkkejä, jotka havainnollistavat tehtävää seuraavasti: *Kehote:* ``` Tämä on mahtavaa! // Positiivinen Tämä on huono! // Negatiivinen Vau, tuo elokuva oli upea! // Positiivinen Mikä kamala esitys! // ``` *Tulos:* ``` Negatiivinen ``` Vähäisen ohjauksen kehotteet auttavat mallia oppimaan tehtävän kontekstista ja tuottamaan parempia tuloksia, koska ne tarjoavat mallille esimerkkejä siitä, mitä odotetaan. Tämänkaltainen kontekstin avulla oppiminen on yksi kielimallien keskeisistä ominaisuuksista, kun ne suorittavat erilaisia tehtäviä.