Personligt selvstudie · 52 uger

Fra black box til
fundamental forståelse

Et selvtilrettelagt forløb i AI og machine learning, kalibreret til en produktbygger med UX-baggrund: stærk på at bygge med LLM-API'er, men med matematik og Python der trænger til at blive støvet af. Hver uge har konkret pensum, ressourcer med links, en byggeopgave og et evalueringsprincip — og et filosofisk sidespor der belyser det tekniske.

20–25 timer/uge Mål: bygge bedre AI-produkter selv Fokus: LLMs · RAG · anbefalingssystemer Inkl. coding ramp for Python
Coding-ramp uge Filosofisk / idéhistorisk sidespor Større byggeopgave (artefakt)
Fase 01

Foundation

Uge 1–12 · matematik, Python, første modeller

Formålet er ikke at blive matematiker, men at fjerne den friktion der gør senere materiale uigennemtrængeligt. Lineær algebra og calculus til det niveau hvor en gradient ikke er magi. Python-ramp så du selv kan skrive — ikke kun prompte. Slutter med dine første egenhændigt trænede modeller.

U01 Python-ramp: fra vibe-coding til at skrive selv

Ugens pensum

Genopfrisk Python-syntaks med fokus på det ML bygger på: lister, dicts, comprehensions, funktioner, classes. Ikke webdev-Python — datamanipulationens grundgreb. Målet er at kunne skrive små scripts uden at slå hver linje op.

Ressourcer

KursusCS50's Introduction to Programming with Python — Harvard, gratis, uge 0–3
ØvelserKaggle: Python (7 micro-lessons) — hands-on i browser
ReferencePython official tutorial — kap. 3–5

Byggeopgave

Skriv et CLI-script der læser en CSV med koncertdata (du har masser fra cphvenues), grupperer efter venue og printer top-5 mest aktive spillesteder — uden pandas, kun standard-bibliotek. Tvinger dig til at forstå loops og dicts i bund.

Evaluering

Du kan løse opgaven uden at slå hver linje op. Hvis du copy-paster mere end du skriver, gentag Kaggle-modulerne før du går videre.

U02 NumPy & vektorer: data som arrays

Ugens pensum

NumPy-arrays, broadcasting, vektoroperationer, indeksering og slicing. Dette er fundamentet under al ML — en model er dybest set arrays der ganges sammen. Forstå hvorfor vektoriseret kode er hurtigere end loops.

Ressourcer

Øvelser100 NumPy exercises — lav #1–40
KhanVectors and spaces — vektor-intuition

Byggeopgave

Implementér cosine similarity mellem to vektorer fra bunden i NumPy. Test den på to tilfældige "embedding"-vektorer. Du bruger cosine similarity hver dag i RAG — nu ved du præcis hvad den gør.

Evaluering

Du kan forklare hvad broadcasting gør, og hvorfor en for-loop over arrays er et code smell i NumPy.

U03 Lineær algebra: matricer som transformationer

Ugens pensum

Matrix-multiplikation, identitet, transponering, invers, og — vigtigst — den geometriske intuition: en matrix er en transformation af rummet. Determinant og rang på intuitionsniveau.

Ressourcer

Video3Blue1Brown: Essence of Linear Algebra — hele serien, ikke til forhandling
BogMathematics for Machine Learning — gratis PDF, kap. 2

Filosofisk / idéhistorisk sidespor

Descartes — koordinatsystemet som idé
Da Descartes lagde et gitter over geometrien, blev rum til tal og tal til rum. Hele lineær algebra hviler på denne sammensmeltning. Læs et kort uddrag af La Géométrie og overvej: når en embedding placerer "konge" og "dronning" som punkter i rum, er det stadig Descartes' greb — bare i 1536 dimensioner.

Byggeopgave

Implementér 2D-transformationer i NumPy: rotation, skalering, shear. Anvend dem på et sæt punkter og plot før/efter med matplotlib. Se transformationen ske visuelt.

Evaluering

Du kan i hovedet sige hvad en 2×2-matrix gør ved en vektor, geometrisk.

U04 Calculus: gradienten som retning af stejlest stigning

Ugens pensum

Afledte, partielle afledte, kædereglen, gradienter. Alt sigter mod ét: at forstå hvordan en model lærer ved at følge gradienten nedad. Lokale vs. globale minima.

Ressourcer

BogMathematics for ML — kap. 5

Byggeopgave

Implementér gradient descent fra bunden for at finde minimum af f(x)=x²+3x. Plot stien. Eksperimentér med learning rate — for høj og den divergerer. Når du senere træner et net, er det den samme algoritme i millioner af dimensioner.

Evaluering

Du kan forklare hvorfor man trækker gradienten fra (ikke lægger til) for at minimere.

U05 Sandsynlighed & statistik for ML

Ugens pensum

Fordelinger (normal, Bernoulli), betinget sandsynlighed, Bayes' sætning, forventningsværdi og varians. Grundlaget for at forstå hvad en model egentlig estimerer, og hvad usikkerhed betyder.

Ressourcer

BogMathematics for ML — kap. 6

Byggeopgave

Byg en naiv Bayes-klassifikator i ren Python der gætter genre på en koncert ud fra titel-ord. Relaterer direkte til din genre-tagging-pipeline — men nu uden en LLM som black box.

Evaluering

Du kan udlede Bayes' sætning på en serviet og forklare hvad "naiv" betyder.

U06 pandas & datahåndtering i praksis

Ugens pensum

