Suuret kielimallit (LLM)
Lämpötila ja muut asetukset: näin säädät vastauksen luonnetta
Lämpötila ei tee mallista fiksumpaa tai tyhmempää. Se säätää sitä, kuinka rohkeasti malli poimii seuraavan sanan todennäköisyysjakaumasta, ja siitä seuraa kaikki muu.
Lyhyt vastaus
Lämpötila säätää satunnaisuutta, ei laatua. Malli laskee jokaiselle mahdolliselle seuraavalle tokenille todennäköisyyden, ja lämpötila tasoittaa tai terävöittää tätä jakaumaa ennen kuin yksi vaihtoehto arvotaan. Matala arvo tekee vastauksista toistettavampia ja tylsempiä, korkea arvo vaihtelevampia ja hallitsemattomampia. Kumpikaan ei paranna mallin tietoja eikä poista virheitä.
Sisällys
- Mistä satunnaisuus alun perin tulee
- Mitä lämpötila tekee jakaumalle
- Top-p ja top-k rajaavat vaihtoehtojoukon
- Miksi nolla-lämpötila ei tarkoita oikeaa vastausta
- Pituusraja ja katkeavat vastaukset
- Siemenluku ja toistettavuus
- Toiston rangaistus ja lopetusmerkit
- Mitä asetuksia kannattaa ylipäätään koskea
- Usein kysytyt kysymykset
- Lähteet ja lisälukemista
Tekoälypalvelun asetuksista löytyy usein liukusäädin nimeltä lämpötila, ja siitä liikkuu kaksi väärää käsitystä. Toisen mukaan matala lämpötila tekee mallista tarkemman ja luotettavamman. Toisen mukaan korkea lämpötila tekee siitä luovemman ja älykkäämmän. Kumpikaan ei pidä paikkaansa, koska asetus ei kosketa mallin tietoja lainkaan.
Lämpötila vaikuttaa yhteen ainoaan kohtaan: siihen hetkeen, jossa malli valitsee seuraavan tokenin. Kun ymmärrät sen hetken, kaikki asetukset asettuvat paikoilleen ja tiedät myös, mitä niillä ei voi korjata.
Mistä satunnaisuus alun perin tulee
Kielimalli tuottaa tekstiä yksi pala kerrallaan. Jokaisella askeleella se laskee todennäköisyyden kaikille mahdollisille seuraaville tokeneille: sanoille, sananosille ja välimerkeille. Tämä jakauma on mallin varsinainen tuotos. Mekanismi kuvataan tarkemmin artikkelissa miten kielimalli toimii.
Jakauma ei kuitenkaan vielä ole teksti. Jostain vaihtoehdosta pitää valita yksi, ja tätä valintaa kutsutaan poiminnaksi. Juuri poiminnassa asetukset vaikuttavat.
Jos malli valitsisi aina suurimman todennäköisyyden saaneen tokenin, sama kysymys tuottaisi aina saman vastauksen. Näin ei yleensä tehdä, koska tulos on tunnistettavan kaavamaista: teksti jää kiertämään turvallisiin muotoiluihin ja alkaa toistaa itseään. Sen sijaan seuraava token arvotaan jakaumasta niin, että todennäköisemmät vaihtoehdot voittavat useammin.
Tästä seuraa se arjessa hämmentävä havainto, että sama kysymys antaa eri vastauksen eri kerroilla. Kyse ei ole mallin mielialasta vaan arvonnasta.
Mitä lämpötila tekee jakaumalle
Lämpötila on luku, jolla mallin laskemat pistemäärät jaetaan ennen kuin ne muutetaan todennäköisyyksiksi. Vaikutus on helppo kuvata ilman matematiikkaa.
Matala lämpötila terävöittää jakaumaa. Kärkivaihtoehdon todennäköisyys kasvaa ja muut painuvat kohti nollaa. Ero kärjen ja kakkosen välillä suurenee, joten arvonta osuu lähes aina kärkeen.
Korkea lämpötila tasoittaa jakaumaa. Erot kutistuvat, ja epätodennäköisemmätkin vaihtoehdot saavat kelvollisen mahdollisuuden tulla valituiksi. Riittävän korkealla arvolla jakauma lähestyy tasaista arpajaista, ja teksti hajoaa.
Konkreettinen esimerkki auttaa. Oletetaan, että malli kirjoittaa lausetta "Sää on tänään" ja kärkivaihtoehtoina ovat sanat kaunis, pilvinen ja utuinen tässä järjestyksessä. Matalalla lämpötilalla vastaus on lähes joka kerta kaunis. Korkealla lämpötilalla utuinenkin tulee valituksi silloin tällöin. Malli ei tiedä säätä kummassakaan tapauksessa, joten asetus vaikuttaa vain sanavalinnan vaihteluun.
Olennaista on, että järjestys ei muutu. Todennäköisin token pysyy todennäköisimpänä kaikilla lämpötiloilla. Muuttuu vain se, kuinka usein malli poikkeaa siitä.
Yksi käytännön varoitus: asteikko ei ole sama kaikissa palveluissa. Sama numeroarvo voi tarkoittaa eri asiaa eri rajapinnassa, joten arvoja ei kannata siirtää palvelusta toiseen sellaisenaan vaan kokeilla uudestaan.
Top-p ja top-k rajaavat vaihtoehtojoukon
Lämpötila muuttaa todennäköisyyksiä mutta ei poista mitään vaihtoehtoa. Siihen tarvitaan kaksi muuta asetusta, jotka leikkaavat jakauman häntää ennen arvontaa.
Top-k pitää mukana vain k todennäköisintä vaihtoehtoa ja hylkää loput. Raja on kiinteä riippumatta siitä, miltä jakauma näyttää.
Top-p eli ydinpoiminta ottaa mukaan niin monta kärkivaihtoehtoa, että niiden yhteenlaskettu todennäköisyys ylittää annetun osuuden. Joukon koko siis elää tilanteen mukaan: kun malli on varma, mukaan pääsee ehkä yksi tai kaksi vaihtoehtoa, ja kun se on epävarma, kymmeniä.
Käytännössä top-p on näistä hyödyllisempi juuri tästä syystä. Se estää tekstin karkaamisen kohdissa, joissa oikea jatko on selvä, mutta sallii vaihtelun kohdissa, joissa monta jatkoa on yhtä hyvä.
Nämä kaksi vaikuttavat eri kohtaan kuin lämpötila. Lämpötila muuttaa sitä, kuinka jyrkästi vaihtoehdot eroavat toisistaan, kun taas top-p ja top-k päättävät, mitkä vaihtoehdot ovat ylipäätään mukana arvonnassa. Siksi niillä voi estää harvinaisen mutta selvästi väärän sanan pääsyn tekstiin ilman, että koko tekstistä tulee kaavamaista.
Kahden asetuksen yhtäaikaista säätämistä kannattaa välttää. Jos muutat sekä lämpötilaa että top-p:tä, et tiedä kumpi aiheutti muutoksen. Vakiintunut tapa on jättää toinen oletusarvoonsa.
Miksi nolla-lämpötila ei tarkoita oikeaa vastausta
Kun lämpötila asetetaan nollaan tai hyvin lähelle sitä, arvonta käytännössä lakkaa ja malli valitsee joka askeleella todennäköisimmän tokenin. Tätä kutsutaan ahneeksi poiminnaksi.
Tulos on toistettava. Se ei ole tarkempi eikä totuudenmukaisempi, ja tämä on asetuksiin liittyvistä väärinkäsityksistä vahingollisin.
Syy on siinä, mitä todennäköisyys mittaa. Se kertoo, kuinka hyvin token sopii jatkoksi opetusaineiston perusteella, ei sitä onko väite tosi. Jos malli ei tiedä asiaa, sen todennäköisin jatko on sujuva arvaus, ja nolla-lämpötilalla saat saman arvauksen joka kerta erittäin luottavaisesti esitettynä. Ilmiön juuret käydään läpi artikkelissa miksi tekoäly keksii asioita.
Matala lämpötila tekee virheestä toistettavan. Se ei tee siitä pienempää.
Ahneella poiminnalla on lisäksi oma tyypillinen vikansa: teksti jumittuu helposti silmukkaan, jossa sama lause tai listakohta toistuu. Tämä johtuu siitä, että juuri kirjoitettu rakenne nostaa saman rakenteen todennäköisyyttä seuraavallakin kierroksella.
Pituusraja ja katkeavat vastaukset
Pituusraja määrää, kuinka monta tokenia malli saa enintään tuottaa yhteen vastaukseen. Se on turvaraja ja kustannusraja, ei ohje.
Tästä syntyy tavallinen hämmennys: vastaus katkeaa kesken lauseen. Kyse ei ole virheestä eikä siitä, että malli olisi lopettanut ajattelun. Raja tuli vastaan ja tuottaminen pysähtyi. Jos jatkat pyytämällä mallia jatkamaan, se yleensä jatkaa siitä mihin jäi, koska katkennut teksti on edelleen keskustelussa mukana.
Kaksi muuta seikkaa kannattaa tietää. Pituusraja ei ole sama asia kuin konteksti-ikkuna, joka rajaa koko keskustelun kokoa. Ja koska suomen kieli pilkkoutuu tokeneiksi tehottomammin kuin englanti, sama pituusraja riittää suomeksi lyhyempään tekstiin, mikä selitetään artikkelissa tokenit ja suomen kieli.
Halutun pituuden pyytämiseen pituusraja on huono työkalu. Jos haluat lyhyen vastauksen, pyydä sitä kehotteessa. Pituusrajan pienentäminen ei tuota tiiviimpää tekstiä, vaan saman tekstin katkaistuna.
Siemenluku ja toistettavuus
Arvonta tarvitsee satunnaislukuja, ja ne tuotetaan koneella laskennallisesti. Siemenluku on lähtöarvo, josta tämä lukusarja alkaa. Sama siemenluku samalla kehotteella ja samoilla asetuksilla tuottaa periaatteessa saman vastauksen.
Tämä on hyödyllinen ominaisuus testaamisessa: voit muuttaa kehotetta ja nähdä eron ilman että satunnaisuus sotkee vertailua. Siemenlukua ei kuitenkaan tarjota kaikissa palveluissa, ja silloinkin toistettavuus on käytännössä usein vain likimääräinen. Palveluntarjoaja voi vaihtaa mallin version tai laskennan yksityiskohdat, ja jo pyöristyserot rinnakkain laskevissa palvelimissa riittävät viemään vastaukset eri suuntiin.
Jos toistettavuus on sinulle oikeasti tärkeää, älä luota pelkkään siemenlukuun. Tallenna kehote, asetukset ja saatu vastaus talteen sellaisenaan.
Toiston rangaistus ja lopetusmerkit
Kaksi asetusta selittää useimmat oudot lopputulokset, joita lämpötilalla ei saa korjattua.
Toiston rangaistus pienentää sellaisten tokenien todennäköisyyttä, jotka ovat jo esiintyneet tekstissä. Sitä käytetään estämään silmukoita, joissa malli jää toistamaan samaa lausetta. Asetuksessa on kuitenkin sivuvaikutus, joka näkyy suomessa selvemmin kuin englannissa: kun sama sana on pakko toistaa, esimerkiksi luettelossa tai lakitekstissä, rangaistus painaa oikean sanan alas ja malli alkaa keksiä kiertoilmaisuja. Liian korkealla arvolla kieli menee rikki.
Lopetusmerkit ja lopetusjonot kertovat mallille, milloin sen pitää pysähtyä. Malli tuottaa itse erityisen lopetustokenin, kun vastaus on sen mielestä valmis, ja sen lisäksi voidaan määrittää merkkijonoja, joiden kohdalla tuottaminen keskeytetään. Tämä on hyödyllistä koneellisessa käytössä, jossa vastauksen halutaan päättyvän tiettyyn kohtaan. Väärin asetettu lopetusjono katkaisee vastauksen ennenaikaisesti, ja oire näyttää täsmälleen samalta kuin pituusrajaan törmääminen.
Kummallakaan asetuksella ei ole tekemistä sisällön oikeellisuuden kanssa. Ne muokkaavat tuottamisen mekaniikkaa, eivät sitä mitä malli tietää.
Mitä asetuksia kannattaa ylipäätään koskea
Useimmissa tavallisissa käyttöliittymissä asetuksia ei näytetä lainkaan, ja se on tietoinen valinta: oletusarvot on viritetty toimimaan hyvin yleiskäytössä. Asetuksia näkee tyypillisesti vasta ohjelmointirajapinnassa tai kehittäjätyökaluissa.
| Asetus | Mitä säätää | Milloin kannattaa muuttaa | Tavallisin virhe |
|---|---|---|---|
| Lämpötila | Jakauman terävyyttä ja siten satunnaisuutta | Kun haluat joko toistettavuutta tai vaihtelua | Luullaan tarkkuussäätimeksi |
| Top-p | Mukaan otettavien vaihtoehtojen joukkoa | Kun teksti karkaa yksittäisissä kohdissa | Säädetään yhtä aikaa lämpötilan kanssa |
| Top-k | Vaihtoehtojen kiinteää lukumäärää | Harvoin, jos top-p on käytössä | Asetetaan niin pieneksi että teksti köyhtyy |
| Pituusraja | Vastauksen enimmäispituutta | Kustannuksen ja katkaisun hallintaan | Käytetään tiiviyden pyytämiseen |
| Siemenluku | Arvonnan lähtöarvoa | Testaamiseen ja vertailuun | Oletetaan takaavan täyden toistettavuuden |
| Toiston rangaistus | Jo käytettyjen tokenien painoa | Kun teksti jää silmukkaan | Nostetaan niin ylös että kieli rikkoutuu |
Järjestys, jossa ongelmia kannattaa lähestyä, on tämä.
- Korjaa kehote ensin. Epämääräinen kysymys tuottaa epämääräisen vastauksen kaikilla asetuksilla. Kehotteen osat voi koota promptin rakentajalla.
- Kerro haluttu muoto. Jos vastaus on väärän muotoinen, kyse on ohjeesta eikä satunnaisuudesta. Muodon pyytämistä käsitellään artikkelissa tulostemuodon pyytäminen.
- Vakioi toistuvat ohjeet. Jos säädät samoja asioita joka kerta, siirrä ne järjestelmäkehotteeseen.
- Laske lämpötilaa vain toistettavuuden vuoksi. Esimerkiksi luokittelussa, tiedon poiminnassa ja koneluettavassa tulosteessa vaihtelu on haitta.
- Nosta lämpötilaa vain kun haluat vaihtoehtoja. Ideointi, otsikkoehdotukset ja saman asian eri muotoilut hyötyvät vaihtelusta.
- Muuta yhtä asetusta kerrallaan. Kirjaa muutos ja aja sama testijoukko uudelleen. Muuten et tiedä mikä auttoi.
Yksi asia ei muutu millään asetuksella: mallin tiedot. Jos vastaus on asiallisesti väärä, säätimet eivät auta, vaan tieto pitää antaa mallille tai vastaus tarkistaa muualta. Asetukset säätävät sitä, miltä vastaus kuulostaa, eivät sitä pitääkö se paikkansa.
Usein kysytyt kysymykset
Mikä on hyvä lämpötila-arvo?
Sitä ei voi antaa yhtenä lukuna, koska asteikot vaihtelevat palvelusta toiseen. Nyrkkisääntö on, että toistettavuutta vaativissa tehtävissä käytetään matalaa arvoa ja ideointiin korkeampaa. Oletusarvo on useimmissa palveluissa viritetty järkeväksi kompromissiksi.
Tekeekö matala lämpötila tekoälystä tarkemman?
Ei. Se tekee vastauksesta toistettavamman, koska malli valitsee lähes aina todennäköisimmän jatkon. Jos malli ei tiedä asiaa, matala lämpötila vain toistaa saman arvauksen luotettavan kuuloisesti.
Miksi sama kysymys antaa eri vastauksia?
Koska seuraava sana arvotaan todennäköisyysjakaumasta, ei valita aina samaa. Lisäksi palvelu voi käyttää eri palvelinta tai päivittää mallia taustalla. Vaihtelu on siis normaalia eikä merkki virheestä.
Miksi vastaus katkeaa kesken lauseen?
Vastauksen pituusraja tuli vastaan. Voit pyytää mallia jatkamaan siitä mihin se jäi, koska katkennut teksti on edelleen keskustelussa mukana. Suomeksi raja tulee vastaan aikaisemmin kuin englanniksi, koska suomi kuluttaa enemmän tokeneita.
Missä lämpötila-asetus näkyy tavallisessa chat-käytössä?
Useimmiten ei missään. Kuluttajakäyttöliittymissä asetus on piilotettu ja lukittu, ja se näkyy vasta ohjelmointirajapinnassa tai kehittäjien työkaluissa. Tavallisessa käytössä kehotteen muotoilu on ainoa säädin.
Voiko lämpötilaa säätämällä estää hallusinaatiot?
Ei voi. Lämpötila vaikuttaa vain siihen, kuinka rohkeasti malli poikkeaa todennäköisimmästä jatkosta. Virheellinen väite voi olla mallin mielestä täysin todennäköinen, jolloin matala lämpötila tuottaa sen entistä varmemmin.