ai-engineering-from-scratch Documentation

Learn AI Engineering! Learn it. Build it. Ship it for others.

RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy ai-engineering-from-scratch on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name ai-engineering-from-scratch -p 8888:8888 --restart always qdrant/qdrant:v1.12.5
Configured Services & Ports
⚙️ ai-dev
image: build locally
🔌 Ports: 8888:8888
⚙️ qdrant
image: qdrant/qdrant:v1.12.5
🔌 Ports: 6333:6333, 6334:6334
docker-compose.yml
yaml (docker-compose.yml)
services:
  ai-dev:
    build:
      context: .
      dockerfile: Dockerfile
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    volumes:
      - ../../../:/workspace
      - ~/models:/models
      - ~/datasets:/data
    ports:
      - "8888:8888"
    stdin_open: true
    tty: true
    command: jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root

  qdrant:
    image: qdrant/qdrant:v1.12.5
    ports:
      - "6333:6333"
      - "6334:6334"
    volumes:
      - qdrant_data:/qdrant/storage

volumes:
  qdrant_data:

Technical Documentation: rohitg00/ai-engineering-from-scratch

ℹ️ Provenance: Multi-Tier Ingestion · CodeWiki Reference

Overview (README.md)

Implement model internals, retrieval pipelines, and agent runtimes. Test them, inspect failures, and keep the code and evaluation results.

Start learning · Choose a path · Try a lab · Build a project · Browse the curriculum

Free, open source, MIT. Learn on the website, with a coding agent, or by running local code.

542 lessons. 20 phases. Python, TypeScript, Rust, Julia.

Read in your language

Sponsors


Learning paths

Route Starting lesson
Model foundations Setup and tooling
LLM systems Prompt engineering
Agents and delivery The agent loop

Compare career paths · Prerequisites and study time

Gradient descent

Twenty starting points follow gradient descent on a quadratic loss. The graph shows their positions and mean loss after each update.

Adjust the learning rate in the lesson · Compare GD, momentum, and Adam in code

Projects

Three projects with staged starters, reference implementations, and local graders. Run commands from the repository root after setup. Starters fail until you implement the stages.

01 · Retrieval Evaluation Lab · Python · Ranking metrics and regression checks

A candidate improves mean NDCG while one query ranks its most relevant evidence lower. Build a query-by-query comparison that reports the regression and can fail a release check.

Use Python 3.10+. Review RAG and model evaluation. Implement ranking validation, precision and recall, rank-sensitive metrics, then system comparison.

bash
python3 scripts/project_test.py retrieval-evaluation-lab \
  --init learning-artifacts/retrieval-evaluation-lab
python3 scripts/project_test.py retrieval-evaluation-lab \
  --stage 1 --path learning-artifacts/retrieval-evaluation-lab --strict
python3 scripts/project_test.py retrieval-evaluation-lab \
  --all --path learning-artifacts/retrieval-evaluation-lab --strict

Keep: a reproducible comparison with per-query deltas and the judgments used to score them. Metrics describe those judgments; they do not establish answer correctness.

Start the project · Inspect the reference · Run on your own inputs

02 · Agent Trace Debugger · TypeScript · Trace parsing and timing

A supplied trace still takes 100 ms, but total token usage rises by 200 and one span starts failing. Separate overlapping child work from parent execution time, then produce a report that exposes the change.

Use Node.js 22.18+ and Python 3 for the grader. Implement JSONL parsing, parent validation, interval arithmetic, then an inspectable timeline.

bash
python3 scripts/project_test.py agent-trace-debugger \
  --init learning-artifacts/agent-trace-debugger
python3 scripts/project_test.py agent-trace-debugger \
  --stage 1 --path learning-artifacts/agent-trace-debugger --strict
python3 scripts/project_test.py agent-trace-debugger \
  --all --path learning-artifacts/agent-trace-debugger --strict

Keep: the input trace, an HTML timeline, and a JSON regression report. Preserve exclusive per-span token counts so parent and child usage are not counted twice.

Start the project · Inspect the reference · Explore timing interactively

03 · Tool Call Firewall · Rust · Role checks and approval receipts

A write changes after review, or an approval is replayed. Validate the call envelope, check the caller's role and path, then consume an approval bound to the exact request and content.

Use Rust and Python 3.10+. Review tool schema design and security boundaries. The caller application supplies identity; the model proposes an operation.

bash
python3 scripts/project_test.py tool-call-firewall \
  --init learning-artifacts/tool-call-firewall
python3 scripts/project_test.py tool-call-firewall \
  --stage 1 --path learning-artifacts/tool-call-firewall --strict
python3 scripts/project_test.py tool-call-firewall \
  --all --path learning-artifacts/tool-call-firewall --strict

Keep: an audit receipt showing the requested operation and the policy decision. Approvals are single-use within one invocation; this project does not provide persistent authorization or an operating-system sandbox.

Start the project · Inspect the reference · Explore approval boundaries

Browse all projects · Career practice guide

Choose how to learn

On the website

Open any completed lesson on aiengineeringfromscratch.com or expand a phase under Contents. No setup, no cloning.

With an AI tutor

If Node.js, npx, and a skill-capable coding agent are already installed, your coding agent can become your tutor. A repository clone is not needed to install or read the tutor. Runnable focused-path labs need python3. Agent Skills host labs also need a selected host and a writable user or project skill scope.

bash
npx skills add rohitg00/ai-engineering-from-scratch

Choose the host and scope when the installer asks. Use start-learning in Codex, /start-learning in Claude Code, or ask your host to use the skill by name.

Tutor setup and host commands

Check the local requirements first:

bash
node --version
npx --version
python3 --version

skills writes to the host and scope selected during installation, such as
.claude/skills/, .cursor/skills/, .codex/skills/, or another supported
skills folder. Verify that the selected host discovers that exact destination.

Invocation syntax belongs to the host, not to the portable SKILL.md format:

Host Start the course Start Model Context Protocol (MCP) Start Agent Skills Run a phase quiz
Codex start-learning, or choose it from /skills learn-mcp, or choose it from /skills learn-agent-skills, or choose it from /skills check-understanding 13, or choose it from /skills
Claude Code /start-learning /learn-mcp /learn-agent-skills /check-understanding 13
Other compatible hosts Use start-learning to begin the course. Use learn-mcp to start the Model Context Protocol (MCP) path. Use learn-agent-skills to start the Agent Skills Engineering path. Use check-understanding to quiz me on Phase 13.

A ten-question placement quiz maps what you already know to a starting phase and
saves a personalized study plan to LEARNING.md. From there, the learn skill
teaches one lesson per session: concept, math, code, quiz. It streams lessons
straight from this repo, and the course-guide skill jumps you to the exact
lesson that covers anything you are stuck on. In Codex, invoke these skills with
learn and course-guide; in Claude Code, use /learn and /course-guide;
in other compatible hosts, ask to use the skill by name.

Only want Model Context Protocol (MCP)? Use the MCP invocation for your host. It creates
MCP-LEARNING.md and follows one 17-lesson route through stateless
requests, transports, bidirectional work, security, reliability, registry
governance, and conformance evidence. The exact order and checkpoints live in
the Model Context Protocol (MCP) manifest.

Only want Agent Skills? Use the Agent Skills invocation for your host. It
creates AGENT-SKILLS-LEARNING.md and follows one coherent five-lesson route:
contract, discovery, invocation, sandbox boundaries, then release evals and
real-host portability. Start on the web with the
Agent Skills path.

The installer lists the hosts it can configure and asks where to install. If
you do not have Node.js, npx, python3, a supported host, or a writable
scope yet, use the website or read docs/en.md manually. That path teaches the
concepts, but real-host discovery, invocation, script, and uninstall evidence
remains pending until the preflight is available. Read the lessons at
aiengineeringfromscratch.com.

The learning skills

Skill What it does
start-learning One-time onboarding: why you're learning, placement quiz, personalized plan saved to LEARNING.md.
learn The tutor loop. Warm-up recall, then the next lesson taught interactively, then its quiz; records progress and a review queue.
course-guide Topic router. "Where do I learn attention?" or "my loss is NaN" → the exact lessons, with links.
learn-mcp Focused Model Context Protocol (MCP) tutor. Creates MCP-LEARNING.md, follows the 17-lesson manifest, and records wire, security, reliability, and conformance evidence.
learn-agent-skills Focused Agent Skills tutor. Creates AGENT-SKILLS-LEARNING.md, teaches lessons 22, 24, 25, 26, and 27, and records real-host evidence.
learn-reverse-engineering Focused Reverse Engineering tutor. Creates REVERSE-ENGINEERING-LEARNING.md, teaches Phase 13 lessons 32 to 45 on programs you build yourself, and records lab evidence.
claude-certification Certification tutor. Chooses CCAO-F, CCDV-F, CCAR-F, or CCAR-P; teaches each lesson; runs labs; reviews artifacts; administers diagnostics and mocks; saves progress.
mcpa-certification MCPA tutor. Follows the 34-lesson mcpa-f route on the 2026-07-28 protocol; teaches each lesson; runs labs and the wire checker; administers the diagnostic and three mocks; saves progress.
find-your-level Ten-question placement quiz. Maps your knowledge to a starting phase and produces a personalized path with hour estimates.
check-understanding Per-phase quiz, eight questions, with feedback and specific lessons to review. Use the Codex, Claude Code, or natural-language form in the invocation table above.