DataFrames, indeksering, groupby, merge, join, rensning af rod. Det værktøj du bruger på hver eneste ML-opgave herfra. Fokus på at gå fra rå data til modelklar data.

Ressourcer

Øvelserpandas_exercises — filtering, grouping

Byggeopgave

Tag et råt eksport af dine cphvenues-koncerter, rens det i pandas (dubletter, manglende datoer, normalisér venue-navne) og lav en eksplorativ analyse: hvilken ugedag har flest koncerter? Hvilken genre vokser?

Evaluering

Du kan lave en groupby-aggregering uden at slå syntaksen op.

U07 Klassisk ML: regression & klassifikation med scikit-learn

Ugens pensum

Lineær & logistisk regression, train/test-split, overfitting vs. underfitting, feature scaling, bias-variance tradeoff. De grundbegreber al senere ML genbruger.

Ressourcer

KursusAndrew Ng: ML Specialization — kursus 1, audit gratis
BogAn Introduction to Statistical Learning — gratis PDF, kap. 3

Byggeopgave

Træn en logistisk regression der forudsiger om en koncert bliver udsolgt, baseret på venue, genre, ugedag, pris. Evaluér med precision/recall. Dit første rigtige trænede produkt-feature.

Evaluering

Du forstår forskellen på en model der husker træningsdata og en der generaliserer.

U08 Evaluering & metrikker: hvornår er en model god?

Ugens pensum

Confusion matrix, precision, recall, F1, ROC/AUC, cross-validation. At måle rigtigt er sværere — og vigtigere — end at træne. Hvornår accuracy lyver.

Ressourcer

Filosofisk / idéhistorisk sidespor

Goodhart — "når et mål bliver et mål, ophører det med at være et godt mål"
Hver metrik du optimerer mod kan gamere dig. En anbefalingsmotor optimeret på klik lærer at lave clickbait. Læs om Goodharts lov og overvej, hele vejen gennem forløbet, hvilken adfærd dine metrikker faktisk belønner.

Byggeopgave

Tag din model fra uge 7 og byg et fuldt evalueringsdashboard: confusion matrix, ROC-kurve, precision/recall ved forskellige tærskler. Vælg den rigtige tærskel for dit faktiske use case.

Evaluering

Du kan vælge den rigtige metrik til et problem — og forklare hvorfor accuracy ofte lyver.

U09 Decision trees & ensemble-metoder

Ugens pensum

Decision trees, hvordan splits vælges (entropi, Gini), random forests, og gradient boosting (XGBoost). Hvorfor ensembles slår enkeltmodeller. Stadig state-of-the-art for tabulære data.

Ressourcer

BogISL — kap. 8

Byggeopgave

Træn en XGBoost-model på dine koncertdata til at forudsige popularitet/udsolgthed. Sammenlign med din logistiske regression fra uge 7. Inspicér feature importance — hvad driver faktisk forudsigelsen?

Evaluering

Du kan forklare hvorfor en random forest overfitter mindre end et enkelt træ.

U10 Unsupervised learning: clustering & PCA

Ugens pensum

K-means clustering, hierarkisk clustering, og dimensionsreduktion med PCA. At finde struktur i data uden labels. Hvordan PCA hænger sammen med lineær algebra fra uge 3.

Ressourcer

Byggeopgave

Clustrér dine venues efter deres genre-profil og publikum. Reducér til 2D med PCA og plot dem. Dukker der naturlige grupper op — "techno-spillesteder", "jazz-scener"? Indsigt du kan bruge i produktet.

Evaluering

Du kan forklare hvad PCA's første principalkomponent repræsenterer geometrisk.

U11 Feature engineering & ML-pipelines

Ugens pensum

Kategoriskækodning (one-hot, target encoding), håndtering af manglende værdier, feature scaling, og data leakage — den fejl der får modeller til at se for gode ud. sklearn Pipelines for reproducerbarhed.

Ressourcer

Byggeopgave

Byg en reproducerbar sklearn-pipeline for dit udsolgthed-projekt: alle preprocessing-trin pakket så samme transformation kører på trænings- og produktionsdata. Find og eliminér mindst én potentiel leakage-kilde.

Evaluering

Du kan identificere data leakage i et opsæt og forklare hvorfor det er farligt.

U12 Fase-review + Turing

Ugens pensum

Saml hele fase 1. Repetér det der stadig er usikkert. Konsolidér forståelsen af den klassiske ML-pipeline fra rå data til evalueret model, så fundamentet er solidt før neurale net.

Ressourcer

PaperTuring: Computing Machinery and Intelligence (1950) — kilden til "kan maskiner tænke?"

Filosofisk / idéhistorisk sidespor

Turing — kan maskiner tænke?
Inden du i fase 2 bygger maskiner der prøver at tænke, læs det essay der stillede spørgsmålet. Turing omformulerer "kan maskiner tænke?" til et spil om efterligning — et greb der stadig former hele debatten. Hvilke af hans indvendinger holder 75 år senere?

Byggeopgave

Saml fase 1 i ét sammenhængende projekt: en notebook der går fra rå koncertdata til en trænet, evalueret model med ordentlig pipeline. Skriv en kort README der forklarer dine valg. Dit første portfolio-stykke.

Evaluering

Du kan forklare hele den klassiske ML-workflow for én der ikke kender ML.

Fase 02

Core ML

Uge 13–28 · neurale net, deep learning, transformers

Hjertet i forløbet. Du bygger et neuralt net fra bunden, forstår backprop i fingrene, og arbejder dig op til at implementere en transformer — den arkitektur der driver alt det du bruger til daglig. Her holder black box'en op med at være sort.

