लॉग फ़ाइल विश्लेषण के लिए ऐ डिजाइन करें


12

मैं ज्ञात उपकरणों की त्रुटियों को खोजने और विफलता के नए पैटर्न खोजने के लिए एक एआई उपकरण विकसित कर रहा हूं। यह लॉग फ़ाइल समय आधारित है और इसमें ज्ञात संदेश (सूचना और त्रुटि) है। मैं डेटा को नरम तरीके से दिखाने के लिए जावास्क्रिप्ट लाइब्रेरी ईवेंट ड्रॉप का उपयोग कर रहा हूं, लेकिन मेरा वास्तविक काम और संदेह यह है कि ज्ञात को खोजने के लिए एआई को कैसे प्रशिक्षित किया जाए। पैटर्न और नए संभव पैटर्न पाते हैं। मेरी कुछ आवश्यकताएँ हैं:

1 - उपकरण या तो ए। अतिरिक्त पर्यावरण स्थापना या बी पर कोई निर्भरता नहीं है। कम बेहतर (सही परिदृश्य स्टैंडअलोन मोड में ब्राउज़र पर पूरी तरह से उपकरण चलाने के लिए है);

2 - पैटर्न विश्लेषक को खंडित करने की संभावना, एक प्रकार की प्रतिरूपता, एक मॉड्यूल प्रति त्रुटि;

ऐसा करने के लिए अनुशंसित प्रकार के एल्गोरिथ्म क्या हैं (तंत्रिका नेटवर्क, आनुवंशिक एल्गोरिदम, आदि)? जावास्क्रिप्ट का उपयोग कर काम करने के लिए कुछ हासिल करें? यदि नहीं, तो इस AI को बनाने के लिए सबसे अच्छी भाषा क्या है?


1
मुझे संदेह है कि मशीन-लर्निंग की तुलना में नियम-आधारित इसके लिए अधिक उपयुक्त होगा
एंटीलारॉफ्ट 15

@antlersoft ज्ञात समस्याओं के लिए मैं सहमत हूं, लेकिन मैं दोषों के साथ सहसंबंध बनाने के लिए पैटर्न खोजना चाहता हूं।
जूलियानो ओलिवेरा

सिफारिश की? लगता है ... regexp का उपयोग? तंत्रिका नेटवर्क को उन समस्याओं के लिए अनुशंसित किया जाता है जिनके पास शास्त्रीय एल्गोरिदम का उपयोग करने का कोई समाधान नहीं है। लगभग सभी न्यूरल नेटवर्क में प्रीप्रोसेसड डेटा मिलता है। यदि आप लॉग को "प्रीप्रोसेस" करते हैं, तो आपको अपना समाधान भी मिलता है।
betontalpfa

जवाबों:


9

प्रविष्टियों के बीच सहसंबंध

पहली सिफारिश यह सुनिश्चित करना है कि समाधान की मशीन सीखने के घटकों में त्रुटियों के साथ लॉग फ़ाइल में उपयुक्त चेतावनी और सूचनात्मक प्रविष्टियां प्रस्तुत की जाती हैं। सभी लॉग प्रविष्टियाँ संभावित रूप से उपयोगी इनपुट डेटा हैं यदि यह संभव है कि सूचना संदेश, चेतावनी और त्रुटियों के बीच सहसंबंध हैं। कभी-कभी सहसंबंध मजबूत होता है और इसलिए सीखने की दर को अधिकतम करने के लिए महत्वपूर्ण है।

सिस्टम प्रशासक अक्सर चेतावनियों की एक श्रृंखला के रूप में इसका अनुभव करते हैं, इसके बाद चेतावनी में इंगित शर्त के कारण त्रुटि होती है। चेतावनियों में सूचना विफलता के मूल कारण से अधिक संकेत है, क्योंकि सिस्टम या सबसिस्टम गंभीर रूप से विफल हो जाता है।

यदि कोई उपकरण के एक टुकड़े के लिए एक प्रणाली स्वास्थ्य डैशबोर्ड बना रहा है या मशीनों की एक सरणी जो अंतर-संचालित होती है, जो इस प्रश्न में मामला प्रतीत होता है, समस्याओं का मूल कारण और कुछ प्रारंभिक चेतावनी क्षमता प्रदर्शित करने के लिए महत्वपूर्ण जानकारी है।

इसके अलावा, सभी खराब प्रणाली स्वास्थ्य की स्थिति विफलता में समाप्त नहीं होती हैं।