Run local code

bash
git clone https://github.com/rohitg00/ai-engineering-from-scratch.git
cd ai-engineering-from-scratch
python3 phases/00-setup-and-tooling/01-dev-environment/code/verify.py --route beginner
python3 phases/01-math-foundations/01-linear-algebra-intuition/code/vectors.py

The preflight separates requirements needed now from tools needed later. Every
required failure includes the detected reason and a corrective command. The
vectors.py command is a dependency-free lesson and ends by showing that a matrix
times a vector is the operation inside a neural network layer. Save that
terminal output as your first evidence.

Use every lesson the same way

Use every lesson the same way

  1. Read docs/en.md and explain the core idea in your own words.
  2. Type and build the important code instead of treating the code block as decoration.
  3. Run the lesson command from the repository root, the directory containing README.md and phases/.
  4. Keep evidence: the command, working directory, exit code, meaningful output, and the artifact you changed or produced.
  5. Continue only when you can explain the output and make one small change without guessing.

Commands in lesson pages are paths from the repository root unless the lesson
explicitly says to change directories. If a lesson offers several languages,
run the implementation for the language you are learning.

Choose a learning path

You do not need to scan 542 lessons before beginning. Pick one goal. Each link
opens the same curriculum on GitHub or the website, and both versions use the
same lesson code.

Your goal Learn on GitHub Learn on the website
I am new and want the complete foundation Phase 0: Setup and Tooling Dev Environment
I know Python and want math plus ML foundations Phase 1: Math Foundations Linear Algebra Intuition
I want to build production LLM applications Phase 11: LLM Engineering Prompt Engineering
I want to build agents Phase 14: Agent Engineering The Agent Loop
I want to use coding agents on real repositories Agent-Assisted Engineering path Agent-Assisted Engineering
I want to shape the right build before implementation Product Judgment and Delivery path Product Judgment and Delivery

Not sure where you fit? Use the start-learning placement tutor
or the website prerequisites guide.

Compare four core domains and six career routes in the AI Engineering Learning Paths.

Focused MCP, Agent Skills, and Reverse Engineering paths

Your goal Learn on GitHub Learn on the website
I want to build with Model Context Protocol (MCP) Model Context Protocol (MCP) route Model Context Protocol (MCP) path
I want to write and ship Agent Skills Focused Agent Skills route Agent Skills path
I want to read compiled programs Reverse Engineering route Reverse Engineering path

Prerequisites and study time

Prerequisites

  • You can write code (any language; Python helps).
  • You want to understand how AI actually works, not just call APIs.

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
Only want to build production MCP systems Model Context Protocol (MCP) path ~23 hours 15 min
Only want to build production Agent Skills Agent Skills Engineering path ~9.5 hours
Only want to learn reverse engineering Reverse Engineering path ~32.5 hours

The shape of the curriculum

Twenty phases stack on top of each other. Math is the floor. Agents and production are the roof.
Skip ahead if you already know the lower layers, but don't skip and then wonder why something at
the top is breaking.

mermaid
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#fafaf5','primaryTextColor':'#1a1a1a','primaryBorderColor':'#3553ff','lineColor':'#3553ff','fontFamily':'JetBrains Mono','fontSize':'12px'}}}%%
flowchart TB
  P0["Phase 0 — Setup & Tooling"] --> P1["Phase 1 — Math Foundations"]
  P1 --> P2["Phase 2 — ML Fundamentals"]
  P2 --> P3["Phase 3 — Deep Learning Core"]
  P3 --> P4["Phase 4 — Vision"]
  P3 --> P5["Phase 5 — NLP"]
  P3 --> P6["Phase 6 — Speech & Audio"]
  P3 --> P9["Phase 9 — RL"]
  P5 --> P7["Phase 7 — Transformers"]
  P7 --> P8["Phase 8 — GenAI"]
  P7 --> P10["Phase 10 — LLMs from Scratch"]
  P10 --> P11["Phase 11 — LLM Engineering"]
  P10 --> P12["Phase 12 — Multimodal"]
  P11 --> P13["Phase 13 — Tools & Protocols"]
  P13 --> P14["Phase 14 — Agent Engineering"]
  P14 --> P15["Phase 15 — Autonomous Systems"]
  P15 --> P16["Phase 16 — Multi-Agent & Swarms"]
  P14 --> P17["Phase 17 — Infrastructure & Production"]
  P15 --> P18["Phase 18 — Ethics & Alignment"]
  P16 --> P19["Phase 19 — Capstone Projects"]
  P17 --> P19
  P18 --> P19

Contents

Twenty phases. Click any phase to expand its lesson list.

Phase 0: Setup & Tooling `13 lessons`

Get your environment ready for everything that follows.

# Lesson Type Lang
01 Dev Environment Build Python
02 Git & Collaboration Learn —
03 GPU Setup & Cloud Build Python
04 APIs & Keys Build Python
05 Jupyter Notebooks Build Python
06 Python Environments Build Shell
07 Docker for AI Build Docker
08 Editor Setup Build —
09 Data Management Build Python
10 Terminal & Shell Learn —
11 Linux for AI Learn —
12 Debugging & Profiling Build Python
13 Python for AI Engineering Build Python

Phase 1 — Math Foundations  22 lessons  The intuition behind every AI algorithm, through code.

# Lesson Type Lang
01 Linear Algebra Intuition Learn Python, Julia
02 Vectors, Matrices & Operations Build Python, Julia
03 Matrix Transformations & Eigenvalues Build Python, Julia
04 Calculus for ML: Derivatives & Gradients Learn Python
05 Chain Rule & Automatic Differentiation Build Python
06 Probability & Distributions Learn Python
07 Bayes' Theorem & Statistical Thinking Build Python
08 Optimization: Gradient Descent Family Build Python
09 Information Theory: Entropy, KL Divergence Learn Python
10 Dimensionality Reduction: PCA, t-SNE, UMAP Build Python
11 Singular Value Decomposition Build Python, Julia
12 Tensor Operations Build Python
13 Numerical Stability Build Python
14 Norms & Distances Build Python
15 Statistics for ML Build Python
16 Sampling Methods Build Python
17 Linear Systems Build Python
18 Convex Optimization Build Python
19 Complex Numbers for AI Learn Python
20 The Fourier Transform Build Python
21 Graph Theory for ML Build Python
22 Stochastic Processes Learn Python

Phase 2 — ML Fundamentals  21 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
19 ML System Design — From Problem to Deployed Model Build Python
20 Monitoring Models in Production — Data Drift and Concept Drift Build Python
21 Feature Stores and Training-Serving Skew 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.

# Lesson Type Lang
01 Image Fundamentals: Pixels, Channels, Color Spaces Learn Python
02 Convolutions from Scratch Build Python
03 CNNs: LeNet to ResNet Build Python
04 Image Classification Build Python
05 Transfer Learning & Fine-Tuning Build Python
06 Object Detection — YOLO from Scratch Build Python
07 Semantic Segmentation — U-Net Build Python
08 Instance Segmentation — Mask R-CNN Build Python
09 Image Generation — GANs Build Python
10 Image Generation — Diffusion Models Build Python
11 Stable Diffusion — Architecture & Fine-Tuning Build Python
12 Video Understanding — Temporal Modeling Build Python
13 3D Vision: Point Clouds, NeRFs Build Python
14 Vision Transformers (ViT) Build Python
15 Real-Time Vision: Edge Deployment Build Python
16 Build a Complete Vision Pipeline Build Python
17 Self-Supervised Vision — SimCLR, DINO, MAE Build Python
18 Open-Vocabulary Vision — CLIP Build Python
19 OCR & Document Understanding Build Python
20 Image Retrieval & Metric Learning Build Python
21 Keypoint Detection & Pose Estimation Build Python
22 3D Gaussian Splatting from Scratch Build Python
23 Diffusion Transformers & Rectified Flow Build Python
24 SAM 3 & Open-Vocabulary Segmentation Build Python
25 Vision-Language Models (ViT-MLP-LLM) Build Python
26 Monocular Depth & Geometry Estimation Build Python
27 Multi-Object Tracking & Video Memory Build Python
28 World Models & Video Diffusion Build Python