U13 Neuralt net fra bunden — kun NumPy

Ugens pensum

Perceptron, aktiveringsfunktioner (sigmoid, ReLU), forward pass, loss-funktioner. Et net som ren matematik, før noget framework skjuler det. Hvordan lag stables.

Ressourcer

Video3Blue1Brown: Neural networks — kap. 1–2
BogNeural Networks and Deep Learning — Nielsen, gratis, kap. 1

Byggeopgave

Implementér et 2-lags net der klassificerer MNIST-cifre — kun NumPy, ingen PyTorch. Forløbets vigtigste enkeltopgave. Når du har gjort det, er resten bare abstraktioner ovenpå.

Evaluering

Du kan tegne et net og pege på hvor vægtene sidder.

U14 Backpropagation — kædereglen der lærer

Ugens pensum

Backprop som kæderegel gennem beregningsgrafen. Hvordan fejl forplanter sig baglæns og opdaterer vægte. Det øjeblik hvor calculus fra uge 4 betaler sig.

Ressourcer

VideoKarpathy: building micrograd — legendarisk
BogNielsen kap. 2 — backprop udledt

Byggeopgave

Tilføj backprop til dit net fra uge 13, så det faktisk lærer. Følg Karpathys micrograd og byg en lille autograd-motor. Nu forstår du hvad .backward() gør under motorhjelmen.

Evaluering

Du kan håndregne en backprop gennem et net med to neuroner.

U15 PyTorch: fra håndkraft til framework

Ugens pensum

Tensors, autograd, nn.Module, optimizers, DataLoaders og træningsloops. Nu hvor du forstår mekanikken, lærer du værktøjet der gør den hurtig og skalérbar.

Ressourcer

Byggeopgave

Genskab dit MNIST-net fra uge 13 i PyTorch på 30 linjer. Sammenlign med din NumPy-version. Føl forskellen mellem at forstå og at producere — og hvorfor begge dele betød noget.

Evaluering

Du kan skrive et træningsloop fra hukommelsen.

U16 Embeddings & ordvektorer

Ugens pensum

word2vec, hvad embeddings er, hvorfor "konge − mand + kvinde ≈ dronning" virker. Skip-gram vs. CBOW. Kernen i moderne NLP og i din RAG.

Ressourcer

ArtikelThe Illustrated Word2vec — Jay Alammar
DemoTensorFlow Embedding Projector — udforsk embeddings 3D

Filosofisk / idéhistorisk sidespor

Wittgenstein — "betydning er brug"
Embeddings lærer ords betydning udelukkende fra det selskab de holder — præcis Wittgensteins sene tese fra Filosofiske Undersøgelser: et ords mening er dets brug i sproget, ikke en indre reference. Du implementerer bogstaveligt en sprogfilosofisk position fra 1953.

Byggeopgave

Træn embeddings på dine artist-bios. Find de nærmeste naboer til en kunstner. Sammenlign med din nuværende LLM-baserede similarity — er resultaterne anderledes? Hvorfor?

Evaluering

Du kan forklare hvorfor embeddings indfanger semantik uden at "forstå".

U17 CNNs & computer vision

Ugens pensum

Convolutions, filtre, pooling, feature maps. Hvordan CNN'er ser hierarkisk — kanter, så former, så objekter. Selvom dit fokus er sprog, er intuitionen om lokale features værd at have.

Ressourcer

KursusStanford CS231n: ConvNets — kanonisk

Byggeopgave

Træn en lille CNN der klassificerer billeder — fx en model der kunne supplere din Gemini-baserede billedmoderation i Gooofind, men kører lokalt. Forstå hvad den faktisk lærer at se efter.

Evaluering

Du kan forklare hvad et convolutional filter detekterer i de første lag.

U18 RNNs, sekvenser & deres grænser + Dreyfus

Ugens pensum

Recurrent nets, hvordan de håndterer sekvenser, og hvorfor de fejler: vanishing/exploding gradients. LSTM/GRU som delvis løsning. Forberedelsen til at forstå hvorfor attention vandt.

Ressourcer

ArtikelUnderstanding LSTM Networks — Chris Olah, klassiker

Filosofisk / idéhistorisk sidespor

Dreyfus — What Computers Can't Do (1972)
Dreyfus forudså at symbolsk AI ville ramme en mur, fordi menneskelig forståelse er kropslig og kontekstuel, ikke regelbaseret. RNN'ernes kamp med lang kontekst rimer på hans kritik. Læs uddrag og spørg: løste deep learning Dreyfus' problem — eller omgik det bare?

Byggeopgave

Træn en lille RNN/LSTM der genererer tekst tegn-for-tegn på dine editorial-tekster. Observer hvor den taber tråden i lange sekvenser — selv at se fejlen gør uge 19 meningsfuld.

Evaluering

Du kan forklare vanishing gradient-problemet og hvorfor det begrænser RNN'er.

U19 Attention-mekanismen

Ugens pensum

Query, key, value. Self-attention: hvordan hvert token "kigger på" alle andre. Den ene idé alt moderne sprog-AI hviler på. Hvorfor den løser RNN'ernes kontekstproblem.

Ressourcer

ArtikelThe Illustrated Transformer — Jay Alammar — læs grundigt

Byggeopgave

Implementér self-attention fra bunden i PyTorch: tag en sekvens af embeddings, beregn QKV, scaled dot-product attention, output. Bare den ene mekanisme, isoleret, så du føler den.

