उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) · पाठ

मेमोरी और बाहरी कैशिंग रणनीतियाँ

कैशिंग के विभिन्न तरीकों की तुलना कीजिए, जिनमें सरल मेमोरी-आधारित कैश और Redis जैसे सुदृढ़ बाहरी समाधान शामिल हैं।

पाठ 2, कुल 4 में से11 चरण

मेमोरी और बाहरी कैशिंग रणनीतियाँ, CoddyKit पर उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

कैशिंग रणनीतियों का परिचय

LLM अनुप्रयोगों को तेज़ और अधिक किफ़ायती बनाने के लिए कैशिंग अत्यंत महत्वपूर्ण है। लेकिन सभी कैश एक जैसे नहीं बनाए जाते!

इस पाठ में हम दो प्रमुख रणनीतियों को विस्तार से समझेंगे: मेमोरी में कैशिंग और बाहरी कैशिंग। आपके अनुप्रयोग की आवश्यकताओं के आधार पर, दोनों के अपने विशिष्ट लाभ और कमियाँ हैं।

मेमोरी में कैशिंग: मूल बातें

मेमोरी में कैशिंग का अर्थ है डेटा को सीधे आपके अनुप्रयोग की रैंडम एक्सेस मेमोरी (RAM) में सहेजना। इसे आपके अनुप्रयोग द्वारा पास रखी गई अस्थायी नोटबुक जैसा समझें।

  • गति: RAM से डेटा प्राप्त करना बेहद तेज़ होता है।
  • सरलता: अंतर्निहित भाषा सुविधाओं (जैसे शब्दकोश या हैश मैप) का उपयोग करके इसे स्थापित करना अक्सर आसान होता है।
  • बाहरी निर्भरता नहीं: आपके अनुप्रयोग को किसी अन्य सेवा से जुड़ने की आवश्यकता नहीं होती।

सरल मेमोरी कैश (पायथन)

यहाँ LLM प्रतिक्रियाओं के लिए मेमोरी में कैश का अनुकरण करने हेतु शब्दकोश का उपयोग करने वाला एक मूल पायथन उदाहरण दिया गया है। ध्यान दें कि उसी प्रॉम्प्ट के बाद के अनुरोध कैश से प्राप्त होते हैं।

cache = {}

def get_llm_response(prompt):
    if prompt in cache:
        print("Cache hit!")
        return cache[prompt]
    else:
        print("Cache miss, calling LLM...")
        # Simulate a slow LLM call
        response = f"LLM response for: {prompt}"
        cache[prompt] = response
        return response

if __name__ == "__main__":
    print(get_llm_response("What is RAG?"))
    print(get_llm_response("What is RAG?"))
    print(get_llm_response("Tell me a joke."))
    print(get_llm_response("Tell me a joke."))

मेमोरी कैश की सीमाएँ

तेज़ और सरल होने के बावजूद, उत्पादन-स्तर के LLM अनुप्रयोगों के लिए मेमोरी कैश में महत्वपूर्ण कमियाँ हैं:

  • अस्थायी डेटा: आपका अनुप्रयोग पुनः आरंभ या क्रैश होने पर कैश किया गया सारा डेटा खो जाता है।
  • सीमित विस्तारक्षमता: आपके अनुप्रयोग के प्रत्येक उदाहरण का अपना अलग कैश होता है। यदि आप कई सर्वर चलाते हैं, तो वे डेटा साझा नहीं करेंगे और एक ही काम दोहराया जाएगा।
  • मेमोरी उपयोग: बड़े कैश बहुत अधिक RAM ले सकते हैं, जिससे आपके अनुप्रयोग के समग्र प्रदर्शन पर असर पड़ सकता है।

बाहरी कैशिंग का परिचय

मेमोरी कैश की सीमाओं को दूर करने के लिए हम बाहरी कैशिंग समाधानों का उपयोग करते हैं। ये आपके अनुप्रयोग के बाहर, आमतौर पर किसी समर्पित सर्वर या सेवा में, कैश किया गया डेटा सहेजते हैं।

इससे आपके अनुप्रयोग के कई उदाहरण एक ही कैश किए गए डेटा तक पहुँच सकते हैं और उसे साझा कर सकते हैं, इसलिए यह विस्तार योग्य, वितरित प्रणालियों के लिए आदर्श है।

Redis: एक लोकप्रिय बाहरी कैश

Redis (रिमोट डिक्शनरी सर्वर) एक लोकप्रिय मुक्त-स्रोत, मेमोरी-आधारित डेटा भंडार है। इसके उच्च प्रदर्शन और बहुमुखी डेटा संरचनाओं के कारण इसका व्यापक उपयोग कैश, डेटाबेस और संदेश ब्रोकर के रूप में किया जाता है।

LLM अनुप्रयोगों में बाहरी कैशिंग के लिए यह एक उत्कृष्ट विकल्प है, क्योंकि यह अत्यंत तेज़ है और नेटवर्क-आधारित पहुँच के लिए बनाया गया है।

बाहरी कैशिंग के लाभ

