पाठ 27 / 28
केस स्टडी: Help Centre के लिए Semantic Search
अंग्रेज़ी और हिंदी के 50,000 help लेखों के लिए पूरी pipeline डिज़ाइन करें।
डिज़ाइन
लक्ष्य: users अंग्रेज़ी और हिंदी के 50,000 help लेख खोजें, और सहायक उनसे उत्तर दे। डेटा: हर लेख को headings से लगभग 300-token chunks में बाँटें (लगभग 4,00,000 chunks), लेख शीर्षक आगे जोड़कर; उत्पाद, भाषा, दर्शक (सार्वजनिक/आंतरिक), संस्करण और URL का metadata। मॉडल: leaderboard से दो बहुभाषी embedding models shortlist करें, फिर 150 labelled सवालों (हिंदी, अंग्रेज़ी और मिश्रित queries और 20 अनुत्तरणीय सहित) पर recall@5 से चुनें; मॉडल नाम और संस्करण दर्ज करें। भंडारण: 4,00,000 × 768 × 4 bytes लगभग 1.2 GB है, इसलिए flat या HNSW index memory में समाता है; ground truth के लिए सटीक खोज से शुरू करें, फिर HNSW को flat के विरुद्ध कम से कम 0.98 recall@10 तक tune करें। Retrieval: पहले filters (दर्शक, भाषा, उत्पाद), RRF के साथ hybrid BM25 + vector, शीर्ष 50, cross-encoder से 5 तक rerank, "नहीं मिला" के लिए न्यूनतम-score सीमा। संचालन: लेख ID और content hash पर आधारित रात्रिकालीन वृद्धिशील अद्यतन, स्रोत से delete, मॉडल upgrades के लिए बदलने से पहले golden-set तुलना के साथ समानांतर index, query-embedding cache, p95 latency और recall dashboards, query में लागू access control, redacted logs।
Embed, index, retrieve, मापें
अच्छे chunks, उपयुक्त मॉडल, सही index और golden set की मापी हुई pipeline खोज को भरोसेमंद बनाती है।
एक पन्ने पर डिज़ाइन
हर पंक्ति इस कोर्स के एक खंड से जुड़ती है।
Chunks heading-aware ~300 tok + title prefix + metadata (product, lang, audience, version) (Sec 2)
Model 2 multilingual candidates -> pick by recall@5 on 150 own questions (Hindi/English/mixed) (Sec 2, 5)
Storage ~400k x 768 x 4B = ~1.2 GB -> fits memory; exact first, then HNSW (>= 0.98 recall@10) (Sec 3)
Retrieval filters -> BM25 + vector (RRF, top 50) -> cross-encoder -> best 5 -> score threshold (Sec 4)
Operations incremental updates by id + hash, parallel index for model upgrades, query-embedding cache (Sec 5, 6)
Safety ACL filter inside the query, vectors = source-level sensitivity, redacted logs (Sec 6)सटीक खोज और golden set से शुरू करें
कोई index, reranker या संपीड़न जोड़ने से पहले सटीक खोज और मापे recall के साथ काम करती baseline पाएँ।
त्वरित जाँच: इस डिज़ाइन में पहले सटीक (flat) खोज क्यों उपयोग होती है?
- क्योंकि flat हमेशा तेज़ है
- क्योंकि HNSW 4,00,000 vectors के साथ नहीं चल सकता
- Embeddings से बचने के लिए
- HNSW index tune करने और recall मापने का ground truth पाने के लिए
Answer
HNSW index tune करने और recall मापने का ground truth पाने के लिए — Approximate recall सिर्फ़ सटीक उत्तरों के सापेक्ष अर्थपूर्ण है।