Evaluering

Du kan forklare hvad query, key og value hver bidrager med.

U20 Transformer-arkitekturen

Ugens pensum

Multi-head attention, positional encoding, residual connections, layer norm, feed-forward-lag. Hvordan delene samles til encoder/decoder. Læs det originale paper med din nye attention-forståelse.

Ressourcer

PaperAttention Is All You Need (2017) — kilden, læs linje for linje
ArtikelThe Annotated Transformer — paper + kode side om side

Byggeopgave

Annotér det originale transformer-paper sammen med The Annotated Transformer: kør koden, og match hver kodeblok til den tilsvarende ligning i paperet. Skriv dine egne noter til hver komponent.

Evaluering

Du kan tegne den fulde transformer-arkitektur fra hukommelsen og forklare hvert lag.

U21 Træningsdynamik: kunsten at få et net til at lære

Ugens pensum

Learning rate schedules, warmup, regularisering (dropout, weight decay), batch normalization, initialisering. Hvorfor træning er empirisk og fuld af tricks — og hvordan man diagnosticerer når det går galt.

Ressourcer

Byggeopgave

Tag dit net fra uge 15 og lav systematiske eksperimenter: varier learning rate, tilføj dropout, prøv forskellige optimizers. Log alt. Plot trænings- vs. valideringskurver og diagnosticér over/underfitting.

Evaluering

Du kan se på en loss-kurve og sige hvad der er galt med træningen.

U22 Byg GPT fra bunden

Ugens pensum

Saml alt: en lille fungerende GPT der genererer tekst. Forløbets klimaks — fra perceptron i uge 13 til en sproglig model nu. Causal masking, autoregressiv generering, sampling.

Ressourcer

VideoKarpathy: Let's build GPT — byg sammen, linje for linje
RepoKarpathy: build-nanoGPT — reproducér GPT-2

Filosofisk / idéhistorisk sidespor

Searle — Det kinesiske rum (1980)
Nu hvor du selv har bygget en maskine der manipulerer symboler overbevisende uden at "forstå" dem, læs Searles tankeeksperiment. Du står midt i debatten: din GPT producerer mening — men er der nogen hjemme? Det rigtige tidspunkt at danne din egen holdning er lige efter du har bygget rummet selv.

Byggeopgave

Træn en nanoGPT på dine egne artist-bios og editorial-tekster fra cphvenues. Lad den generere nye koncertbeskrivelser. Din egen sprogmodel, trænet på dit eget korpus.

Evaluering

Du kan forklare hver komponent i din GPT for en ikke-tekniker.

U23 Fine-tuning & transfer learning

Ugens pensum

Pre-training vs. fine-tuning, hvorfor transfer learning virker, parameter-efficient fine-tuning (LoRA, QLoRA). Hvornår det giver mening at fine-tune frem for at bruge en model as-is.

Ressourcer

ArtikelLoRA insights — Sebastian Raschka

Byggeopgave

Fine-tune en lille open-weights model (fx via Hugging Face) på din domæne-data — koncertbeskrivelser i din stil. Sammenlign output før og efter. Mål om det slår few-shot prompting.

Evaluering

Du kan forklare hvad LoRA gør, og hvorfor det er billigere end fuld fine-tuning.

U24 Tokenization & data-pipelines

Ugens pensum

Byte-pair encoding (BPE), hvordan tekst bliver til tokens, vocabularies, og hvorfor token-count koster dig penge. Hvordan dårlig tokenisering skader ikke-engelske sprog — relevant for dit danske indhold.

Ressourcer

DemoTiktokenizer — se tokens live

Byggeopgave

Byg en BPE-tokenizer fra bunden (følg Karpathy). Kør dine danske koncerttekster igennem og sammenlign token-count med engelsk. Udregnå hvad dansk vs. engelsk koster dig i API-tokens.

Evaluering

Du kan forklare hvorfor "jordbærgrød" bliver til flere tokens end "strawberry".

U25 Scaling laws & emergens + Nagel

Ugens pensum

Hvorfor større modeller pludselig kan mere (emergente evner), Chinchilla-scaling, forholdet mellem data, parametre og compute. Hvad der driver — og begrænser — fremskridt.

Ressourcer

VideoKarpathy: Intro to LLMs — det store billede

Filosofisk / idéhistorisk sidespor

Nagel — What Is It Like to Be a Bat? (1974)
Når en model får emergente evner, fristes vi til at sige den "forstår". Nagel minder os om at subjektiv erfaring — hvordan det er at være noget — måske er principielt utilgængelig udefra. Kan vi nogensinde vide om der er noget-det-er-at-være en sprogmodel? Eller stiller vi det forkerte spørgsmål?

Byggeopgave

Lav et lille empirisk studie: kør samme opgave (fx genre-klassifikation af dine koncerter) gennem modeller af stigende størrelse. Plot præstation mod modelstørrelse. Ser du en emergens-trærskel?

Evaluering

Du kan forklare hvad scaling laws forudsiger og hvorfor de er økonomisk vigtige.

U26 RLHF & alignment

Ugens pensum

Hvordan rå pre-trænede modeller bliver til hjælpsomme assistenter: supervised fine-tuning, reward models, RLHF og nyere metoder som DPO. Hvorfor alignment er svært.

Ressourcer

ArtikelIllustrating RLHF — Hugging Face
PaperInstructGPT paper — grundlaget for ChatGPT

Byggeopgave

