अवलोकनीयता: लॉग-लेखन, मापदंड और ट्रेसिंग
अपने LLM ऐप्लिकेशन के व्यवहार की गहन जानकारी प्राप्त करने के लिए व्यापक लॉग-लेखन, मापदंड-संग्रह और वितरित ट्रेसिंग को एकीकृत कीजिए।
अवलोकनीयता: लॉग-लेखन, मापदंड और ट्रेसिंग, CoddyKit पर उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
अवलोकनीयता क्या है?
इस पाठ में हम अवलोकनीयता का अध्ययन करेंगे, जो जटिल सॉफ़्टवेयर सिस्टम, विशेषकर LLM अनुप्रयोगों के प्रबंधन के लिए एक महत्वपूर्ण अवधारणा है।
अवलोकनीयता का अर्थ है सिस्टम द्वारा उत्पन्न डेटा की जाँच करके उसकी आंतरिक स्थिति को समझना। इसे अपने अनुप्रयोग के व्यवहार को एक्स-रे दृष्टि से देखने जैसा समझिए।
LLM अनुप्रयोगों के लिए यह हमें कुछ महत्वपूर्ण प्रश्नों के उत्तर देने में मदद करता है:
- कोई अनुरोध धीमा क्यों है?
- क्या RAG पुनर्प्राप्ति अपेक्षित रूप से काम कर रही है?
- क्या हम अनपेक्षित लागत उठा रहे हैं?
लॉग: इवेंट रिकॉर्ड करना
लॉग आपके अनुप्रयोग के भीतर होने वाले इवेंट्स के समय-मुद्रित रिकॉर्ड होते हैं। ये आपके सिस्टम की गतिविधियों की डायरी जैसे होते हैं।
LLM अनुप्रयोगों के लिए लॉग इन कार्यों में आवश्यक हैं:
- आने वाले उपयोगकर्ता प्रॉम्प्ट्स का पता रखना।
- LLM से प्राप्त प्रतिक्रियाएँ संग्रहीत करना।
- RAG प्रवाह के बीच के चरणों को रिकॉर्ड करना (जैसे पुनर्प्राप्त किए गए दस्तावेज़)।
- त्रुटियों या चेतावनियों को दर्ज करना।
ये समस्या-निवारण और घटना के बाद के विश्लेषण के लिए विस्तृत संदर्भगत जानकारी प्रदान करते हैं।
LLM इंटरैक्शन का लॉग रखना
यहाँ एक सरल Python उदाहरण दिया गया है, जो दिखाता है कि किसी LLM इंटरैक्शन का लॉग कैसे रखा जाता है। इसमें Python के अंतर्निहित logging मॉड्यूल का उपयोग किया गया है।
इससे आप ठीक-ठीक देख सकते हैं कि कौन-से प्रॉम्प्ट भेजे गए और कौन-सी प्रतिक्रियाएँ प्राप्त हुईं। यह आपके अनुप्रयोग की समस्या-निवारण और उसमें सुधार के लिए बहुत महत्वपूर्ण है।
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s'
)
def call_llm(prompt):
logging.info(f"LLM Request: '{prompt[:40]}...' ")
# Simulate LLM processing
response = f"Simulated response to: {prompt}"
logging.info(f"LLM Response: '{response[:40]}...' ")
return response
if __name__ == "__main__":
user_prompt = "Explain observability simply."
result = call_llm(user_prompt)
print(f"Application output: {result}")मेट्रिक्स: प्रदर्शन मापना
मेट्रिक्स समय के साथ एकत्र किए गए संख्यात्मक माप होते हैं, जो आपके सिस्टम के स्वास्थ्य और प्रदर्शन की समेकित जानकारी प्रदान करते हैं।
लॉग्स अलग-अलग इवेंट्स होते हैं, जबकि मेट्रिक्स आम तौर पर ऐसे मात्रात्मक मान होते हैं जिन्हें ग्राफ़ और डैशबोर्ड के रूप में दिखाया जा सकता है। LLM अनुप्रयोगों के प्रमुख मेट्रिक्स में शामिल हैं:
- विलंबता: LLM को प्रतिक्रिया देने में कितना समय लगता है।
- टोकन उपयोग: प्रत्येक अनुरोध में उपयोग किए गए इनपुट/आउटपुट टोकन।
- त्रुटि दर: विफल LLM कॉल या RAG पुनर्प्राप्तियों का प्रतिशत।
- कैश हिट दर: कैश की गई प्रतिक्रियाओं का कितनी बार उपयोग होता है।
कस्टम मेट्रिक्स एकत्र करना
आप अपने LLM अनुप्रयोग के विशिष्ट पहलुओं को समझने के लिए कस्टम मेट्रिक्स एकत्र कर सकते हैं। यह उदाहरण LLM कॉल की संख्या और उनकी औसत विलंबता पर नज़र रखने का तरीका दिखाता है।
वास्तविक परिस्थितियों में, आप इन मेट्रिक्स को Prometheus या Datadog जैसी निगरानी प्रणाली को भेजेंगे।
import time
class LLMMetrics:
def __init__(self):
self.total_calls = 0
self.total_latency = 0.0
def record_call(self, duration):
self.total_calls += 1
self.total_latency += duration
def get_avg_latency(self):
if self.total_calls == 0:
return 0.0
return self.total_latency / self.total_calls
metrics_store = LLMMetrics()
def call_llm_with_metrics(prompt):
start_time = time.time()
# Simulate LLM processing
time.sleep(0.05) # simulate 50ms work
response = f"Simulated reply to: {prompt}"
end_time = time.time()
metrics_store.record_call(end_time - start_time)
return response
if __name__ == "__main__":
print("Collecting LLM call metrics...")
call_llm_with_metrics("Hi")
call_llm_with_metrics("How are you?")
print(f"Total calls: {metrics_store.total_calls}")
print(f"Avg latency: {metrics_store.get_avg_latency():.3f}s")ट्रेसिंग: अनुरोध के मार्गों का अनुसरण
ट्रेसिंग का अर्थ है वितरित सिस्टम में कई सेवाओं और घटकों से होकर गुजरने वाले किसी एक अनुरोध का अनुसरण करना। यह उन RAG अनुप्रयोगों के लिए विशेष रूप से महत्वपूर्ण है जिनमें कई चरण शामिल होते हैं: उपयोगकर्ता इनपुट, एम्बेडिंग निर्माण, वेक्टर डेटाबेस खोज, LLM कॉल आदि।
एक ट्रेस अनुरोध की पूरी यात्रा का दृश्य प्रस्तुत करता है और दिखाता है कि उसने कौन-सा मार्ग अपनाया तथा प्रत्येक ऑपरेशन में कितना समय लगा।
ट्रेस, स्पैन और संदर्भ
ट्रेस किसी अनुरोध की शुरुआत से अंत तक की पूरी यात्रा होती है। यह कई स्पैन से मिलकर बना होता है।
- एक स्पैन ट्रेस के भीतर किसी एक ऑपरेशन या कार्य-इकाई को दर्शाता है (जैसे 'दस्तावेज़ पुनर्प्राप्त करना', 'एम्बेडिंग मॉडल को कॉल करना', 'LLM को आमंत्रित करना)।
- स्पैन के बीच अभिभावक-बच्चा संबंध होता है, जिससे निर्भरताएँ दिखाने वाली ट्री संरचना बनती है।
- संदर्भ प्रसार यह सुनिश्चित करता है कि एक विशिष्ट ट्रेस ID विभिन्न सेवाओं के बीच अनुरोध के साथ बनी रहे और सभी संबंधित स्पैन आपस में जुड़े रहें।
इससे माइक्रोसर्विसेज़ में बाधाओं या विफलताओं का सटीक पता लगाने में मदद मिलती है।
ट्रेसिंग के लिए OpenTelemetry
शुरुआत से ट्रेसिंग लागू करना जटिल होता है, लेकिन OpenTelemetry जैसे उपकरण (एक मुक्त-स्रोत अवलोकनीयता ढाँचा) आपके कोड में निगरानी-साधन जोड़ने के मानकीकृत तरीके उपलब्ध कराते हैं।
आप OpenTelemetry SDK का उपयोग इन कार्यों के लिए करेंगे:
- अनुरोध आने पर नया ट्रेस शुरू करना।
- हर महत्वपूर्ण कार्य के लिए नए स्पैन बनाना (जैसे वेक्टर डेटाबेस या LLM API को फ़ंक्शन कॉल)।
- ट्रेस संदर्भ को डाउनस्ट्रीम सेवाओं तक पहुँचाना।
इससे आप ट्रेसिंग UI में अनुरोध के पूरे प्रवाह को देख सकते हैं।
अवलोकनीयता का त्रिकोण
लॉग, मेट्रिक्स और ट्रेस को अक्सर "अवलोकनीयता का त्रिकोण" कहा जाता है, क्योंकि ये आपके सिस्टम के पूरक दृष्टिकोण उपलब्ध कराते हैं:
- लॉग: बारीक विवरण और घटनाएँ।
- मेट्रिक्स: समेकित संख्याएँ और रुझान।
- ट्रेस: अनुरोध की आरंभ से अंत तक की यात्रा।
साथ मिलकर, ये आपके LLM अनुप्रयोग के व्यवहार की व्यापक समझ देते हैं, जिससे समस्याओं का निदान करना, प्रदर्शन को बेहतर बनाना और उत्पादन में विश्वसनीयता सुनिश्चित करना आसान हो जाता है।
त्वरित जाँच: अवलोकनीयता
आपने अवलोकनीयता के तीन स्तंभों के बारे में सीखा है। आइए देखें कि क्या आप इनके मुख्य उपयोगों में अंतर कर सकते हैं।
पुनरावलोकन: गहन जानकारी
बधाई हो! आपने LLM अनुप्रयोगों की अवलोकनीयता की दुनिया का अन्वेषण किया है।
- हमने अवलोकनीयता को बाहरी डेटा से आंतरिक सिस्टम स्थिति को समझने के रूप में परिभाषित किया।
- हमने विस्तृत घटना अभिलेखन के लिए लॉग के बारे में सीखा।
- हमने समेकित प्रदर्शन मापों के लिए मेट्रिक्स को समझा।
- हमने अनुरोध के आरंभ से अंत तक के प्रवाह को देखने के लिए ट्रेस को समझा।
इन तीनों स्तंभों को एकीकृत करके, आपको उपयोगी गहन जानकारी मिलती है, जिससे आप अधिक विश्वसनीय, बेहतर प्रदर्शन करने वाले और लागत-कुशल LLM सिस्टम बना सकते हैं।
एआई शिक्षक के साथ उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “अवलोकनीयता: लॉग-लेखन, मापदंड और ट्रेसिंग” पाठ निःशुल्क है?
हाँ—“अवलोकनीयता: लॉग-लेखन, मापदंड और ट्रेसिंग” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“अवलोकनीयता: लॉग-लेखन, मापदंड और ट्रेसिंग” में मैं क्या सीखूँगा?
अपने LLM ऐप्लिकेशन के व्यवहार की गहन जानकारी प्राप्त करने के लिए व्यापक लॉग-लेखन, मापदंड-संग्रह और वितरित ट्रेसिंग को एकीकृत कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“अवलोकनीयता: लॉग-लेखन, मापदंड और ट्रेसिंग” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- RAG घटकों का क्षैतिज विस्तार
- अवलोकनीयता: लॉग-लेखन, मापदंड और ट्रेसिंग
- LLM संचालन के लिए चेतावनी और घटना प्रतिक्रिया
- लोड परीक्षण और क्षमता योजना