Learn AI properly, from the mechanism up
Every lesson opens on a real problem, works it through with actual numbers, and names the failure mode you would otherwise ship.
- No card required
- ·No sign-up needed to start
- ·Free courses stay free
Most courses stop at the happy path
Three real answers, from three different courses. Judge the writing before you sign up for any of it.
Machine Learning Foundations · 3.1 Basics & Terminology
What is training data vs inference data?
Training data is the labelled historical data used to fit the model — the algorithm sees both inputs and correct answers and adjusts parameters to reduce error.
Inference data is what the model sees in production: new, unlabelled inputs where you want a prediction. The label either doesn't exist yet or arrives later.
The failure mode to know
The two must come from the same distribution and be processed identically. If a feature is computed one way in the training pipeline and another way at serving time — different scaler, different default, different time window — you get training–serving skew, and offline accuracy won't hold up live.
RAG Systems · 8.5 Embeddings & Vector Stores
What happens if different embedding models are used for indexing and querying?
Retrieval degrades to roughly random. Each model learns its own coordinate system during training; the axes of one have no relationship to the axes of another, so a query vector from model A is not comparable to document vectors from model B.
There are two failure shapes, and the second is worse:
- —Different dimensionality (1536 vs 768) — you get a loud error from the vector store. Annoying, but you find out immediately.
- —Same dimensionality, different space — no error at all. The search runs, returns k results with plausible-looking scores, and they are semantically unrelated to the question.
The failure mode to name
Nothing crashes; the answers just quietly get worse. Enforce exact-match on both sides — same model, same version, same normalization — and store the embedding model name in the collection metadata so you can assert on it at query time.
LangGraph Agents · 9.2 Graph API & StateGraph Construction
What is the difference between a simple sequence of nodes and an explicit graph?
A sequence is just a graph whose every node has exactly one outgoing static edge. So this isn't a technology choice; it's a question of whether the topology carries information.
Go explicit when at least one of these is true:
- —The next step depends on a result (conditional edges).
- —A step may need to repeat (cycles).
- —Steps are independent and should run in parallel (fan-out/fan-in).
- —You need to pause, resume, or approve at a specific point.
The failure mode to avoid
Putting branching logic inside a node with if-statements while keeping the graph linear. It works, but you lose what the graph was going to give you — the routing no longer appears in traces, you can't resume from the branch, and the diagram lies about what the system does.
Latest courses
Newly published, from fundamentals through to production.
No courses yet
Courses will appear here once they are published.
What it costs after the trial
Free courses stay free. One subscription opens everything else.
- No card required
- ·Full access for 7 days
- ·It stops on its own
From the blog
Shorter pieces on what is changing, and what it means in practice.
No articles yet
Articles will appear here once they are published.
Start with the lesson you just read
7 days of full access. Nothing to cancel if you walk away.
Questions first? Talk to us — we reply within a day.