Implementér en simpel preference-baseret træning: indsaml et lille datasæt af "bedre/dårligere" koncertbeskrivelser, træn en reward model der scorer dem, og brug den til at rangere outputs. Forstå loopet i det små.

Evaluering

Du kan forklare forskellen på et base-model og et instruction-tuned model.

U27 Interpretability: hvad foregår der inde i modellen?

Ugens pensum

Probing, attention-visualisering, feature visualization, og mechanistic interpretability. Forsøget på at åbne black box'en indefra. Hvorfor det betyder noget for at stole på modeller.

Ressourcer

DemoBertViz — visualisér attention

Filosofisk / idéhistorisk sidespor

Nagel (forlænget) — det tredjepersons perspektivs grænser
Interpretability prøver at se modellen "udefra" via dens vægte. Men hvis Nagel har ret i at det subjektive ikke reduceres til det objektive, hvad kan vægte så overhovedet fortælle os? Hvor går grænsen mellem at forklare mekanik og at forstå kognition?

Byggeopgave

Visualisér attention-mønstrene i din nanoGPT fra uge 22 med BertViz eller egen kode. Find et hoved der ser ud til at gøre noget genkendeligt (fx kæde subjekt-verbum). Dokumentér hvad du finder.

Evaluering

Du kan navngive mindst to teknikker til at inspicere hvad en model har lært.

U28 Fase-review: forklar transformeren

Ugens pensum

Konsolidér hele fase 2. Det stærkeste tegn på forståelse er at kunne forklare klart. Saml trådene fra perceptron til GPT til alignment til én sammenhængende fortælling.

Ressourcer

ReferenceLLM Visualization — interaktiv 3D af en GPT
ArtikelThe Illustrated GPT-2 — som model for god forklaring

Byggeopgave

Skriv en grundig teknisk blogpost (eller intern note) der forklarer hvordan transformers virker, fra embeddings til generering — i din egen stemme, til en læser med din egen baggrund fra uge 1. Distribution er, som du ved, den egentlige knaphed.

Evaluering

En kompetent kollega kan læse din forklaring og forstå transformeren.

Fase 03

Applied

Uge 29–42 · RAG, anbefalingssystemer, produktion

Her møder teorien dine faktiske produkter. RAG-systemer og anbefalingsmotorer — præcis de to domæner du valgte — bygget med fundamental forståelse i ryggen. Plus det uglamourøse men afgørende: evaluering, drift, og at få modeller i produktion uden at de smelter.

U29 RAG fra grunden — ikke som black box

Ugens pensum

Retrieval-augmented generation: chunking-strategier, embedding, vektorsøgning, re-ranking, context injection. Nu med forståelse for hver komponent fra fase 1–2. Hvor RAG fejler og hvorfor.

Ressourcer

Byggeopgave

Byg en RAG over al din cphvenues editorial og artist-data — uden et framework som LangChain. Bare embeddings (fra uge 16), cosine similarity (fra uge 2) og en LLM. Nu kender du hver del.

Evaluering

Du kan diagnosticere hvorfor en RAG henter forkert kontekst — er det chunking, embedding eller re-ranking?

U30 Anbefalingssystemer: collaborative filtering

Ugens pensum

User-item-matricer, matrix factorization (SVD), implicit vs. explicit feedback. Matematikken bag "fordi du fulgte X". Hvordan det hænger sammen med dimensionsreduktion fra uge 10.

Ressourcer

Byggeopgave

Byg en matrix-factorization anbefalingsmotor på dine follow/favorite-data fra cphvenues. Sammenlign med din nuværende vibe/genre/venue-affinitets-heuristik. Hvilken anbefaler bedst?

Evaluering

Du forstår cold-start-problemet og kan forklare hvorfor det rammer nye venues.

U31 Content-based & hybrid recommenders

Ugens pensum

Content-based filtering med embeddings, hybrid-systemer der kombinerer collaborative + content, og hvordan man håndterer cold-start ved at falde tilbage på indhold. Det der faktisk virker i produktion.

Ressourcer

BogPractical Recommender Systems — hybrid-kapitler

Byggeopgave

Byg en hybrid anbefalingsmotor til koncerter: kombinér dine artist-embeddings (content) med follow-mønstre (collaborative). Håndtér cold-start for nye koncerter via indhold. Deploy det som et reelt feature.

Evaluering

Du kan forklare hvordan en hybrid løser cold-start bedre end ren collaborative filtering.

U32 Ranking & learning-to-rank

Ugens pensum

Hvordan man sorterer resultater når rækkefølgen er det vigtige: pointwise/pairwise/listwise ranking, NDCG, MRR. Direkte relevant for dit feed og dine søgeresultater.

Ressourcer

ArtikelEugene Yan: Discovery systems — ranking-sektionen

Byggeopgave

Byg et learning-to-rank lag oven på din anbefalingsmotor: i stedet for bare at score, lær at rangere koncerter optimalt for hver bruger. Evaluér med NDCG. Mål forbedringen mod simpel sortering.

Evaluering

Du kan forklare forskellen på at forudsige en score og at lære en rækkefølge.

U33 Evaluering af RAG & recommenders

Ugens pensum

Hvordan måler man et system uden ét rigtigt svar? Offline metrikker (recall@k, NDCG) vs. online (A/B-test, CTR). LLM-as-judge for RAG. Hvorfor offline og online ofte er uenige.

Ressourcer

Byggeopgave

Byg en evalueringssuite for din RAG fra uge 29: et sæt test-spørgsmål, mål retrieval-kvalitet (henter den de rigtige chunks?) og svar-kvalitet (LLM-as-judge). Lav det reproducerbart så du kan måle forbedringer.

