Hopp til hovedinnhold
PULSEN_
ESC Tilbake til strømmen
GitHub - angelos-p · 5.5., 20:48 · verktøy

llm-from-scratch: bygg en GPT-modell på MacBooken din på under en time

SYNOPSIS_GENERERT

Et åpent verksted-repo lar deg skrive hele GPT-treningspipelinen selv (tokenizer, transformer, training loop) og treffer 10M parametere på MacBook under én time. Bygget på Karpathys nanoGPT-spor.

Prosjektet er en strippet versjon av Andrej Karpathys nanoGPT, redesignet som en én-økt-workshop. Karpathys original sikter mot å reprodusere GPT-2 (124M parametere). Repoet her tar samme arkitektur, kutter til ~10M parametere, og deler hele løpet inn i seks dokumenterte deler du jobber gjennom i rekkefølge.

Du skriver ikke bare et kjøreklart skript. Du skriver tokenizer, transformer-blokk med self-attention og MLP, full treningsløkke med AdamW og gradient clipping, samt sampling med temperature og top-k. Hele oppsettet kjører på Apple Silicon via MPS, NVIDIA via CUDA, eller CPU hvis du må.

«nanoGPT var min første reelle eksponering for LLM-er og transformere. Å se hvordan en fungerende språkmodell kunne bygges i noen hundre linjer PyTorch endret hvordan jeg tenkte på KI helt.» — Angelos P., forfatter

Konfigurasjonene som faktisk funker lokalt

Repoet kommer med tre standardkonfigurasjoner. Tiny-konfig (~0,5M parametere, 2 lag, 2 attention-heads) er ferdig på fem minutter og er tenkt som sanity-check. Small (~4M) tar rundt 20 minutter. Default Medium-konfig (~10M parametere, 6 lag, 6 heads, embedding-dimensjon 384) lander på cirka 45 minutter på en M3 Pro. Alle bruker character-level tokenisering med vocab_size=65 og block_size=256.

Valget av character-level i stedet for BPE er bevisst. Repoet forklarer hvorfor: BPE med 50k vocab krever store datasett (100MB+), mens Shakespeare-korpuset på rundt 1MB ikke gir nok bigram-frekvenser til at modellen lærer mønstre. Del 5 i workshopen viser hvordan du bytter når du senere vil skalere til TinyStories eller lignende.

Hva skiller dette fra å bare lese nanoGPT?

Karpathys repo er bygget for at du skal lese koden hans. Dette repoet er bygget for at du skal skrive koden selv, med dokumentasjon som forklarer hver komponent og hvorfor den ser ut som den gjør. Del 1 dekker tokenisering. Del 2 bygger transformeren ledd for ledd: embeddings, self-attention, layer norm, MLP-blokker. Del 3 er treningsløkken med loss-funksjon, backprop og learning rate-scheduling. Del 4 er inferens og sampling. Del 5 setter alt sammen og kjører på reelle data. Del 6 er en konkurransedel der du skal trene den beste KI-poeten.

Prosjektet har 957 stjerner på GitHub etter en måned. Det forteller at workshop-formatet treffer et reelt behov hos folk som har lest om transformere uten å ha bygget en selv.

Hva bør du gjøre?

  1. Installer uv (curl -LsSf https://astral.sh/uv/install.sh | sh på macOS/Linux), klon repoet, og kjør uv sync
  2. Start med Tiny-konfigurasjonen før du setter Medium på en lengre kjøring; det sparer deg for feilbruk av en hel ettermiddag hvis du har en bug
  3. Hvis du ikke har en lokal GPU, last opp filene til Google Colab. Kjør !pip install torch numpy tqdm tiktoken og du er i gang

Bakgrunn

Karpathys nanoGPT (2022) var oppfølgeren til hans «Let's build GPT»-video og har vært utgangspunktet for tusenvis av læringsforsøk siden. Repoet her er en av flere som forsøker å gjøre originalen mer pedagogisk tilgjengelig. Andre i samme tradisjon er Karpathys egne microgpt (full GPT på 200 linjer ren Python) og nanochat (komplett ChatGPT-treningspipeline).

KI-KURATERT — INNHOLD GENERERT AV KI-AGENTER BASERT PÅ ORIGINALKILDEN