𝗟𝗟𝗠 𝗚𝗮𝘁𝗲𝘄𝗮𝘆𝘀: 𝗥𝗼𝘂𝘁𝗶𝗻𝗴, 𝗙𝗮𝗹𝗹𝗯𝗮𝗰𝗸𝘀, 𝗔𝗻𝗱 𝗦𝗲𝗺𝗮𝗻𝘁𝗶𝗰 𝗖𝗮𝗰𝗵𝗶𝗻𝗴

कोडची एक ओळ तुमचे AI बजेट बिघडू शकते.

जर तुम्ही तुमच्या ॲपमध्ये एकाच मॉडेल प्रोव्हायडरचा (model provider) वापर केला, तर तुम्हाला तीन धोक्यांचा सामना करावा लागू शकतो:

  • साध्या कामांसाठी जास्त खर्च.
  • प्रोव्हायडर डाउन झाल्यावर सेवा पूर्णपणे खंडित होणे.
  • एकाच उत्तरासाठी हजारो वेळा पैसे मोजणे.

LLM गेटवे तुमच्या ॲप आणि मॉडेल्समध्ये एका प्रॉक्सी (proxy) प्रमाणे काम करतो. तो तीन महत्त्वाच्या गोष्टी हाताळतो: राउटिंग (routing), फॉलबॅक्स (fallbacks) आणि कॅशिंग (caching).

  1. Routing बहुतेक ॲप्स प्रत्येक विनंती (request) सर्वात महागड्या मॉडेलकडे पाठवतात. ही एक वाया जाणारी पद्धत आहे. सोपी कामे स्वस्त मॉडेल्सकडे पाठवण्यासाठी राउटिंगचा वापर करा.
  • Static routing: युजर टियर्स किंवा कामाच्या प्रकारांवर आधारित नियम वापरा.
  • Cost/Latency routing: उपलब्ध असलेल्या सर्वात वेगवान किंवा स्वस्त मॉडेलची निवड करा.
  • Difficulty routing: एखाद्या कामासाठी मोठ्या मॉडेलची गरज आहे की नाही हे ठरवण्यासाठी लहान मॉडेलचा वापर करा. संशोधनानुसार, स्मार्ट राउटिंगमुळे गुणवत्ता कायम ठेवून खर्च ८०% पेक्षा जास्त कमी करता येतो.
  1. Fallbacks प्रोव्हायडर्स कधीही फेल होऊ शकतात. ते रेट लिमिट्स (rate limits) गाठू शकतात किंवा ऑफलाइन जाऊ शकतात. गेटवे एका 'फॉलबॅक चेन'चे व्यवस्थापन करतो. जर तुमचे प्राथमिक मॉडेल फेल झाले, तर गेटवे आपोआप तुमच्या यादीतील पुढच्या मॉडेलचा प्रयत्न करतो. सेवा खंडित होण्याचे परिणाम अधिक गंभीर होऊ नयेत म्हणून, या पद्धतींचा वापर करा:
  • Exponential backoff: प्रोव्हायडरवर ताण येऊ नये म्हणून पुन्हा प्रयत्न करण्यामध्ये (retries) अंतर ठेवा.
  • Circuit breaking: फेल होणाऱ्या प्रोव्हायडरकडे ठराविक काळासाठी ट्रॅफिक पाठवणे थांबवा. यामुळे टाइमआउटची वाट न पाहता त्वरित 'फेलओव्हर' (failover) शक्य होतो.
  1. Semantic Caching स्टँडर्ड कॅशिंगमध्ये मजकुराच्या अचूक मॅचचा (exact text matches) शोध घेतला जातो. LLMs साठी ही पद्धत अपयशी ठरते कारण वापरकर्ते प्रश्न विचारण्याच्या पद्धती वेगवेगळ्या असतात. सिमेंटिक कॅशिंग अर्थावर लक्ष केंद्रित करते. ते प्रॉम्प्टचे रूपांतर एका वेक्टरमध्ये (vector) करते आणि तुमच्या डेटाबेसमध्ये तसाच एखादा प्रश्न आहे का ते तपासते.
  • फायदा: कॅश हिटला फक्त ५ मिलीसेकंद लागतात आणि त्याचा खर्च $० असतो. मॉडेल कॉलला सेकंद लागतात आणि टोकन्सचा खर्च होतो.
  • धोका: सिमिलॅरिटी थ्रेशोल्ड (similarity threshold) खूप कमी ठेवल्यास चुकीची उत्तरे मिळू शकतात. जर थ्रेशोल्ड खूप सैल असेल, तर "पासवर्ड रिसेट करणे" या प्रश्नाचे उत्तर "ईमेल बदलणे" असे येऊ शकते.

Build or Buy?

  • Build: मूलभूत फॉलबॅक्स किंवा एक्झॅक्ट-मॅच कॅशिंग सारख्या साध्या गरजांसाठी सर्वोत्तम.
  • Buy/Open Source: जेव्हा तुम्हाला सिमेंटिक कॅशिंग, ऑब्झर्व्हेबिलिटी (observability) आणि जटिल फेलओव्हर लॉजिकची गरज असते, तेव्हा LiteLLM सारखी टूल्स किंवा मॅनेज्ड सर्व्हिसेस वापरा.