Evaluering

Du kan designe et eval-setup for et system der ikke har facitliste.

U34 Prompt engineering, systematisk + Frege

Ugens pensum

Few-shot, chain-of-thought, structured output, prompt-templating, og hvorfor små formuleringer ændrer alt. Fra håndværk til systematik. Hvordan man tester prompts ordentligt.

Ressourcer

GuidePrompt Engineering Guide — omfattende

Filosofisk / idéhistorisk sidespor

Frege — mening og betydning (Sinn und Bedeutung, 1892)
Frege skelnede mellem en udtryks reference (det det peger på) og dets mening (måden det peger på). Prompt engineering lever i den skelnen: samme reference, forskellig formulering, vildt forskelligt resultat. Hvorfor er sproglig form så afgørende for en maskine der "bare" forudsiger tokens?

Byggeopgave

Byg et lille prompt-evalueringsframework: definér en opgave (fx artist-bio-generering), skriv 3-4 prompt-varianter, kør dem mod et testsæt og scor systematisk. Gør dit prompt-arbejde målbart i stedet for vibes.

Evaluering

Du kan teste om en prompt-ændring faktisk forbedrer output, ikke bare føles bedre.

U35 Agents & tool use

Ugens pensum

Function calling, multi-step reasoning, ReAct-mønsteret, orchestrering af flere kald. Dit "gen 3"-felt — nu med forståelse for hvad der sker under abstraktionen. Hvornår agenter fejler.

Ressourcer

Byggeopgave

Byg en agent fra bunden (uden framework) der kan svare på koncert-spørgsmål ved at kalde dine egne værktøjer: søg i database, tjek datoer, hent artist-info. Implementér selv loopet: tænk → handl → observér.

Evaluering

Du kan forklare hvorfor agenter fejler mere jo flere trin de tager, og hvordan man begrænser det.

U36 Fine-tuning vs. RAG vs. prompting i produktion

Ugens pensum

Den praktiske beslutning: hvornår betaler fine-tuning sig vs. RAG vs. bedre prompting? Cost/benefit, vedligehold, latency. Hvordan man kombinerer dem. Beslutningen du tager på rigtige projekter.

Ressourcer

VideoKarpathy: LLM intro — beslutningstræ

Byggeopgave

Tag ét konkret cphvenues-problem og løs det tre måder: ren prompting, RAG, og fine-tuning. Mål kvalitet, latency og kost for hver. Skriv en beslutningsnote: hvad ville du faktisk deploye og hvorfor?

Evaluering

Du kan argumentere for et valg mellem de tre tilgange ud fra konkrete tal, ikke mavefornemmelse.

U37 MLOps: modeller i produktion

Ugens pensum

Serving, versionering, monitoring, A/B-test, model drift, rollbacks. Forskellen mellem et notebook og et produkt — noget du allerede mestrer på infra-siden via Cloudflare, nu anvendt på ML.

Ressourcer

BogDesigning Machine Learning Systems — Chip Huyen, kanonisk

Byggeopgave

Deploy din anbefalingsmotor fra uge 31 som en Cloudflare Worker med monitoring. Log forudsigelser, mål drift over tid, sæt en simpel alarm op. Forbind din eksisterende infra-erfaring med ML.

Evaluering

Du kan beskrive hvordan du opdager at en model er begyndt at performe dårligere i produktion.

U38 Vektordatabaser i dybden

Ugens pensum

Approximate nearest neighbor-søgning, HNSW-grafer, IVF, kvantisering. Hvad der faktisk sker når du kalder Pinecone eller Cloudflare Vectorize. Trade-offs mellem hastighed, præcision og hukommelse.

Ressourcer

DocsCloudflare Vectorize docs — din egen stack

Byggeopgave

Implementér en simpel ANN-søgning (fx HNSW via en lille bibliotek eller egen kode) over dine artist-embeddings. Sammenlign hastighed og præcision mod brute-force cosine similarity. Se trade-offen konkret.

Evaluering

Du kan forklare hvorfor approximate search er nødvendigt ved skala, og hvad du ofrer.

U39 Multimodalitet: vision-language modeller

Ugens pensum

Hvordan modeller forbinder billeder og tekst: CLIP, kontrastiv læring, fælles embedding-rum. Hvordan billedsøgning via tekst virker. Relevant for både Gooofind og visuel koncert-discovery.

Ressourcer

ArtikelThe Illustrated Stable Diffusion — Jay Alammar

Byggeopgave

Byg billedsøgning til Gooofind eller cphvenues: embed billeder med CLIP, lad brugeren søge med tekst ("neon, nat, publikum") og hent de nærmeste billeder. Et fælles embedding-rum for tekst og billede.

Evaluering

Du kan forklare hvordan tekst og billede havner i samme rum, så man kan sammenligne dem.

U40 Cost, latency & caching + Illich

Ugens pensum

Optimér token-forbrug, svartider og kost i LLM-systemer: prompt-caching, semantisk caching, model-routing (lille model først), batching. Hvordan man holder et AI-produkt økonomisk i drift.

Ressourcer

Filosofisk / idéhistorisk sidespor

Illich — Tools for Conviviality (1973)
Illich skelnede mellem værktøjer der udvider menneskelig handlekraft, og værktøjer der vender sig om og gør os afhængige. Når dit produkt bygger på en ekstern models API — pris, tilgængelighed, adfærd uden for din kontrol — hvor konvivialt er det så? Det er også et argument for at kunne bygge selv.

