mirror of
https://github.com/dair-ai/Prompt-Engineering-Guide
synced 2024-11-02 15:40:13 +00:00
111 lines
6.0 KiB
Plaintext
111 lines
6.0 KiB
Plaintext
# Vähäisen ohjauksen kehottaminen
|
|
|
|
Vaikka suurten kielimallien nollakehottamisen kyvyt ovat huomattavia, ne eivät vielä pärjää monimutkaisemmissa tehtävissä käyttäen vain nollakehottamista. Vähäisen ohjauksen kehotteiden avulla voidaan mahdollistaa kontekstissa tapahtuva oppiminen tarjoamalla kehotteessa esimerkkejä mallin suorituskyvyn parantamiseksi. Esimerkit toimivat ehtona seuraaville askelille, joiden mukaisesti haluamme mallin tuottavan vastauksen.
|
|
|
|
[Touvron ym. 2023](https://arxiv.org/pdf/2302.13971.pdf) mukaan vähäisen ohjauksen ominaisuudet tulivat esiin ensimmäisen kerran, kun malleja skaalattiin riittävän suuriksi [(Kaplan ym., 2020)](https://arxiv.org/abs/2001.08361).
|
|
|
|
Demonstroimme vähäisen ohjauksen oppimista esimerkin avulla, joka esiteltiin [Brown et al. 2020](https://arxiv.org/abs/2005.14165) julkaisussa. Esimerkissä tehtävänä on käyttää uutta sanaa oikein lauseessa.
|
|
|
|
*Kehote:*
|
|
```
|
|
"Whatpu" on pieni, karvainen eläin, joka on kotoisin Tansaniasta. Esimerkki lauseesta, joka käyttää sanaa whatpu on:
|
|
Matkustimme Afrikassa ja näimme näitä hyvin söpöjä whatpuja.
|
|
"Farduddle" tarkoittaa hypätä ylös ja alas todella nopeasti. Esimerkki lauseesta, joka käyttää sanaa farduddle on:
|
|
|
|
Vastaus:
|
|
```
|
|
|
|
*Tulos:*
|
|
```
|
|
Kun näimme whatput, ne alkoivat farduddlemaan innoissaan ympäriinsä.
|
|
```
|
|
|
|
Voimme havaita, että malli on jollakin tavalla oppinut suorittamaan tehtävän antamalla sille vain yhden esimerkin (eli yhden ohjeen kehotteella). Vaikeampien tehtävien kohdalla voimme kokeilla lisätä esimerkkien määrää (esim. 3-, 5-, tai 10-ohjeen kehottella jne.).
|
|
|
|
[Min ym. (2022)](https://arxiv.org/abs/2202.12837), löydösten mukaisesti, tässä on muutama lisävinkki demonstraatioiden/esimerkkien käyttöön vähäisen ohjauksen yhteydessä:
|
|
|
|
- "sekä esimerkkien määrittämän syötetekstin tunnistetila että jakautuminen ovat tärkeitä (riippumatta siitä, ovatko tunnisteet oikeita yksittäisille syötteille)"
|
|
- käyttämäsi muoto vaikuttaa myös suorituskykyyn, vaikka käyttäisit vain satunnaisia tunnisteita, tämä on paljon parempi kuin ei tunnisteita lainkaan.
|
|
- lisätulokset osoittavat, että satunnaisten tunnisteiden valitseminen todellisesta tunnisteiden jakaumasta (sen sijaan, että käytettäisiin yhtenäistä jakaumaa) auttaa myös.
|
|
|
|
Kokeillaan muutamaa esimerkkiä. Kokeillaan ensin esimerkkiä, jossa on satunnaiset tunnisteet (eli tunnisteet Negatiivinen ja Positiivinen on annettu syötteille satunnaisesti):
|
|
|
|
*Kehote:*
|
|
```
|
|
Tämä on mahtavaa! // Negatiivinen
|
|
Tämä on huonoa! // Positiivinen
|
|
Vau, tuo elokuva oli siisti! // Positiivinen
|
|
Mikä kamala esitys! //
|
|
```
|
|
|
|
*Tulos:*
|
|
```
|
|
Negatiivinen
|
|
```
|
|
|
|
Saatamme silti saada oikean vastauksen, vaikka tunnisteet on annettu satunnaisesti. Huomaa, että säilytimme myös muodon, mikä auttaa myös. Itse asiassa lisäkokeilujemme perusteella näyttää siltä, että uudemmat GPT-mallit, joita kokeilemme, ovat joustavampia jopa satunnaisten formaattien suhteen. Esimerkki:
|
|
|
|
*Kehote:*
|
|
```
|
|
Positiivinen Tämä on mahtavaa!
|
|
Tämä on huonoa! Negatiivinen
|
|
Vau, tuo elokuva oli siisti!
|
|
Positiivinen
|
|
Mikä kamala esitys! --
|
|
```
|
|
|
|
*Tulos:*
|
|
```
|
|
Negatiivinen
|
|
```
|
|
|
|
Yllä olevassa formaatissa ei ole johdonmukaisuutta, mutta malli ennusti silti oikean tunnisteen. Meidän on tehtävä perusteellisempi analyysi, jotta voimme varmistaa, päteekö tämä erilaisiin ja monimutkaisempiin tehtäviin, mukaan lukien erilaiset kehotevariaatiot.
|
|
|
|
|
|
### Vähäisen Ohjauksen Kehotteiden Rajoitukset
|
|
|
|
Vaikka tavanomainen vähäisen ohjauksen kehote toimii hyvin monissa tehtävissä, se ei ole täydellinen tekniikka, erityisesti monimutkaisempien päättelytehtävien kohdalla. Havainnollistetaan, miksi näin on. Muistatko aiemman esimerkin, jossa annoimme seuraavan tehtävän:
|
|
|
|
```
|
|
Parittomat luvut tässä ryhmässä muodostavat parillisen summan: 15, 32, 5, 13, 82, 7, 1.
|
|
|
|
Vastaus:
|
|
```
|
|
|
|
Jos yritämme tätä uudelleen, malli tuottaa seuraavan vastauksen:
|
|
|
|
```
|
|
Kyllä, parittomat luvut tässä ryhmässä muodostavat 107, mikä on parillinen luku.
|
|
```
|
|
|
|
Tämä ei ole oikea vastaus, mikä korostaa paitsi järjestelmien rajoituksia myös tarvetta kehittyneemmälle kehotesuunnittelulle.
|
|
|
|
Kokeillaan lisäämällä joitakin esimerkkejä ja katsotaan, paraneeko vähäisen ohjauksen kehotteiden avulla saatu tulos.
|
|
|
|
*Kehote:*
|
|
```
|
|
Parittomat luvut tässä ryhmässä muodostavat parillisen summan: 4, 8, 9, 15, 12, 2, 1.
|
|
A: Vastaus on Epätosi.
|
|
|
|
Parittomat luvut tässä ryhmässä muodostavat parillisen summan: 17, 10, 19, 4, 8, 12, 24.
|
|
A: Vastaus on Tosi.
|
|
|
|
Parittomat luvut tässä ryhmässä muodostavat parillisen summan: 16, 11, 14, 4, 8, 13, 24.
|
|
A: Vastaus on Tosi.
|
|
|
|
Parittomat luvut tässä ryhmässä muodostavat parillisen summan: 17, 9, 10, 12, 13, 4, 2.
|
|
A: Vastaus on Epätosi.
|
|
|
|
Parittomat luvut tässä ryhmässä muodostavat parillisen summan: 15, 32, 5, 13, 82, 7, 1.
|
|
A:
|
|
```
|
|
|
|
*Tulos:*
|
|
```
|
|
Vastaus on Tosi.
|
|
```
|
|
|
|
Se ei toiminut. Vaikuttaa siltä, että vähäisen ohjauksen kehotteet eivät riitä luotettavien vastausten saamiseksi tämäntyyppiseen päättelyongelmaan. Yllä oleva esimerkki antaa perustietoa tehtävästä. Tarkemmin tarkasteltuna esittelemämme tehtävätyyppi sisältää useita lisäpäättelyvaiheita. Toisin sanoen, ongelman jakaminen osiin ja sen osoittaminen mallille saattaa auttaa.
|
|
Ajatusketjua höydyntävä [chain-of-thought (CoT) kehottaminen](https://arxiv.org/abs/2201.11903) on saavuttanut suosiota ratkaisemaan monimutkaisempia laskennallisia, yleistä järkeä vaativia ja symbolisia päättelytehtäviä.
|
|
|
|
Esimerkkien tarjoaminen on hyödyllistä joissakin tehtävissä. Kun nollakehottaminen ja vähäisen ohjauksen kehottaminen eivät riitä, se saattaa tarkoittaa, että mallin oppimat asiat eivät ole riittäviä tehtävän suorittamiseksi hyvin. Tässä vaiheessa on suositeltavaa alkaa harkita mallien asetusten hienosäätämistä tai kokeilla kehittyneempiä kehotesuunnittelutekniikoita. Seuraavaksi keskustelemme kehotesuunnittelutekniikasta, joka on saavuttanut suosiota. Sitä kutsutaan ajatusketjua hyödyntäväksi kehotesuunnitteluksi. |