और कीवर्ड-आधारित खोज को अलविदा कहें
जबकि GPT 3+ या ChatGPT, प्रांप्ट इंजीनियरिंग को सहज रूप से समझना आसान है। वेब और सोशल मीडिया पर उपलब्ध कई गाइड और उदाहरणों के साथ। जैसे कि
एम्बेडिंग, प्रोग्रामिंग की आवश्यकता होती है, और यह कैसे काम करता है, इस पर विभिन्न सहज ज्ञान युक्त व्यवहार के कारण कम समझा जाता है। लेकिन, विभिन्न अन्य संभावित उपयोग मामलों के लिए, खोज के लिए या मौजूदा टेक्स्ट-आधारित मॉडल के साथ एक साथ उपयोग करने के लिए एक अत्यंत शक्तिशाली उपकरण है।
निर्देश मॉडल के लिए, एआई टूलकिट के भीतर एंबेडिंग यकीनन एक समान रूप से शक्तिशाली उपकरण हैं। विभिन्न शब्दों और वाक्यों, या यहाँ तक कि संपूर्ण भाषाओं में खोजों को संभालने की इसकी क्षमता के कारण। किसी भी प्रश्न के लिए प्रासंगिक दस्तावेज़ की खोज पर ध्यान केंद्रित करना।
उदाहरण के लिए, इसका उपयोग अंग्रेज़ी-आधारित दस्तावेज़ीकरण से खोज करने और उत्तर देने के लिए किया जा सकता है। अंग्रेजी में ...
या जापानी...
या कोई अन्य भाषा जो एआई मॉडल का समर्थन करती है।
वेक्टर एम्बेडिंग का उपयोग खोज, या अन्य कार्यों जैसे प्रश्न-उत्तर, पाठ वर्गीकरण और पाठ उत्पन्न करने के लिए किया जा सकता है।
ध्यान दें कि यह लेख खोज पहलू पर केंद्रित है, उत्तर देने की प्रक्रिया अनुवर्ती लेख में है।
एक वेक्टर एम्बेडिंग उत्पन्न करने के लिए, एक एम्बेडिंग एआई मॉडल का उपयोग करेगा, जो किसी भी पाठ (एक बड़ा दस्तावेज़, एक वाक्य, या यहां तक कि एक शब्द) को "एन आयाम सरणी" में परिवर्तित करता है, जिसे वेक्टर कहा जाता है।
उदाहरण के लिए एक वाक्य जैसे How do I write a UI test script with Uilicious?
OpenAI टेक्स्ट-एम्बेडिंग-एडीए-002 मॉडल के माध्यम से एक सरणी (जिसे वेक्टर कहा जाता है) में परिवर्तित किया जा सकता है: [0.010046141, -0.009800113, 0.014761676, -0.022538893, ... an a 1000+ numbers]
यह वेक्टर पाठ की एआई मॉडल की संक्षिप्त समझ का प्रतिनिधित्व करता है। इसे एक ऐसी भाषा में लिखा गया "एन-वर्ड सारांश" माना जा सकता है जिसे केवल एआई ही समझ सकता है।
जहां एआई की दस्तावेज़ की समझ (और न केवल इसके पाठ) के आधार पर संबंधित दस्तावेजों में एक दूसरे से निकट दूरी होगी।
यह क्लासिक सर्च इंजनों की सरल कीवर्ड खोजों से परे एक बड़ी छलांग है, क्योंकि यह वाक्य संरचना और भाषा में भिन्नता को संभाल सकता है (बशर्ते एआई मॉडल उक्त भाषा को समझने के लिए प्रशिक्षित हो)।
निम्नलिखित को एक काल्पनिक उदाहरण के रूप में लें, 2 आयाम अंतरिक्ष में गलत तरीके से सरलीकृत किया गया ताकि इसे समझना आसान हो:
जिसे 2डी अंतरिक्ष में निम्नलिखित के रूप में दृष्टिगत रूप से प्रस्तुत किया जा सकता है।
उदाहरण के लिए, D1,2,3 सभी दस्तावेज हैं जो विभिन्न तरीकों से Uilicious का उपयोग करने से संबंधित हैं और एक समूह में एक साथ समूहीकृत हैं
D4 और D5, केवल लिंक होने और उससे परे कोई अंतर्निहित मूल्य नहीं होने के कारण, दूसरे क्लस्टर में अलग से समूहीकृत किए जाते हैं।
इसके अलावा, D1 और D2 को आगे एक साथ समूहीकृत किया गया है, क्योंकि वे हमारी अपनी जावास्क्रिप्ट-आधारित परीक्षण भाषा का उपयोग करते हुए, यूलिसियस टेस्टिंग कमांड के बारे में हैं।
जबकि डी3 को अलग से समूहीकृत किया गया है, क्योंकि यह सीधे हमारे बुनियादी ढांचे पर वेब ड्राइवर प्रोटोकॉल का उपयोग करने के संबंध में है, जो एक अलग उपयोग के मामले और दर्शकों के लिए अभिप्रेत है।
इसी तरह, Q1 और Q2 के लिए, वाक्य संरचना और भाषा में भारी अंतर के बावजूद, क्योंकि यह अनिवार्य रूप से एक ही प्रश्न है, दो प्रश्नों को एक साथ रखा गया है।
इसके अतिरिक्त, जबकि प्रश्न को तकनीकी रूप से दोनों तरीकों से व्याख्या किया जा सकता है (यूलिसियस टेस्ट स्क्रिप्ट, या वेबड्राइवर प्रोटोकॉल का उपयोग करके), क्योंकि प्रश्न वेबड्राइवर पर यूलिसियस टेस्ट स्क्रिप्टिंग के उपयोग का तात्पर्य है, इसका स्थान डी 1 और डी 2 के "करीब" है, और आगे से दूर है डी3.
जैसे, कीवर्ड्स में भारी ओवरलैप होने के बावजूद, ग्रुपिंग में इन बारीकियों को एम्बेडिंग के भीतर AI द्वारा कैप्चर किया जाता है। कीवर्ड खोज में इसके विशिष्ट अंतर को हाइलाइट करना
वास्तव में, हालांकि, एक अत्यधिक सरलीकृत 2 आयाम सरणी के बजाय जो मनुष्यों के लिए समझना आसान है, एक एम्बेडिंग आसानी से 1,000+ आयाम सरणी हो सकती है। यह सरणी उपयोग किए गए विशिष्ट AI मॉडल के लिए अद्वितीय है, और इसे किसी अन्य AI मॉडल के एम्बेडिंग के साथ नहीं मिलाया जा सकता है।
जबकि अत्यधिक सरलीकृत 2 आयाम उदाहरण, एक प्रश्न (या एक दृष्टिकोण) के सापेक्ष समूहीकरण की उच्च-स्तरीय अवधारणा को समझने के लिए अच्छे हैं, यह एन-आयामों का सटीक रूप से प्रतिनिधित्व नहीं करता है।
जटिल एन आयाम गणित के कारण, आपके पास परिस्थितियां हो सकती हैं, जहां ए बी के करीब हो सकता है, बी सी के करीब हो सकता है, लेकिन ए और सी को एक दूसरे से दूर माना जा सकता है। जो एक अत्यंत प्रति-सहज गोचा है।
ऐसी दूरियाँ तभी उपयोगी होती हैं जब उसी बिंदु के सापेक्ष उपयोग किया जाता है, और उपयोग किए गए सूत्र। जिसका उपयोग करके गणना की जा सकती है
जबकि अलग-अलग उपयोग के मामलों के लिए प्रत्येक सूत्र की प्रभावशीलता के अपने-अपने पक्ष और विपक्ष हैं। शाब्दिक खोज के लिए, यह आम तौर पर स्वीकार किया जाता है कि यूक्लिडियन दूरी ज्यादातर मामलों में "बेहतर काम करती है", और उन मामलों के लिए "काफी अच्छी" होती है जहां अन्य विधियां बढ़त लेती हैं।
जिनमें से सभी का उपयोग, एक बिंदु के सापेक्ष, एकल आयाम (दूरी) के लिए एन-आयामों को कम करने के लिए प्रभावी रूप से किया जाता है। इसके परिणामस्वरूप, इसका मतलब यह होगा कि पूछे गए प्रश्न के आधार पर समूह बहुत अधिक बदल सकते हैं/बदल सकते हैं।
दूरी की यह "सापेक्षता" प्रकृति क्लासिक डेटाबेस खोज अनुक्रमणिका को अप्रभावी बनाती है।
यदि इसका कोई अर्थ नहीं निकलता है, तो गणित N-क्षेत्रों के साथ 4 आयामी स्थान को इस तरह ठीक से देखा जा सकता है।
अब 1,000 आयामों की कल्पना करें? हाँ इसका कोई मतलब नहीं है।
इसलिए इस विषय को PHD पेपर के साथ पटरी से उतारे बिना, मैं इसे केवल गणित के प्रोफेसरों पर भरोसा करने के रूप में संक्षेप में प्रस्तुत करूँगा।
हमें केवल यह समझने की आवश्यकता है कि सामान्य तौर पर, दो वेक्टर एम्बेडिंग बिंदुओं के बीच की दूरी जितनी अधिक होगी, उतनी ही अधिक संभावना होगी कि वे एक दूसरे के लिए प्रासंगिक हों।
व्यावहारिक कार्यान्वयन के दृष्टिकोण से। पहले यूक्लिडियन दूरी का उपयोग करके प्रारंभ करें। अन्य फ़ार्मुलों का उपयोग करने पर विचार करने से पहले जो आपके उपयोग के मामले में परीक्षण और त्रुटि के माध्यम से बेहतर परिणाम के लिए ठीक-ठीक हैं (अनुशंसित नहीं)।
इसलिए यह देखते हुए कि हम विभिन्न दस्तावेजों को एम्बेडिंग में बदल सकते हैं, अब हम एक डेटाबेस में स्टोर कर सकते हैं और इसके साथ खोज कर सकते हैं।
हालाँकि, पाठ के साथ खोज करने वाले SQL डेटाबेस के विपरीत, खोज और खोजा जा रहा डेटा दोनों ही वेक्टर एम्बेडिंग है। इसका मतलब यह है कि जब एम्बेडिंग की खोज करने की बात आती है तो पारंपरिक डेटाबेस सर्च इंडेक्स अप्रभावी होते हैं।
हम आपके सभी दस्तावेज़ों को एम्बेड कर सकते हैं, पूर्व-गणना कर सकते हैं, और सदिश खोज डेटाबेस में संग्रहीत कर सकते हैं। जिसका उपयोग निकटतम दूरी के आधार पर मैचों की सूची प्रदान करने के लिए किया जा सकता है।
यह मौजूदा वेक्टर डेटाबेस जैसे कि का उपयोग करके किया जा सकता है
ध्यान देने योग्य एक प्रमुख बात, सदिश खोज "डेटाबेस तकनीक" अपेक्षाकृत नई है। जहाँ लाखों या अरबों के आकार में रिकॉर्ड सेट के साथ फेसबुक, स्पॉटिफ़ या Google जैसी कंपनियों में पाए जाने वाले उपयोग के मामलों के लिए वेक्टर खोज डेटाबेस का एक बड़ा हिस्सा डिज़ाइन किया गया था। और छोटे डेटासेट के लिए अनुकूलित नहीं किया जा सकता है।
यह अगले कुछ वर्षों में लगातार बदलता रहने वाला क्षेत्र होने जा रहा है, भविष्य के वेक्टर खोज डेटाबेस को ट्रैक करने और खोजने में मदद करने के लिए यहां एक जीथब 'भयानक-सूची' है
जैसे, सामान्य तौर पर, हमने (<10,000 ~ 100,000 एम्बेडिंग) के छोटे डेटासेट के लिए पाया, एम्बेडिंग डेटासेट को मेमोरी में रखना और ब्रूट-फोर्सिंग यूक्लिडियन-डिस्टेंस-स्क्वायर कई उपयोग के मामलों के लिए "काफी अच्छा" है, और कभी-कभी औपचारिक रूप से बेहतर प्रदर्शन करेगा डेटाबेस समाधान (जिसमें डिस्क/नेटवर्क ओवरहेड्स होंगे) निम्नलिखित की तरह कुछ के साथ।
इस दृष्टिकोण के लिए स्पष्ट नकारात्मक पक्ष यह है कि संपूर्ण डेटासेट इतना छोटा होना चाहिए कि ओवरहेड के बिना मेमोरी में फ़िट हो सके।
भले ही आप स्थानीय इन-मेमोरी एम्बेडिंग खोज, या एक औपचारिक वेक्टर खोज डेटाबेस का उपयोग कर रहे हों।
एम्बेडिंग खोज केवल एक प्रकार और रैंक एल्गोरिथ्म है जो विभिन्न भाषाओं और परिदृश्यों के साथ लचीले ढंग से काम करता है। पाठक के रूप में आपके लिए प्रश्न यह है कि आप इसका उपयोग कैसे कर सकते हैं। इसका उपयोग किया जा सकता है क्योंकि यह एक संभावित Google खोज प्रतिस्थापन के रूप में है, या अन्य उपकरणों के साथ, चैट से लेकर गेम तक। संभावनाएं अनंत हैं और अन्वेषण के लिए खुली हैं।
~ अगली बार तक 🖖 जियो और खूब तरक्की करो
यूजीन चीह @ tech-talk-cto.com
मूल रूप से पोस्ट किया गया: https://substack.tech-talk-cto.com/p/introducing-ai-embeddings-and-how
उपयोग की गई सभी छवियां, उनके उचित एट्रिब्यूशन के साथ