Phase 5 — NLP: Foundations to Advanced  29 lessons  Language is the interface to intelligence.

# Lesson Type Lang
01 Text Processing: Tokenization, Stemming, Lemmatization Build Python
02 Bag of Words, TF-IDF & Text Representation Build Python
03 Word Embeddings: Word2Vec from Scratch Build Python
04 GloVe, FastText & Subword Embeddings Build Python
05 Sentiment Analysis Build Python
06 Named Entity Recognition (NER) Build Python
07 POS Tagging & Syntactic Parsing Build Python
08 Text Classification — CNNs & RNNs for Text Build Python
09 Sequence-to-Sequence Models Build Python
10 Attention Mechanism — The Breakthrough Build Python
11 Machine Translation Build Python
12 Text Summarization Build Python
13 Question Answering Systems Build Python
14 Information Retrieval & Search Build Python
15 Topic Modeling: LDA, BERTopic Build Python
16 Text Generation Build Python
17 Chatbots: Rule-Based to Neural Build Python
18 Multilingual NLP Build Python
19 Subword Tokenization: BPE, WordPiece, Unigram, SentencePiece Learn Python
20 Structured Outputs & Constrained Decoding Build Python
21 NLI & Textual Entailment Learn Python
22 Embedding Models Deep Dive Learn Python
23 Chunking Strategies for RAG Build Python
24 Coreference Resolution Learn Python
25 Entity Linking & Disambiguation Build Python
26 Relation Extraction & Knowledge Graph Construction Build Python
27 LLM Evaluation: RAGAS, DeepEval, G-Eval Build Python
28 Long-Context Evaluation: NIAH, RULER, LongBench, MRCR Learn Python
29 Dialogue State Tracking Build Python

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
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  16 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
15 Attention Variants — Sliding Window, Sparse, Differential Build Python
16 Speculative Decoding — Draft, Verify, Repeat Build Python

Phase 8 — Generative AI  15 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
19 Visual Autoregressive Modeling (VAR): Next-Scale Prediction 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  24 lessons  Build, train, and understand large language models.

# Lesson Type Lang
01 Tokenizers: BPE, WordPiece, SentencePiece Build Python, Rust
02 Building a Tokenizer from Scratch Build Python
03 Data Pipelines for Pre-Training Build Python
04 Pre-Training a Mini GPT (124M) Build Python
05 Distributed Training, FSDP, DeepSpeed Build Python
06 Instruction Tuning — SFT Build Python
07 RLHF — Reward Model + PPO Build Python
08 DPO — Direct Preference Optimization Build Python
09 Constitutional AI & Self-Improvement Build Python
10 Evaluation — Benchmarks, Evals Build Python
11 Quantization: INT8, GPTQ, AWQ, GGUF Build Python
12 Inference Optimization Build Python
13 Building a Complete LLM Pipeline Build Python
14 Open Models: Architecture Walkthroughs Learn Python
15 Speculative Decoding and EAGLE-3 Build Python
16 Differential Attention (V2) Build Python
17 Native Sparse Attention (DeepSeek NSA) Build Python
18 Multi-Token Prediction (MTP) Build Python
19 DualPipe Parallelism Learn Python
20 DeepSeek-V3 Architecture Walkthrough Learn Python
21 Jamba — Hybrid SSM-Transformer Learn Python
22 Async and Hogwild! Inference Build Python
25 Speculative Decoding and EAGLE Build Python
34 Gradient Checkpointing and Activation Recomputation Build Python

Phase 11 — LLM Engineering  17 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
04 Embeddings & Vector Representations Build Python
05 Context Engineering Build Python
06 RAG: Retrieval-Augmented Generation Build Python
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
16 Agent State Machines — Graphs, Nodes, Checkpoints Build Python
17 Agent Framework Tradeoffs Learn Python

Phase 12 — Multimodal AI  25 lessons  See, hear, read, and reason across modalities — from ViT patches to computer-use agents.

# Lesson Type Lang
01 Vision Transformers and the Patch-Token Primitive Learn Python
02 CLIP and Contrastive Vision-Language Pretraining Build Python
03 BLIP-2 Q-Former as Modality Bridge Build Python
04 Flamingo and Gated Cross-Attention Learn Python
05 LLaVA and Visual Instruction Tuning Build Python
06 Any-Resolution Vision — Patch-n'-Pack and NaFlex Build Python
07 Open-Weight VLM Recipes: What Actually Matters Learn Python
08 LLaVA-OneVision: Single, Multi, Video Build Python
09 Qwen-VL Family and Dynamic-FPS Video Learn Python
10 InternVL3 Native Multimodal Pretraining Learn Python
11 Chameleon Early-Fusion Token-Only Build Python
12 Emu3 Next-Token Prediction for Generation Learn Python
13 Transfusion Autoregressive + Diffusion Build Python
14 Show-o Discrete-Diffusion Unified Learn Python
15 Janus-Pro Decoupled Encoders Build Python
16 MIO Any-to-Any Streaming Learn Python
17 Video-Language Temporal Grounding Build Python
18 Long-Video at Million-Token Context Build Python
19 Audio-Language Models: Whisper to AF3 Build Python
20 Omni Models: Thinker-Talker Streaming Build Python
21 Embodied VLAs: RT-2, OpenVLA, π0, GR00T Learn Python
22 Document and Diagram Understanding Build Python
23 ColPali Vision-Native Document RAG Build Python
24 Multimodal RAG and Cross-Modal Retrieval Build Python
25 Multimodal Agents and Computer-Use (Capstone) Build Python

Phase 13 — Tools & Protocols  45 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: Stateless Requests and JSON-RPC Learn Python
07 Building an MCP Server: Stateless Python and TypeScript Build Python, TypeScript
08 Building an MCP Client: Discovery, Routing, and Dual-Era Fallback Build Python
09 MCP Transports: stdio and Stateless Streamable HTTP Learn Python
10 MCP Resources and Prompts: Addressable Context for Stateless Servers Build Python
11 MCP Model Input: Sampling Migration and Stateless MRTR Build Python
12 Explicit Scope and Stateless Elicitation Build Python
13 MCP Tasks Extension: Durable Work on a Stateless Core Build Python
14 MCP Apps on the Stateless Protocol Build Python
15 MCP Security: Poisoned Metadata, Routing, and MRTR State Learn Python
16 MCP Authorization: CIMD, Issuer Binding, PKCE, and Step-Up Build Python
17 Stateless MCP Gateways and Registry Admission Learn Python
18 MCP Auth in Production: Issuer-Bound Enrollment and Tokens Build Python
19 A2A Protocol Build Python
20 OpenTelemetry GenAI Build Python
21 LLM Routing Layer Learn Python
22 Agent Skills: Portable Contract and Runtime Boundary Build Python
23 Capstone: Stateless Tool Ecosystem Build Python
24 Skill Discovery and Progressive Disclosure Build Python
25 Skill Invocation and Routing Build Python
26 Skill Permissions, Sandboxes, and Trust Build Python
27 Skill Evals, Packaging, and Portability Build Python
28 MCP Tool Contracts and Content Build Python
29 MCP Reliability, Cancellation, and Flow Control Build Python
30 MCP Registry Supply Chain: Admission, Drift, and Rollback Build Python
31 MCP Conformance Engineering: Versioning, Evidence, and Operations Build Python
32 Program Anatomy: An ELF Reader From Scratch Build Python
33 Disassembly and Control Flow: From Bytes to a Graph You Can Check Build Python
34 Lifting to Pseudocode: IR, SSA, and Structuring From Scratch Build Python
35 Evidence, Confidence, and Unknowns in Binary Analysis Build Python
36 Rebuild and Prove Equal: Differential Tests, Byte Comparison, and the Evidence Loop Build Python
37 The Reverse Engineering Landscape: History, Tool Families, and How a Decompiler Is Built Build Python
38 Calling Conventions and Stack Frames: System V, Windows x64, and AArch64 Build Python
39 Compiler Idioms: What Optimization Does to Your Code and How to Read It Back Build Python
40 Linking, Loading, and Stripped Binaries: PLT, GOT, Imports, Fixups, and Function Identification Build Python
41 Recovering Data and Types: Structs, Arrays, C++ Objects, and DWARF Build Python
42 Dynamic Analysis of Your Own Program: Debuggers, Traces, and Confirming Static Claims Build Python
43 Beyond Native Code: Python, JVM, .NET, and WebAssembly Bytecode Build Python
44 Binary Diffing and Symbolic Execution: Matching Functions and Solving for Inputs Build Python
45 AI-Assisted Reverse Engineering: LLM Decompilers, Analysis Agents, and Ground Truth Build Python

