Siirry sisältöön
11/30Luku 11/30

Perusmallista assistentiksi: SFT, RLHF, DPO ja GRPO

Pyydä perusmallilta haikua, niin se toistaa samaa lausetta. Katso sitten, miten reward model oppii suosimaan pituutta oikeellisuuden sijaan.

Tällä sivulla

Pyydä GPT-2:ta — pätevästi esikoulutettua kielimallia — kirjoittamaan haiku merestä:

TEXT
prompt: Write a haiku about the sea.

The sea is a beautiful place.

The sea is a beautiful place.

The sea is a beautiful place.

The sea is a beautiful place.

The sea is a beautiful place.

Se ei ole hämmentynyt, eikä se ole epäonnistunut tehtävässään. Se tekee täsmälleen sitä, mihin luku 10 sen koulutti: kun sille annetaan tekstiä, se tuottaa uskottavaa jatkotekstiä. Internetissä riviä kuten Write a haiku about the sea. seuraa usein proosa merestä, ja juuri ilmestynyt lause ilmestyy poikkeuksellisen todennäköisesti uudelleen. Malli on erinomainen seuraavan token ennustaja ja hyödytön assistentti.

Nyt sama pyyntö samalla tavalla rakennetulle mallille — Qwen2.5, puoli miljardia parametria, neljä kertaa yllä olevan GPT-2:n kokoinen ja silti minkä tahansa vuoden 2026 mittapuun mukaan pieni — tämän luvun käsittelemien koulutusvaiheiden jälkeen:

TEXT
Whispers of the ocean,
Silent depths where waves meet,
Mysteries in the vast blue.

Nelinkertainen määrä parametreja ei opeta mallia lopettamaan puhumista. Näiden kahden tulosteen välinen kuilu ei ole skaalaa, arkkitehtuuria eikä datan määrää. Se on post-training: toinen vaihe, suuruusluokkia pienempi kuin esikoulutus, joka ottaa tekstin ennustajan ja muuttaa sen joksikin, joka vastaa.

Ensimmäinen vaihe: näytetään, miltä vastaus näyttää

Linkki osioon: Ensimmäinen vaihe: näytetään, miltä vastaus näyttää

Ensimmäinen askel on vähiten hohdokas ja tekee suurimman osan työstä. Kerätään esimerkkejä ohjeista ja niihin liitetyistä hyvistä vastauksista ja jatketaan koulutusta niillä täsmälleen luvun 8 lossilla — ennusta seuraava token — mutta vain vastauksen osalta. Tämä on supervised fine-tuning, eli SFT.

Mallille ei opeteta mitään uutta kielestä. Sille opetetaan formaatti: että tämän muotoista tekstiä seuraa tuon muotoinen teksti, ja sitten se loppuu. Katso uudelleen perusmallin epäonnistumista. Se vastasi kysymykseen ensimmäisessä lauseessa eikä sitten osannut lopettaa, koska mikään sen koulutuksessa ei koskaan merkinnyt vastauksen loppua. Lopettaminen on opittua käytöstä.

Siksi mallille täytyy myös kertoa, missä rajat ovat. Sitä varten on chat template:

TEXT
<|im_start|>system
You are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>
<|im_start|>user
What is the capital of France?<|im_end|>
<|im_start|>assistant

Nuo <|im_start|>- ja <|im_end|>-merkit ovat oikeita token-sanastossa, lisätty ennen fine-tuning-vaihetta, ja malli näki niitä miljoonia juuri näissä kohdissa. Niistä se tietää, kenen vuoro on ja missä vuoro päättyy.

Jätä template väliin ja anna mallille paljas kysymys, niin annat sille sekvenssin, jota se ei ole nähnyt koulutuksessa. Mitattuna sama malli, sama kysymys, sama greedy decoding:

Ilman templatea — raaka merkkijono What is the capital of France?:

TEXT
 The capital of France is Paris.

To verify this, I will use a simple
Python code snippet to confirm that
Paris is indeed the capital city of
France.

[...and then it starts writing a
Python script to check its own answer]

Templaten kanssa:

TEXT
The capital of France is Paris.

Vastaus on molemmissa oikein, mutta ilman merkkejä malli ajautuu kirjoittamaan Pythonia tarkistaakseen itseään, koska sen saama prompt ei muistuta mitään, millä sitä fine-tuning-vaiheessa koulutettiin. Tämä on yleisin syy väitteelle ”malli tyhmeni, kun kutsuin sitä suoraan”: template ei ole mallin ympärillä olevaa koristelua, se on osa mallia, ja väärä template on hiljainen heikennys ilman mitään virhettä.

