पाठ संग्रहन मॉडल

पाठ संग्रहन मॉडलों का प्राथमिक उपयोग पाठ के वेक्टर प्रतिनिधिकरण का गणना करने के लिए होता है। यहां, "वेक्टर" शब्द गणितीय वेक्टर को संदर्भित करता है, जिसे सुविधाएं वेक्टर भी कहा जाता है। एक डेवलपर के रूप में, आपको जानने की आवश्यकता है कि एक पाठ संग्रहन मॉडल एक पाठ के विशेषता वेक्टर का गणना कर सकता है, और फिर वेक्टर समानता गणनाओं का उपयोग करके वह पाठ सामग्री को पहचान सकता है जो समान विशेषताओं वाली हो।

सुझाव: पाठ संग्रहन मॉडल के मूल संक्षिप्त जानकारी के लिए कृपया पाठ संग्रहन मॉडल पर प्रारंभिक संक्षेपण ट्यूटोरियल का अवलोकन करें।

वेक्टर खोज और कीवर्ड-आधारित खोज के बीच अंतर

  • वेक्टर खोज शब्द वेक्टरों की सांद्रता समानता पर आधारित होता है। यह प्राप्त कर सकता है कि प्रश्न और परिणामों में शब्द सटीक रूप से मेल नहीं खाते, हालांकि वे साधारण रूप से समानता के लिए प्राणी हो सकते हैं। वेक्टर खोज शब्दों को एक उच्च आयामी वेक्टर अंतरिक्ष में मानचित्रित करता है और वेक्टर के समानता का गणना करता है। इसका यह अर्थ है कि यदि शब्द खुद मेल नहीं खाते हैं, तो भी वे सांतानिक रूप से समान हैं, तो संबंधित परिणाम पाए जा सकते हैं।
  • दूसरी ओर, कीवर्ड-आधारित खोज एक साधारण स्ट्रिंग मैचिंग प्रक्रिया पर आधारित है। इसमें केवल वह परिणाम प्राप्त होते हैं जो पूर्णत: प्रश्न शब्दों को समान रूप से मिलते हैं। अगर किसी दस्तावेज में विभिन्न शब्दों का प्रयोग होता है, तो यदि वे सांतानिक रूप से समान होते हैं, तो भी वे मिलाए नहीं जाएंगे।

एम्बेडिंग्स क्लास एक प्रकार की कक्षा है जो टेक्सट एम्बेडिंग मॉडलों के साथ बातचीत करने के लिए विशेषरूप से डिज़ाइन की गई है। एम्बेडिंग्स मॉडलों के कई प्रदाताओं (जैसे OpenAI, Cohere, Hugging Face, आदि) हैं, और इस क्लास की डिज़ाइन उन सभी प्रदाताओं के लिए एक मानक अंतराफलक प्रदान करने के लिए है।

एम्बेडिंग्स क्लास पाठ का वेक्टर प्रतिनिधित्व बनाता है। वेक्टर खोज के साथ, सांदरता खोज की जा सकती है, उदाहरण के लिए, वेक्टर अंतरिक्ष में सबसे समान पाठ के खोज के लिए।

लैंगचेन की मूल एम्बेडिंग्स क्लास दो मेथड्स को उजागर करती है: एक तालिकाओं के एम्बेडिंग और दूसरा प्रश्नों के एम्बेडिंग। पहला कई पाठों को इनपुट के रूप में लेता है, जबकि दूसरा एकल पाठ को इनपुट के रूप में लेता है। इसका कारण ये दो अलग-अलग मेथड्स के रूप में देखे जाते हैं क्योंकि कुछ एम्बेडिंग प्रदाताओं के पास खोजने के दस्तावेज़ और प्रश्नों (खोज सवालों) के लिए विभिन्न एम्बेडिंग मेथड होते हैं।

त्वरित शुरू करें

नीचे एक ओपनएआई के एम्बेडिंग मॉडल का उपयोग करने का एक उदाहरण है:

विन्यास

पहले, हमें ओपनएआई पाइथन पैकेज को स्थापित करना होगा। क्योंकि लैंगचेन में पाठ संग्रहन मॉडल के कई विभिन्न कार्यान्वयन होते हैं, डेवलपर्स को अपने विकल्पों के अनुसार विभिन्न मॉडलों के विशेषताओं की आवश्यकतानुसार विभिन्न मॉडलों के अवलंबन को स्थापित करना होता है:

pip install langchain-openai

पर्यावरण वेरिएबल के माध्यम से ओपनएआई कुंजी कॉन्फ़िगर करें:

export OPENAI_API_KEY="..."

यदि आप चाहते हैं कि आप पर्यावरण वेरिएबल सेट न करें, तो आप सीधे ओपनएआई LLM क्लास की प्रारंभीकरण के समय openai_api_key नामक पैरामीटर को सीधे पास करने के लिए उसके विशिष्टता को स्थानांतरित करने के लिए पार कर सकते हैं:

from langchain_openai import OpenAIEmbeddings

embeddings_model = OpenAIEmbeddings(openai_api_key="...")

अन्यथा, आप कोई पैरामीटर के बिना प्रारंभ कर सकते हैं:

from langchain_openai import OpenAIEmbeddings

embeddings_model = OpenAIEmbeddings()

embed_documents

एक समूह पाठ की वेक्टर विशेषताओं को गणना करें:

embeddings = embeddings_model.embed_documents(
    [
        "हाय!",
        "ओह, नमस्ते!",
        "तुम्हारा नाम क्या है?",
        "मेरे दोस्त मुझे वर्ल्ड कहते हैं",
        "नमस्ते दुनिया!"
    ]
)
len(embeddings), len(embeddings[0])
(5, 1536)

embed_query

यह फ़ंक्शन एक प्रश्न पाठ की वेक्टर विशेषता को गणना करता है। सामान्यत: इसमें उलट खोज के प्रश्न को एक विशेषता वेक्टर में कन्वर्ट करने की शामिल होती है, और फिर इस वेक्टर का उपयोग करके वेक्टर डेटाबेस में समान पाठों की खोज की जाती है।

embedded_query = embeddings_model.embed_query("कही चर्चा में उल्लिखित नाम क्या था?")
embedded_query[:5]
[0.0053587136790156364,
 -0.0004999046213924885,
 0.038883671164512634,
 -0.003001077566295862,
 -0.00900818221271038]