Andrej Karpathy har precis släppt ett av de mest "rubbade" arkiven han någonsin skrivit - NanoChat.
Det är ett från grunden, minimalt men komplett ChatGPT-liknande system som lär dig hur du tränar och kör din egen LLM för under $100.
Med endast ~8 k rader ren kod täcker den allt, tokenizer (Rust-baserad), förträning på FineWeb, mid-train på SmolTalk, SFT på MMLU / GSM8K / HumanEval, valfri RL via GRPO, effektiv inferens med KV-cache + förfyllning/avkodning och ett WebUI i ChatGPT-stil. (1/n)
Glada över att släppa ett nytt repo: nanochat!
(det är bland det mest rubbade jag har skrivit).
Till skillnad från mitt tidigare liknande repo nanoGPT som endast täckte förträning, är nanochat en minimal, från grunden, fullstack tränings-/inferenspipeline av en enkel ChatGPT-klon i en enda, beroende-minimal kodbas. Du startar upp en moln GPU-box, kör ett enda skript och på så lite som 4 timmar senare kan du prata med din egen LLM i ett ChatGPT-liknande webbgränssnitt.
Den väger ~ 8 000 rader av imo ganska ren kod till:
- Träna tokeniseraren med hjälp av en ny Rust-implementering
- Förträna en Transformer LLM på FineWeb, utvärdera CORE-poäng över ett antal mätvärden
- Midtrain om användar-assistent-konversationer från SmolTalk, flervalsfrågor, verktygsanvändning.
- SFT, utvärdera chattmodellen på flervalsfrågor i världskunskap (ARC-E/C, MMLU), matematik (GSM8K), kod (HumanEval)
- RL modellen valfritt på GSM8K med "GRPO"
- Effektiv inferens av modellen i en motor med KV-cache, enkel förifyllning/avkodning, verktygsanvändning (Python-tolk i en lättviktig sandlåda), prata med den över CLI eller ChatGPT-liknande WebUI.
- Skriv ett enda rapportkort för prisnedsättning, sammanfatta och spelifiera det hela.
Även för så lågt som ~$100 i kostnad (~4 timmar på en 8XH100-nod) kan du träna en liten ChatGPT-klon som du kan prata med, och som kan skriva berättelser/dikter, svara på enkla frågor. Cirka ~12 timmar överträffar GPT-2 CORE-måttet. När du skalar upp ytterligare mot ~$1000 (~41,6 timmars utbildning) blir den snabbt mycket mer sammanhängande och kan lösa enkla matematiska / kodproblem och göra flervalstester. T.ex. en djup 30-modell som tränats i 24 timmar (detta är ungefär lika med FLOPs av GPT-3 Small 125M och 1/1000-del av GPT-3) kommer in i 40-tal på MMLU och 70-tal på ARC-Easy, 20-tal på GSM8K, etc.
Mitt mål är att få hela stacken "stark baslinje" till en sammanhängande, minimal, läsbar, hackbar, maximalt förgrenbar lagringsplats. nanochat kommer att vara slutstensprojektet för LLM101n (som fortfarande är under utveckling). Jag tror att det också har potential att växa till en forskningssele, eller ett riktmärke, liknande nanoGPT före det. Det är inte på något sätt färdigt, finjusterat eller optimerat (jag tror faktiskt att det finns en hel del lågt hängande frukt), men jag tror att det är på en plats där det övergripande skelettet är tillräckligt ok för att det kan gå upp på GitHub där alla delar av det kan förbättras.
Länk till repo och en detaljerad genomgång av nanochat speedrun finns i svaret.

Du kan snurra upp en GPU, köra skriptet och ha din egen chatbot som chattar på ~4 timmar.
Karpathy säger att $100-modellen redan kan skriva dikter och berättelser och överträffa GPT-2 på CORE; $1000 tar det nära GPT-3 Small 125M FLOPs med 40 + MMLU och 70 + ARC-Easy poäng.
Målet är ett enhetligt, läsbart, hackbart repo som samlar hela den "starka baslinjepipelinen": en efterföljare till nanoGPT och ryggraden för hans kommande LLM101n-kurs.
Även med en liten budget är resultaten överraskande.
• $100 run (8×H100, 4 timmar): slår GPT-2 på CORE, kan skriva dikter och noveller.
• $1000 körning (≈24 timmar, GPT-3 Small 125 M FLOPs, skala 1/1000):
– MMLU 40 +
– ARC-Easy 70 +
– GSM8K 20 +
Det är en genuin mini-pipeline av forskningskvalitet.
När någon frågade om NanoChat kunde användas för att träna en personlig LLM (på Notion-anteckningar, hälsodata, etc.), hällde Karpathy kallt vatten på idén:
"Det här är inte ett bra repa för det... Tänk på dessa mikromodeller som mycket små barn; De saknar den råa intelligensen hos sina större kusiner."
Om du finjusterar dem på personuppgifter kan du få "söt papegoja" som imiterar din skrivstil, men det kommer fortfarande att vara slaskigt. 🪿
Varför personalisering är svårt
För att skapa en genuint personlig modell måste du:
• Förbereda grunddata av hög kvalitet
• Generera massor av syntetisk data (komplex + mångsidig)
• Finjustera på en stark öppen LLM (t.ex. Tinker)
• Eventuellt blanda in stora data före träningen för att behålla den allmänna intelligensen
Det är fortfarande forskningsklassat territorium idag, inte ett helgprojekt.
Större bild
Karpathy ser NanoChat som den nya nanoGPT—
en minimal men ändå komplett ram som kan växa till en standardbaslinje för LLM-forskning, samhällssamarbete och utbildning.
Just nu är den inte helt optimerad, men arkitekturen är solid – redo för GitHub-bidragsgivare att driva den framåt, modul för modul.
4,64 tn
15
Innehållet på den här sidan tillhandahålls av tredje part. Om inte annat anges är OKX inte författare till den eller de artiklar som citeras och hämtar inte någon upphovsrätt till materialet. Innehållet tillhandahålls endast i informationssyfte och representerar inte OKX:s åsikter. Det är inte avsett att vara ett godkännande av något slag och bör inte betraktas som investeringsrådgivning eller en uppmaning att köpa eller sälja digitala tillgångar. I den mån generativ AI används för att tillhandahålla sammanfattningar eller annan information kan sådant AI-genererat innehåll vara felaktigt eller inkonsekvent. Läs den länkade artikeln för mer detaljer och information. OKX ansvarar inte för innehåll som finns på tredje parts webbplatser. Innehav av digitala tillgångar, inklusive stabila kryptovalutor och NFT:er, innebär en hög grad av risk och kan fluktuera kraftigt. Du bör noga överväga om handel med eller innehav av digitala tillgångar är lämpligt för dig mot bakgrund av din ekonomiska situation.