केवल लॉग एंट्रीज जिसे सीखने की प्रणाली में प्रस्तुति से पहले निस्पंदन द्वारा समाप्त किया जाना चाहिए, वे निश्चित रूप से अप्रासंगिक और असंबंधित हैं। यह तब हो सकता है जब लॉग फ़ाइल कई सिस्टम से लॉगिंग का एकत्रीकरण हो। ऐसे मामले में, विश्लेषण की जा रही स्वतंत्र प्रणाली के लिए प्रविष्टियों को उन प्रविष्टियों से अलग-थलग किया जाना चाहिए, जो संभवतः विश्लेषण की जा रही घटनाओं से संबंधित नहीं हो सकती हैं।

यह ध्यान रखना महत्वपूर्ण है कि एक समय में एक प्रविष्टि के विश्लेषण को सीमित करना डैशबोर्ड की उपयोगिता को सीमित करता है। एक प्रणाली का स्वास्थ्य सबसे हाल ही में लॉग प्रविष्टि के स्वास्थ्य संकेतों के बराबर नहीं है। यह सबसे हाल ही में एन प्रविष्टियों के स्वास्थ्य संकेतों का रैखिक योग भी नहीं है।

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

ज्ञात और अज्ञात पैटर्न के बीच का अंतर

ध्यान दें कि ज्ञात पैटर्न की पहचान नए पैटर्न की पहचान की तुलना में एक महत्वपूर्ण सम्मान में अलग है। ज्ञात त्रुटियों के प्रवेश सिंटैक्स की अज्ञातताओं को पहले ही पहचान लिया गया है, उन प्रविष्टियों के लिए प्रसंस्करण के इनपुट सामान्यीकरण चरणों में सीखने के बोझ को कम करना। नई त्रुटि प्रकारों की वाक्यात्मक idiosyncrasies पहले खोजा जाना चाहिए।

एक ज्ञात प्रकार की प्रविष्टियों को उन लोगों से भी अलग किया जा सकता है जो अज्ञात हैं, नए डेटाेटिक पैटर्न के सीखने में मदद करने के लिए प्रशिक्षण डेटा के रूप में ज्ञात प्रवेश प्रकारों के उपयोग को सक्षम करते हैं। लक्ष्य सिमेंटिक विश्लेषण के लिए वाक्यात्मक रूप से सामान्यीकृत जानकारी प्रस्तुत करना है।

फ़ाइलों को लॉग करने के लिए सामान्यीकरण का पहला चरण

यदि समय की मोहर हमेशा प्रविष्टियों में एक ही स्थान पर होती है, तो यह सापेक्ष मिलीसेकंड में परिवर्तित होता है और शायद 0x0a वर्णों से पहले किसी भी 0x0d वर्ण को हटाने से सामान्यीकरण में पहले कदम के रूप में कुछ और किया जा सकता है। स्टैक के निशान को भी ट्रेस स्तरों के टैब सीमांकित सरणियों में बांधा जा सकता है ताकि लॉग प्रविष्टियों और लॉग लाइनों के बीच एक-से-एक पत्राचार हो।

त्रुटि और गैर-त्रुटि प्रकार प्रविष्टियों के ज्ञात और अज्ञात दोनों प्रविष्टियों से उत्पन्न होने वाली वाक्य-रचना सामान्यीकृत जानकारी को तब शब्दार्थ संरचना की श्रेणियों के भोलेपन की पहचान के लिए अनचाहे जाल में प्रस्तुत किया जा सकता है। हम संख्याओं या पाठ चर जैसे उपयोगकर्ता नाम या भाग क्रमांक को वर्गीकृत नहीं करना चाहते हैं।

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

रुझानों को समय के खिलाफ या किसी विशेष प्रकार के उदाहरणों की संख्या के खिलाफ चित्रित किया जा सकता है। इस तरह के ग्राफिक्स यांत्रिक थकान की पहचान करने में मदद कर सकते हैं, क्षमता की स्थिति का दृष्टिकोण, या अन्य जोखिम जो विफलता बिंदु तक बढ़ जाते हैं। आगे तंत्रिका जाल को चेतावनी संकेतक का उत्पादन करने के लिए प्रशिक्षित किया जा सकता है जब रुझान संकेत देते हैं कि ऐसी स्थितियां आसन्न हैं।

आलसी लॉगिंग

यदि सॉफ्टवेयर डेवलपर्स और प्रौद्योगिकी अधिकारियों ने सॉफ्टवेयर डेवलपर्स के अलग-अलग सुविधाजनक व्हिम्स के लिए महत्वपूर्ण सिस्टम सूचना के भंडारण प्रारूप को छोड़ दिया, तो इस लॉग विश्लेषण का सब कुछ लुट जाएगा। लॉग फाइलें आम तौर पर एक गड़बड़ होती हैं, और उनमें पैटर्न के बारे में सांख्यिकीय जानकारी का निष्कर्षण सॉफ्टवेयर गुणवत्ता नियंत्रण में सबसे आम चुनौतियों में से एक है। संभावना है कि कठोरता कभी सार्वभौमिक रूप से लॉगिंग के लिए लागू की जाएगी क्योंकि कोई भी लोकप्रिय लॉगिंग फ्रेमवर्क कठोरता को प्रोत्साहित नहीं करता है। यह सबसे अधिक संभावना है कि इस प्रश्न को अक्सर क्यों देखा गया है।