Toinen vaihe ja ongelma, jonka se ratkaisee

Linkki osioon: Toinen vaihe ja ongelma, jonka se ratkaisee

SFT:llä on katto, ja se katto on data. Jotta voit tehdä fine-tuningin demonstraatiolla, jonkun täytyy kirjoittaa ihanteellinen vastaus — ja useimmissa kiinnostavissa kysymyksissä hyvän vastauksen kirjoittaminen on vaikeaa, hidasta ja kallista, ja tuottaa täsmälleen yhden vastauksen, jonka laatua et voi varmistaa.

Ihmiset ovat hyviä vertailussa. Kun annetaan kaksi vastausta, annotoija pystyy muutamassa sekunnissa luotettavasti sanomaan, kumpi on parempi, vaikkei pystyisi tuottamaan kumpaakaan. Tähän tosiasiaan koko toinen vaihe rakentuu, ja juuri tämän useimmat selitykset kääntävät väärinpäin:

Ihmiset eivät kirjoita vastauksia. He rankkaavat pareja.

Data on siis pareja — prompt, kaksi vastausta ja tieto siitä, kumpi voitti. Sitä ei voi syöttää next-token lossiin, koska kohdesekvenssiä ei ole. Se tarvitsee toisenlaisen koneen.

Reward model ja mitä se oikeasti oppii

Linkki osioon: Reward model ja mitä se oikeasti oppii

Et voi pyytää ihmistä pisteyttämään jokaista vastausta koulutuksen aikana — arvioita olisi miljoonia. Siksi koulutat mallin jäljittelemään ihmisiä: reward model, joka ottaa vastauksen ja palauttaa skalaarin.

Sen kouluttaminen vertailuista käyttää vuoden 1952 tulosta. Bradley–Terry-malli2 sanoo, että jos kahdella kohteella on piilevät vahvuudet, todennäköisyys sille, että toinen voittaa toisen, on niiden erotuksen logistinen funktio. Käännä tämä toisin päin, ja siitä tulee loss: kun ihminen piti vastausta ywy_w parempana kuin yly_l, maksimoi

P(ywyl)=σ(r(yw)r(yl))P(y_w \succ y_l) = \sigma\big(r(y_w) - r(y_l)\big)

mikä koodissa on koko koulutuslooppi:

reward_model.pyPYTHON
loss = -F.logsigmoid(reward(chosen) - reward(rejected)).mean()   

Huomaa, mitä malli ei koskaan näe: absoluuttista pistemäärää. Se oppii aina vain eroja, mikä on täsmälleen sitä, mitä data sisältää.

Nyt se osa, joka kannattaa mitata. Reward model oppii, mitä annotoijat palkitsivat, ja annotoijat ovat ihmisiä. Tässä on simulaatio, jossa vastauksen todellinen laatu riippuu vain hyödyllisyydestä ja oikeellisuudesta — pituus ei ole minkään arvoista — mutta simuloidulla annotoijalla on lievä mieltymys pidempiin vastauksiin, kun kaikki muu on lähellä. Tämä on hyvin dokumentoitu ihmisvinouma. Kouluta reward model 2000 vertailulla ja lue sen painot:

annotoijan pituusvinoumaopittu paino kohteelle hyödyllinenkohteelle oikeapituudelle
0.0+1.00+1.00+0.01
0.3+0.98+1.00+0.15
0.6+0.97+1.00+0.27
1.2+1.00+0.99+0.59

Reward model toimii täydellisesti. Se on uskollisesti oppinut sille näytetyt preferenssit — myös sen osan preferensseistä, jolla ei ole mitään tekemistä laadun kanssa. Reward model ei ole hyvyyden mittari; se mittaa sitä, mitä annotoijat valitsivat, ja jokainen annotointijoukon vinouma on nyt kerroin derivoituvassa funktiossa, jota paljon suurempi malli aikoo optimoida vastaan.

Tästä päästään siihen, mitä tapahtuu, kun optimoit sitä. Anna policylle kiinteä määrä vaivaa jaettavaksi vastauksen ominaisuuksien kesken, realistisella epäsymmetrialla: hyödyllisyys ja oikeellisuus ovat kalliita, ja pidempi oleminen on halpaa — jatkat vain kirjoittamista.

