SQL डेटाबेस वर्कलोड के लिए एम्बेडिंग डिज़ाइन करें
एम्बेडिंग डेटा को वैक्टर के रूप में दर्शाते हैं ताकि पाठ के टुकड़ों के बीच समानता की तुलना की जा सके। आप एम्बेडिंग कैसे डिज़ाइन करते हैं, यह प्रासंगिकता, प्रदर्शन और लागत को प्रभावित करता है जब वैक्टर बाद में उत्पन्न और पूछताछ की जाती है।
SQL सर्वर अंतर्निहित AI फ़ंक्शन प्रदान करता है जो वर्कफ़्लो एम्बेड करने का समर्थन करता है। सामान्य वेक्टर खोज पैटर्न यह मार्गदर्शन करने में मदद करते हैं कि एम्बेडिंग उत्पन्न होने से पहले पाठ कैसे तैयार किया जाना चाहिए।
समझें कि वैक्टर कैसे बनाए जाते हैं
लेकिन SQL डेटाबेस के साथ AI एकीकरण के संदर्भ में वेक्टर शब्द का क्या अर्थ है?
एक एआई मॉडल एक वेक्टर बनाता है, न कि एसक्यूएल ही। मॉडल को पाठ पढ़ने और संख्याओं की एक सूची वापस करने के लिए प्रशिक्षित किया गया था जो उस पाठ के अर्थ का प्रतिनिधित्व करती है।
जब SQL किसी एम्बेडिंग मॉडल को टेक्स्ट भेजता है, तो मॉडल एक वेक्टर लौटाता है, जिसे SQL अन्य वैक्टर के साथ बाद में तुलना के लिए संग्रहीत करता है।
उदाहरण के लिए, जब " लाइटवेट हाइकिंग बैकपैक" टेक्स्ट को एम्बेडिंग मॉडल पर भेजा जाता है, तो मॉडल वापस आ सकता है:
[0.12, -0.87, 0.45, 0.31, …]
एक संबंधित वाक्य जैसे "दिन की बढ़ोतरी के लिए कॉम्पैक्ट बैकपैक" संख्याओं की एक अलग सूची का उत्पादन करेगा जो समान दिखता है:
[0.10, -0.85, 0.47, 0.29, …]
क्योंकि वैक्टर समान दिखते हैं, SQL पाठ के दो टुकड़ों को संबंधित मान सकता है, भले ही शब्द अलग हों।
एम्बेडिंग में शामिल करने के लिए डेटा की पहचान करें
एम्बेडिंग तब सबसे अच्छा काम करते हैं जब वे ऐसे पाठ का प्रतिनिधित्व करते हैं जो शब्दार्थ अर्थ रखता है, जैसे विवरण, शीर्षक या अन्य मुक्त-प्रपत्र पाठ फ़ील्ड.
पहचानकर्ताओं, सांख्यिक मानों या परिचालन मेटाडेटा को संग्रहीत करने वाले स्तंभ आमतौर पर शब्दार्थ मान नहीं जोड़ते हैं और उन्हें बाहर रखा जाना चाहिए. एम्बेडिंग को सार्थक पाठ तक सीमित करने से टोकन उपयोग कम हो जाता है और समानता परिणामों में सुधार होता है।
इस स्तर पर डिज़ाइन विकल्प यह निर्धारित करते हैं कि एम्बेडिंग कौन सी जानकारी कैप्चर करते हैं और वे अंतर्निहित डेटा का कितनी अच्छी तरह प्रतिनिधित्व करते हैं।
इनपुट आकार और संरचना को नियंत्रित करें
एम्बेडिंग मॉडल टोकनाइज्ड इनपुट पर काम करते हैं और एक अनुरोध में कितने टेक्स्ट को संसाधित किया जा सकता है, इस पर सीमा लगाते हैं। टोकन पाठ का एक छोटा सा टुकड़ा होता है, जैसे कि एक शब्द या शब्द का हिस्सा, जिसे मॉडल एक इकाई के रूप में संसाधित करता है। लंबे पाठ मानों को अक्सर छोटी इकाइयों में विभाजित करने की आवश्यकता होती है।
SQL सर्वर अंतर्निहित AI फ़ंक्शंस के माध्यम से इस पैटर्न का समर्थन करता है जो वर्कफ़्लो एम्बेड करने के लिए टेक्स्ट तैयार करने में मदद करता है। इनपुट आकार को नियंत्रित करके, आप पाठ को मॉडल सीमा के भीतर रख सकते हैं और यह सुनिश्चित कर सकते हैं कि प्रत्येक एम्बेडिंग सामग्री के एक स्पष्ट, केंद्रित टुकड़े का प्रतिनिधित्व करता है।
अच्छी तरह से संरचित इनपुट असंबंधित विचारों को एक साथ एम्बेड करने से बचने में भी मदद करता है, जो समानता परिणामों की गुणवत्ता को कम कर सकता है।
चंकिंग रणनीतियाँ डिज़ाइन करें
चंकिंग परिभाषित करता है कि बड़े पाठ मानों को छोटे खंडों में कैसे विभाजित किया जाता है। एक चंकिंग रणनीति संदर्भ और सटीकता को संतुलित करती है।
बहुत बड़े विखंडू टोकन सीमा से अधिक हो सकते हैं या सिमेंटिक फोकस को पतला कर सकते हैं। बहुत छोटे टुकड़े महत्वपूर्ण संदर्भ खो सकते हैं। लक्ष्य संसाधित करने के लिए टुकड़ों को कुशल रखते हुए अर्थ को संरक्षित करना है।
व्यवहार में, चंकिंग को उन नियमों द्वारा परिभाषित किया जाता है जिन्हें आप SQL में टेक्स्ट विभाजित करते समय लागू करते हैं। ये नियम आमतौर पर नियंत्रित करते हैं कि प्रत्येक खंड में कितना पाठ जाता है, जैसे कि वर्णों की अधिकतम संख्या, और जहां विभाजन होने की अनुमति है।
AI_GENERATE_CHUNKS(SOURCE = description, CHUNK_TYPE = FIXED, CHUNK_SIZE = 500)
स्रोत तालिकाओं के पास, सीधे SQL में चंकिंग नियमों को परिभाषित करके, आप अनुप्रयोग कोड को संशोधित करने के बजाय क्वेरी को समायोजित करके चंक आकार या विभाजन व्यवहार बदल सकते हैं।
SQL के साथ एम्बेडिंग डिज़ाइन लागू करें
निम्नलिखित उदाहरण एक वैचारिक पैटर्न दिखाता है जो छोटी इकाइयों में विभाजित करके पीढ़ी को एम्बेड करने के लिए पाठ तैयार करता है।
SELECT
id,
c.chunk
FROM dbo.documents
CROSS APPLY
AI_GENERATE_CHUNKS(SOURCE = description, CHUNK_TYPE = FIXED, CHUNK_SIZE = 500) AS c;
इस उदाहरण में, कॉलम में पाठ description को 500 वर्णों तक के टुकड़ों में विभाजित किया गया है। प्रत्येक खंड को बाद में एक एम्बेडिंग फ़ंक्शन में पारित किया जा सकता है, यह सुनिश्चित करते हुए कि एम्बेडिंग मूल सामग्री के केंद्रित भागों का प्रतिनिधित्व करते हैं।
उदाहरण के लिए, यदि किसी पंक्ति में स्तंभ में description निम्न पाठ है:
"Lightweight backpack designed for long day hikes in warm weather."
चंकिंग फ़ंक्शन कई विखंडू उत्पन्न कर सकता है जैसे:
"Lightweight backpack designed for long day hikes""in warm weather."
प्रत्येक खंड क्वेरी द्वारा एक अलग पंक्ति के रूप में लौटाया जाता है। इन छोटे टुकड़ों को तब व्यक्तिगत रूप से एक एम्बेडिंग फ़ंक्शन में पारित किया जा सकता है ताकि प्रत्येक एम्बेडिंग मूल पाठ के एक केंद्रित हिस्से का प्रतिनिधित्व करे।
टिप
एक डिज़ाइन पैटर्न वैक्टर को स्रोत पाठ डेटा से एक अलग तालिका में संग्रहीत करना है। एक समर्पित एम्बेडिंग तालिका यह ट्रैक करना आसान बनाती है कि वैक्टर कितना स्थान उपभोग करते हैं और मूल डेटा को प्रभावित किए बिना एम्बेडिंग का पुनर्निर्माण करते हैं।
चाबी छीन लेना
एम्बेडिंग गुणवत्ता किसी भी मॉडल के चलने से पहले आपके द्वारा लिए गए निर्णयों पर निर्भर करती है। सही कॉलम चुनना और लंबे टेक्स्ट को केंद्रित खंडों में चुनना, AI_GENERATE_CHUNKS यह निर्धारित करना कि आपके वेक्टर खोज परिणाम कितने उपयोगी हैं। इन डिज़ाइन विकल्पों को जल्दी प्राप्त करने से महंगे पुनर्विक्रय को रोकता है जब आप एम्बेड जनरेशन और स्टोरेज में जाते हैं।