Aligns the repo's docs with the new website aesthetic (cream + blueprint, print-manual tone) without breaking site/build.js, which parses README + ROADMAP + glossary into site/data.js. assets/banner.svg Replaces the dark gradient + coral coral banner with a cream + blueprint reference-manual banner: VT323 wordmark, dotted-paper background, FIG_000 caption, isometric stack diagram of the 20-phase curriculum, ASCII rule band along the bottom edge. README.md (-640 lines) Drops the marketing intro: hype quote, "Why This Course?" comparison table, "AI-Native Learning" prose, "Built-in Skills" table, "Every Lesson Ships Something" four-card row, the colorful 20-phase pill nav, decorative emojis throughout headings, the per-lesson Type shield image ( → plain "Build" / "Learn"), and the per-lesson Lang emoji flags (🐍 🟦 🦀 🟣 ⚛️ → plain "Python, TypeScript, Rust" — both forms are parser-equivalent in build.js). Adds a manual-style preface, terse "How each lesson is built" structural doc, monochrome blueprint-themed shields.io badges (license, lessons, phases, stars, web), and a contents anchor. Phase 0 heading switches from the shield-image form to the plain ### Phase 0: Setup & Tooling `12 lessons` form (build.js supports both). Phase 1-19 <details> headers drop their decorative emoji prefix (🟣 🔵 🟢 🟠 …) — build.js's <summary> regex makes the prefix optional. Verified: node site/build.js diff before/after shows identical phase count (20), lesson count (416), glossary terms (83), and identical PHASES content modulo Phase 0's description (emoji + asterisks dropped on purpose). All 416 lesson rows preserved with correct types/langs. ROADMAP.md Lighter touch: keeps the ✅ 🚧 ⬚ status glyphs (parser-critical), adds a one-line note that build.js parses these glyphs and they must not change shape, slight cleanup of the legend separator. CONTRIBUTING.md Adds a load-bearing section for new contributors: explains that README and ROADMAP feed site/build.js, lists the parser-critical patterns (phase header forms, lesson table column shape, status glyphs), and gives the validation command (run node site/build.js, git diff site/data.js should be timestamp-only). Replaces the "Thank you for wanting to make AI education better for everyone" opener with a more direct intro and adds a Style section that matches the manual's voice. site/data.js Auto-regenerated by node site/build.js. Only field that changes is PHASES[0].desc (Phase 0 description, which we intentionally rewrote to drop the emoji + italics).
A reference manual for people who want to design and build AI systems from first principles.
Twenty phases. 280+ lessons. Python, TypeScript, Rust, Julia. Every lesson produces something reusable: prompts, skills, agents, MCP servers. Free, open source, MIT licensed.
Preface
Have you ever wondered how a transformer actually pays attention? Or what backpropagation is doing under the hood when your loss curve drops? Or why a tokenizer ends up splitting playing into three pieces?
If you have, this is for you. This isn't a tutorial. It's a manual that explains how the things you use every day — gradient descent, attention, retrieval-augmented generation, multi-agent orchestration — actually work. Every algorithm gets implemented from raw math. No magic wrappers. You write the backprop, the tokenizer, the attention mechanism, the agent loop.
It won't make you a better ML engineer tomorrow. There's nothing actionable in here you can paste into a Jupyter cell. But knowing how things work comes in handy when you're debugging a model that loses signal halfway through training, or you're trying to figure out why your agent keeps hallucinating tool calls.
You don't need to be a researcher to read this. You just need to be curious and willing to write the code yourself.
How each lesson is built
phases/<NN>-<phase-name>/<NN>-<lesson-name>/
├── code/ runnable implementations (Python, TypeScript, Rust, Julia)
├── docs/
│ └── en.md lesson narrative
└── outputs/ prompts, skills, agents, or MCP servers this lesson produces
Every lesson follows the same six beats: motto, problem, concept, build it, use it, ship it. The Build It / Use It split is the spine — you implement the algorithm from scratch first, then run the same thing through PyTorch, sklearn, or the production library. You understand what the framework is doing because you wrote the smaller version yourself.
Getting started
git clone https://github.com/rohitg00/ai-engineering-from-scratch.git
cd ai-engineering-from-scratch
Pick any completed lesson from the website or expand a phase below. If you already know some ML, skip the assessment forward — the table at the bottom maps backgrounds to starting phases.
Inside Claude Code, the bundled /find-your-level skill runs a 10-question quiz that maps your
knowledge to a starting phase and produces a personalized path with hour estimates.
/check-understanding <phase> quizzes you per phase once you finish it.
Contents
Twenty phases. Click any phase to expand its lesson list.
Phase 0: Setup & Tooling 12 lessons
Get your environment ready for everything that follows.
| # | Lesson | Type | Lang |
|---|---|---|---|
| 01 | Dev Environment | Build | Python, TypeScript, Rust |
| 02 | Git & Collaboration | Learn | — |
| 03 | GPU Setup & Cloud | Build | Python |
| 04 | APIs & Keys | Build | Python, TypeScript |
| 05 | Jupyter Notebooks | Build | Python |
| 06 | Python Environments | Build | Python |
| 07 | Docker for AI | Build | Python |
| 08 | Editor Setup | Build | — |
| 09 | Data Management | Build | Python |
| 10 | Terminal & Shell | Learn | — |
| 11 | Linux for AI | Learn | — |
| 12 | Debugging & Profiling | Build | Python |
Phase 1 — Math Foundations 22 lessons The intuition behind every AI algorithm, through code.
Phase 2 — ML Fundamentals 18 lessons Classical ML — still the backbone of most production AI.
| # | Lesson | Type | Lang |
|---|---|---|---|
| 01 | What Is Machine Learning | Learn | Python |
| 02 | Linear Regression from Scratch | Build | Python |
| 03 | Logistic Regression & Classification | Build | Python |
| 04 | Decision Trees & Random Forests | Build | Python |
| 05 | Support Vector Machines | Build | Python |
| 06 | KNN & Distance Metrics | Build | Python |
| 07 | Unsupervised Learning: K-Means, DBSCAN | Build | Python |
| 08 | Feature Engineering & Selection | Build | Python |
| 09 | Model Evaluation: Metrics, Cross-Validation | Build | Python |
| 10 | Bias, Variance & the Learning Curve | Learn | Python |
| 11 | Ensemble Methods: Boosting, Bagging, Stacking | Build | Python |
| 12 | Hyperparameter Tuning | Build | Python |
| 13 | ML Pipelines & Experiment Tracking | Build | Python |
| 14 | Naive Bayes | Build | Python |
| 15 | Time Series Fundamentals | Build | Python |
| 16 | Anomaly Detection | Build | Python |
| 17 | Handling Imbalanced Data | Build | Python |
| 18 | Feature Selection | Build | Python |
Phase 3 — Deep Learning Core 13 lessons Neural networks from first principles. No frameworks until you build one.
| # | Lesson | Type | Lang |
|---|---|---|---|
| 01 | The Perceptron: Where It All Started | Build | Python |
| 02 | Multi-Layer Networks & Forward Pass | Build | Python |
| 03 | Backpropagation from Scratch | Build | Python |
| 04 | Activation Functions: ReLU, Sigmoid, GELU & Why | Build | Python |
| 05 | Loss Functions: MSE, Cross-Entropy, Contrastive | Build | Python |
| 06 | Optimizers: SGD, Momentum, Adam, AdamW | Build | Python |
| 07 | Regularization: Dropout, Weight Decay, BatchNorm | Build | Python |
| 08 | Weight Initialization & Training Stability | Build | Python |
| 09 | Learning Rate Schedules & Warmup | Build | Python |
| 10 | Build Your Own Mini Framework | Build | Python |
| 11 | Introduction to PyTorch | Build | Python |
| 12 | Introduction to JAX | Build | Python |
| 13 | Debugging Neural Networks | Build | Python |
Phase 4 — Computer Vision 28 lessons From pixels to understanding — image, video, 3D, VLMs, and world models.
Phase 5 — NLP: Foundations to Advanced 29 lessons Language is the interface to intelligence.
Phase 6 — Speech & Audio 17 lessons Hear, understand, speak.
| # | Lesson | Type | Lang |
|---|---|---|---|
| 01 | Audio Fundamentals: Waveforms, Sampling, FFT | Learn | Python |
| 02 | Spectrograms, Mel Scale & Audio Features | Build | Python |
| 03 | Audio Classification | Build | Python |
| 04 | Speech Recognition (ASR) | Build | Python |
| 05 | Whisper: Architecture & Fine-Tuning | Build | Python |
| 06 | Speaker Recognition & Verification | Build | Python |
| 07 | Text-to-Speech (TTS) | Build | Python |
| 08 | Voice Cloning & Voice Conversion | Build | Python |
| 09 | Music Generation | Build | Python |
| 10 | Audio-Language Models | Build | Python |
| 11 | Real-Time Audio Processing | Build | Python, Rust |
| 12 | Build a Voice Assistant Pipeline | Build | Python |
| 13 | Neural Audio Codecs — EnCodec, SNAC, Mimi, DAC | Learn | Python |
| 14 | Voice Activity Detection & Turn-Taking | Build | Python |
| 15 | Streaming Speech-to-Speech — Moshi, Hibiki | Learn | Python |
| 16 | Voice Anti-Spoofing & Audio Watermarking | Build | Python |
| 17 | Audio Evaluation — WER, MOS, MMAU, Leaderboards | Learn | Python |
Phase 7 — Transformers Deep Dive 14 lessons The architecture that changed everything.
| # | Lesson | Type | Lang |
|---|---|---|---|
| 01 | Why Transformers: The Problems with RNNs | Learn | Python |
| 02 | Self-Attention from Scratch | Build | Python |
| 03 | Multi-Head Attention | Build | Python |
| 04 | Positional Encoding: Sinusoidal, RoPE, ALiBi | Build | Python |
| 05 | The Full Transformer: Encoder + Decoder | Build | Python |
| 06 | BERT — Masked Language Modeling | Build | Python |
| 07 | GPT — Causal Language Modeling | Build | Python |
| 08 | T5, BART — Encoder-Decoder Models | Learn | Python |
| 09 | Vision Transformers (ViT) | Build | Python |
| 10 | Audio Transformers — Whisper Architecture | Learn | Python |
| 11 | Mixture of Experts (MoE) | Build | Python |
| 12 | KV Cache, Flash Attention & Inference Optimization | Build | Python |
| 13 | Scaling Laws | Learn | Python |
| 14 | Build a Transformer from Scratch | Build | Python |
Phase 8 — Generative AI 14 lessons Create images, video, audio, 3D, and more.
| # | Lesson | Type | Lang |
|---|---|---|---|
| 01 | Generative Models: Taxonomy & History | Learn | Python |
| 02 | Autoencoders & VAE | Build | Python |
| 03 | GANs: Generator vs Discriminator | Build | Python |
| 04 | Conditional GANs & Pix2Pix | Build | Python |
| 05 | StyleGAN | Build | Python |
| 06 | Diffusion Models — DDPM from Scratch | Build | Python |
| 07 | Latent Diffusion & Stable Diffusion | Build | Python |
| 08 | ControlNet, LoRA & Conditioning | Build | Python |
| 09 | Inpainting, Outpainting & Editing | Build | Python |
| 10 | Video Generation | Build | Python |
| 11 | Audio Generation | Build | Python |
| 12 | 3D Generation | Build | Python |
| 13 | Flow Matching & Rectified Flows | Build | Python |
| 14 | Evaluation: FID, CLIP Score | Build | Python |
Phase 9 — Reinforcement Learning 12 lessons The foundation of RLHF and game-playing AI.
| # | Lesson | Type | Lang |
|---|---|---|---|
| 01 | MDPs, States, Actions & Rewards | Learn | Python |
| 02 | Dynamic Programming | Build | Python |
| 03 | Monte Carlo Methods | Build | Python |
| 04 | Q-Learning, SARSA | Build | Python |
| 05 | Deep Q-Networks (DQN) | Build | Python |
| 06 | Policy Gradients — REINFORCE | Build | Python |
| 07 | Actor-Critic — A2C, A3C | Build | Python |
| 08 | PPO | Build | Python |
| 09 | Reward Modeling & RLHF | Build | Python |
| 10 | Multi-Agent RL | Build | Python |
| 11 | Sim-to-Real Transfer | Build | Python |
| 12 | RL for Games | Build | Python |
Phase 10 — LLMs from Scratch 22 lessons Build, train, and understand large language models.
Phase 11 — LLM Engineering 15 lessons Put LLMs to work in production.
| # | Lesson | Type | Lang |
|---|---|---|---|
| 01 | Prompt Engineering: Techniques & Patterns | Build | Python |
| 02 | Few-Shot, CoT, Tree-of-Thought | Build | Python |
| 03 | Structured Outputs | Build | Python, TypeScript |
| 04 | Embeddings & Vector Representations | Build | Python |
| 05 | Context Engineering | Build | Python, TypeScript |
| 06 | RAG: Retrieval-Augmented Generation | Build | Python, TypeScript |
| 07 | Advanced RAG: Chunking, Reranking | Build | Python |
| 08 | Fine-Tuning with LoRA & QLoRA | Build | Python |
| 09 | Function Calling & Tool Use | Build | Python |
| 10 | Evaluation & Testing | Build | Python |
| 11 | Caching, Rate Limiting & Cost | Build | Python |
| 12 | Guardrails & Safety | Build | Python |
| 13 | Building a Production LLM App | Build | Python |
| 14 | Model Context Protocol (MCP) | Build | Python |
| 15 | Prompt Caching & Context Caching | Build | Python |
Phase 12 — Multimodal AI 25 lessons See, hear, read, and reason across modalities — from ViT patches to computer-use agents.
Phase 13 — Tools & Protocols 23 lessons The interfaces between AI and the real world.
| # | Lesson | Type | Lang |
|---|---|---|---|
| 01 | The Tool Interface | Learn | Python |
| 02 | Function Calling Deep Dive | Build | Python |
| 03 | Parallel and Streaming Tool Calls | Build | Python |
| 04 | Structured Output | Build | Python |
| 05 | Tool Schema Design | Learn | Python |
| 06 | MCP Fundamentals | Learn | Python |
| 07 | Building an MCP Server | Build | Python |
| 08 | Building an MCP Client | Build | Python |
| 09 | MCP Transports | Learn | Python |
| 10 | MCP Resources and Prompts | Build | Python |
| 11 | MCP Sampling | Build | Python |
| 12 | MCP Roots and Elicitation | Build | Python |
| 13 | MCP Async Tasks | Build | Python |
| 14 | MCP Apps | Build | Python |
| 15 | MCP Security I — Tool Poisoning | Learn | Python |
| 16 | MCP Security II — OAuth 2.1 | Build | Python |
| 17 | MCP Gateways and Registries | Learn | Python |
| 18 | MCP Auth in Production — DCR + JWKS on iii | Build | Python |
| 19 | A2A Protocol | Build | Python |
| 20 | OpenTelemetry GenAI | Build | Python |
| 21 | LLM Routing Layer | Learn | Python |
| 22 | Skills and Agent SDKs | Learn | Python |
| 23 | Capstone — Tool Ecosystem | Build | Python |
Phase 14 — Agent Engineering 30 lessons Build agents from first principles — loop, memory, planning, frameworks, benchmarks, production.
Phase 15 — Autonomous Systems 22 lessons Long-horizon agents, self-improvement, and the 2026 safety stack.
Phase 16 — Multi-Agent & Swarms 25 lessons Coordination, emergence, and collective intelligence.
Phase 17 — Infrastructure & Production 28 lessons Ship AI to the real world.
| # | Lesson | Type | Lang |
|---|---|---|---|
| 01 | Managed LLM Platforms — Bedrock, Azure OpenAI, Vertex AI | Learn | Python |
| 02 | Inference Platform Economics — Fireworks, Together, Baseten, Modal | Learn | Python |
| 03 | GPU Autoscaling on Kubernetes — Karpenter, KAI Scheduler | Learn | Python |
| 04 | vLLM Serving Internals — PagedAttention, Continuous Batching, Chunked Prefill | Learn | Python |
| 05 | EAGLE-3 Speculative Decoding in Production | Learn | Python |
| 06 | SGLang and RadixAttention for Prefix-Heavy Workloads | Learn | Python |
| 07 | TensorRT-LLM on Blackwell with FP8 and NVFP4 | Learn | Python |
| 08 | Inference Metrics — TTFT, TPOT, ITL, Goodput, P99 | Learn | Python |
| 09 | Production Quantization — AWQ, GPTQ, GGUF, FP8, NVFP4 | Learn | Python |
| 10 | Cold Start Mitigation for Serverless LLMs | Learn | Python |
| 11 | Multi-Region LLM Serving and KV Cache Locality | Learn | Python |
| 12 | Edge Inference — ANE, Hexagon, WebGPU, Jetson | Learn | Python |
| 13 | LLM Observability Stack Selection | Learn | Python |
| 14 | Prompt Caching and Semantic Caching Economics | Learn | Python |
| 15 | Batch APIs — the 50% Discount as Industry Standard | Learn | Python |
| 16 | Model Routing as a Cost-Reduction Primitive | Learn | Python |
| 17 | Disaggregated Prefill/Decode — NVIDIA Dynamo and llm-d | Learn | Python |
| 18 | vLLM Production Stack with LMCache KV Offloading | Learn | Python |
| 19 | AI Gateways — LiteLLM, Portkey, Kong, Bifrost | Learn | Python |
| 20 | Shadow, Canary, and Progressive Deployment | Learn | Python |
| 21 | A/B Testing LLM Features — GrowthBook and Statsig | Learn | Python |
| 22 | Load Testing LLM APIs — k6, LLMPerf, GenAI-Perf | Build | Python |
| 23 | SRE for AI — Multi-Agent Incident Response | Learn | Python |
| 24 | Chaos Engineering for LLM Production | Learn | Python |
| 25 | Security — Secrets, PII Scrubbing, Audit Logs | Learn | Python |
| 26 | Compliance — SOC 2, HIPAA, GDPR, EU AI Act, ISO 42001 | Learn | Python |
| 27 | FinOps for LLMs — Unit Economics and Multi-Tenant Attribution | Learn | Python |
| 28 | Self-Hosted Serving Selection — llama.cpp, Ollama, TGI, vLLM, SGLang | Learn | Python |
Phase 18 — Ethics, Safety & Alignment 30 lessons Build AI that helps humanity. Not optional.
Phase 19 — Capstone Projects 17 projects 2026 end-to-end shippable products, 20-40 hours each.
| # | Project | Combines | Lang |
|---|---|---|---|
| 01 | Terminal-Native Coding Agent | P0 P5 P7 P10 P11 P13 P14 P15 P17 P18 | TypeScript, Python |
| 02 | RAG over Codebase (Cross-Repo Semantic Search) | P5 P7 P11 P13 P17 | Python, TypeScript |
| 03 | Real-Time Voice Assistant (ASR → LLM → TTS) | P6 P7 P11 P13 P14 P17 | Python, TypeScript |
| 04 | Multimodal Document QA (Vision-First) | P4 P5 P7 P11 P12 P17 | Python, TypeScript |
| 05 | Autonomous Research Agent (AI-Scientist Class) | P0 P2 P3 P7 P10 P14 P15 P16 P18 | Python |
| 06 | DevOps Troubleshooting Agent for Kubernetes | P11 P13 P14 P15 P17 P18 | Python, TypeScript |
| 07 | End-to-End Fine-Tuning Pipeline | P2 P3 P7 P10 P11 P17 P18 | Python |
| 08 | Production RAG Chatbot (Regulated Vertical) | P5 P7 P11 P12 P17 P18 | Python, TypeScript |
| 09 | Code Migration Agent (Repo-Level Upgrade) | P5 P7 P11 P13 P14 P15 P17 | Python, TypeScript |
| 10 | Multi-Agent Software Engineering Team | P11 P13 P14 P15 P16 P17 | Python, TypeScript |
| 11 | LLM Observability & Eval Dashboard | P11 P13 P17 P18 | TypeScript, Python |
| 12 | Video Understanding Pipeline (Scene → QA) | P4 P6 P7 P11 P12 P17 | Python, TypeScript |
| 13 | MCP Server with Registry and Governance | P11 P13 P14 P17 P18 | Python, TypeScript |
| 14 | Speculative-Decoding Inference Server | P3 P7 P10 P17 | Python |
| 15 | Constitutional Safety Harness + Red-Team Range | P10 P11 P13 P14 P18 | Python |
| 16 | GitHub Issue-to-PR Autonomous Agent | P11 P13 P14 P15 P17 | Python, TypeScript |
| 17 | Personal AI Tutor (Adaptive, Multimodal) | P5 P6 P11 P12 P14 P17 P18 | Python, TypeScript |
The toolkit
Every lesson produces a reusable artifact. By the end you have:
outputs/
├── prompts/ prompt templates for every AI task
├── skills/ SKILL.md files for AI coding agents
├── agents/ agent definitions ready to deploy
└── mcp-servers/ MCP servers built during the course
Install them with SkillKit. Plug them into Claude Code, Cursor, or any MCP-compatible agent. Real tools, not homework.
Where to start
| Background | Start at | Estimated time |
|---|---|---|
| New to programming and AI | Phase 0 — Setup | ~306 hours |
| Know Python, new to ML | Phase 1 — Math Foundations | ~270 hours |
| Know ML, new to deep learning | Phase 3 — Deep Learning Core | ~200 hours |
| Know deep learning, want LLMs and agents | Phase 10 — LLMs from Scratch | ~100 hours |
| Senior engineer, only want agent engineering | Phase 14 — Agent Engineering | ~60 hours |
Foundational papers covered
- Attention Is All You Need — Vaswani et al., 2017 → Phase 7
- Language Models are Few-Shot Learners (GPT-3) → Phase 10
- Denoising Diffusion Probabilistic Models → Phase 8
- InstructGPT / RLHF → Phase 10
- Direct Preference Optimization → Phase 10
- Chain-of-Thought Prompting → Phase 11
- ReAct: Reasoning + Acting in LLMs → Phase 14
- Model Context Protocol (Anthropic) → Phase 13
Contributing
| Goal | Read |
|---|---|
| Contribute a lesson or fix | CONTRIBUTING.md |
| Fork for your team or school | FORKING.md |
| Lesson template | LESSON_TEMPLATE.md |
| Track progress | ROADMAP.md |
| Glossary | glossary/terms.md |
| Code of conduct | CODE_OF_CONDUCT.md |
License
MIT. Use it however you want — fork it, teach it, sell it, ship it. Attribution appreciated, not required.
Maintained by Rohit Ghumare and the community.