# केस स्टडी: Help Centre के लिए Semantic Search — Embeddings और Vector Search

Source: https://www.geekswithgeeks.com/hi/embeddings/z-case

> अंग्रेज़ी और हिंदी के 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 खोज को भरोसेमंद बनाती है।

![चार आदतें: अच्छा chunk, सटीक से शुरू, मापें, version।](assets/figures/embeddings/section-8-map.svg) — चित्र 8.1 — अच्छा chunk, सटीक से शुरू, मापें और version।

## एक पन्ने पर डिज़ाइन

हर पंक्ति इस कोर्स के एक खंड से जुड़ती है।

```text
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 पाएँ।

**Quiz:** इस डिज़ाइन में पहले सटीक (flat) खोज क्यों उपयोग होती है?

- [ ] क्योंकि flat हमेशा तेज़ है
- [ ] क्योंकि HNSW 4,00,000 vectors के साथ नहीं चल सकता
- [ ] Embeddings से बचने के लिए
- [x] HNSW index tune करने और recall मापने का ground truth पाने के लिए

*Answer:* HNSW index tune करने और recall मापने का ground truth पाने के लिए. Approximate recall सिर्फ़ सटीक उत्तरों के सापेक्ष अर्थपूर्ण है।