आवश्यकताएँ इस विशिष्ट प्रश्न की धारा

इस प्रश्न में प्रस्तुत विशिष्ट मामले में, आवश्यकता # 1 ब्राउज़र में विश्लेषण को चलाने के लिए एक प्राथमिकता को इंगित करता है, जो संभव है लेकिन अनुशंसित नहीं है। भले ही ECMA एक अद्भुत स्क्रिप्टिंग भाषा है और नियमित अभिव्यक्ति मशीनरी जो सीखने में मददगार हो सकती है, उसे ECMA में बनाया गया है (जो आवश्यकता के अन्य भाग # 1 का अनुपालन करती है, अतिरिक्त संस्थापनों की आवश्यकता नहीं है) अन-संकलित भाषाएँ लगभग नहीं हैं जावा के रूप में कुशल। और यहां तक ​​कि जावा भी कचरा संग्रहण और अक्षमताओं के कारण सी के रूप में कुशल नहीं है जो कि समय को चलाने के लिए मशीन कोड को बाइट कोड के मानचित्रण को सौंपकर होता है।

मशीन लर्निंग में कई प्रयोग पायथन, एक और अद्भुत भाषा को रोजगार देते हैं, लेकिन मैंने पायथन में जो काम किया है, उनमें से अधिकांश को कई मामलों में गति में लगभग 1,000 से एक लाभ के लिए कम्प्यूटेशनल रूप से कुशल C ++ में पोर्ट किया गया था। यहां तक ​​कि सी ++ विधि लुकअप एक अड़चन थी, इसलिए पोर्ट ईसीएमए शैली में बहुत कम विरासत का उपयोग करते हैं, लेकिन बहुत तेज। पारंपरिक कर्नेल कोड में पारंपरिक, सी स्ट्रक्चर्स और फंक्शन पॉइंटर का इस्तेमाल वाइबर ओवरहेड को खत्म करता है।

मॉड्यूलर हैंडलर की दूसरी आवश्यकता वाजिब है और एक ट्रिगर नियम वातावरण का अर्थ है कि कई लोगों को लगता है कि एनएन आर्किटेक्चर के साथ असंगत हो सकता है, लेकिन ऐसा नहीं है। एक बार पैटर्न श्रेणियों की पहचान हो जाने के बाद, पहले इनपुट डेटा में सबसे आम लोगों की तलाश पहले से ही ऊपर की प्रक्रिया में पहले से ही ज्ञात / अज्ञात भेद में निहित है। हालांकि इस मॉड्यूलर दृष्टिकोण के साथ एक चुनौती है।

क्योंकि सिस्टम स्वास्थ्य को अक्सर रुझानों से संकेत मिलता है, न कि एकल प्रविष्टियों (जैसा कि ऊपर चर्चा की गई है) और क्योंकि सिस्टम स्वास्थ्य व्यक्तिगत प्रविष्टियों के स्वास्थ्य मूल्य का एक रेखीय योग नहीं है, प्रविष्टियों को संभालने के लिए मॉड्यूलर दृष्टिकोण केवल आगे के बिना प्रदर्शन के लिए पाइप नहीं होना चाहिए विश्लेषण। यह वास्तव में है जहां तंत्रिका जाल स्वास्थ्य निगरानी में सबसे बड़ा कार्यात्मक लाभ प्रदान करेगा। मॉड्यूल के आउटपुट को एक तंत्रिका जाल में प्रवेश करना चाहिए जिसे स्वास्थ्य, आसन्न खतरों और जोखिम स्थितियों के इन गैर-रेखीय संकेतों की पहचान करने के लिए प्रशिक्षित किया जा सकता है।

इसके अलावा, पूर्व-विफलता व्यवहार का अस्थायी पहलू तात्पर्य है कि काफी लंबाई के लॉग प्रविष्टियों की एक पूरी समय खिड़की इस जाल में प्रवेश करना चाहिए। यह आगे समाधान के कम्प्यूटेशनल रूप से गहन भाग के लिए चुनाव के रूप में ECMA या पायथन की अनुपयुक्तता का अर्थ है। (ध्यान दें कि पायथन में प्रवृत्ति वह है जो मैं सी ++ के साथ करता हूं: ऑब्जेक्ट ओरिएंटेड डिज़ाइन, इनकैप्सुलेशन, और पर्यवेक्षी कोड के लिए डिज़ाइन पैटर्न का पालन करना आसान और वास्तविक सीखने और अन्य कम्प्यूटेशनल गहन या डेटा गहन के लिए बहुत कम्प्यूटेशनल कुशल कर्नेल जैसे कोड। कार्य करता है।)