Lessons 06-18 and 28-31 form the focused
Model Context Protocol (MCP) path. Its manifest order
is 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 18, 17, 28, 29, 30, 31. Start
it with the host-specific learn-mcp invocation above. Lesson 23
is its only optional capstone and also requires Lessons 19 and 20.

Lessons 22 and 24-27 form the focused
Agent Skills learning path, from package
contract through real-host release gates. Start it with the host-specific
learn-agent-skills invocation shown above; do not follow numeric next
navigation from 22 to 23.

Phase 14 — Agent Engineering  54 lessons  Build agents from first principles, use coding agents reliably, and shape the work before implementation.

# Lesson Type Lang
01 The Agent Loop Build Python
02 ReWOO and Plan-and-Execute Build Python
03 Reflexion and Verbal Reinforcement Learning Build Python
04 Tree of Thoughts and LATS Build Python
05 Self-Refine and CRITIC Build Python
06 Tool Use and Function Calling Build Python
07 Agent Memory — Virtual Context and Memory Paging Build Python
08 Memory Blocks and Sleep-Time Compute Build Python
09 Hybrid Memory — Vector + Graph + KV Build Python
10 Skill Libraries and Lifelong Learning (Voyager) Build Python
11 Planning with HTN and Evolutionary Search Build Python
12 Anthropic's Workflow Patterns Build Python
13 Stateful Graph Orchestration — Durable Execution and Checkpoints Build Python
14 The Actor Model for Agents Build Python
15 Role-Based Agent Teams — Roles, Tasks, Processes Build Python
16 OpenAI Agents SDK — Handoffs, Guardrails, Tracing Build Python
17 The Harness as a Library — Subagents and Session Store Build Python
18 Production Agent Runtimes Learn Python
19 Benchmarks — SWE-bench, GAIA, AgentBench Learn Python
20 Benchmarks — WebArena and OSWorld Learn Python
21 Computer Use — Claude, OpenAI CUA, Gemini Build Python
22 Voice Agents — Pipecat and LiveKit Build Python
23 OpenTelemetry GenAI Semantic Conventions Build Python
24 Agent Observability — Langfuse, Phoenix, Opik Learn Python
25 Multi-Agent Debate and Collaboration Build Python
26 Failure Modes — Why Agents Break Build Python
27 Prompt Injection and the PVE Defense Build Python
28 Orchestration Patterns — Supervisor, Swarm, Hierarchical Build Python
29 Production Runtimes — Queue, Event, Cron Learn Python
30 Eval-Driven Agent Development Build Python
31 Agent Workbench: Why Capable Models Still Fail Learn Python
32 The Minimal Agent Workbench Build Python
33 Agent Instructions as Executable Constraints Build Python
34 Repo Memory and Durable State Build Python
35 Initialization Scripts for Agents Build Python
36 Scope Contracts and Task Boundaries Build Python
37 Runtime Feedback Loops Build Python
38 Verification Gates Build Python
39 Reviewer Agent: Separate Builder from Marker Build Python
40 Multi-Session Handoff Build Python
41 The Workbench on a Real Repo Build Python
42 Capstone: Ship a Reusable Agent Workbench Pack Build Python
43 Frame the Task Before the Agent Writes Code Build Python
44 Build an Evidence-Backed Execution Plan Build Python
45 Delegate Agent Work with Isolation and Merge Contracts Build Python
46 Turn Every Agent Correction into a System Improvement Build Python
47 Define the Outcome Before You Choose the Output Build Python
48 Discover the Workflow People Actually Perform Build Python
49 Map Assumptions and Resolve the Riskiest One First Build Python
50 Choose the Smallest Slice That Can Change the Decision Build Python
51 Write Specifications That Preserve Judgment Build Python
52 Design Success Metrics Before the Result Exists Build Python
53 Choose Prototype, Pilot, or Production Deliberately Build Python
54 Build a Feedback Ratchet with Ownership and Retirement Build Python

Each Phase 14 workbench lesson (31-42) ships a mission.md briefing the agent before it opens the full lesson docs.

Lessons 31-46 form the Agent-Assisted Engineering path.
Its manifest order combines the workbench foundation with task framing, planning,
delegation, and durable feedback. Lessons 47-54 form the
Product Judgment and Delivery path, from outcome framing
through evidence, risk, scope, measurement, staged release, and feedback ownership.

Phase 15 — Autonomous Systems  22 lessons  Long-horizon agents, self-improvement, and the 2026 safety stack.

# Lesson Type Lang
01 From Chatbots to Long-Horizon Agents (METR) Learn Python
02 STaR, V-STaR, Quiet-STaR: Self-Taught Reasoning Learn Python
03 AlphaEvolve: Evolutionary Coding Agents Learn Python
04 Darwin Gödel Machine: Self-Modifying Agents Learn Python
05 AI Scientist v2: Workshop-Level Research Learn Python
06 Automated Alignment Research (Anthropic AAR) Learn Python
07 Recursive Self-Improvement: Capability vs Alignment Learn Python
08 Bounded Self-Improvement Designs Learn Python
09 Autonomous Coding Agent Landscape (SWE-bench, CodeAct) Learn Python
10 Permission Modes for Autonomous Agents Learn Python
11 Browser Agents and Indirect Prompt Injection Learn Python
12 Durable Execution for Long-Running Agents Learn Python
13 Action Budgets, Iteration Caps, Cost Governors Learn Python
14 Kill Switches, Circuit Breakers, Canary Tokens Learn Python
15 HITL: Propose-Then-Commit Learn Python
16 Checkpoints and Rollback Learn Python
17 Constitutional AI and Rule Overrides Learn Python
18 Llama Guard and Input/Output Classification Learn Python
19 Anthropic Responsible Scaling Policy v3.0 Learn Python
20 OpenAI Preparedness Framework and DeepMind FSF Learn Python
21 METR Time Horizons and External Evaluation Learn Python
22 CAIS, CAISI, and Societal-Scale Risk Learn Python

Phase 16 — Multi-Agent & Swarms  25 lessons  Coordination, emergence, and collective intelligence.

# Lesson Type Lang
01 Why Multi-Agent Learn TypeScript
02 FIPA-ACL Heritage and Speech Acts Learn Python
03 Communication Protocols Build TypeScript
04 The Multi-Agent Primitive Model Learn Python
05 Supervisor / Orchestrator-Worker Pattern Build Python
06 Hierarchical Architecture and Decomposition Drift Learn Python
07 Society of Mind and Multi-Agent Debate Build Python
08 Role Specialization — Planner / Critic / Executor / Verifier Build Python
09 Parallel Swarm and Networked Architectures Build Python
10 Group Chat and Speaker Selection Build Python
11 Handoffs and Routines (Stateless Orchestration) Build Python
12 A2A — The Agent-to-Agent Protocol Build Python
13 Shared Memory and Blackboard Patterns Build Python
14 Consensus and Byzantine Fault Tolerance Build Python
15 Voting, Self-Consistency, and Debate Topology Build Python
16 Negotiation and Bargaining Build Python
17 Generative Agents and Emergent Simulation Build Python
18 Theory of Mind and Emergent Coordination Build Python
19 Swarm Optimization (PSO, ACO) Build Python
20 MARL — MADDPG, QMIX, MAPPO Learn Python
21 Agent Economies, Token Incentives, Reputation Learn Python
22 Production Scaling — Queues, Checkpoints, Durability Build Python
23 Failure Modes — MAST, Groupthink, Monoculture Learn Python
24 Evaluation and Coordination Benchmarks Learn Python
25 Case Studies and 2026 State of the Art Learn Python

Phase 17 — Infrastructure & Production  29 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 Serving Engine Internals — PagedAttention, Continuous Batching, Chunked Prefill Learn Python
05 EAGLE-3 Speculative Decoding in Production Learn Python
06 Prefix-Cache Serving — RadixAttention and KV Reuse Learn Python
07 Hardware-Specialized Inference Compilation — FP8 and NVFP4 on Blackwell 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 Production Serving Stack — KV Offloading and Cache-Aware Routing 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 — Matching Engine to Hardware and Scale Learn Python
29 Model Demo Interfaces — From a Function to a Shareable App Build Python

Phase 18 — Ethics, Safety & Alignment  30 lessons  Build AI that helps humanity. Not optional.