Redis जैसे बाहरी कैश कई प्रमुख लाभ प्रदान करते हैं:

  • वितरित: कई अनुप्रयोग उदाहरण एक ही सुसंगत कैश साझा कर सकते हैं।
  • स्थायी: डेटा को डिस्क पर सहेजने के लिए विन्यस्त किया जा सकता है, इसलिए अनुप्रयोग या कैश सर्वर के पुनः आरंभ होने पर भी वह सुरक्षित रहता है।
  • विस्तार योग्य: कैश को आपके अनुप्रयोग से स्वतंत्र रूप से बढ़ाया जा सकता है और वह बहुत बड़ी मात्रा में डेटा व अनुरोध संभाल सकता है।
  • समृद्ध सुविधाएँ: Redis स्वचालित कैश समाप्ति के लिए जीवनकाल (TTL) और विभिन्न डेटा संरचनाओं जैसी उन्नत सुविधाएँ प्रदान करता है।

LLM कैशिंग के लिए Redis का उपयोग (पायथन)

यहाँ बताया गया है कि redis-py लाइब्रेरी का उपयोग करके आप पायथन से Redis के साथ कैसे काम कर सकते हैं। यह कोड मानता है कि Redis सर्वर स्थानीय रूप से localhost:6379 पर चल रहा है।

यह समय-सीमा (TTL) के साथ एक कुंजी निर्धारित करने और उसे प्राप्त करने का तरीका दिखाता है।

import redis
import json

# Connect to Redis. Ensure a Redis server is running!
# e.g., on Docker: docker run --name my-redis -p 6379:6379 -d redis
try:
    r = redis.Redis(host='localhost', port=6379, db=0)
    r.ping() # Check connection
    print("Connected to Redis successfully!")
except redis.exceptions.ConnectionError as e:
    print(f"Could not connect to Redis: {e}")
    print("Please ensure a Redis server is running on localhost:6379")
    r = None # Set r to None if connection fails

def get_llm_response_from_redis(prompt):
    if r is None:
        return {"error": "Redis not connected, cannot cache."}

    cache_key = f"llm_response:{prompt}"
    cached_data = r.get(cache_key)

    if cached_data:
        print("Redis Cache hit!")
        return json.loads(cached_data.decode('utf-8'))
    else:
        print("Redis Cache miss, calling LLM...")
        # Simulate LLM call and create a response structure
        response_data = {"text": f"LLM response for: {prompt}", "source": "LLM"}
        # Cache the response for 3600 seconds (1 hour)
        r.setex(cache_key, 3600, json.dumps(response_data))
        return response_data

if __name__ == "__main__":
    print(get_llm_response_from_redis("What is the capital of France?"))
    print(get_llm_response_from_redis("What is the capital of France?"))
    print(get_llm_response_from_redis("Who invented the light bulb?"))
    print(get_llm_response_from_redis("Who invented the light bulb?"))

सही कैशिंग रणनीति चुनना

आपकी कैशिंग रणनीति का चुनाव आपके अनुप्रयोग की आवश्यकताओं पर निर्भर करता है:

  • मेमोरी कैश का उपयोग करें यदि:
    आपका अनुप्रयोग एक ही उदाहरण के रूप में चलता है, पुनः आरंभ होने पर डेटा खोना स्वीकार्य है, या आप बहुत छोटे, अस्थायी डेटा-संग्रह कैश कर रहे हैं।
  • बाहरी कैश (जैसे Redis) का उपयोग करें यदि:
    आपको कई अनुप्रयोग उदाहरणों में वितरित कैशिंग चाहिए, डेटा की स्थायित्व अत्यंत महत्वपूर्ण है, आपका डेटा-संग्रह बड़ा है, या आपको उन्नत कैशिंग सुविधाओं और विस्तारक्षमता की आवश्यकता है।

अधिकांश उत्पादन-स्तर के LLM अनुप्रयोगों के लिए बाहरी कैशिंग एक मजबूत विकल्प है।

कैशिंग रणनीति प्रश्नोत्तरी

कैशिंग रणनीतियों के बारे में अपनी समझ को परखें!

पुनरावलोकन: अपने ज्ञान को कैश करें

हमने LLM अनुप्रयोगों के लिए दो मुख्य कैशिंग रणनीतियों को समझा है:

  • मेमोरी कैश तेज़ और सरल होते हैं, लेकिन एक ही अनुप्रयोग उदाहरण तक सीमित रहते हैं और पुनः आरंभ होने पर डेटा खो देते हैं।
  • Redis जैसे बाहरी कैश स्थायित्व, वितरित साझाकरण और स्वतंत्र विस्तारक्षमता प्रदान करते हैं, जिससे वे मजबूत उत्पादन-स्तर की LLM प्रणालियों के लिए आदर्श बनते हैं।

सही रणनीति का चुनाव आपके अनुप्रयोग के पैमाने, डेटा स्थायित्व की आवश्यकताओं और संचालन संबंधी जटिलता पर निर्भर करता है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “मेमोरी और बाहरी कैशिंग रणनीतियाँ” पाठ निःशुल्क है?

हाँ—“मेमोरी और बाहरी कैशिंग रणनीतियाँ” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“मेमोरी और बाहरी कैशिंग रणनीतियाँ” में मैं क्या सीखूँगा?

कैशिंग के विभिन्न तरीकों की तुलना कीजिए, जिनमें सरल मेमोरी-आधारित कैश और Redis जैसे सुदृढ़ बाहरी समाधान शामिल हैं। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“मेमोरी और बाहरी कैशिंग रणनीतियाँ” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. LLM कॉल को कैश करने का महत्व
  2. मेमोरी और बाहरी कैशिंग रणनीतियाँ
  3. RAG कार्यप्रवाह में कैशिंग का एकीकरण
  4. LLM ऐप्स के लिए अर्थ-आधारित कैशिंग
← उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पर वापस जाएँ