Lesson 26 — Beginner

Classical Metrics: BLEU, ROUGE & Perplexity

Generation ka number dekhna aasaan hai, uska matlab samajhna mushkil. Is lesson mein tum dekhoge ki BLEU, ROUGE aur perplexity kaise calculate hote hain — reference vs candidate overlap — aur wo kyun hamesha wahi nahi naapte jo tumhe chahiye. Mental model saath rakho: ye numbers surface match naapte hain, truth ya usefulness nahi; isi liye kab human/LLM-judge eval ko sambhalna padta hai, ye bhi yahin se decide hoga.

⏱ 10 min• Beginner• Classic NLP Tasks: Classification, NER & Sentiment

Overlap metrics — kya naapti hain

Kya hai?

BLEU aur ROUGE candidate output ko reference (expected answer) se niptaate hain — n-gram overlap ke numbers se. Perplexity alag cheez naapta hai: model ko next-token pe kitni surprise hui. Tez, automatic, repeatable — par sab surface level.

Kab kaam aata hai?

Machine translation, summarization aur language-model comparison mein — regression test ke roop mein: "score gira toh kuch bigda". Aur tab jab har sample pe human eval budget mein na ho.

Kahan milta hai?

Eval scripts, research papers, LM leaderboards aur interview ke "BLEU kya hai" wale sawaal mein. Production dashboards mein ye aksar corner mein ek number hote hain.

Chain ye hai: reference + candidate → n-gram match → score. Score batata hai kitne shabd/matching patterns mile — bas. Iska matlab wo nahi batata ki jawab sach hai, useful hai, ya instructions follow kiye. Ek hi meaning ke sau tarike hote hain, aur single reference unmein sirf ek ko "sahi" maanta hai.

Ye metrics gate nahi, smoke check hain: Score achanak gira = kuch bigda (ye pakadna acha hai). Score accha = model sahi? — aisa nahi. Isliye ye numbers ko decision ka anchor mat banao; trend ke liye rakho, correctness ke liye rubric chahiye.

BLEU — precision + brevity penalty (haath se dekho)

from collections import Counter

ref = "the cat sat on the mat".split()              # 6 tokens
c1  = ref.copy()                                   # copy wala candidate
c2  = "a cat was sitting on a mat".split()         # 7 tokens (behtar paraphrase)

def uni_prec(c, r):
    return sum((Counter(c) & Counter(r)).values()) / len(c)

print(round(uni_prec(c1, ref), 2))   # 6/6 = 1.00  -> copy sabse achha?
print(round(uni_prec(c2, ref), 2))   # 3/7 = 0.43  -> cat, on, mat
# bigrams of c2: (a,cat)(cat,was)(was,sitting)(sitting,on)(on,a)(a,mat)
# ref ke bigrams se koi match nahi -> p2 = 0 -> BLEU-2 = 0 (bina smoothing)
Chatbot pe BLEU mat lagao: Single reference BLEU ke liye sabse bhi zyada unfair hai — sahi jawab alag shabdon mein likha toh score girega. Yahan multi-reference chahiye ya rubric wala judge; BLEU ka use regression pakadne tak simit rakho.

ROUGE — recall-oriented overlap

ref = "the cat sat on the mat".split()      # 6 tokens (reference)
c2  = "a cat was sitting on a mat".split()  # 7 tokens (candidate)
matched = 3                                  # cat, on, mat

print(round(matched / len(c2), 2))   # ROUGE-1 precision = 0.43
print(round(matched / len(ref), 2))  # ROUGE-1 recall    = 0.50

# ROUGE-L: longest common subsequence = cat..on..mat = 3
print(round(3 / 6, 2), round(3 / 7, 2))   # R-L recall 0.50, precision 0.43

# copy trap: candidate = reference -> ROUGE 1.00, meaning khaali
ROUGE-1 recall 0.80 ka matlab: Reference ke 80% shabd candidate mein mile — ye "coverage" hai, "sahi" nahi. Ek line ko ulta-ulta bol ke bhi overlap ban sakta hai. Faithfulness ke liye hamesha source se line-by-line check chahiye.

Perplexity — next-token ki uncertainty

from math import exp, log

# model har next token ko p = 0.25 deta hai (4 equal options ka jhund)
p = 0.25
print(1 / p)                      # 4.0 -> perplexity: itna confused hai

# do tokens ki predicted probability se (geometric mean of 1/p)
probs = [0.5, 0.25]
nll = -sum(log(x) for x in probs) / len(probs)   # (0.693 + 1.386)/2 = 1.040
print(round(exp(nll), 2))         # 2.83  -> sqrt(2 * 4) = 2.83