# Lesson Type Lang
01 Instruction-Following as Alignment Signal Learn Python
02 Reward Hacking & Goodhart's Law Learn Python
03 Direct Preference Optimization Family Learn Python
04 Sycophancy as RLHF Amplification Learn Python
05 Constitutional AI & RLAIF Learn Python
06 Mesa-Optimization & Deceptive Alignment Learn Python
07 Sleeper Agents — Persistent Deception Learn Python
08 In-Context Scheming in Frontier Models Learn Python
09 Alignment Faking Learn Python
10 AI Control — Safety Despite Subversion Learn Python
11 Scalable Oversight & Weak-to-Strong Learn Python
12 Red-Teaming: PAIR & Automated Attacks Build Python
13 Many-Shot Jailbreaking Learn Python
14 ASCII Art & Visual Jailbreaks Build Python
15 Indirect Prompt Injection Build Python
16 Red-Team Tooling: Garak, Llama Guard, PyRIT Build Python
17 WMDP & Dual-Use Capability Evaluation Learn Python
18 Frontier Safety Frameworks — RSP, PF, FSF Learn Python
19 Model Welfare Research Learn Python
20 Bias & Representational Harm Build Python
21 Fairness Criteria: Group, Individual, Counterfactual Learn Python
22 Differential Privacy for LLMs Build Python
23 Watermarking: SynthID, Stable Signature, C2PA Build Python
24 Regulatory Frameworks: EU, US, UK, Korea Learn Python
25 EchoLeak & CVEs for AI Learn Python
26 Model, System & Dataset Cards Build Python
27 Data Provenance & Training-Data Governance Learn Python
28 Alignment Research Ecosystem: MATS, Redwood, Apollo, METR Learn Python
29 Moderation Systems: OpenAI, Perspective, Llama Guard Build Python
30 Dual-Use Risk: Cyber, Bio, Chem, Nuclear Learn Python

Phase 19 — Capstone Projects  85 lessons  17 end-to-end products + 9 deep-build tracks. 20-40 hours per project; 4-12 lessons per track.

# Project Combines Lang
01 Terminal-Native Coding Agent P0 P5 P7 P10 P11 P13 P14 P15 P17 P18 Python
02 RAG over Codebase (Cross-Repo Semantic Search) P5 P7 P11 P13 P17 Python
03 Real-Time Voice Assistant (ASR → LLM → TTS) P6 P7 P11 P13 P14 P17 Python
04 Multimodal Document QA (Vision-First) P4 P5 P7 P11 P12 P17 Python
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
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
09 Code Migration Agent (Repo-Level Upgrade) P5 P7 P11 P13 P14 P15 P17 Python
10 Multi-Agent Software Engineering Team P11 P13 P14 P15 P16 P17 Python
11 LLM Observability & Eval Dashboard P11 P13 P17 P18 Python
12 Video Understanding Pipeline (Scene → QA) P4 P6 P7 P11 P12 P17 Python
13 Stateless MCP Server with Registry and Governance P11 P13 P14 P17 P18 Python
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
17 Personal AI Tutor (Adaptive, Multimodal) P5 P6 P11 P12 P14 P17 P18 Python

Deep-build tracks — multi-lesson series that build a complete subsystem from scratch.

# Project Combines Lang
20 Agent Harness Loop Contract A. Agent harness Python
21 Tool Registry with Schema Validation A. Agent harness Python
22 JSON-RPC 2.0 Over Newline-Delimited Stdio A. Agent harness Python
23 Function Call Dispatcher A. Agent harness Python
24 Plan-Execute Control Flow A. Agent harness Python
25 Verification Gates and Observation Budget A. Agent harness Python
26 Sandbox Runner with Denylist and Path Jail A. Agent harness Python
27 Eval Harness with Fixture Tasks A. Agent harness Python
28 Observability with OTel GenAI Spans and Prometheus Metrics A. Agent harness Python
29 End-to-End Coding Agent on the Harness A. Agent harness Python
30 BPE Tokenizer From Scratch B. NLP LLM Python
31 Tokenized Dataset with Sliding Window B. NLP LLM Python
32 Token and Positional Embeddings B. NLP LLM Python
33 Multi-Head Self-Attention B. NLP LLM Python
34 Transformer Block from Scratch B. NLP LLM Python
35 GPT Model Assembly B. NLP LLM Python
36 Training Loop and Evaluation B. NLP LLM Python
37 Loading Pretrained Weights B. NLP LLM Python
38 Classifier Fine-Tuning by Head Swap B. NLP LLM Python
39 Instruction Tuning by Supervised Fine-Tuning B. NLP LLM Python
40 Direct Preference Optimization from Scratch B. NLP LLM Python
41 Full Evaluation Pipeline B. NLP LLM Python
42 Large Corpus Downloader C. Train end-to-end Python
43 HDF5 Tokenized Corpus C. Train end-to-end Python
44 Cosine LR with Linear Warmup C. Train end-to-end Python
45 Gradient Clipping and Mixed Precision C. Train end-to-end Python
46 Gradient Accumulation C. Train end-to-end Python
47 Checkpoint Save and Resume C. Train end-to-end Python
48 Distributed Data Parallel and FSDP from Scratch C. Train end-to-end Python
49 Language Model Evaluation Harness C. Train end-to-end Python
50 Hypothesis Generator D. Auto research Python
51 Literature Retrieval D. Auto research Python
52 Experiment Runner D. Auto research Python
53 Result Evaluator D. Auto research Python
54 Paper Writer D. Auto research Python
55 Critic Loop D. Auto research Python
56 Iteration Scheduler D. Auto research Python
57 End-to-End Research Demo D. Auto research Python
58 Vision Encoder Patches E. Multimodal VLM Python
59 Vision Transformer Encoder E. Multimodal VLM Python
60 Projection Layer for Modality Alignment E. Multimodal VLM Python
61 Cross-Attention Fusion E. Multimodal VLM Python
62 Vision-Language Pretraining E. Multimodal VLM Python
63 Multimodal Evaluation E. Multimodal VLM Python
64 Chunking Strategies, Compared F. Advanced RAG Python
65 Hybrid Retrieval with BM25 and Dense Embeddings F. Advanced RAG Python
66 Cross-Encoder Reranker F. Advanced RAG Python
67 Query Rewriting: HyDE, Multi-Query, and Decomposition F. Advanced RAG Python
68 RAG Evaluation: Precision, Recall, MRR, nDCG, Faithfulness, Answer Relevance F. Advanced RAG Python
69 End-to-End RAG System F. Advanced RAG Python
70 Task Spec Format G. Eval framework Python
71 Classical Metrics G. Eval framework Python
72 Code Exec Metric G. Eval framework Python
73 Perplexity and Calibration G. Eval framework Python
74 Leaderboard Aggregation G. Eval framework Python
75 End-to-End Eval Runner G. Eval framework Python
76 Collective Ops From Scratch H. Distributed train Python
77 Data Parallel DDP From Scratch H. Distributed train Python
78 ZeRO Optimizer State Sharding H. Distributed train Python
79 Pipeline Parallel and Bubble Analysis H. Distributed train Python
80 Sharded Checkpoint and Atomic Resume H. Distributed train Python
81 End-to-End Distributed Training H. Distributed train Python
82 Jailbreak Taxonomy I. Safety harness Python
83 Prompt Injection Detector I. Safety harness Python
84 Refusal Evaluation I. Safety harness Python
85 Content Classifier Integration I. Safety harness Python
86 Constitutional Rules Engine I. Safety harness Python, YAML
87 End-to-End Safety Gate I. Safety harness Python

Books and certifications

Read the core curriculum as a book

The 20-phase core curriculum under phases/ compiles into a six-volume book series. EPUB and PDF are built by CI from the same core lesson sources and attached to every GitHub release; the links below always resolve to the newest release. Volume numbers index the series, not versions: each copy carries a dated edition stamp, and older editions stay downloadable from their release.

Certification curricula are intentionally not converted into the books. Their
AI tutor state, runnable labs, interactive figures, diagnostics, and timed mocks
remain first-class on GitHub and the website.

Vol Title Phases Download
1 Foundations · Math, Tooling, and Classical Machine Learning 00-02 EPUB · PDF
2 Deep Learning · Networks, Vision, and Speech 03, 04, 06 EPUB · PDF
3 Language · NLP Foundations and the Transformer 05, 07 EPUB · PDF
4 Large Language Models · Generation, Reinforcement, Pretraining, and Engineering 08-11 EPUB · PDF
5 Agents · Multimodality, Protocols, Autonomy, and Swarms 12-16 EPUB · PDF
6 Production · Infrastructure, Safety, and Capstones 17-19 EPUB · PDF

The book is the snapshot; this repository is the living edition. Every chapter ends with links back to the lesson's animated figures, quiz, and runnable code. Build locally with python3 scripts/build_book.py (pandoc required); pipeline details in book/README.md.

Prepare for Claude certifications

