# Top-k चुनना और Context लागत सँभालना — Retrieval-Augmented Generation (RAG)

Source: https://www.geekswithgeeks.com/hi/rag/q-topk

> Recall को prompt आकार, लागत और भटकाव के सामने संतुलित करें।

## ज़्यादा chunks हमेशा बेहतर नहीं

बड़ा **k** सही chunk के शामिल होने की संभावना बढ़ाता है पर prompt tokens (लागत और latency) बढ़ाता है और **भटकाने वाले** अंश जोड़ता है जो मॉडल को उलझा सकते हैं; लंबे context के बीच दबे प्रमाण भी कम भरोसे से उपयोग होते हैं। k को कई मानों पर उत्तर-गुणवत्ता नापकर चुनें, context के लिए **token budget** रखें, **न्यूनतम प्रासंगिकता सीमा** लगाएँ ताकि कमज़ोर मिलान हटें (और कुछ पास न हो तो "नहीं मिला" कहें), और chunks को समझदारी से **क्रमित** करें (सबसे अच्छा पहले, या दस्तावेज़ क्रम में)। Chunks संपीड़ित या सारांशित तभी करें जब ज़रूरी हो, क्योंकि ब्योरा खो सकता है।

## k के अनुसार prompt आकार, चलाकर

मैंने यह सादा-Python (सिर्फ़ standard library) उदाहरण चलाया। 300-token chunks, 150-token system prompt और 40-token सवाल के साथ k=3 का 1,090, k=5 का 1,690 और k=10 का 3,190 prompt tokens लगता है।

```python
chunk_tokens, k, question_tokens, system_tokens, answer = 300, 5, 40, 150, 250
prompt = system_tokens + question_tokens + k * chunk_tokens
print("prompt tokens:", prompt)
for k in (3, 5, 10):
    print("k =", k, "->", system_tokens + question_tokens + k * chunk_tokens, "prompt tokens")

```

Output:

```
prompt tokens: 1690
k = 3 -> 1090 prompt tokens
k = 5 -> 1690 prompt tokens
k = 10 -> 3190 prompt tokens
```

**Quiz:** न्यूनतम प्रासंगिकता सीमा क्यों लगाएँ?

- [x] ताकि कमज़ोर मिलान न भेजे जाएँ, और "नहीं मिला" लौटाया जा सके
- [ ] k स्वतः बढ़ाने के लिए
- [ ] Citations बंद करने के लिए
- [ ] Index छोटा करने के लिए

*Answer:* ताकि कमज़ोर मिलान न भेजे जाएँ, और "नहीं मिला" लौटाया जा सके. अप्रासंगिक संदर्भ आत्मविश्वासी ग़लत उत्तरों को न्योता देता है।
