Innoissani voidessani julkaista uuden repon: nanochat! (se on yksi järkyttävimmistä, mitä olen kirjoittanut). Toisin kuin aikaisempi vastaava repo nanoGPT, joka kattoi vain esikoulutuksen, nanochat on minimaalinen, tyhjästä, täyden pinon koulutus-/päättelyputki yksinkertaisesta ChatGPT-kloonista yhdessä, riippuvuusminimaalisessa koodikannassa. Käynnistät pilvi-GPU-laatikon, suoritat yhden komentosarjan ja jopa 4 tunnin kuluttua voit puhua omalle LLM:llesi ChatGPT:n kaltaisessa verkkokäyttöliittymässä. Se painaa ~8 000 riviä imo melko puhdasta koodia: - Kouluta tokenisaattori uudella Rust-toteutuksella - Esikouluta Transformer LLM FineWebissä, arvioi CORE-pisteitä useilla mittareilla - SmolTalkin käyttäjä-avustajakeskustelujen keskikoulutus, monivalintakysymykset, työkalujen käyttö. - SFT, arvioi chat-mallia maailmantiedon monivalintaratkaisulla (ARC-E/C, MMLU), matematiikalla (GSM8K), koodilla (HumanEval) - RL malli valinnaisesti GSM8K:lla "GRPO" - Päättele malli tehokkaasti moottorissa, jossa on KV-välimuisti, yksinkertainen esitäyttö/dekoodaus, työkalun käyttö (Python-tulkki kevyessä hiekkalaatikossa), keskustele sen kanssa CLI:n tai ChatGPT:n kaltaisen WebUI:n kautta. - Kirjoita yksi merkintäraporttikortti, jossa tehdään yhteenveto ja pelillistetään koko asia. Jopa niinkin alhaisella hinnalla kuin ~100 dollaria (~4 tuntia 8XH100-solmulla) voit kouluttaa pienen ChatGPT-kloonin, jonka kanssa voit tavallaan puhua ja joka voi kirjoittaa tarinoita/runoja, vastata yksinkertaisiin kysymyksiin. Noin ~12 tuntia ylittää GPT-2 CORE -mittarin. Kun skaalaat edelleen kohti ~1000 dollaria (~41.6 tuntia koulutusta), siitä tulee nopeasti paljon johdonmukaisempi ja se voi ratkaista yksinkertaisia matemaattisia/koodiongelmia ja suorittaa monivalintatestejä. Esimerkiksi 24 tuntia koulutettu syvyysmalli 30 (tämä on suunnilleen yhtä suuri kuin GPT-3 Small 125M:n FLOP:t ja 1/1000 GPT-3:n FLOP:t) menee 40:een MMLU:ssa ja 70:een ARC-Easy:ssä, 20:een GSM8K:ssa jne. Tavoitteenani on saada koko "vahva perustaso" -pino yhdeksi yhtenäiseksi, minimaaliseksi, luettavaksi, hakkeroitavaksi ja maksimaalisesti haarautuvaksi repoksi. nanochat on LLM101n:n (jota kehitetään edelleen) huippuprojekti. Uskon, että sillä on myös potentiaalia kasvaa tutkimusvaljaiksi tai vertailukohdaksi, joka on samanlainen kuin nanoGPT ennen sitä. Se ei ole missään nimessä valmis, viritetty tai optimoitu (itse asiassa luulen, että siinä on todennäköisesti melko vähän matalalla roikkuvia hedelmiä), mutta mielestäni se on paikassa, jossa yleinen luuranko on tarpeeksi ok, jotta se voi nousta GitHubiin, jossa sen kaikkia osia voidaan parantaa. Linkki repoon ja yksityiskohtainen esittely nanochat speedrunista on vastauksessa.
GitHub-säilö: Paljon yksityiskohtaisempi ja teknisempi esittely: Esimerkkikeskustelu 100 dollarin 4 tunnin nanochatin kanssa WebUI. Se on... viihdyttäviä :) Suuremmat mallit (esim. 12 tunnin syvyys 26 tai 24 tunnin syvyys 30) muuttuvat nopeasti yhtenäisemmiksi.
Ja esimerkki joistakin 100 dollarin speedrunin tuottamista yhteenvetomittareista raporttikortissa aloittaaksesi. Nykyinen koodikanta on hieman yli 8000 riviä, mutta yritin pitää ne puhtaina ja hyvin kommentoituina. Nyt tulee hauska osa - viritys ja mäkikiipeily.
1,57M