The Claude Certification Academy is a free,
open-source preparation program for all four official Claude certification tracks:
Associate Foundations, Developer Foundations, Architect Foundations, and Architect
Professional. Each route combines blueprint-mapped lessons, runnable labs, a
diagnostic, capstone work, and a full-length original practice exam.

Use the AI-native GitHub onboarding guide
with Claude Code, Codex, ChatGPT, Cursor, or another agent. Run
claude-certification in Codex, /claude-certification in Claude Code, or ask
another host to use claude-certification. It chooses a track, creates a
persistent route in CLAUDE-CERTIFICATION.md, teaches one step at a time, runs
the real labs, and gives artifact-based feedback. The same curriculum remains
available on the certification website.

The academy is independent study material based on public exam objectives. It is not
affiliated with Anthropic, does not reproduce live exam questions, and cannot guarantee
a passing score.

Prepare for MCP Associate (MCPA)

The MCPA Certification Curriculum is a free,
open-source preparation program for the Model Context Protocol Associate exam from the
Agentic AI Foundation, delivered through Linux Foundation Training. Its 34 lessons teach
the stateless 2026-07-28 protocol across the five exam domains: per-request _meta and
server/discover in place of the old handshake, multi round-trip requests, subscriptions,
caching, the tasks and MCP Apps extensions, OAuth authorization, and the registry and SDK
tiers. Every lesson ships a runnable standard-library lab whose transcript is checked for
the current wire shape, and the track adds a diagnostic, a capstone, and three full-length
original practice exams whose question mix follows the published blueprint weights.

Use the AI-native GitHub onboarding guide with
Claude Code, Codex, ChatGPT, Cursor, or another agent. Run mcpa-certification in Codex,
/mcpa-certification in Claude Code, or ask another host to use mcpa-certification. It
creates a persistent route in MCPA-CERTIFICATION.md, teaches one step at a time, runs
the real labs, and gives artifact-based feedback. The same curriculum is available on the
MCPA track page.

This curriculum is independent study material based on public exam objectives. It is not
affiliated with the Agentic AI Foundation or the Linux Foundation, does not reproduce
live exam questions, and cannot guarantee a passing score.

The toolkit

Every lesson produces a reusable artifact. Install one in your agent or use the scripts below from the repository root.

Lesson structure and reusable artifacts

The shape of a lesson

Each lesson lives in its own folder, with the same structure across the entire curriculum:

text
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 six beats. The Build It / Use It split is the spine — you implement the
algorithm from scratch first, then run the same thing through the production library. You
understand what the framework is doing because you wrote the smaller version yourself.

mermaid
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#fafaf5','primaryTextColor':'#1a1a1a','primaryBorderColor':'#3553ff','lineColor':'#3553ff','fontFamily':'JetBrains Mono','fontSize':'13px'}}}%%
flowchart LR
  M["MOTTO<br/><sub>one-line core idea</sub>"] --> Pr["PROBLEM<br/><sub>concrete pain</sub>"]
  Pr --> C["CONCEPT<br/><sub>diagrams &amp; intuition</sub>"]
  C --> B["BUILD IT<br/><sub>raw math, no frameworks</sub>"]
  B --> U["USE IT<br/><sub>same thing in PyTorch / sklearn</sub>"]
  U --> S["SHIP IT<br/><sub>prompt · skill · agent · MCP</sub>"]

Every lesson ships something

Other curricula end with "congratulations, you learned X." Each lesson here ends with a
reusable tool you can install or paste into your daily workflow.

FIG_001 · APROMPTS FIG_001 · BSKILLS FIG_001 · CAGENTS FIG_001 · DMCP SERVERS
Paste into any AI assistant for expert-level help on a narrow task. Drop into Claude, Cursor, Codex, OpenClaw, Hermes, or any agent that reads SKILL.md. Deploy as autonomous workers — you wrote the loop yourself in Phase 14. Plug into any MCP-compatible client. Built end-to-end in Phase 13.

Install lesson artifacts

The lesson artifacts. The repo ships 414 skills and 100 prompts under
phases/**/outputs/; install them via scripts/install_skills.py. Requires
cloning the repo. Supports tag filters, dry-runs, and per-agent layouts:

bash
python3 scripts/install_skills.py <target>                                 # every skill, default --layout skills (nested)
python3 scripts/install_skills.py <target> --layout skills                 # same as above, explicit
python3 scripts/install_skills.py <target> --type all                      # skills + prompts + agents
python3 scripts/install_skills.py <target> --phase 14                      # one phase only
python3 scripts/install_skills.py <target> --tag rag                       # filter by tag
python3 scripts/install_skills.py <target> --layout flat                   # flat files
python3 scripts/install_skills.py <target> --dry-run                       # preview without writing
python3 scripts/install_skills.py <target> --force                         # overwrite existing files

<target> is the skills directory for your agent (examples:
~/.claude/skills/, ~/.cursor/skills/, ~/.config/openclaw/skills/,
.skills/, or any path your agent reads).

By default the script refuses to overwrite an existing destination and exits
with code 1 after listing every colliding path. Use --dry-run to preview
collisions or --force to overwrite. Every non-dry-run run writes a
manifest.json in the target with the full inventory grouped by type and
phase. Pick the layout your agent reads:

--layout Path written
skills <target>/<name>/SKILL.md (nested convention, supported by Claude / Cursor / Codex / OpenClaw / Hermes)
by-phase <target>/phase-NN/<name>.md
flat <target>/<name>.md

Drop the agent workbench into your own repo

The Phase 14 capstone ships a reusable Agent Workbench pack (AGENTS.md, schemas,
init / verify / handoff scripts). Scaffold it into any repo with:

bash
python3 scripts/scaffold_workbench.py path/to/your-repo            # full pack + seeds
python3 scripts/scaffold_workbench.py path/to/your-repo --minimal  # skip docs/
python3 scripts/scaffold_workbench.py path/to/your-repo --dry-run  # preview only
python3 scripts/scaffold_workbench.py path/to/your-repo --force    # overwrite

You get the seven workbench surfaces wired up, a starter task_board.json,
and a fresh agent_state.json at schema_version: 1. From there: edit the
task, edit AGENTS.md, run scripts/init_agent.py, hand the contract to
your agent. The pack source lives at
phases/14-agent-engineering/42-agent-workbench-capstone/outputs/agent-workbench-pack/.

Browse the entire course as JSON

scripts/build_catalog.py walks every phase, every lesson, every artifact on
disk and writes catalog.json at the repo root. One file, every course truth.

bash
python3 scripts/build_catalog.py               # writes <repo>/catalog.json
python3 scripts/build_catalog.py --stdout      # to stdout, do not touch repo
python3 scripts/build_catalog.py --out path/to/file.json

The catalog is filesystem-derived, not README-derived, so counts always match
what is actually on disk. Use it for site builds, downstream tooling, or to
verify the README counts have not drifted. Schema is documented at the top of
the script.

The curriculum workflow builds catalog.json as an ephemeral, gitignored
artifact. Do not commit it. The same workflow runs audit_lessons.py as a
blocking check.

Smoke-check every lesson's Python code

scripts/lesson_run.py byte-compiles every .py file under each lesson's
code/ directory. Default mode is syntax-check only — no execution, no API
keys, no heavy ML deps required. Catches the regressions contributors
introduce most often (bad indentation, broken f-strings, stray edits).

bash
python3 scripts/lesson_run.py                  # syntax-check the whole curriculum
python3 scripts/lesson_run.py --phase 14       # one phase only
python3 scripts/lesson_run.py --json           # JSON report on stdout
python3 scripts/lesson_run.py --strict         # exit 1 if any lesson fails
python3 scripts/lesson_run.py --execute        # actually run, 10s timeout per lesson

--execute runs each lesson's code/main.py (or the first .py file) with a
10-second timeout. Lessons whose entry file starts with a # requires: pkg1, pkg2 comment listing non-stdlib deps are skipped with reason needs <deps>.
The script is opt-in and not wired into CI.

Stdlib only, Python 3.10+. Set LINK_CHECK_SKIP=domain1,domain2 to override
the default skip-list (twitter.com, x.com, linkedin.com,
instagram.com, medium.com — domains that aggressively block automated
HEAD/GET).

Foundational papers and protocols

  • 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

Before submitting a lesson, run the invariant check:

bash
python3 scripts/audit_lessons.py           # full curriculum
python3 scripts/audit_lessons.py --phase 14  # single phase
python3 scripts/audit_lessons.py --json    # CI-friendly output