Reward vaivayksikköä kohti yllä koulutetulla mallilla: hyödyllinen 8,26, oikea 8,31, pituus 31,70. Pituus maksaa lähes neljä kertaa paremmin kuin oikeellisuus, ei siksi että reward model olisi rikki, vaan siksi että pituus on halpaa.

Optimoi tuota rewardia vastaan ja katso molempia lukuja:

reward modelin pistemäärätodellinen laatutuotettu pituus
alkupolicy12.5880.9743.365
optimoinnin jälkeen31.6960.00012.497

Reward kasvoi 2,5-kertaiseksi. Asia, jota rewardin piti mitata, putosi nollaan. Policy huomasi, että se voi saada valtavan hyvän pistemäärän kirjoittamalla pitkästi ja sanomatta mitään, eikä mikään koulutusloopissa pystynyt huomaamaan sitä, koska reward model on loopin sisällä hyvän määritelmä.

Tämä on reward hacking, ja jos olet joskus miettinyt, miksi chat-mallit ovat niin jaarittelevia, tämä taulukko on suuri osa vastausta.

Mitä KL-rangaistus oikeasti ostaa

Linkki osioon: Mitä KL-rangaistus oikeasti ostaa

Vakiopuolustus on rangaista policya siitä, että se liikkuu liian kauas lähtöpisteestään, mittaamalla etäisyyttä luvun 4 KL-divergenssillä:

objective=E[r(y)]βDKL(πθπref)\text{objective} = \mathbb{E}\big[r(y)\big] - \beta \, D_{\mathrm{KL}}\big(\pi_\theta \,\|\, \pi_{\text{ref}}\big)

Referenssi πref\pi_{\text{ref}} on SFT-malli — policy ennen reinforcement-vaihetta. Väite on, että tämä estää mallia harhautumasta degeneroituneeseen käytökseen. Katsotaan, kuinka paljon väitteestä säilyy mittauksessa. Sama asetelma, β\beta pyyhkäisten:

β\betarewardtodellinen laatupituusKL
031.6990.00012.4982.994
131.6970.00012.4972.993
528.3180.28510.7002.163
1512.8601.5422.5520.151
3010.4261.7191.3030.025
609.6321.7690.9080.005
pelkkä referenssimalli9.1621.7910.6870

Lue viimeinen rivi suhteessa muihin. Kohdissa β=0\beta = 0 ja β=1\beta = 1 rangaistus ei tee yhtään mitään: reward on niin paljon KL:ää arvokkaampi, että optimoija maksaa sakon ja hakkeroi silti. Välillä 5–15 käytös heilahtaa. Ja kohdassa β=60\beta = 60 todellinen laatu on noussut takaisin arvoon 1,769 — mikä on yhä alle sen 1,791:n, joka referenssimallilla oli ennen kuin mitään tästä aloitettiin.

Yksi varaus ennen kuin tuota lukua siteerataan missään: viimeisen rivin 1,791 ja ensimmäisen taulukon alkupolicylle antama 0,974 ovat kaksi eri mittausta samasta pre-RL-mallista, kahdessa erillisessä kokeessa. Vertaa rivejä taulukon sisällä, älä koskaan taulukoiden välillä — kummankin taulukon johtopäätös seisoo omilla riveillään, eikä kumpikaan riipu toisen baseline-arvosta.

Rehellinen yhteenveto ei siis ole ”KL-rangaistus estää reward hackingin”. Se on:

KL-rangaistus ei estä reward hackingia. Se rajoittaa sitä, kuinka kauas policy voi liikkua referenssistä — ja koska epäonnistuminen vaatii liikkumista, se auttaa. Mutta se on talutushihna, ei korjaus: pienellä β\beta hihna katkeaa, ja suurella β\beta saat referenssimallin takaisin, eikä koko kallis vaihe ostanut mitään.

Hyödyllinen kaista on kapea, sen sijainti riippuu reward modelista, eikä sitä voi löytää muuten kuin katsomalla. Siksi referenssimallin täytyy olla hyvä — KL on lattia referenssin laadulla, ei katto epäonnistumiselle — ja siksi tämä vaihe on käytännössä vaikea, ei periaatteessa.