# rule: perplexity sirf SAME tokenizer wale models mein comparable
PPL ka comparison checklist: Same tokenizer? Same domain/text distribution? Training contamination toh nahi? Teeno haan tabhi number ko compare karo. Warna per-token loss ka trend apne hi setup mein dekho — uska naam bhi wahi kaam karta hai.

METEOR aur string overlap ki seema

SAME WORDS, ALAG MEANING              ALAG WORDS, EK MEANING
------------------------------------  ------------------------------------
"delivery in 2 days" vs               "arrives day after tomorrow" vs
"delivery in 2 days but delayed"      "ships within 48 hours"
-> overlap zyada, meaning FARQ         -> overlap KAM, meaning SAME

yahi string-overlap metrics ki core limit hai:
surface similarity != correctness
Fail hone ka pattern pehchano: Jab candidate "sahi par alag shabd" ho toh score kam; jab "galat par same shabd" ho toh score zyada. Agar tumhara use-case in dono mein se kisi ek mein baithta hai — overlap metric akela kaafi nahi hai.

Beyond overlap — human eval aur LLM-as-judge

rubric (judge ya insaan ko dena — vibes nahi):
  1. claim/source check: jawab ki har factual line source mein hai?   yes/no
  2. coverage: instruction ke saare points cover hue?                 count
  3. format: expected shape mein hai?                                 yes/no
  4. harmful/false content:                                          yes/no

human loop:  har release pe ek chhota fixed sample -> insaan same rubric se ->
             judge ke scores ke saath disagreement review

judge rules: reference ki jagah rubric do; order randomize karo;
             judge ki length/style bias sample pe check karo
stop point:  score stable aur decision clear ho toh BLEU band kar do
Final rule — metric ko task se jodo: Translation/summarization ka regression → overlap metric (trend). LM comparison → perplexity (same tokenizer). Production quality → rubric + human spot checks. Aur har score ke saath sample outputs padho — number aur jawab dono, kabhi ek akela nahi.

Exercise

Question: BLEU kis side ka overlap naapta hai — precision ya recall?

Question: ROUGE-1 recall ka denominator kya hai — candidate tokens ya reference tokens?

Question: Perplexity sirf tab comparable hai jab do models ka kya same ho? (ek shabd)

Question: ROUGE-L ka L kis cheez ka abbreviation hai? (teen shabd)

Question: Haath wale example mein candidate c2 ki unigram precision kitni aayi? (do decimal places)

Common mistakes

Desi example: Answer sheet keyword se check karna

Invigilator ne textbook ke keywords se answer check kiye — jo student ne wahi shabd chipka diye usse poore number, jo sahi jawab apne shabdon mein likha usse aadhe. BLEU/ROUGE wahi karte hain: shabd match se marks. Faayda turant aur sasta; khaami — match hi sab kuch nahi, isi liye examiner ko kabhi kabhi khud bhi padhna padta hai:

text
keyword check (BLEU/ROUGE):  shabd match -> number   (sasta, tez, andhadhundh)
apne shabdon mein sahi:      match kam -> number bhi kam (yahi dhoka hai)
rubric wala TA (LLM judge):  sawaal-by-sawaal score   (structured, par calibrate karo)
examiner khud (human eval): meaning check -> asli anchor
Interview angle — yahan se sawaal aate hain
  • Q: BLEU kaise calculate hota hai? — N-gram precisions ka geometric mean × brevity penalty; precision side, machine-translation origin, chhote answers pe smoothing chahiye.
  • Q: ROUGE-1, ROUGE-2, ROUGE-L mein farq? — Unigram overlap, bigram overlap, aur longest common subsequence — summarization mein recall-oriented (source ka kitna cover).
  • Q: Perplexity kya batata hai aur kaise? — Average next-token surprise: exp(mean negative log-likelihood). Sirf same tokenizer wale models mein comparable.
  • Q: Achha paraphrase score kam kyun aata hai? — Single reference se n-gram match low (hamare c2 mein bigram precision hi zero) — metric surface naapta hai, meaning nahi.
  • Q: Kab BLEU band kar dena chahiye? — Paraphrase-heavy/chat tasks pe single reference ho toh. Wahan rubric + human/judge eval lo; BLEU sirf regression gate ke liye.
Lesson complete?

L16 complete — ab har eval number ke saath tum uska interval, split aur metric ka sawaal khud poochhoge, aur jaanoge ki number kab jhooth bol sakta hai. Tumhara ML & NLP foundation ab interview ke liye taiyaar hai.

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