Lesson 60 — Intermediate

RAG Variants & Advanced Patterns

Baseline RAG har jagah nahi chalta — multi-hop sawaal, weak retrieval, global questions isse pare hain. Is lesson mein hum naive se advanced se adaptive tak ka progression, Self-RAG, CRAG, Adaptive, Iterative, Multi-hop, Graph RAG dekhenge — aur sabse zaroori: failure mode dekh ke architecture kaise choose karte hain.

⏱ 30 min• Intermediate• Grounding, Citations & Abstention

Naive se Advanced se Adaptive tak

Kya hai?

RAG ke generations: Naive = retrieve + generate seedha. Advanced = pre/post retrieval improvements (chunking, hybrid, rerank, transform). Adaptive/self-correcting = khud judge karna ki retrieval theek hui ya nahi, aur zarurat pe dobara try karna.

Kab kaam aata hai?

Jab baseline ke numbers plateau ho jaayein — recall ceiling, faithfulness complaints, multi-step sawaal miss. Tabhi advanced patterns try karo, pehle nahi.

Kahan milta hai?

Loops aur graphs ke roop mein: grade → decide → act. Frameworks mein ye components milte hain, par andar ka loop wahi jo tum hand-built mein dekh chuke ho.

Progression ka matlab upgrade nahi kiya jaata — layer add hoti hai. Baseline phir bhi backbone hai; adaptive patterns uske upar guards aur loops hain. Har layer apni latency aur cost laati hai.

Rule: Har advanced pattern ek specific failure mode ko target karta hai. Bina failure diagnose kiye pattern add karna = complexity without gain. Pehle socho kya toot raha hai, phir kaunsa pattern theek karega.

Self-RAG, CRAG aur Adaptive RAG

def adaptive_step(query, ctx, draft=None):
    grade = llm(GRADE_PROMPT.format(query=query, context=ctx))
    if grade == "NO_QUERY":          # Adaptive: retrieval hi nahi chahiye
        return {"action": "answer_directly"}
    if grade == "BAD_CONTEXT":       # CRAG: corrective re-retrieve
        return {"action": "retrieve_again", "rewrite": rewrite(query)}
    if grade == "MISSING_HOP":       # Self-RAG: ek aur fact chahiye
        return {"action": "retrieve_more", "subquery": next_hop(query, draft)}
    return {"action": "keep"}
Grading prompt chhota rakho: Grading ek classification hai, conversation nahi — ek label output (KEEP/REWRITE/SKIP) + structured log. Bade prompts se grading khud unreliable ho jaati hai.

Iterative aur Multi-hop RAG

def iterative_rag(query, max_hops=4):
    evidence, sub_q = [], query
    for _ in range(max_hops):
        hits = hybrid_search(sub_q, k=5)
        evidence.extend(hits)
        if enough(evidence, query):
            break
        sub_q = next_subquery(query, evidence)   # multi-hop ka agla sawaal
    return synthesize(query, dedupe(evidence))

# multi-hop example:
# Q: "Acme ne X kab acquire kiya, uske baad policy kya hui?"
# hop1: Acme-X acquisition date -> doc A
# hop2: "uske baad" wali policy  -> doc B (date filter ke saath)
Kab multi-hop: Jab sawaal mein do entities ka rishta poochha gaya ho ya "phir kya hua" wala chain ho. Simple lookup sawaal pe multi-hop = extra latency, koi faayda nahi.

Graph RAG

Graph RAG mein knowledge ko entities aur unke relationships ke graph mein store karte hain — vector similarity ke saath saath traversal. Seed entity se neighbourhood expand karke jawab banta hai, aur community-level summarization se global sawaal hote hain.

Graph tabhi jab relationships hi problem ho: Agar sawaal aksar "X aur Y ka rishta kya hai" ya "kaun sabse connected hai" hain — graph RAG worth it. Wrana hybrid + rerank kaafi. Graph banane ka kharcha sabse zyada hai isi level ka.

Failure mode se architecture choose karna

Naive RAG zinda rakho: Advanced pattern ka eval tabhi valid hai jab naive baseline bhi saath chale. Do systems compare karo (same eval set), tabhi decide karo — naam ya trend se nahi, numbers se.

Exercise

Question: Self-RAG mein retrieval kab hoti hai — hamesha ya sirf jab model ko zarurat ho?

Question: CRAG kya grade karta hai?

Question: Do se zyada facts alag documents se jodne wale sawaal ko kya kehte hain?

Question: Graph RAG kis cheez ko represent karta hai — vectors ko ya entities/relations ko?

Common mistakes

Desi example: Private detective ka case

Detective ko ek lead milti hai (retrieve), phir wo khud decide karta hai: aage poochhna hai (multi-hop), dobara dhoondhna hai (CRAG), ya case closed. Aur agar case sheher ke network ka hai toh nakshe pe relations trace karta hai (Graph):

text
lead mili -> kaafi hai?      (Adaptive: skip vs proceed)
kaafi nahi? -> grade karo    (CRAG: re-retrieve + rewrite)
abhi bhi missing? -> agla subquery (multi-hop, max 4)
network case? -> entity graph trace (Graph RAG)
budget hamesha: max hops + max LLM calls
Interview angle — yahan se sawaal aate hain
  • Q: Naive vs Advanced vs Adaptive RAG? — Seedha pipeline vs pre/post improvements vs khud judge karke self-correct karne wala loop.
  • Q: Self-RAG aur CRAG ka farq? — Self: model kab retrieve kare ye decide + reflect. CRAG: retrieved context grade karke correct.
  • Q: Multi-hop kaise kaam karta hai? — Hop ka jawab agle hop ka query; evidence collect, phir ek saath synthesize.
  • Q: Advanced pattern kaise choose? — Failure mode dekh ke: weak context→CRAG, chain→iterative, relations→graph; comparison 5 params pe.
Lesson complete?

Advanced patterns clear — ab tum failure dekh ke architecture choose kar sakte ho. Agla lesson — RAG with Frameworks — mein ye sab framework components se rebuild karenge.

Popular courses: Data Science Course in Lucknow · AI Course in Lucknow · Python Course in Lucknow · Power BI Course · Data Analytics Course