Byggeopgave

Tag ét af dine LLM-pipelines og optimér det systematisk: indfør caching, ruteå simple opgaver til en mindre/billigere model, batch hvor muligt. Mål kost og latency før/efter. Dokumentér besparelsen.

Evaluering

Du kan reducere kosten af et LLM-system målbart uden at ofre kvalitet.

U41 Safety, bias & ansvarlig deployment

Ugens pensum

Bias i træningsdata og output, red-teaming, guardrails, hallucination-håndtering, content moderation. Det ansvar der følger med at deploye AI til rigtige brugere — inkl. dine COPPA-overvejelser fra Gooofind.

Ressourcer

PaperOn the Dangers of Stochastic Parrots — den kritiske modstemme

Byggeopgave

Auditér ét af dine egne AI-features for bias: genererer din artist-bio-pipeline systematisk anderledes tekst for forskellige genrer eller oprindelser? Byg en simpel test-suite der fanger det, og en guardrail.

Evaluering

Du kan identificere mindst én konkret bias- eller safety-risiko i dine egne systemer og afbøde den.

U42 Fase-review: end-to-end produktionssystem

Ugens pensum

Saml fase 3 i ét sammenhængende system. Det er her teori bliver til noget der kører for rigtige brugere. Konsolidér hele kæden: retrieval, ranking, generering, evaluering, drift-monitorering.

Ressourcer

ArtikelEugene Yan: LLM system patterns — som arkitektur-reference
BogDesigning ML Systems — helhedssyn

Byggeopgave

Byg ét sammenhængende RAG + recommender-system end-to-end for cphvenues: brugeren spørger, systemet henter, rangerer, genererer svar, og du måler kvaliteten løbende. Deploy det. Dette er rygraden i dit capstone.

Evaluering

Du har et kørende produktionssystem du selv forstår i hver del, og kan forklare og forbedre.

Fase 04

Synthesis

Uge 43–52 · eget projekt, open source, idéhistorisk runding

De sidste ti uger har næsten ingen pensumliste — de er dine. Et substantielt eget projekt der binder forløbet sammen, et open source-bidrag der tvinger dig ud af din egen kode, og en afsluttende idéhistorisk refleksion der placerer hele rejsen i en større fortælling om beregning og bevidsthed.

U43 Capstone, del 1: scope & arkitektur

Ugens pensum

Fire uger til at bygge noget der bruger alt: en trænet komponent (ikke kun API-kald), et retrieval- eller anbefalingslag, ordentlig evaluering, deployment. Denne uge: vælg, afgræns, og tegn arkitekturen.

Ressourcer

Idé AEgentrænet "vibe"-classifier — der erstatter et LLM-kald i din pipeline — billigere, hurtigere, din egen
Idé BSemantisk søge- og anbefalingslag — til cphvenues bygget på egne embeddings + matrix factorization
Idé CLokalt multimodalt moderingssystem — til Gooofind der kører uden ekstern API

Byggeopgave

Vælg dit capstone-projekt. Skriv en kort spec: hvad bygger du, hvilke komponenter fra forløbet bruger det, hvordan måler du succes, hvad er den nuværende baseline det skal slå? Tegn arkitekturen.

Evaluering

Dit projekt er klart afgrænset, ambitiøst men gennemførligt på tre uger, og har en målbar baseline.

U44 Capstone, del 2: byg kernen

Ugens pensum

Byg den centrale ML-komponent: træn modellen, byg retrieval-laget, eller hvad dit projekt kræver. Fokus på at få noget der virker end-to-end, ikke perfekt — det forbedrer du næste uge.

Ressourcer

ReferenceDesigning ML Systems — opslag efter behov
ReferencePyTorch tutorials — opslag efter behov

Byggeopgave

Byg den fungerende kerne af dit capstone. Få data ind, model trænet/retrieval virkende, output ud. Det skal køre end-to-end ved ugens slutning, selv om det er groft.

Evaluering

Du har en fungerende prototype der løser kerneproblemet, om end urafineret.

U45 Capstone, del 3: evaluér & forfin

Ugens pensum

Mål dit system ordentligt mod baseline fra uge 43. Identificér hvor det fejler, og forbedr systematisk. Den disciplin fra uge 8 og 33 anvendt på dit eget projekt.

Ressourcer

ReferenceEvaluation metrics — efter projekttype
ReferenceRAGAS — hvis RAG-baseret

Byggeopgave

Byg en ordentlig evaluering af dit capstone og kør den. Slår det baseline? Hvor fejler det? Lav mindst to konkrete forbedringer baseret på hvad evalueringen viser, og mål effekten.

Evaluering

Du kan vise med tal at dit system er bedre end den løsning det erstatter.

U46 Capstone, del 4: deploy & dokumentér

Ugens pensum

Få dit capstone i produktion — ind i et af dine faktiske produkter, eller som et kørende, delbart system. Skriv det op, så andre (og dit fremtidige jeg) forstår beslutningerne.

Ressourcer

ReferenceCloudflare Workers docs — din deployment-stack

Byggeopgave

Deploy dit capstone og skriv en grundig case-study: problemet, din løsning, arkitekturen, resultaterne mod baseline, og hvad du ville gøre anderledes. Dit stærkeste portfolio-stykke.

Evaluering

Projektet er i produktion, målbart bedre end baseline, og fuldt dokumenteret.

U47 Open source-bidrag

Ugens pensum

