RAG Mastery - The 100-line build that earns you the rest of RAG

Hey,

This week I'm kicking off a personal RAG mastery plan. Ten milestones, ending in production-ready systems on AWS, Azure, and GCP.

Before I post anything about advanced patterns, I want to share what I learned defining the very first milestone, because it changed how I think about the whole stack.

The temptation in RAG is to skip the foundations. GraphRAG, Self-RAG, ColBERT, agentic retrieval - there's an entire patterns zoo, and most learners (me included, until recently) want to start there.

The problem: without a naive baseline, you can't tell whether any of those patterns actually help. "GraphRAG improved accuracy by 15%" is meaningless without knowing 15% over what.

So Milestone 1 is just this: master the foundations. Four things, broken down:

#

Foundation

What it covers

Mastery signal

1

The pipeline

Offline: documents → chunker → embedder → vector store. Online: query → embedder → retriever → top-k → prompt → LLM → response.

Can sketch it from memory and explain why each step exists.

2

The vocabulary

Embedding, chunk overlap, BM25, RRF, MMR, recall@k, cross-encoder, HNSW, groundedness, faithfulness.

Can read a RAG paper without stalling on terminology.

3

The naive baseline

~100 lines: load docs → fixed-size chunks → off-the-shelf embeddings → simple vector store → top-k cosine → prompt-stuff → LLM. No reranking, hybrid, or agents.

Can ship over a 50 to 100 PDF corpus by end of day.

4

The retrieval primitives

Dense, sparse, hybrid, reranking, metadata filtering, MMR.

Can explain when each helps and what it costs.

The naive baseline (#3) is the one most people undervalue. It's not the impressive build, it's the measuring stick. When someone says GraphRAG improved their accuracy by 15%, the only meaningful question is 15% over what? Without a baseline to compare against, the number is noise.

On the retrieval primitives (#4), the trade-offs matter more than the names. Dense retrieval misses exact-match terms (error codes, model numbers, proper nouns). BM25 misses paraphrase. Hybrid handles both, but now you maintain two indices and tune fusion weights. Naming them is easy. Knowing when each helps and what it costs is the actual skill M1 is teaching.

The mastery test. Two parts.

First: I can sketch the pipeline on a whiteboard and answer "why does chunk overlap matter?" without stalling.

Second: given 50 to 100 PDFs, I can ship a working RAG CLI by end of day. Looking up SDK syntax is fine. Looking up what RAG is means I'm not there yet.

What this week looks like for me. I'm building the baseline against a corpus I actually care about and timing the build. The vocabulary will consolidate as I debug bad chunks. The pipeline will consolidate as I trace what's happening at each step.

If you're starting your own RAG learning path, the takeaway is the same one I had to give myself: don't skip the boring milestone. The naive baseline isn't a prerequisite to clear before the real work — it's the foundation that makes every advanced pattern meaningful.

Next week: M2 and the patterns zoo.

— Kishore