बहु-वेक्टर रिट्रीवल (ColBERT)
सूक्ष्म मिलान के लिए हर दस्तावेज़ में कई वेक्टर इंडेक्स करें (प्रति टोकन या प्रति चंक एक)।
बहु-वेक्टर रिट्रीवल (ColBERT), CoddyKit पर AI एजेंट का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह AI एजेंट सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। AI एजेंट पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
इस पाठ के कुछ हिस्सों का अभी तक अनुवाद नहीं हुआ है और वे अंग्रेज़ी में दिखाए गए हैं।
एक वेक्टर पर्याप्त नहीं है
मानक RAG प्रत्येक खंड को एक ही वेक्टर में एम्बेड करता है। वह वेक्टर खंड की हर बात का औसत निकाल देता है और सूक्ष्म संकेत खो देता है।
बहु-वेक्टर पुनर्प्राप्ति प्रत्येक दस्तावेज़ के लिए MULTIPLE वेक्टर संग्रहीत करती है और उनका अधिक सटीक मिलान करती है।
ColBERT का विचार
ColBERT (Khattab और Zaharia, 2020) दस्तावेज़ के प्रत्येक TOKEN और प्रश्न के प्रत्येक टोकन को एम्बेड करता है, फिर अधिकतम-समानता की गणना करता है:
score(q, d) = sum over q_token in q: max over d_token in d: cos(q_token, d_token)ColBERT एकल-वेक्टर से बेहतर क्यों है
- दस्तावेज़ के कई पहलुओं को पकड़ता है, जो एक वेक्टर नहीं कर सकता
- लंबे दस्तावेज़ों को बेहतर ढंग से संभालता है
- दुर्लभ शब्दों पर अधिक रिकॉल देता है
ColBERT की लागत
प्रत्येक खंड के बजाय प्रत्येक टोकन के लिए एक वेक्टर संग्रहीत करना:
- यदि किसी खंड में 500 टोकन हैं, तो भंडारण 500 गुना अधिक होगा
- हर खोज में बहुत अधिक युग्मों की तुलना करनी पड़ती है
मात्राकरण और छँटाई इसे 10-50 गुना कम कर देते हैं, लेकिन यह फिर भी महँगा है।
ColBERTv2
ColBERTv2 अवशिष्ट संपीड़न जोड़ता है — टोकन केंद्रकों में समूहित होते हैं और प्रत्येक टोकन को (केंद्रक_आईडी, छोटा_अवशेष) के रूप में संग्रहीत किया जाता है। भंडारण 50 गुना कम हो जाता है।
ColBERT चलाना
RAGatouille पुस्तकालय इसे आसान बनाता है:
# pip install ragatouille
from ragatouille import RAGPretrainedModel
rag = RAGPretrainedModel.from_pretrained('colbert-ir/colbertv2.0')
rag.index(collection=documents, index_name='my_corpus')
results = rag.search(query='What is the refund policy?', k=5)व्यवहार में बहु-वेक्टर
ColBERT के अलावा, बहु-वेक्टर के अन्य तरीक़े भी हैं:
- मूल-उपखंड — छोटे खंडों को एम्बेड करें और बड़े मूल खंडों को प्राप्त करें
- सारांश + खंड — दस्तावेज़ के सारांश और अलग-अलग खंडों दोनों को एम्बेड करें
- काल्पनिक प्रश्न — प्रत्येक दस्तावेज़ से बनाए गए प्रश्न-उत्तर युग्मों को एम्बेड करें
Hypothetical Questions Pattern
def index_with_hypos(doc):
# Generate 5 plausible questions this doc could answer
questions = llm.invoke(f'Write 5 questions answered by this doc:\n{doc}').content.split('\n')
for q in questions:
vector_db.add(embed(q), payload={'doc': doc, 'question': q})
# Now queries that match a stored hypothetical question retrieve the doc.Parent-Child with LangChain
from langchain.retrievers import ParentDocumentRetriever
from langchain.storage import InMemoryStore
store = InMemoryStore()
retriever = ParentDocumentRetriever(
vectorstore=child_vectorstore,
docstore=store,
child_splitter=child_splitter, # small
parent_splitter=parent_splitter # large
)
retriever.add_documents(documents)
# Indexes small chunks, returns large parents.ColBERT का उपयोग कब करें
- उच्च जोखिम वाली खोज, जैसे कानूनी या चिकित्सीय खोज
- लंबे दस्तावेज़
- जब आप भंडारण की लागत वहन कर सकें
कब छोड़ दें
- छोटे कॉर्पस
- विलंब-संवेदी पथ
- लागत-सीमित परियोजनाएँ
BM25 के साथ मिश्रित तरीका
अधिकतम रिकॉल के लिए बहु-वेक्टर पुनर्प्राप्ति को पारंपरिक बीएम25 कीवर्ड खोज के साथ मिलाएँ। उन्हें मिलाने के लिए पारस्परिक रैंक संलयन का उपयोग करें।
ColBERT का संतुलन
ColBERT-शैली की बहु-वेक्टर पुनर्प्राप्ति का उपयोग करने का मुख्य संतुलन क्या है?
पुनरावलोकन
प्रति खंड एक वेक्टर रखने से जानकारी खो जाती है। ColBERT अधिक सटीकता के लिए प्रति-टोकन वेक्टर संग्रहीत करता है। RAGatouille इसे आसान बनाता है। जब रिकॉल महत्वपूर्ण हो और लागत वहन की जा सके, तब इसका उपयोग करें।
एआई शिक्षक के साथ AI एजेंट सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 60
- पाठ
- 239
अक्सर पूछे जाने वाले प्रश्न
क्या “बहु-वेक्टर रिट्रीवल (ColBERT)” पाठ निःशुल्क है?
हाँ—“बहु-वेक्टर रिट्रीवल (ColBERT)” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और AI एजेंट पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। AI एजेंट पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“बहु-वेक्टर रिट्रीवल (ColBERT)” में मैं क्या सीखूँगा?
सूक्ष्म मिलान के लिए हर दस्तावेज़ में कई वेक्टर इंडेक्स करें (प्रति टोकन या प्रति चंक एक)। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ AI एजेंट का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या AI एजेंट शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर AI एजेंट शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“बहु-वेक्टर रिट्रीवल (ColBERT)” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस AI एजेंट पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर AI एजेंट पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- क्रॉस-एन्कोडर से पुनः-रैंकिंग
- HyDE: काल्पनिक दस्तावेज़ एम्बेडिंग
- बहु-वेक्टर रिट्रीवल (ColBERT)
- RAG मूल्यांकन (RAGAS, Recall@K)