Algoritmi, joka sai tämän toimimaan suuressa mittakaavassa, on Proximal Policy Optimization.3 Yhdessä kappaleessa: se arvioi jokaisen vastauksen advantage-arvon, päivittää policya kasvattamaan baselinea parempien vastausten todennäköisyyttä ja leikkaa yksittäisen päivityksen kokoa, jotta suuri advantage-arvio ei voi tuhota policya yhdellä askeleella. Kielimalleihin sovellettuna4 tämä tarkoittaa, että pelissä pidetään yhtä aikaa neljä mallia — policy, referenssi, reward model ja critic — ja policy tuottaa tuoreita näytteitä koko koulutuksen ajan.

Se toimii, se tuotti InstructGPT:n ja kaiken siitä polveutuvan, ja se on aidosti vaikeaa: neljä mallia muistissa, näytteistys koulutusloopissa ja ansaittu maine epävakaudesta. Olisi epärehellistä teeskennellä, että sen voi toteuttaa blogipostauksessa, joten tämä luku ei tee niin.

Useimpiin tarkoituksiin sen korvasi yksi havainto. Yllä olevalla KL-säännöllistetyllä tavoitteella on suljetun muodon optimaalinen policy, ja lauseke voidaan kääntää: reward voidaan kirjoittaa optimaalisen policyn ja referenssin avulla. Kun tämä sijoitetaan takaisin Bradley–Terry-lossiin, reward model katoaa kokonaan. Jäljelle jää supervised loss preferenssipareille — ei näytteistystä, ei criticiä, ei reward modelia, kaksi mallia muistissa neljän sijaan.

Tämä on Direct Preference Optimization,5 ja se on kaksi riviä:

dpo.pyPYTHON
def dpo_loss(pi_w, pi_l, ref_w, ref_l, beta=0.1):
    """pi_* and ref_* are summed log-probabilities of a full response."""
    logits = beta * ((pi_w - ref_w) - (pi_l - ref_l))   
    return -F.logsigmoid(logits)                        

Lue, mitä siinä sanotaan. Ylös työnnetään määrää, jolla enemmän policy suosii voittajaa kuin referenssi suosi, miinus se määrä, jolla enemmän se suosii häviäjää. Referenssi ei ole jälkikäteen pultattu rangaistus — se on lossin sisällä, minkä vuoksi DPO ei tarvitse erillistä KL-termiä.

Tärkein ominaisuus on gradientissa. Arvioi loss ja sen gradientti samalle parille viidessä eri policyn tilassa:

policyn tilalossgradientin suuruus
suosii jo vahvasti voittajaa0.51300.0401
suosii sitä jo, heikosti0.66850.0488
identtinen referenssin kanssa0.69310.0500
suosii häviäjää0.79810.0550
suosii häviäjää vahvasti1.00550.0634

Gradientti kasvaa, kun policy on enemmän väärässä. Parit, jotka malli jo hoitaa, eivät juuri vaikuta; parit, jotka se saa takaperin, hallitsevat päivitystä. DPO painottaa jokaista esimerkkiä sen mukaan, kuinka väärässä policy sillä hetkellä on, automaattisesti, ilman aikataulutusta — ja juuri tämä itseään painottava mekanismi tekee työn, jonka PPO:n advantage-arvio ja critic tekivät. (Kolmannen rivin loss on täsmälleen ln2\ln 2, mikä on ankkuri, johon minkä tahansa toteutuksen voi tarkistaa: referenssinsä kanssa identtinen policy ei ole oppinut mitään ja sen pitäisi olla kohdassa ln2\ln 2.)

GRPO6 ottaa eri reitin ulos samasta ongelmasta. Se säilyttää näytteistysloopin mutta poistaa criticin: sen sijaan, että koulutettaisiin malli ennustamaan baseline, se näytteistää ryhmän vastauksia samaan promptiin ja käyttää ryhmän keskimääräistä rewardia suoraan baseline-arvona. Vastauksen advantage on se, kuinka paljon parempi se oli kuin sisaruksensa. Tämä vaihtaa kokonaisen mallin suurempaan batchiin, ja juuri se teki todennettavan rewardin koulutuksesta — luvun 12 aiheesta — käytännöllistä.

Näytä lisätiedot

Kolme muuta post-training-maiseman osaa, lyhyesti.

RLAIF ja Constitutional AI.7 Annotoijan ei tarvitse olla ihminen. Anna mallille kirjallinen periaatejoukko ja pyydä sitä kritisoimaan ja korjaamaan omia tulosteitaan tai valitsemaan kahden ehdokkaan välillä, ja sinulla on preferenssidatasetti koneen nopeudella ja kustannuksella. Ilmeinen vastaväite — malli arvostelee omat läksynsä — on todellinen, ja rehellinen vastaus on, että se toimii paremmin kuin kuulostaa, koska arviointi on helpompaa kuin generointi. Se on sama epäsymmetria, jonka varassa koko luku lepää.