Exit code is non-zero when any rule fails. Rules (L001–L010) validate directory
shape, docs/en.md presence + H1, code/ non-emptiness, quiz.json schema
(rejects the legacy q/choices/answer keys that caused issue #102), and
relative links inside lesson docs.

Free, MIT-licensed, 542 lessons. Thank you to the sponsors and backers who make the work possible.
See all sponsors and backers.

Want to support the work? See sponsorship options, including
hardware sponsorships, or
sponsor on GitHub.

If this manual helped you, star the repo. It keeps the project alive.

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.

[@ghumare64](https://x.com/ghumare64)  ·  [aiengineeringfromscratch.com](https://aiengineeringfromscratch.com)  ·  [Report / Suggest](https://github.com/rohitg00/ai-engineering-from-scratch/issues/new/choose)

I18n (`docs/i18n.md`)

Internationalization (i18n)

The English lessons are canonical. Translated lesson markdown is generated by the pipeline or contributed for review and never committed to main — it lives on a separate translations branch, and the site fetches it at runtime the same free way it fetches English (raw.githubusercontent.com). No Vercel functions, no KV, no per-view cost. The per-language README is maintained separately and committed to main (see below).

This pipeline covers lessons under phases/ only. Certification curricula remain English-only and are intentionally excluded from both machine translation and book generation.

The default engine is NLLB-200 (No Language Left Behind, Meta AI, 2022), an open translation model covering 200 languages, which runs inside the GitHub Actions runner with no API key and no bill. Compute is the free CI runner; there is no translation-API cost at all. Paid LLM providers (Anthropic/OpenAI) and DeepL remain available as optional higher-quality upgrades via --provider.

Pieces

The languages.json registry drives automatic lesson translation, interface translation, and the site switcher. The book builder also reads its language names. The per-language README is separate: full documents are listed in FULL_LOCALES in scripts/audit_readme_locales.py and maintained in i18n/<lang>/README.md. The block mappings in scripts/readme_translations.py remain available as drafting aids. Neither README list enables lesson or interface jobs.

Piece Where Committed to main?
Language registry languages.json Yes (one small file)
Lesson translation script scripts/translate_lessons.py (prose-only walker) Yes
README maintenance + structural audit scripts/build_readme_i18n.py + scripts/audit_readme_locales.py Yes
CI workflow .github/workflows/translate.yml (sharded per language × phase) Yes
Translated lesson markdown translations branch, i18n/<lang>/…/<lang>.md No (separate branch)
Translated README i18n/<lang>/README.md, linked from the header of README.md Yes
Translated books scripts/build_book.py --lang <code> reads the translated markdown and emits aiefs-vol{n}-{slug}-<lang>.epub/.pdf as release assets (English fallback per lesson) No (release assets)
Switcher options site/langs.js (generated by build.js from the source/ci:true/site:true set) No (gitignored, like data.js)
Site switcher site/lesson.html Yes (the UI + fetch logic)
Site chrome strings (navigation, sidebar, checkpoints, panels) site/ui-strings.json (English key list + per-language overrides) + scripts/translate_ui_strings.py + site/ui-i18n.js (runtime) Yes (source and runtime)
Translated chrome strings translations branch, i18n/<lang>/ui.json, fetched by the runtime No (separate branch)

Add a language

Add one entry to languages.json, the single source of truth. Fields:

  • code — the tag used in filenames, URLs, and the switcher value.
  • name — English name, used in the LLM-provider prompt.
  • native — label shown in the switcher.
  • nllb — the FLORES-200 code (e.g. zho_Hans, tur_Latn); required for the default NLLB provider — translate_lessons.py exits if a requested language has none.
  • ci - true enables automatic lesson and interface translation and makes the language selectable on the site.
  • site - true makes a language selectable and enables automatic interface translation without automatically translating its lessons. Use this for contributor-maintained lessons.

The lesson matrix reads ci: true. The interface matrix and the site switcher accept either ci: true or site: true; the switcher also includes the English source. An explicit workflow_dispatch request can translate any registered non-source language, including contributor-maintained locales, so only request those locales when replacing changed lesson translations is intended.

Brazilian Portuguese (pt-BR) and Persian (fa) use the automatic pipeline. The existing Portuguese (pt) URL remains supported. Both Portuguese tags use NLLB's por_Latn model code, which does not distinguish regional varieties. Brazilian README and interface wording can be pinned explicitly; automated lesson prose still benefits from Brazilian Portuguese review.

Traditional Chinese (zh-TW) uses site: true so reviewed lessons can arrive through PRs against the translations branch without being overwritten on an English-source update. Put them at i18n/zh-TW/phases//<lesson>/docs/zh-TW.md, retaining the English code, paths, links, and metadata keys. The site falls back to English for lessons not yet published. This flag enables the interface and lesson reader; it does not add a translated-book release workflow.

The README bar is independent: it lists 33 locales plus canonical English. Regional tags such as pt-BR and zh-TW are distinct README destinations. To add a complete README translation, translate the full document, add its link to the root README, and add its code to FULL_LOCALES after the coverage and structure audit passes. Keep repository-relative targets correct from two directories deep. Do not publish partial drafts in the language bar. Its locale set must exactly match FULL_LOCALES; the maintenance command never generates or publishes partial documents.

How it runs

  1. A push to main that changes phases/**/docs/en.md, languages.json, the interface strings, the job selector, or the translation workflow itself triggers .github/workflows/translate.yml. Certification lesson changes do not trigger it. scripts/translate_matrix.py then reads the pushed range and starts only the jobs it can change: one job per automatic language for each phase whose docs/en.md changed, every phase for a language newly marked ci: true, and interface-string jobs when site/ui-strings.json or its translator changed or a language is newly marked ci or site. A registry edit that changes only metadata such as dir, locale, or a name starts none. If the push also changes the code the jobs run (translate.yml, translate_lessons.py and the modules it imports, or .github/translate-requirements.txt), or the script cannot read the range (a new branch, a force-push, a missing commit), it starts every job. A manual run keeps the requested languages and phase.
  2. The matrix is one job per (language, phase). A full 523-lesson language run is ~27h on a CPU runner, far past the 6-hour job limit, so a per-language job always timed out before publishing. Splitting by phase keeps the largest job (phase 19, 85 lessons) near ~4.5h, well under the limit. Each job restores its language's prior output from the branch, runs translate_lessons.py --phase , and pushes only its own i18n/<lang>/phases// slice back with a fetch-and-retry loop, so disjoint slices merge without collisions.
  3. The site's language switcher sets ?lang=<code>; fetchLesson pulls …/translations/i18n/<lang>/…/<lang>.md and falls back to canonical English if that translation isn't published yet. English (lang=en) is byte-identical to the pre-i18n fetch path.

Never wastes a run

Every lesson is keyed by the sha256 of its English source in a per-(language, phase) cache (i18n/<lang>/.cache/.json), written per lesson in the runner and published to the translations branch when the job finishes. So:

  • The first run translates everything once. Every completed run after it re-translates only lessons whose English actually changed — everything else is a cache hit and is skipped instantly.
  • A cancelled or interrupted phase job does not publish, so it loses that job's runner-local progress and the next run that includes that phase resumes it from the last published cache. Because each shard is a single phase, it comfortably finishes and publishes within the job limit. A push includes a phase only when its English changed, so after a failed or cancelled run, start the workflow manually with blank inputs to resume every phase.

Per-language README

The README is the landing page. Locales listed in FULL_LOCALES translate reader-visible prose, headings, tables, lesson titles, link labels, and image descriptions. Code, commands, identifiers, URLs, and relative destinations stay unchanged; product names, published paper titles, and established technical terms can retain their original spelling. Each full i18n/<lang>/README.md is maintained as a document so regeneration preserves editorial corrections.

All 33 non-English destinations in the README language bar are full documents. The historical block renderer remains a drafting aid; it does not publish files through the maintenance command. Add a new language only after translating the whole README, adding it to FULL_LOCALES, and updating the language bar in every locale.

When the English README changes, update the affected passages in every locale. i18n/readme-source.sha256 records the reviewed English source, excluding only the reader count, page-view count, and date in the statistics block. A changed heading, paragraph, table, link, or diagram fails CI until the translations are reviewed. After reviewing all locales, update the record and run the checks:

bash
python3 - <<'PYTHON'
import sys
sys.path.insert(0, 'scripts')
from audit_readme_locales import SOURCE, SOURCE_DIGEST, source_fingerprint
SOURCE_DIGEST.write_text(source_fingerprint(SOURCE.read_text(encoding='utf-8')) + '\n', encoding='utf-8')
PYTHON
python3 scripts/build_readme_i18n.py --check
python3 scripts/test_audit_readme_locales.py

The audit compares heading and prose-block counts, link destinations, explicit anchors, every linked lesson row (528 at present), programming-language labels, Markdown and HTML table structure, fenced and inline code, command examples, Mermaid topology, and numeric facts in the introduction, statistics, phase summaries, and study-time table. It rejects unchanged English prose, headings, table cells, image descriptions, diagram labels, and directory-tree descriptions, with explicit exceptions for shared technical names and language-specific spellings. These checks detect incomplete coverage and structural drift; they cannot certify fluency or nuanced technical meaning, which need editorial review.

CI runs the coverage and structure checks. The README-counts bot copies only the reader count, page-view count, and ISO date into each locale's statistics block after validation. It preserves translated wording and never regenerates full documents from the partial block map. Changes to lesson counts or other English content still require translation review before the bot can publish an update.

Site chrome

Lesson bodies come from the translations branch, but the interface around them (header navigation, the lesson sidebar toggle, "On this page", the checkpoint loop, quiz headings, the code and outputs panels, previous/next buttons, homepage and catalog labels) is static English in the page templates. site/ui-i18n.js translates that layer in the browser. header.js loads it on every page, so a page cannot silently omit it.

  • site/ui-strings.json is the only hand-maintained input. keys lists the English interface strings the pages use (the gettext model: the English text is the message id). overrides pins a translation per language where a machine translation would be wrong, mostly one-word labels such as Build, Run, Prove, or Complete. Add a label by appending it to keys; add a language by flagging it ci: true or site: true in languages.json. Neither needs a translation written by hand.
  • scripts/translate_ui_strings.py runs in translate.yml (one small job per ci:true or site:true language) and writes i18n/<lang>/ui.json to the translations branch. For each key it takes the override if there is one, else the previously published translation (the published file records which keys were pinned, so a removed override is retranslated rather than frozen), else it translates through the same provider layer as the lessons (NLLB by default, --provider anthropic|openai|deepl as upgrades). File names, paths, commands, @handles, and the {n} count placeholder are shielded behind the same placeholders the lesson translator uses, and a key whose placeholder does not survive is left English rather than published wrong. Most runs translate nothing and never load the model.
  • site/ui-i18n.js fetches i18n/<lang>/ui.json from the translations branch at runtime, the same path lessons use, and falls back to English when a language has not been published yet. It walks text nodes plus aria-label, title, and placeholder attributes, skipping code, the rendered lesson markdown (except the panels the site injects into it), quiz content, lesson titles, and the language picker's native names. A MutationObserver covers chrome the page renders later, and switching back to English restores the original strings. A key can hold {n} where the page shows a count that the build fills from the data, such as the catalog intro: the runtime matches the text with any number in that place and carries the number into the translation, so a new phase or lesson never orphans the key. In a right-to-left language, any eligible English text the dictionary did not translate (curriculum data, glossary entries, untranslated copy) gets lang="en" dir="ltr" on its element, so its punctuation and number ranges read correctly, while translated chrome keeps the page direction. Flex and grid containers are left alone so component layout still mirrors, and switching language removes the marks.
  • The picker dispatches an aifs:lang DOM event on change, so the runtime works on pages that have no AIFS_onLangChange handler, such as the homepage.
  • Two guards run in curriculum.yml. node --test site/test_ui_i18n.js fails when a key no longer appears in any page or script, or when an override pins a key that is not in the list, so a copy edit names the orphaned key instead of silently dropping its translations. python3 scripts/test_translate_ui_strings.py covers the translator's precedence (override, then published, then model), placeholder protection, and the end-to-end write.

What is protected during translation

NLLB is a sentence translator, not an instruction-following model, so the walker never lets it see anything but prose. It processes the lesson line by line: fenced code blocks, tables, image lines, and the metadata header (**Type:** … **Time:**) pass through verbatim; on every other line it protects inline `code`, $math$, image refs, full markdown links, **bold** terms, and URLs behind placeholders, translates only the plain-text fragments between them, then restores. Bold spans are kept because in this course they are almost always technical terms (Skip-gram, negative sampling) that should stay English.

This is verified mechanically: running the walker with an identity "translation" reproduces all 523 lessons byte-for-byte, so a real run can only ever change prose. If a placeholder fails to round-trip, that lesson keeps its English (fail-safe).

Cost

Default provider nllb: free. NLLB-200 runs in the GitHub Actions runner — no API key, no secret, no per-token bill. The only resource is free CI compute; the model is cached between runs and only changed lessons are re-translated (sha256 cache). Vercel cost does not change.

Optional upgrades (--provider anthropic|openai|deepl) give higher fluency at low-tens-of-dollars per full pass per language, if you later want to polish a high-traffic language. Those providers read the key from the LLM_API_KEY environment variable (DeepL uses the same variable for its auth key). NLLB stays the zero-cost default.

Quality sample

Below is 05 · 03 Word Embeddings translated through Step 1, showing that prose reads naturally while code, math, king - man + woman, technical terms, and the metadata header survive untouched. This sample is LLM-tier fluency (what --provider anthropic produces); the free NLLB-200 default is solid and fully faithful on the preservation guarantee, with slightly plainer phrasing. Upgrade a high-traffic language to an LLM provider later if you want this level of polish.

简体中文 (zh)

词嵌入 —— 从零实现 Word2Vec

词以其所处的语境为意。用一个浅层网络训练这个想法,几何结构便会自然浮现。

Type: Build · Languages: Python · Prerequisites: 阶段 5 · 02(BoW + TF-IDF)、阶段 3 · 03(从零实现反向传播) · Time: 约 75 分钟

问题 —— TF-IDF 知道 dog 和 puppy 是不同的词,但不知道二者含义几乎相同。在 dog 上训练的分类器无法泛化到讨论 puppy 的评论。你可以靠列举同义词勉强弥补,但这在罕见词、领域术语,以及所有你未曾预料的语言上都会失效。

你想要的是这样一种表示:dog 和 puppy 在空间中彼此靠近;king - man + woman 落在 queen 附近;在 dog 上训练的模型能免费地把部分信号迁移到 puppy。

核心概念 —— 分布假说(Firth,1957):"要了解一个词,就看它与哪些词为伴。" Word2Vec 有两种形式:Skip-gram 给定中心词预测周围词(窗口为 2 时 cat -> (the, sat, on));CBOW(连续词袋) 给定周围词预测中心词。网络只有一个隐藏层且无非线性:输入是词表上的 one-hot 向量,输出是 softmax,训练后丢弃输出层,隐藏层权重即为嵌入。诀窍是用**负采样(negative sampling)**把对 10 万词的 softmax 转成二分类。

Türkçe (tr)

Kelime Gömmeleri —— Word2Vec'i Sıfırdan

Bir kelime, birlikte bulunduğu kelimelerden ibarettir. Bu fikri sığ bir ağ ile eğitin, geometri kendiliğinden ortaya çıkar.

Type: Build · Languages: Python · Prerequisites: Aşama 5 · 02 (BoW + TF-IDF), Aşama 3 · 03 (Sıfırdan Geri Yayılım) · Time: ~75 dakika

Problem —— TF-IDF, dog ve puppy'nin farklı kelimeler olduğunu bilir ama neredeyse aynı anlama geldiklerini bilmez. dog üzerinde eğitilen bir sınıflandırıcı, puppy hakkındaki bir yoruma genelleme yapamaz. Eş anlamlıları listeleyerek geçiştirebilirsiniz, ama bu; nadir terimlerde, alana özgü jargonda ve öngöremediğiniz her dilde başarısız olur.

dog ve puppy'nin uzayda birbirine yakın düştüğü, king - man + woman'ın queen'e yakın indiği bir temsil istiyorsunuz. Word2Vec bunu verdi: iki katmanlı bir ağ, trilyon token'lık eğitim, 2013'te yayımlandı.

Kavram —— Dağılımsal hipotez (Firth, 1957): "Bir kelimeyi birlikte bulunduğu kelimelerden tanırsın." İki tür: Skip-gram merkez kelimeden çevredekileri tahmin eder (pencere 2 ile cat -> (the, sat, on)); CBOW çevredekilerden merkezi tahmin eder. Ağın doğrusal olmayan aktivasyonu olmayan tek bir gizli katmanı vardır: girdi one-hot vektör, çıktı softmax'tır; eğitimden sonra çıktı katmanı atılır, gizli katman ağırlıkları gömmelerdir. Püf nokta, 100 bin kelimelik softmax'ı negatif örnekleme (negative sampling) ile ikili sınıflandırmaya çevirmektir.

Note how dog, puppy, king - man + woman, softmax, one-hot, Skip-gram, CBOW, TF-IDF, Word2Vec, and the **Type:** / **Time:** labels stay verbatim in both languages while the surrounding prose is fully localized. That preservation is enforced mechanically by the placeholder round-trip, not left to the model.


--- METRICS ---