अगली पीढ़ी के डेटाबेस क्वेरी इंजन के निर्माण की ओर

क्या होगा अगर कल के डेटाबेस इंजन आज की समस्याओं को हल करने में सक्षम नहीं हैं?

1970 के दशक में रिलेशनल डेटाबेस का जन्म हुआ। आज, ये अभी भी हमारी सूचना प्रणाली की रीढ़ की हड्डी बनाते हैं, जिसमें विशिष्ट फॉर्च्यून 500 कंपनियां हजारों SQL डेटाबेस चलाती हैं। आधे से अधिक उद्यम कंपनियां मशीन लर्निंग का पता लगाने में लगी हैं, क्या होगा यदि ऐसा है क्योंकि उनके वर्तमान डेटाबेस कंपनी की सूचना की जरूरतों के लिए अपर्याप्त हैं?

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

एक तरफ: यह तर्क आज के ग्राफ डेटाबेस पर समान रूप से लागू होता है, क्योंकि वे रिलेशनल डेटाबेस के समान सिद्धांतों पर काम करते हैं।

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

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

कर्मचारी E1 का चयन DISTINCT वेतन E1 2 से करें = COUNT (DISTINCT वेतन) का चयन कर्मचारी E2 से करें e1.salary <= e2.salary

एक नया दृष्टिकोण

ऑक्टेवियन में, हम डेटाबेस क्वेरी इंजन की एक नई पीढ़ी पर काम कर रहे हैं। यह एक अलग दृष्टिकोण लेकर उपरोक्त सीमाओं को संबोधित करता है। इसके मूल में, यह मौजूदा डेटाबेस क्वेरी इंजन से बहुत अलग है:

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

मैं इनमें से प्रत्येक पहलू को समझाऊंगा और वे कैसे लाभकारी होंगे।

यह क्वेरी के लिए SQL के बजाय प्राकृतिक भाषा (जैसे अंग्रेजी) को स्वीकार करता है

हाल ही में स्मार्ट स्पीकर्स के रूप में नेचुरल लैंग्वेज इंटरफेस को हटा लिया गया है - अगले साल में स्मार्ट स्पीकर खरीदने के लिए अमेजन की रिपोर्ट में 20 मिलियन से अधिक ईको, और 50% अमेरिकी उपभोक्ताओं को बेचने की योजना है। प्राकृतिक भाषा के प्रयोग से सिस्टम में प्रवेश के लिए कम अवरोधों वाले लोगों की एक विस्तृत श्रृंखला तक पहुँचा जा सकता है।

हम व्यावसायिक डेटा की दुनिया में समान लाभ लाने के साथ प्रयोग कर रहे हैं।

यह डेटा को निश्चित श्रेणियों के आइटम के बजाय विरल सुविधाओं के मिश्रण के रूप में दर्शाता है

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

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

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

यह उदाहरणों से मल्टी-स्टेप डीप एल्गोरिदम सीखता है

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

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

यह तुलना करने की तरह है कि कितने लोग रसोई में एक नुस्खा पुस्तक बनाम खाना बनाते हैं: हम आंखों से सामग्री को मापते हैं, महसूस द्वारा घटक संयोजन चुनते हैं और इसे तब तक पकाते हैं जब तक यह गंध और अच्छा नहीं लगता। हम सुधार करते हैं। इनमें से कोई भी रेसिपी बुक के सेट स्टेप्स और कुकिंग टाइम द्वारा कैप्चर नहीं किया जाता है।

इसका निर्माण कैसे करें

वर्तमान क्वेरी इंजन कैसे काम करते हैं, इस तरह के एक मौलिक प्रस्थान को अंतर्निहित प्रौद्योगिकी में समान प्रस्थान की आवश्यकता होती है।

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

नेटवर्क RNN और सीखा शब्द एम्बेडिंग के माध्यम से क्वेरी को संसाधित करता है। यह क्वेरी टोकन की एक सरणी और समग्र क्वेरी वेक्टर भी प्रदान करता है।

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

आप इस हालिया लेख में एक बुनियादी कामकाजी उदाहरण देख सकते हैं।

जब भी इस उच्च-स्तरीय अवलोकन में कवर करने के लिए बहुत अधिक विवरण हैं, तो कुछ उप-नेटवर्क शामिल हैं (हमारे ग्राफ़-प्रोसेसिंग नेटवर्क के लिए):

  • नोड संपत्ति याद करते हैं
  • एज (यानी संबंध) याद करते हैं
  • ऊपर दिए गए निर्देशों को संबोधित करते हुए पिछले चरण के आउटपुट का उपयोग करना
  • निष्क्रिय संदेश गुजर रहा है
  • पिछले चरण के आउटपुट को याद करना और उन्हें कई तरीकों से बदलना

आशा करना

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

इस तकनीक के निर्माण के लिए डेटाबेस की नींव के एक कट्टरपंथी पुन: विचार, बहुत सारे नवाचार और समस्या को हल करने की आवश्यकता होती है।

यदि आप इस तरह की चीजों पर काम कर रहे हैं, तो हमसे संपर्क करें या हमारे साथ चैट करें।