SQL डेटाबेस वर्कलोड के लिए एम्बेडिंग जनरेट करें और बनाए रखें
एम्बेडिंग आपके डेटा का प्रतिनिधित्व कैसे करते हैं, यह डिज़ाइन करने के बाद, आपको उन्हें जनरेट करना होगा और डेटा परिवर्तनों के रूप में उन्हें सिंक्रनाइज़ में रखना होगा.
SQL सर्वर डेटाबेस कॉलम में संग्रहीत पाठ से एम्बेडिंग उत्पन्न करने के लिए अंतर्निहित AI फ़ंक्शन प्रदान करता है। एम्बेडिंग उत्पन्न करना आमतौर पर एक बार का ऑपरेशन नहीं होता है। जब स्रोत डेटा बदलता है, तो एम्बेडिंग को पुन: उत्पन्न करने की आवश्यकता हो सकती है ताकि वे डेटा की वर्तमान स्थिति को प्रतिबिंबित करना जारी रखें।
SQL के साथ एम्बेडिंग जनरेट करें
SQL सर्वर डेटाबेस स्तंभों में संग्रहीत पाठ से सीधे एम्बेडिंग जनरेट करने के लिए फ़ंक्शन प्रदान करता AI_GENERATE_EMBEDDINGS है। यह फ़ंक्शन टेक्स्ट को वेक्टर में बदलने के लिए एक बाहरी मॉडल का उपयोग करता है जिसे संग्रहीत किया जा सकता है और बाद में तुलना की जा सकती है।
एक सामान्य पैटर्न प्रारंभिक लोड के दौरान या बैच प्रक्रिया के हिस्से के रूप में एम्बेडिंग उत्पन्न करना है। परिणामी वैक्टर स्रोत डेटा के साथ या संबंधित तालिका में संग्रहीत किए जाते हैं ताकि उन्हें कुशलता से पूछताछ की जा सके।
निम्नलिखित उदाहरण तालिका परिभाषा से लेकर एम्बेडिंग पीढ़ी तक एक सरल एंड-टू-एंड पैटर्न दिखाता है।
सबसे पहले, एक तालिका बनाएं जो स्रोत पाठ और एम्बेडिंग दोनों को संग्रहीत करती है।
CREATE TABLE dbo.documents
(
id INT PRIMARY KEY,
description NVARCHAR(MAX),
embedding VECTOR(1536)
);
इसके बाद, टेक्स्ट से एम्बेडिंग जेनरेट करें और उन्हें टेबल में स्टोर करें।
UPDATE dbo.documents
SET embedding = AI_GENERATE_EMBEDDINGS(description USE MODEL my_embedding_model);
इस उदाहरण में, प्रत्येक पंक्ति का description मान एम्बेडिंग मॉडल को भेजा जाता है। फ़ंक्शन एक वेक्टर लौटाता है, जो कॉलम में embedding संग्रहीत होता है। इन संग्रहीत वैक्टर को बाद में उन्हें पुन: उत्पन्न किए बिना पूछताछ या तुलना की जा सकती है। आप अपने एम्बेडिंग डिज़ाइन के आधार पर चंकिंग या फ़िल्टरिंग को संभालने के लिए अतिरिक्त तर्क शामिल करना चाह सकते हैं।
एम्बेडिंग जनरेशन यह निर्धारित करता है कि वैक्टर कैसे बनाए जाते हैं। रखरखाव रणनीतियाँ यह निर्धारित करती हैं कि उन वैक्टरों को कब ताज़ा करने की आवश्यकता होती है।
एम्बेडिंग रखरखाव को समझें
एम्बेडिंग रखरखाव संग्रहीत एम्बेडिंग को अंतर्निहित डेटा में परिवर्तनों के साथ संरेखित रखता है। जब पाठ मान सम्मिलित किए जाते हैं, अद्यतन किए जाते हैं या हटाए जाते हैं, तो संबंधित एम्बेडिंग अब वर्तमान सामग्री को प्रतिबिंबित नहीं कर सकते हैं।
डेटा कितनी बार बदलता है, एम्बेडिंग को कितनी जल्दी अपडेट किया जाना चाहिए, और एम्बेडिंग पीढ़ी कहां चलती है, इसके आधार पर विभिन्न रखरखाव दृष्टिकोणों का उपयोग किया जा सकता है।
एक एम्बेडिंग रखरखाव विधि चुनें
एम्बेडिंग को डेटा परिवर्तनों के रूप में स्रोत पाठ के साथ संरेखित रहने की आवश्यकता होती है। परिवर्तनों का पता लगाने और यह तय करने के लिए कई विकल्पों का उपयोग किया जा सकता है कि एम्बेडिंग को कब पुनर्जीवित किया जाना चाहिए। ये विकल्प इस बात में भिन्न होते हैं कि काम कहां होता है और परिवर्तन कितनी जल्दी परिलक्षित होते हैं।
तालिका ट्रिगर
पंक्तियों को सम्मिलित या अद्यतन करने पर ट्रिगर स्वचालित रूप से चलते हैं। एम्बेडिंग रखरखाव के लिए, एक ट्रिगर उन पंक्तियों को चिह्नित कर सकता है जिन्हें नए एम्बेडिंग की आवश्यकता होती है या तुरंत पुनर्जनन शुरू कर सकता है। यह दृष्टिकोण परिवर्तनों को जल्दी से दर्शाता है लेकिन संचालन लिखने के लिए काम जोड़ता है।ट्रैकिंग बदलें
ट्रैकिंग रिकॉर्ड बदलें कि किसी दिए गए समय के बाद से कोई पंक्ति बदल गई है. एक पृष्ठभूमि प्रक्रिया इस जानकारी का उपयोग यह पहचानने के लिए कर सकती है कि किन पंक्तियों को उनके एम्बेडिंग को ताज़ा करने की आवश्यकता है और उन्हें बैचों में संसाधित किया जा सकता है। यह दृष्टिकोण विलंबता और प्रदर्शन को संतुलित करता है।डेटा कैप्चर बदलें (CDC)
सीडीसी डेटा परिवर्तनों के बारे में विस्तृत जानकारी रिकॉर्ड करता है, जिसमें पहले और बाद के मान शामिल हैं। एम्बेडिंग रखरखाव सीडीसी तालिकाओं का उपयोग यह पहचानने के लिए कर सकता है कि कौन से पाठ मान बदल गए हैं और एम्बेडिंग को अतुल्यकालिक रूप से पुन: उत्पन्न कर सकते हैं। यह दृष्टिकोण उच्च मात्रा वाले कार्यभार के लिए उपयुक्त है।SQL ट्रिगर बाइंडिंग के साथ Azure फ़ंक्शंस
Azure फ़ंक्शंस SQL ट्रिगर बाइंडिंग का उपयोग करके डेटाबेस परिवर्तनों पर प्रतिक्रिया कर सकते हैं। यह सुविधा एम्बेडिंग जनरेशन को डेटाबेस इंजन के बाहर चलाने की अनुमति देती है, जबकि अभी भी डेटा परिवर्तनों का जवाब देती है। यह दृष्टिकोण डेटाबेस से काम को ऑफलोड करता है और स्वतंत्र रूप से स्केल कर सकता है।Azure Logic Apps
तर्क ऐप्स वर्कफ़्लो के हिस्से के रूप में अपडेट एम्बेड करने का आयोजन कर सकते हैं। उदाहरण के लिए, एक तर्क अनुप्रयोग समय-समय पर बदली हुई पंक्तियों के लिए जाँच कर सकता है और एक एम्बेडिंग सेवा को कॉल कर सकता है, अन्य प्रणालियों के साथ अद्यतन समन्वय. यह दृष्टिकोण कम-कोड है और अन्य Azure सेवाओं के साथ अच्छी तरह से एकीकृत होता है।इवेंट स्ट्रीमिंग बदलें
इवेंट स्ट्रीमिंग (CES) स्ट्रीम बदलें DML परिवर्तनों को सीधे वास्तविक समय में Azure ईवेंट हब में बदल देता है। डाउनस्ट्रीम सिस्टम इन घटनाओं का उपभोग कर सकते हैं और एम्बेडिंग को पुन: उत्पन्न कर सकते हैं क्योंकि परिवर्तन डेटाबेस लेनदेन में काम जोड़े बिना होते हैं। यह दृष्टिकोण डेटाबेस से पीढ़ी को एम्बेड करता है और एक ही परिवर्तन स्ट्रीम को संसाधित करने वाले कई उपभोक्ताओं का समर्थन करता है।माइक्रोसॉफ्ट फाउंड्री
Microsoft फाउंड्री का उपयोग उन मॉडलों को प्रबंधित करने और मूल्यांकन करने के लिए किया जा सकता है जो एम्बेडिंग उत्पन्न करते हैं। एक रखरखाव वर्कफ़्लो में, फाउंड्री आमतौर पर मॉडल चयन या होस्टिंग का समर्थन करती है जबकि एक अन्य प्रक्रिया परिवर्तन का पता लगाने और डेटाबेस अपडेट को संभालती है। यह दृष्टिकोण मॉडल प्रबंधन को केंद्रीकृत करता है जबकि एम्बेडिंग पीढ़ी डेटा परिवर्तनों के जवाब में होती है।
एक उचित रखरखाव दृष्टिकोण चुनें
एम्बेडिंग को बनाए रखने का कोई एक सही तरीका नहीं है। सही दृष्टिकोण डेटा वॉल्यूम, अपडेट आवृत्ति, विलंबता आवश्यकताओं जैसे कारकों पर निर्भर करता है, और जहां एम्बेडिंग पीढ़ी समग्र समाधान के भीतर फिट बैठती है।
कुछ समाधान तत्काल अपडेट के पक्ष में हैं, जबकि अन्य बैचिंग या बाहरी प्रसंस्करण को प्राथमिकता देते हैं। इन ट्रेड-ऑफ को समझने से आपको एक रखरखाव रणनीति चुनने में मदद मिलती है जो आपके SQL एप्लिकेशन के अनुकूल हो।
चाबी छीन लेना
के साथ एम्बेडिंग AI_GENERATE_EMBEDDINGS उत्पन्न करना केवल पहला कदम है। जैसे ही स्रोत डेटा बदलता है, संग्रहीत वैक्टर सिंक से बाहर हो सकते हैं, इसलिए आपको रखरखाव रणनीति की आवश्यकता है। विकल्प ट्रिगर्स और परिवर्तित ट्रैकिंग से लेकर डेटा कैप्चर परिवर्तित करने, इवेंट स्ट्रीमिंग परिवर्तित करने और एसिंक्रोनस या डीयुग्मित दृष्टिकोणों के लिए Azure फ़ंक्शंस तक होते हैं. सही विकल्प आपके डेटा वॉल्यूम, विलंबता आवश्यकताओं और एम्बेडिंग पीढ़ी आपके समग्र आर्किटेक्चर में कहां फिट बैठती है, इस पर निर्भर करता है।