पाठ 22 / 28
Scaling, लागत और Latency
Memory, throughput और ख़र्च की योजना बनाएँ।
Memory पहली दीवार है
बनाने से पहले अनुमान लगाएँ: memory लगभग vectors × आयाम × प्रति संख्या bytes है, साथ में index overhead (HNSW के graph links बड़ा अंश जोड़ सकते हैं) और replicas। जब न समाए: quantisation से घटाएँ, कम आयाम उपयोग करें, पूरे vectors disk पर और सिर्फ़ संपीड़ित memory में रखें, मशीनों में shard करें, या chunks की संख्या घटाएँ। Latency के लिए: बार-बार आने वाली queries के embeddings cache करें, embedding calls batch करें, embedding model को search service के पास रखें, और सिर्फ़ औसत नहीं p95 और p99 मापें। लागत तीन जगह से आती है: embedding (प्रति-token API शुल्क या GPU समय, indexing पर और हर query के लिए), भंडारण/memory, और खोज compute। तीनों ट्रैक करें।
Query embeddings cache करें
लोकप्रिय queries दोहराई जाती हैं। उनके vectors (और परिणाम भी) cache करने से embedding शुल्क और latency बचती है।
त्वरित जाँच: Vectors memory में न समाएँ तो पहला काम क्या है?
- खोज बंद करें
- समस्या अनदेखी करें
- सिर्फ़ metadata हटाएँ
- Quantisation लगाएँ या आयाम घटाएँ, फिर sharding पर विचार करें
Answer
Quantisation लगाएँ या आयाम घटाएँ, फिर sharding पर विचार करें — मशीनें जोड़ने से पहले संपीड़न सबसे सस्ता उत्तोलक है।