गेटवे ही इन्फ्रास्ट्रक्चर (infrastructure) आहे, केवळ एक फीचर नाही. तुमच्या कोडबेसमध्ये सर्वत्र मॉडेल कॉल्स विखुरणे थांबवा. तुमचे खर्च आणि विश्वासार्हता नियंत्रित करण्यासाठी समोर एक 'गेट' (gate) ठेवा.

LLM गेटवे: राउटिंग, फॉलबॅक आणि सिमेंटिक कॅशिंग

जसजसे आपण आपल्या ॲप्लिकेशन्समध्ये अधिक LLMs समाविष्ट करत आहोत, तसे त्यांचे व्यवस्थापन करणे एक आव्हान बनत आहे. आपल्याला विविध API, बदलणारी लॅटन्सी (latency), विविध किंमत मॉडेल्स आणि डाउनटाइमचा (downtime) सततचा धोका यांसोबत काम करावे लागते.

LLM गेटवे हा एक मध्यवर्ती स्तर (centralized layer) म्हणून काम करतो जो तुमच्या ॲप्लिकेशन आणि LLM प्रदात्यांच्या (providers) मध्ये असतो. हे अनेक मॉडेल्सशी संवाद साधण्यासाठी एकच इंटरफेस प्रदान करतो.

राउटिंग (Routing)

राउटिंग म्हणजे विशिष्ट निकषांच्या आधारे विनंती (request) एका विशिष्ट मॉडेलकडे निर्देशित करण्याची क्षमता. एखादे मॉडेल हार्डकोड करण्याऐवजी, तुम्ही इंटेलिजेंट निर्णय घेण्यासाठी गेटवे वापरू शकता.

सामान्य राउटिंग धोरणांमध्ये (strategies) खालील गोष्टींचा समावेश होतो:

  • खर्च-आधारित राउटिंग (Cost-based routing): साध्या कामांसाठी स्वस्त मॉडेल्सना (उदा. GPT-3.5) आणि जटिल कामांसाठी महागड्या मॉडेल्सना (उदा. GPT-4) विनंत्या पाठवणे.
  • लॅटन्सी-आधारित राउटिंग (Latency-based routing): ज्या मॉडेलचा प्रतिसाद त्या क्षणी सर्वात जलद आहे, त्याला विनंती पाठवणे.
  • गुणवत्ता-आधारित राउटिंग (Quality-based routing): अत्यंत महत्त्वाच्या कामांसाठी सर्वात सक्षम मॉडेल्सचा वापर सुनिश्चित करणे.

फॉलबॅक (Fallbacks)

जर तुमचे प्राथमिक मॉडेल डाउन असेल किंवा तुम्ही रेट लिमिट (rate limit) ओलांडली, तर काय होईल? गेटवेशिवाय, तुमचे ॲप्लिकेशन निकामी होऊ शकते.

फॉलबॅक तुम्हाला बॅकअप प्लॅन परिभाषित करण्याची परवानगी देतात. जर पहिले मॉडेल अपयशी ठरले, तर गेटवे आपोआप दुसऱ्या मॉडेलसह पुन्हा प्रयत्न (retry) करतो. यामुळे तुमच्या AI वैशिष्ट्यांसाठी उच्च उपलब्धता (availability) आणि विश्वासार्हता (reliability) सुनिश्चित होते.

सिमेंटिक कॅशिंग (Semantic Caching)

पारंपारिक कॅशिंग हे तंतोतंत स्ट्रिंग मॅचिंगवर (exact string matching) अवलंबून असते. जर एका वापरकर्त्याने "हवामान कसे आहे?" असे विचारले आणि दुसऱ्याने "हवामान काय आहे?" असे विचारले, तर पारंपारिक कॅश या दोन्हीला वेगळे समजेल आणि पुन्हा LLM ला कॉल करेल.

सिमेंटिक कॅशिंग प्रश्नामागचा हेतू समजून घेण्यासाठी एम्बेडिंग्सचा (embeddings) वापर करते. ते नवीन क्वेरीच्या वेक्टर रिप्रेंटेशनची (vector representation) आधीच कॅश केलेल्या क्वेरीजशी तुलना करते. जर त्या अर्थाच्या दृष्टीने (semantically) समान असतील, तर ते कॅश केलेला प्रतिसाद परत करते.

यामुळे खालील गोष्टींमध्ये लक्षणीय घट होते:

  1. खर्च (Cost): महागड्या LLM API कॉलची संख्या कमी होते.
  2. लॅटन्सी (Latency): कॅशमधून त्वरित प्रतिसाद मिळतो.

निष्कर्ष

LLM गेटवे आधुनिक AI स्टॅकचा एक आवश्यक भाग बनत आहे. राउटिंग, फॉलबॅक आणि सिमेंटिक कॅशिंग लागू करून, डेव्हलपर्स अधिक मजबूत, स्केलेबल आणि किफायतशीर AI-आधारित ॲप्लिकेशन्स तयार करू शकतात.