एल्गोरिदम उठा रहा है

आर्किटेक्चर के शुरुआती चरणों में एल्गोरिदम चुनना उचित नहीं है (जैसा कि प्रश्न के अंत में निहित था)। प्रक्रिया को पहले आर्किटेक्ट करें। सीखने के घटकों को निर्धारित करें, उनमें से आवश्यक प्रकार, प्रशिक्षण के बाद उनकी लक्ष्य स्थिति, जहां सुदृढीकरण का उपयोग किया जा सकता है, और वांछित नेटवर्क व्यवहार को सुदृढ़ / सही करने के लिए वेलनेस / त्रुटि सिग्नल कैसे उत्पन्न होगा। न केवल वांछित प्रदर्शन सामग्री पर बल्कि अपेक्षित थ्रूपुट, कंप्यूटिंग संसाधन आवश्यकताओं, और न्यूनतम प्रभावी शिक्षण दर पर इन निर्धारणों को आधार बनाएं। सिस्टम के लिए एल्गोरिदम, भाषा और क्षमता योजना केवल सार्थक रूप से चुनी जा सकती है क्योंकि उन सभी चीजों को कम से कम मोटे तौर पर परिभाषित किया गया है।

उत्पादन में समान कार्य

सोशल नेटवर्किंग ऑटोमेशन के एक हिस्से के रूप में यहां प्रयोगशाला में सरल अनुकूली पार्सिंग चल रही है, लेकिन केवल प्रतीकों और अनुक्रमिक पैटर्न के सीमित सेटों के लिए। यह हमारी हार्डवेयर क्षमताओं और थ्रूपुट द्वारा सीमित एक मनमाने ढंग से बड़ी आधार भाषाई इकाइयों, उपसर्गों, अंत और प्रत्ययों के पुन: संयोजन के बिना पैमाने पर करता है। डिजाइन को सरल रखने के लिए नियमित अभिव्यक्ति पुस्तकालयों का अस्तित्व सहायक था। हम एक विन्यास योग्य विंडो आकार और चाल वृद्धि आकार के साथ इनपुट पाठ के माध्यम से चलती खिड़की से सुविधा निष्कर्षण के लिए DCNN के एनोटोट्रोपिक रूप से खिलाया पीसीआरई संस्करण 8 श्रृंखला पुस्तकालय का उपयोग करते हैं। पहली पाठयक्रम में एकत्रित इनपुट पाठ आँकड़ों पर लागू ह्यूरिस्टिक्स दो परतों में व्यवस्थित काल्पनिक PCREs का एक सेट उत्पन्न करते हैं।

अनुकूलन एक अव्यवस्थित रूप से विकृत पाठ खोज में सबसे अच्छा PCREs के लिए उच्च संभाव्य भार को लागू करने के लिए होता है। यह प्रशिक्षण में NN बैक प्रचार में उपयोग की जाने वाली समान ढाल मूल अभिसरण रणनीतियों का उपयोग करता है। यह एक भोली दृष्टिकोण है जो पीछे के निशान, फ़ाइलों या त्रुटियों के अस्तित्व की तरह धारणा नहीं बनाता है। यह अरबी संदेशों और स्पेनिश लोगों के लिए समान रूप से अनुकूल होगा।

आउटपुट मेमोरी में एक मनमाना निर्देशित ग्राफ है, जो ऑब्जेक्ट ओरिएंटेड डेटाबेस के डंप के समान है।

قنبلة -> dangereux -> 4anlyss
bomba -> dangereux
ambiguïté -> 4anlyss -> préemption -> قنبلة

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

अंतिम टिप्पणियाँ

सिस्टम में लॉग विश्लेषण समस्या के समान घटक और प्रक्रिया वास्तुकला है और ऊपर सूचीबद्ध अवधारणाओं को साबित करते हैं। बेशक, लॉगिंग करने वाले सिस्टम के डेवलपर्स के बीच लॉगिंग करने के तरीके में जितना अधिक विघटन होता है, उतना ही मुश्किल होता है कि किसी मानव या कृत्रिम एजेंट के लिए एंट्रीज को अलग करना। कुछ सिस्टम लॉगिंग इतने लंबे समय के लिए खराब गुणवत्ता नियंत्रण है कि लॉग लगभग बेकार है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.