𝗧𝗵𝗲 𝗛𝗶𝗱𝗱𝗲𝗻 𝗖𝗼𝘀𝘁 𝗼𝗳 𝗣𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 𝗔𝗜
प्रोडक्शनमधील सर्वात वाईट बग्स तुमचे सिस्टम क्रॅश करत नाहीत. ते फक्त शांतपणे (silently) अपयशी ठरतात.
एखाद्या LLM प्रोव्हायडरमध्ये अंशतः आउटेज (partial outage) असू शकतो. ते 200 OK स्टेटस देतात, परंतु प्रतिसाद (response) रिकामा किंवा निरर्थक असतो. तिथे कोणताही एरर नसतो. कोणताही अलर्ट येत नाही. ते यशस्वी असल्यासारखे वाटते, पण प्रत्यक्षात ते अपयश असते.
हाच AI चा खरा खर्च आहे. हा API बिलांचा खर्च नाही. तर, जोपर्यंत वापरकर्ता तुम्हाला काहीतरी चुकले आहे असे सांगत नाही, तोपर्यंत सामान्य वाटणारे हे अपयश आहे.
मी दररोज १०,००० जॉब लिस्टिंगना स्कोअर करणारी एक पाइपलाइन चालवतो. मी OpenAI, Anthropic, Gemini, DeepSeek आणि Groq वापरतो. कार्यक्षम 'fallback chains' कशा तयार करायच्या, ते खाली दिले आहे.
बहुतेक टीम्स फक्त एकच प्रोव्हायडर वापरतात. डेव्हलपमेंटमध्ये ते व्यवस्थित चालते. पण जेव्हा प्रोडक्शन ट्रॅफिक येते, तेव्हा तुम्हाला रेट लिमिट्स (rate limits), खराब झालेले प्रतिसाद (degraded responses) किंवा डेप्रिकेटेड मॉडेल्सचा (deprecated models) सामना करावा लागतो.
तुम्हाला तीन-स्तरीय आर्किटेक्चरची (three-layer architecture) गरज आहे:
- लेयर १: प्रायमरी मॉडेल. उच्च गुणवत्ता आणि उच्च खर्च.
- लेयर २: फॉलबॅक मॉडेल. चांगली गुणवत्ता आणि कमी खर्च.
- लेयर ३: डिग्रेड मोड. किमान गुणवत्ता आणि शून्य जवळचा खर्च.
प्रत्येक लेयरसाठी वेगळा प्रोव्हायडर वापरला पाहिजे. जर एक प्रोव्हायडर डाऊन झाला, तर इतर सुरू राहतील.
महत्त्वाचा सल्ला: फक्त HTTP स्टेटस तपासू नका. तुम्हाला आउटपुट व्हॅलिडेट (validate) करणे आवश्यक आहे. स्ट्रक्चर्ड डेटासाठी 'schema validation' वापरा. मजकुरासाठी (text) 'length checks' वापरा.
मी माझ्या कामांसाठी तीन टियर्स (tiers) वापरतो:
- टियर १: क्लिष्ट कामे. मी GPT-4o किंवा Claude 3.5 Sonnet वापरतो.
- टियर २: क्लासिफिकेशन. मी GPT-4o mini किंवा Gemini 2.0 Flash वापरतो.
- टियर ३: वेगाला महत्त्व असलेली कामे. मी Groq किंवा DeepSeek V4 Flash वापरतो.
हे राउटिंग (routing) महागडी मॉडेल्स फक्त आवश्यकतेनुसार वापरून खर्च कमी करते.
तुमच्या एम्बेडिंग प्रोव्हायडर्सना (embedding providers) विसरू नका. जर तुमचा एम्बेडिंग API फेल झाला, तर तुमची RAG पाइपलाइन काम करणे थांबवेल. मी प्रत्येक पाइपलाइनसाठी समांतर (parallel) दोन एम्बेडिंग प्रोव्हायडर्स ठेवतो.
'Silent failures' पकडण्यासाठी, या तीन मेट्रिक्सचा (metrics) मागोवा घ्या:
- रिस्पॉन्स टाइम (Response time). जर एखादा क्लिष्ट प्रॉम्प्ट खूप वेगाने प्रतिसाद देत असेल, तर मॉडेलने बहुधा कॅश्ड (cached) किंवा रिकामा प्रतिसाद दिला असावा.
- आउटपुटची लांबी (Output length). लहान प्रतिसाद हे धोक्याचे संकेत (red flag) आहेत.
- स्कीमा कंप्लायन्स (Schema compliance). मजकूर खरोखर उपयुक्त आहे की फक्त 'null' व्हॅल्यूजचा समूह आहे, हे तपासा.
एक चांगली फॉलबॅक चेन हे सुनिश्चित करते की प्रत्येक विनंतीला (request) वापरण्यायोग्य प्रतिसाद मिळेल. तुम्ही अतिरिक्त क्षमतेसाठी (extra capacity) पैसे देता, पण तुम्ही वापरकर्त्याचा विश्वास जपता.
Optional learning community: https://t.me/GyaanSetuAi