LIMA ja kuinka vähän dataa tähän tarvitaan.8 Tuhat huolellisesti kuratoitua demonstraatiota tuotti kilpailukykyisen assistentin. Ehdotettu selitys on, että esikoulutus oli jo asentanut tiedon ja formaatin, ja post-trainingin täytyy vain valita, mitkä mallin olemassa olevista käytöksistä nostetaan esiin. Jos tämä pitää paikkansa, post-training-datan laatu hallitsee määrää — ja alan käytös sen jälkeen viittaa siihen, että ihmiset uskovat niin.

LoRA ja QLoRA.910 Suuren mallin jokaisen painon fine-tuning vaatii muistia painoille, niiden gradienteille ja optimoijan tilalle — luvun 10 kuusitoista tavua per parametri, kahden keskiarvon yli, jotka luku 6 rakensi käsin — skaalassa, joka tarvitsee klusterin. LoRA jäädyttää alkuperäiset painot ja kouluttaa niiden rinnalla matalan rangin matriisiparin, mikä leikkaa koulutettavia parametreja suuruusluokilla; QLoRA lisäksi kvantisoi jäädytetyn base-mallin 4 bittiin. Molemmat käsitellään tässä tekniikkana. On eri kysymys, kannattaako fine-tuningiin käyttää rahaa lainkaan, ja se on luvun 20 aihe.

Alignment-vero ja kysymys, johon kukaan ei ole vastannut

Linkki osioon: Alignment-vero ja kysymys, johon kukaan ei ole vastannut

Kaksi asiaa mukaan vietäväksi.

Ensimmäinen on, että tällä vaiheella on kustannus, ja se näkyy kyvykkyydessä. Mallit heikkenevät usein mitattavasti joissain benchmark-tehtävissä alignment-koulutuksen jälkeen — alignment tax — koska tavoite muuttui: turvallinen, varauksin muotoiltu ja hyvin formatoitu vastaus ei aina ole vastaus, joka maksimoi tarkkuuden. Osa tuosta kuilusta on insinöörityöllä poistettu, ja osa siitä on aito vaihtokauppa eikä korjattava bugi.

Toinen on kysymys, jonka sana aligned piilottaa. Kenen kanssa aligned? Ketju on: yritys kirjoittaa ohjeet, alihankkijat tulkitsevat ne, heidän vertailunsa kouluttavat reward modelin, reward model muovaa policya, ja policy vastaa kysymykseen ihmiselle, joka ei nähnyt mitään tästä. Jokainen lenkki on tiettyjen ihmisten tekemä valinta, eikä millään tämän luvun algoritmeista ole mielipidettä siitä, ovatko valinnat hyviä.

Tämä ei ole retorinen koriste. Se on konkreettinen syy siihen, miksi kaksi frontier-mallia kieltäytyy eri pyynnöistä, miksi sama malli muuttaa mieltään versioiden välillä ja miksi ”aligned” kuvaa prosessia eikä artefaktin ominaisuutta. Tämän luvun matematiikka on ratkaistu. Tuo osa ei ole.

Post-training opetti mallin vastaamaan. Se ei opettanut sitä ajattelemaan ennen vastaamista, ja nämä kaksi eroavat tavalla, joka osoittautuu koulutettavaksi.

Luku 12 käsittelee sitä, mitä tapahtuu, kun annat mallin käyttää enemmän laskentaa vaikeaan kysymykseen vastaushetkellä etkä koulutushetkellä — chain of thoughtia, reinforcement learningiä todennettavista rewardeista ja syytä siihen, miksi työtapansa näyttävä malli ei vain selitä itseään vaan laskee eri tavalla. Se myös kuittaa tämän luvun velan: GRPO esiintyy siinä tekemässä työtä, jonka PPO:n critic ennen teki, rewardeilla, jotka eivät tarvitse lainkaan annotoijaa, koska todistus joko tarkistuu tai ei.