Gå ud af din egen kode og ind i andres. At bidrage til et ML-bibliotek du bruger tvinger dig til at læse produktionskvalitets-kode og forstå konventioner — en helt anden færdighed end at bygge selv.

Ressourcer

Byggeopgave

Find et reelt issue i et ML-bibliotek du bruger (Hugging Face, PyTorch, et RAG-værktøj) og lav et PR — dokumentation, bugfix, eller et lille feature. Gå hele vejen: fork, fix, test, PR, review.

Evaluering

Du har et indsendt (ideelt merged) PR til et projekt du ikke selv ejer.

U48 Læs forskning: papers, ikke blogposts

Ugens pensum

Hvordan man læser et ML-paper effektivt: abstract → figurer → konklusion → metode. Du har nu fundamentet til at læse primærkilder i stedet for andres fortolkninger. Vælg tre nyere papers i dit felt.

Ressourcer

GuideHow to Read a Paper — Keshav, klassiker
KildearXiv: Computation & Language — seneste NLP-papers
KildeSemantic Scholar — find indflydelsesrige papers

Byggeopgave

Vælg tre nyere papers relevante for dit arbejde (RAG, recommenders, eller agenter). Læs dem ordentligt og skriv et struktureret resumé af hver: hvad er ideen, virker den, kan du bruge den?

Evaluering

Du kan læse et teknisk ML-paper og udtrække kerneideen uden at sidde fast i notationen.

U49 Reproducér et paper

Ugens pensum

Den ultimative forståelsestest: tag ét af de tre papers fra uge 48 og genskab dets centrale resultat. Papers udelader altid detaljer — at få det til at virke afslører hvad du virkelig forstår.

Ressourcer

GuidePapers With Code — find kode til papers
Referencebuild-nanoGPT — forbillede for reproduktion

Byggeopgave

Genskab kerneresultatet fra ét af dine valgte papers — i det små, på data du kan køre lokalt. Når dit tal matcher (eller du forstår hvorfor det ikke gør), har du forstået paperet i bund.

Evaluering

Du har reproduceret et publiceret resultat og kan forklare hvert trin.

U50 Skriv & del

Ugens pensum

Distribution er den egentlige knaphed — det er din egen tese. Konsolidér noget du lærte i en grundig, original teknisk artikel. At skrive klart er det sidste bevis på at du forstår.

Ressourcer

ForbilledeJay Alammar's blog — standard for teknisk klarhed
ForbilledeLilian Weng's blog — dybde

Byggeopgave

Skriv og udgiv en grundig teknisk artikel om noget du lærte i forløbet — ideelt knyttet til dit capstone eller paper-reproduktion. Gør den så god at den kunne stå ved siden af forbillederne ovenfor. Del den.

Evaluering

Du har udgivet noget en fremmed kunne lære af — og det er din egen, originale fremstilling.

U51 Idéhistorisk runding: Gödel, Turing, Shannon

Ugens pensum

Saml de tråde der har løbet gennem forløbet: Gödels uafgørlighed, Turings beregnelighed, Shannons information. De tre idéer der gør al moderne computing — og dermed al AI — mulig. Hvor de mødes og hvor de sætter grænser.

Ressourcer

BogHofstadter: Gödel, Escher, Bach — som ramme — udvalgte kapitler

Filosofisk / idéhistorisk sidespor

Gödel, Turing, Shannon — beregningens fundament og grænser
Gödel viste at ethvert tilstrækkeligt rigt system rummer sandheder det ikke kan bevise. Turing gjorde uafgørligheden konkret med stop-problemet. Shannon kvantificerede information. Tilsammen tegner de både mulighedsrummet og grænserne for det du har bygget hele året. Hvad siger de om hvad AI principielt kan og ikke kan?

Byggeopgave

Skriv et essay (til dig selv, eller udgiv det) der binder forløbets filosofiske tråde sammen: fra Descartes' koordinater til Gödels grænser. Hvordan har det tekniske arbejde ændret dit syn på spørgsmålet Turing stillede i uge 12?

Evaluering

Du kan forbinde de matematiske grundresultater til konkrete egenskaber ved de systemer du har bygget.

U52 Retrospektiv & næste skridt

Ugens pensum

Luk forløbet bevidst. Hvad ved du nu som du ikke gjorde i uge 1? Hvad er stadig black box? Et års systematisk arbejde fortjener en ordentlig opsamling — og en plan for hvad der kommer efter.

Ressourcer

ReferenceDistill.pub — for fortsat dybde
ReferenceOpen LLM course — for videre specialisering
ReferencearXiv: Machine Learning — hold dig opdateret

Byggeopgave

Skriv et åbent brev til dig selv ved uge 1. Hvad ville du fortælle ham? Hvad var sært nyttigt, hvad var spild? Kortlæg hvad der stadig er black box, og lav en konkret plan for de næste seks måneder — specialisering, et større projekt, eller formaliseret studie som OMSCS.

Evaluering

Du har en ærlig vurdering af din nye kompetence og en konkret retning fremad.

Din personlige AI-underviser Claude Opus 4.8

Spørg ind til en hvilken som helst uge, bed om en uddybning af et koncept, eller få planen tilpasset. Kører på Opus — kalibreret til din baggrund som produktbygger med rusten matematik og stærk byggeerfaring.

Claude Opus 4.8

Underviseren kalder Anthropic-API'et direkte fra browseren. Det virker når sitet åbnes i Claude-miljøet. Hostes filen på eget domæne, skal kaldet gå gennem en Worker med din egen API-nøgle.