पाठ 12 / 28
Index चुनना
Index प्रकार को डेटा आकार, अद्यतन पैटर्न और recall ज़रूरतों से मिलाएँ।
आकार और बदलाव दर तय करते हैं
व्यावहारिक मार्गदर्शिका: लगभग 100,000 vectors तक flat/brute force उपयोग करें, क्योंकि वह सटीक और सरल है। कुछ लाख से दसियों लाख तक, memory अनुमति दे तो HNSW मज़बूत डिफ़ॉल्ट है, और memory तंग हो तो IVF रूप; अरबों समाने या लागत घटाने को scalar या product quantisation जोड़ें। अद्यतन पैटर्न (बार-बार insert और delete कुछ indexes में सस्ते और कुछ में महँगे), filters (जो indexes अच्छी तरह filter नहीं कर सकते वे ज़्यादा लाने को मजबूर करते हैं), build समय (बड़े indexes में घंटे लग सकते हैं) और GPU खोज चाहिए या नहीं, पर विचार करें। जो भी चुनें, flat index को test oracle के रूप में रखें, index parameters डेटा संस्करण के साथ दर्ज करें, और डेटा बढ़ने पर दोबारा मापें।
मोटी निर्णय मार्गदर्शिका
सिर्फ़ शुरुआती बिंदु; recall और latency हमेशा ख़ुद मापें।
Vectors Updates Memory Reasonable start
< ~100k any any Flat (exact)
100k - 10M mostly reads plenty HNSW
100k - 10M mostly reads tight IVF (+ scalar quantisation)
10M - billions batch rebuilds must shrink IVF + product quantisation, sharding
heavy filters any any an engine with filter-aware search; over-fetch + post-filter otherwiseFlat index को test oracle रखें
Production में भी flat index (या उसका नमूना) रखें ताकि समय के साथ approximate index का recall मापा जा सके।
त्वरित जाँच: 20,000 vectors के लिए समझदार शुरुआत कौन-सा index है?
- 32 गुना संपीड़न वाला product quantisation
- Flat (सटीक) index
- Sharded cluster
- कोई index नहीं, अनुमान
Answer
Flat (सटीक) index — छोटे आकार पर सटीक खोज काफ़ी तेज़ है और tuning हटाती है।