AI और LLMLLM एप्लिकेशनPerformance और Scale प्लान

Semantic रिस्पॉन्स Caching

LLM के जवाब हूबहू पाठ से नहीं, अर्थ से cache करें, ताकि अलग शब्दों में पूछे गए सवाल cache से मिलें और मॉडल कॉल छूट जाए।

हर मॉडल कॉल से पहले lookup
1
similarity metrics
3
threshold override
हर कॉल पर
कदम 1 में से 6
Namespace बनाएं

embedding का आकार और वह similarity तय करें जो hit मानी जाएगी।

उदाहरण सेशनplaying
# Namespace बनाएं
hotkv> SCACHE.CREATE support_bot 1536 THRESHOLD 0.92
OK

असली HotKV कमांड और उदाहरण रिस्पॉन्स के साथ एक एनिमेटेड वॉकथ्रू। किसी भी कदम पर क्लिक करके वहां पहुंचें। कमांड और रिस्पॉन्स अंग्रेज़ी में ही रहते हैं, ठीक वैसे जैसे आप HotKV में टाइप करते और देखते हैं।

समस्या

एक सपोर्ट असिस्टेंट को वही सवाल सौ अलग तरीकों से लिखा हुआ मिलता है। exact-match cache लगभग सभी में चूक जाता है, इसलिए हर अलग शब्दों वाले सवाल को पूरी मॉडल कॉल का भुगतान करना पड़ता है और पूरे जवाब का इंतज़ार करना पड़ता है।

HotKV इसे कैसे संभालता है

semantic cache हर जवाब को उसके सवाल के embedding के साथ सहेजता है और नए सवालों को similarity से खोजता है। अगर कोई नया prompt आपके पहले दिए किसी जवाब के काफ़ी करीब है, तो सहेजा हुआ जवाब वापस आ जाता है और मॉडल को कभी कॉल नहीं किया जाता। threshold तय करता है कि कितना करीब होना काफ़ी है।

कदम दर कदम

क्या होता है, कमांड दर कमांड

  1. 01

    Namespace बनाएं

    embedding का आकार और वह similarity तय करें जो hit मानी जाएगी।

    SCACHE.CREATE support_bot 1536 THRESHOLD 0.92
  2. 02

    एक miss, इसलिए मॉडल को एक बार कॉल करें

    जब सवाल पहली बार पूछा जाता है तो cache में कुछ मिलता-जुलता नहीं होता, इसलिए मॉडल उसका जवाब देता है।

    SCACHE.GET support_bot 0.013 -0.21 0.88 ...
  3. 03

    जवाब याद रखें

    सवाल, जवाब और सवाल का embedding, एक दिन के लिए सहेजें।

    SCACHE.SET support_bot "How do I reset my password?" "Open Settings > Security." 0.013 -0.21 0.88 ... TTL 86400
  4. 04

    अलग शब्दों वाला सवाल hit बनता है

    “लॉगिन पासवर्ड भूल गया” सहेजे हुए सवाल के करीब पड़ता है। जवाब और उसकी similarity वापस आती है, और मॉडल छोड़ दिया जाता है।

    SCACHE.GET support_bot 0.011 -0.19 0.87 ...
  5. 05

    एक lookup के लिए ज़्यादा सख़्ती

    एक lookup namespace के डिफ़ॉल्ट से ज़्यादा करीबी मिलान माँग सकता है, उन जवाबों के लिए जहाँ लगभग सही मिलान काफ़ी नहीं है।

    SCACHE.GET support_bot 0.2 0.4 0.1 ... THRESHOLD 0.99
  6. 06

    बचत को मापें

    हर namespace के आँकड़े दिखाते हैं कि कितनी बार मॉडल की जगह cache ने जवाब दिया।

    SCACHE.STATS support_bot
कहां फ़िट बैठता है

असली परिदृश्य

कस्टमर सपोर्ट

पासवर्ड रीसेट, इनवॉइस की कॉपी और शिपिंग का समय बार-बार पूछे जाते हैं। पहले के बाद हर रूप cache से परोसा जाता है।

इंटरनल नॉलेज बॉट

कर्मचारी छुट्टियों, खर्चों और VPN एक्सेस के बारे में अपने शब्दों में पूछते हैं। एक जवाब उन सबके लिए तब तक काम करता है जब तक वह expire नहीं हो जाता।

डेवलपर टूल

“pagination कैसे करें?” और “नतीजों के पन्ने कैसे पलटें” को बिना दूसरी मॉडल कॉल के वही documented जवाब मिलता है।

अंतर्निहित

आपको क्या मिलता है

अर्थ से मिलान

मिलते-जुलते सवाल एक ही cache किया हुआ जवाब साझा करते हैं, चाहे उन्हें किसी भी तरह लिखा गया हो।

SCACHE.GETSCACHE.SET

सख़्ती आपके हाथ में

threshold हर namespace के लिए तय करें और किसी एक lookup पर उसे override करें।

SCACHE.THRESHOLD

बचत जिसे आप माप सकते हैं

हर namespace के आँकड़े hits, misses और entries दिखाते हैं।

SCACHE.STATS

Cosine, L2 या inner product

namespace बनाते समय वह metric चुनें जो आपके embedding मॉडल से मेल खाता हो।

SCACHE.CREATE

आम सवाल

cache hit की लागत क्या है?

एक embedding कॉल और एक cache lookup। मॉडल कॉल और उसका generation समय छोड़ दिया जाता है।

ढीले मिलान से गलत जवाब कैसे रोकूं?

threshold बढ़ाएं। ऊँचे threshold पर ज़्यादा करीबी मिलान चाहिए, इसलिए कम सवाल hit होते हैं और हर hit ज़्यादा भरोसेमंद होता है।

इसमें कौन से प्लान शामिल हैं?

semantic cache Performance और Scale प्लान का हिस्सा है।

संबंधित उपयोग के मामले

इसे अपने वर्कलोड पर आज़माएं

HotKV Redis प्रोटोकॉल बोलता है, इसलिए आप किसी मौजूदा क्लाइंट को इसकी ओर इंगित करके यही कमांड चला सकते हैं।