नफा:
- समजून घ्या की एम्बेड केल्याने मजकूर सिमेंटिक स्पेसमधील वेक्टरमध्ये बदलतो आणि समान अर्थ जवळचे वेक्टर आहेत
- कोसाइन आणि डॉट समानता मेट्रिक्ससह ANN शोध कसे कार्य करते हे स्पष्ट करणे
- मेटाडेटा फिल्टरिंगची किंमत, स्केल आणि गरज यावर आधारित सामान्य वेक्टर डेटाबेस निवडणे
RAG च्या केंद्रस्थानी एकच प्रश्न आहे: "मजकूराचा कोणता भाग वापरकर्त्याच्या प्रश्नाशी सर्वात समान आहे?" संगणक अक्षरशः नव्हे तर संख्येसह मजकूरावर प्रक्रिया करतो. म्हणूनच आपल्याला प्रथम मजकूराचा अर्थ असलेल्या संख्येमध्ये रूपांतरित करणे आवश्यक आहे. एम्बेडिंग म्हणजे काय: मजकूराचा अर्थ दर्शविणाऱ्या संख्यांच्या क्रमामध्ये (वेक्टर) रूपांतरित करण्याची प्रक्रिया. जेव्हा तुम्ही हे युनिट पूर्ण कराल, तेव्हा तुम्हाला समजेल की एम्बेडिंग कसे कार्य करते, समानता कशी मोजली जाते आणि योग्य वेक्टर डेटाबेस कसा निवडायचा.
एम्बेडिंग: कोऑर्डिनेट्समध्ये अर्थ अनुवादित करणे
एम्बेडिंग मॉडेल (एक विशेष प्रशिक्षित कृत्रिम बुद्धिमत्ता) आपण प्रदान केलेला मजकूर वेक्टरमध्ये रूपांतरित करतो, उदाहरणार्थ, 1024 संख्या. या वेक्टरचा बहुआयामी जागेत समन्वय म्हणून विचार करा. जादू अशी आहे: अर्थाने समान असलेले मजकूर या जागेत जवळच्या समन्वयांमध्ये येतात.
एक साधे उदाहरण: “वार्षिक रजा”, “सुट्टीचे हक्क” आणि “वार्षिक सशुल्क रजा” हे वेगवेगळे शब्द वापरतात परंतु त्याचा अर्थ एकच असतो — त्यांचे वेक्टर एकमेकांच्या जवळ असतात. "पेरोल खाते" ही एक वेगळी बाब आहे - त्याचे वेक्टर दूर आहे. म्हणून वापरकर्ता विचारतो "माझ्याकडे किती दिवसांची सुट्टी आहे?" तुम्ही विचारता तेव्हा, आम्हाला एक दस्तऐवज देखील सापडतो ज्यामध्ये "सुट्टी" हा शब्द नाही परंतु "वार्षिक रजा 14 दिवस आहे" असे म्हटले आहे. क्लासिक कीवर्ड शोध (शब्दाशी तंतोतंत जुळणारा शोध) हे करू शकत नाही.
टीप: "अर्थाचा फिंगरप्रिंट" म्हणून एम्बेड करण्याचा विचार करा. समान अर्थ असलेल्या दोन वाक्यांचे बोटांचे ठसे सारखे दिसतात; जरी शब्द भिन्न आहेत.
एक महत्त्वाचा नियम: प्रश्न एम्बेड करताना तुम्ही वापरत असलेले मॉडेल दस्तऐवज एम्बेड करताना तुम्ही वापरता तेच मॉडेल असावे. वेगवेगळे मॉडेल वेगवेगळ्या जागा तयार करतात; समन्वय अतुलनीय होतात.
समानता कशी मोजायची?
दोन वेक्टर किती समान आहेत हे मोजण्यासाठी अनेक पद्धती आहेत. सर्वात सामान्य म्हणजे कोसाइन समानता: ते दोन वेक्टरमधील कोन मोजते. जर कोन लहान असेल (सदिश एकाच दिशेने निर्देशित करतात), तर समानता जास्त असते. मूल्य −1 आणि 1 दरम्यान आहे; 1 च्या जवळ = खूप समान.
निकष
ते काय मोजते?
ते केव्हा प्राधान्य दिले जाते?
कोसाइन
वेक्टरमधील कोन (दिशा).
सर्वात सामान्य; मजकूर सिमेंटिक समानता मध्ये डीफॉल्ट
डॉट उत्पादन
दिशा + परिमाण एकत्र
जर सदिश सामान्यीकृत केले तर ते कोसाइन सारखेच परिणाम देते; जलद आहे
युक्लिडियन (युक्लिडियन अंतर)
निर्देशांकांमधील सरळ अंतर
काही क्लस्टरिंग परिस्थितींमध्ये; मजकुरात कमी वापरले
सराव मध्ये, बहुतेक एम्बेडिंग मॉडेल सामान्यीकृत वेक्टर तयार करतात (आकार 1 वर सेट); या प्रकरणात, कोसाइन आणि डॉट उत्पादन समान क्रम देतात. निर्णयाचा पक्षाघात करू नका: कोसाइनपासून सुरुवात करा.
लाखो व्हेक्टरमध्ये, त्यांची एकावेळी एकामागून एक तुलना करणे धीमे आहे. म्हणूनच वेक्टर डेटाबेस ANN (अंदाजे जवळचा शेजारी) अल्गोरिदम वापरतात. ANN ला "अत्यंत जवळचे" ऐवजी "जवळजवळ अगदी जवळचे" खूप लवकर सापडते. उदाहरणार्थ, HNSW नावाची पद्धत 10 दशलक्ष वेक्टरसाठीही काही मिलिसेकंदात परिणाम देऊ शकते. अचूकतेच्या छोट्या त्यागासाठी तुम्हाला खूप गती मिळते.
वेक्टर डेटाबेस काय करतो?
व्हेक्टर डेटाबेस एकाच वेळी तीन गोष्टी करतो: (1) वेक्टर संग्रहित करतो, (2) क्वेरी व्हेक्टरसारखे वेक्टर द्रुतपणे शोधतो, (3) प्रत्येक वेक्टरच्या पुढे मेटाडेटाद्वारे फिल्टर करतो. मेटाडेटा हे टॅग आहेत जे तुम्ही त्या भागाला जोडता: स्त्रोत फाइल, तारीख, विभाग, गोपनीयता स्तर इ. मेटाडेटा फिल्टरिंग एंटरप्राइझ RAG मध्ये महत्त्वपूर्ण आहे; कारण तुम्हाला "फक्त वित्त विभागाच्या 2025 दस्तऐवजांमध्ये शोधा" सारखे निर्बंध सेट करण्यात सक्षम असणे आवश्यक आहे.
# वेक्टर डेटाबेसवर नोंदणी करा (वैकल्पिक)vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("वार्षिक सशुल्क रजा 14 दिवस आहे..."), मजकूर="वार्षिक सशुल्क रजा 14 दिवस आहे...", मेटाडेटा={"स्रोत": "ik_el_kitabi", "Kpate:","Ik_el_kitabi", "Ik_el_kitabi:" "2025-06", "गोपनीयता": "ic"})
# मेटाडेटा फिल्टर केलेला शोध (वैचारिक) परिणाम = vektor_db.search( vektor=embed("माझ्याकडे किती दिवसांची सुट्टी आहे?"), top_k=4, filter={"department": "HR", "privacy": ["internal", "on"]})
योग्य डेटाबेस निवडणे
वाहन
वैशिष्ट्यीकृत पैलू
अनुकूल परिस्थिती
अंगभूत / फाइल-आधारित (एम्बेडेड लायब्ररी)
कोणतीही स्थापना, एकल मशीन नाही
प्रोटोटाइप, लहान किट (< काही लाख भाग)
व्यवस्थापित क्लाउड सेवा
स्केलिंग आणि देखभाल ही तुमची जबाबदारी नाही
उत्पादन, वेगाने वाढणारा डेटा, लहान संघ
तुमच्या स्वतःच्या सर्व्हरवर ओपन सोर्स
पूर्ण नियंत्रण, तुमचा डेटा तुमचाच राहील
गोपनीयता बंधन, विद्यमान पायाभूत सुविधा
विद्यमान डेटाबेसमध्ये जोडणे
तुम्ही स्वतंत्र प्रणाली व्यवस्थापित करत नाही
तुम्ही आधीपासून वापरत असलेल्या DB मध्ये वेक्टर सपोर्ट जोडत आहे
निवडताना विचारा: किती तुकडे असतील? मेटाडेटा फिल्टरिंग किती गंभीर आहे? डेटा कंपनीच्या बाहेर जाऊ शकतो (गोपनीयता)? संघ पायाभूत सुविधा चालवू शकतो का? लहान सुरुवात करणे आणि आवश्यकतेनुसार विस्तार करणे हे सहसा शहाणपणाचे असते.
कमकुवत दृष्टीकोन / मजबूत दृष्टीकोन
कमकुवत (साधारण एम्बेडिंग संचयित करणे, मेटाडेटा नाही):
फक्त मजकूर आणि वेक्टर जतन करा. शोधा: 4 सर्वात समान वेक्टर परत करा. # समस्या: "फक्त वर्तमान एचआर डॉक्स" सारखे फिल्टर करू शकत नाही; # जुने/अनधिकृत भाग देखील प्रतिसादात समाविष्ट केले जाऊ शकतात.
शक्तिशाली (रिच मेटाडेटा + फिल्टर केलेला शोध):
प्रत्येक भागावर स्त्रोत, तारीख, विभाग आणि गोपनीयता टॅग जोडा. शोध दरम्यान वापरकर्त्याच्या अधिकारानुसार आणि वर्तमानतेनुसार फिल्टर करा: filter = {"privacy": user_authority, "date_date": "2024-01"}# अशा प्रकारे, परिणाम सुरक्षित आणि अद्ययावत दोन्ही आहे.
तीन मिनी केसेस
केस 1 - चुकीचे मॉडेल मिश्रण. एका संघाने मॉडेल A सह दस्तऐवज एम्बेड केले आणि मॉडेल B सह प्रश्न. शोधांनी निरर्थक परिणाम दिले आणि योग्य उत्तराचा दर 31% राहिला. जेव्हा मी एकाच मॉडेलवर (दोन्ही समान एम्बेडिंग मॉडेल) स्विच केले, तेव्हा दर 88% वर गेला. धडा: प्रश्न आणि दस्तऐवज एकाच जागेत असावेत.
केस 2 - मेटाडेटाशिवाय गोपनीयतेचा धोका. एका हेल्थकेअर कंपनीमध्ये, सर्व विभाग दस्तऐवज मेटाडेटाशिवाय एकाच पूलमध्ये फेकले गेले. जेव्हा सेल्स असोसिएटने प्रश्न विचारला तेव्हा सिस्टमने रुग्णाच्या डेटाचा एक भाग संदर्भित केला. जेव्हा मेटाडेटा + फिल्टर जोडला गेला (प्राधिकृत स्तरानुसार), हा धोका दूर झाला; पुनर्प्राप्त करताना, 12 अनधिकृत तुकडे अजिबात आणले जात नाहीत.
केस 3 - स्केल बॉटलनेक. एका ई-कॉमर्स कंपनीने साध्या "स्कॅन ऑल" पद्धतीने 8 दशलक्ष उत्पादनांचे वर्णन शोधले; प्रत्येक क्वेरीला 6 सेकंद लागले. जेव्हा आम्ही HNSW-आधारित ANN वर स्विच केले, तेव्हा अचूकतेमध्ये फक्त 1% नुकसानासह वेळ 45 मिलीसेकंदांपर्यंत कमी झाला. धडा: मोठ्या सेटमध्ये ANN अनिवार्य आहे.
सामान्य चुका
- भिन्न मॉडेलसह प्रश्न आणि दस्तऐवज एम्बेड करणे: परिणाम निरर्थक आहेत; नेहमी एक मॉडेल.
- मेटाडेटा वगळणे: तुम्ही फिल्टर करू शकत नाही; तुम्ही गोपनीयतेचे आणि अद्ययावततेचे नियंत्रण गमावता.
- एन्क्रिप्शनसाठी एम्बेडिंगची चूक करणे: एम्बेडिंगमध्ये उलट करता येणारी माहिती असते; संवेदनशील डेटा ‘हिडन’ आहे असे मानणे चुकीचे आहे.
- एका छोट्या सेटवर अनावश्यकपणे मोठ्या पायाभूत सुविधा निर्माण करणे: 5,000 भागांसाठी व्यवस्थापित केलेला एक विशाल क्लस्टर ही अनावश्यक जटिलता आहे.
- समानतेच्या निकषाबद्दल जास्त काळजी करू नका: मजकूरातील कोसाइनसह प्रारंभ करा; छान ट्यूनिंग नंतर येते.
खबरदारी: एम्बेडिंग मजकूराचा अर्थ संख्यांमध्ये एम्बेड करते, परंतु सामग्री "नाश" करत नाही. व्हेक्टर डेटाबेस लीक झाल्यास, मूळ संग्रहित मजकूर (बहुतेक प्रतिष्ठापनांमध्ये मजकूर देखील संग्रहित केला जातो) देखील तडजोड केला जातो. व्हेक्टर रिपॉजिटरी हे त्यातील कागदपत्रांप्रमाणेच गोपनीय ठेवा.
सारांशात
- एम्बेड केल्याने मजकूर संख्यांच्या वेक्टरमध्ये बदलतो ज्यामध्ये त्याचा अर्थ असतो; तत्सम अर्थ जवळचे वेक्टर आहेत.
- समानता अनेकदा कोसाइनद्वारे मोजली जाते; सामान्यीकृत वेक्टरसाठी, डॉट उत्पादन समान परिणाम देते.
- मोठ्या डेटामध्ये, ANN (उदा., HNSW) अचूक शोध बदलते: अचूकतेच्या थोड्या त्यागासह उत्कृष्ट वेग.
- वेक्टर डेटाबेस वेक्टर स्टोरेज + समानता शोध + मेटाडेटा फिल्टरिंग करते; एंटरप्राइझ RAG साठी मेटाडेटा आवश्यक आहे.
- प्रश्न आणि दस्तऐवज समान एम्बेडिंग मॉडेलसह भाषांतरित करणे आवश्यक आहे; अन्यथा निर्देशांकांची तुलना करता येणार नाही.
अर्ज कार्य
तुम्ही मागील युनिटमध्ये निवडलेल्या दस्तऐवजातून 10 लहान परिच्छेद (प्रत्येकी 3-6 वाक्ये) काढा. (1) प्रत्येक भागासाठी किमान तीन मेटाडेटा टॅग डिझाइन करा (स्रोत, तारीख आणि एक तृतीयांश तुमच्या व्यवसाय संदर्भासाठी योग्य: विभाग, उत्पादन, गोपनीयता इ.). (2) 3 भिन्न वापरकर्ता प्रश्नांसाठी कोणता मेटाडेटा फिल्टर लागू करावा ते लिहा. (3) 3 प्रश्न-भाग जोड्या शोधा ज्या वेगवेगळ्या शब्दांमध्ये समान अर्थ व्यक्त करतात (उदा. “सुट्टीचे हक्क” ↔ “वार्षिक रजा”) आणि ते कीवर्ड शोधाशी का जुळणार नाहीत परंतु एम्बेडिंगशी जुळतील का ते एका वाक्यात स्पष्ट करा.
चेकलिस्ट
- [ ] मी सांगू शकतो की एम्बेड केल्याने मजकूर शब्दार्थाच्या जागेत वेक्टरमध्ये बदलतो आणि समान अर्थ जवळ असतात.
- मला माहित आहे की [ ] कोसाइन समानता कोन मोजते आणि मजकूरातील डीफॉल्ट प्राधान्य आहे.
- मोठ्या डेटामध्ये ANN का आवश्यक आहे हे मी स्पष्ट करू शकतो.
- गोपनीयता आणि ताजेपणा नियंत्रणासाठी मेटाडेटा का महत्त्वाचा आहे हे मला माहीत आहे.
- [ ] मी समान एम्बेडिंग मॉडेलसह प्रश्न आणि दस्तऐवजाचे भाषांतर करण्याचा नियम पाळतो.