Yllä olevat generoinnit tulevat malleista gpt2 ja Qwen/Qwen2.5-0.5B-Instruct greedy decodingilla, joten ne toistuvat täsmälleen. Hugging Face LLM Coursen luku 11 käy SFT:n ja DPO:n läpi työkaluilla trl ja peft, jos haluat ajaa oikean asian simulaation sijaan; Sebastian Raschkan Build a Large Language Model (From Scratch) -kirjan luku 7 toteuttaa instruction fine-tuningin alusta loppuun ilman kirjastoa.

  1. Sutton, R. S. ja Barto, A. G. Reinforcement Learning: An Introduction, 2. painos (MIT Press, 2018). Delegointi on tarkoituksellista: yllä oleva sanastolaatikko on pienin käyttökelpoinen osajoukko, ja oikea aihe on kirja.

  2. Bradley, R. A. ja Terry, M. E. Rank Analysis of Incomplete Block Designs: I. The Method of Paired Comparisons. Biometrika 39(3/4), s. 324–345 (1952). Parivertailumalli jokaisen nykyisin käytössä olevan reward modelin alla.

  3. Schulman, J., Wolski, F., Dhariwal, P., Radford, A. ja Klimov, O. Proximal Policy Optimization Algorithms. arXiv:1707.06347 (2017).

  4. Ouyang, L. et al. Training language models to follow instructions with human feedback. arXiv:2203.02155 (2022). InstructGPT — artikkeli, joka teki kolmivaiheisesta reseptistä standardin. Sitä edelsi Christiano et al. (arXiv:1706.03741), joka esitteli reward modelin oppimisen ihmisten vertailuista, ja Stiennon et al. (arXiv:2009.01325), joka sovelsi sitä tiivistämiseen.

  5. Rafailov, R., Sharma, A., Mitchell, E., Ermon, S., Manning, C. D. ja Finn, C. Direct Preference Optimization: Your Language Model is Secretly a Reward Model. arXiv:2305.18290 (2023). Reward modelin poistava johdanto on osiossa 4 ja kannattaa lukea kokonaan; se on mainettaan lyhyempi.

  6. Shao, Z. et al. DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. arXiv:2402.03300 (2024). Esittelee GRPO:n osiossa 4.1.

  7. Bai, Y. et al. Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073 (2022).

  8. Zhou, C. et al. LIMA: Less Is More for Alignment. arXiv:2305.11206 (2023).

  9. Hu, E. J. et al. LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685 (2021).

  10. Dettmers, T., Pagnoni, A., Holtzman, A. ja Zettlemoyer, L. QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314 (2023).


Tekijä

David Vicente Campos

NeuraLIA Labsin perustaja ja MyRealFoodin toinen perustaja

Olen valmistunut tietotekniikan insinööriksi Leónin yliopistosta. Olin mukana perustamassa MyRealFoodia, jossa teknologiajohtajana rakensin sovelluksen, jota miljoonat ihmiset ovat käyttäneet syödäkseen paremmin, ja perustin NeuraLIA Labsin, jossa rakennan tekoälytuotteita. Täällä kirjoitan siitä, mitä minun on pitänyt ymmärtää matkan varrella, niin kuin olisin toivonut jonkun selittävän asiat minulle.

Lisää kirjoittajasta

Julkaisija: NeuraLIA Labs.

Uudet julkaisut suoraan sähköpostiisi

AI-uutisia, oppaita ja tuoteuutisia — lyhyt sähköposti, kun julkaisemme jotain aikasi arvoista.

Kurssin hakemisto

Abstract software decision engine with branching paths, probability nodes, and glowing gates.
jev9 min lukuaikaa

Jev AI -malli on rakennettu päätöksiä, ei proosaa varten

TypeSafe AI:n Jev herättää huomiota, koska se käsittelee ohjelmistojen älykkyyttä todennäköisyysongelmana: valitse oikea haara, liitä mukaan varmuus ja vältä maksamasta LLM:lle tekstin kirjoittamisesta, kun koodi tarvitsee päätöksen.

Abstract agent runtime sorting documents, memory blocks and pointer nodes inside a bounded context frame.
context-engineering9 min lukuaikaa

Kontekstisuunnittelu pitkän aikavälin AI-agenteille

Pitkäkestoiset agentit eivät epäonnistu vain siksi, että ikkuna on pieni. Ne epäonnistuvat, kun tiedostot, työkalujen tulosteet ja vanhentunut historia syrjäyttävät tehtävän, joka agentin piti saada valmiiksi.

Valmis antamaan LIA:n valita puolestasi?

Rakenna kaikilla tekoälymalleilla yhdessä paikassa — aloita ilmaiseksi jo tänään.