RAG एप्लीकेशंस के लिए टेक्स्ट स्प्लिटिंग तकनीकें और कोडिंग

Convert to note

परिचय

  • वीडियो में RAG (Retrieval-Augmented Generation) आधारित एप्लीकेशंस के लिए टेक्स्ट स्प्लिटिंग के महत्व को समझाया गया है।
  • पिछले वीडियो में डॉक्यूमेंट लोडर्स पर चर्चा हुई थी , अब टेक्स्ट स्प्लिटिंग के विभिन्न तरीकों को सीखेंगे।

टेक्स्ट स्प्लिटिंग क्या है?

  • बड़े टेक्स्ट या PDF को छोटे-छोटे चंक्स में विभाजित करने की प्रक्रिया।
  • LLM (Large Language Models) की इनपुट लिमिटेशन को ध्यान में रखते हुए टेक्स्ट को छोटे हिस्सों में बांटना जरूरी होता है।
  • इससे मॉडल की आउटपुट क्वालिटी बेहतर होती है।

टेक्स्ट स्प्लिटिंग के कारण

  1. मॉडल की Context Length लिमिटेशन:
    • LLMs की एक इनपुट साइज लिमिट होती है, जैसे 50,000 टोकन्स।
    • बड़े डॉक्यूमेंट को सीधे इनपुट में देना संभव नहीं होता।
  2. बेहतर डाउनस्ट्रीम टास्क परफॉर्मेंस:
    • एंबेडिंग, सिमटिक सर्च, समरी जैसे टास्क में छोटे चंक्स बेहतर रिजल्ट देते हैं।
  3. कंप्यूटेशनल रिसोर्स ऑप्टिमाइजेशन:
    • छोटे चंक्स प्रोसेस करने से मेमोरी कम लगती है और पैरेलल प्रोसेसिंग संभव होती है।

टेक्स्ट स्प्लिटिंग की प्रमुख तकनीकें

1. लेंथ बेस्ड टेक्स्ट स्प्लिटिंग

  • टेक्स्ट को कैरेक्टर्स या टोकन्स की संख्या के आधार पर छोटे चंक्स में बांटना।
  • सबसे सरल और तेज़ तरीका।
  • कोड में LangChain के CharacterTextSplitter का उपयोग।
  • फायदे: सरल, तेज़।
  • नुकसान: शब्द, वाक्य या पैराग्राफ के बीच में कट सकता है, जिससे सेमांटिक कंटेक्स्ट टूट सकता है।
  • चंक ओवरलैप पैरामीटर से दो चंक्स के बीच ओवरलैपिंग कर कंटेक्स्ट खोने से बचा जा सकता है।

2. टेक्स्ट स्ट्रक्चर बेस्ड टेक्स्ट स्प्लिटिंग (Recursive Character Text Splitter)

  • टेक्स्ट के संरचनात्मक लेवल (पैराग्राफ, सेंटेंस, वर्ड, कैरेक्टर) के आधार पर स्प्लिटिंग।
  • पैराग्राफ से शुरू कर छोटे यूनिट्स में ब्रेक करता है।
  • कंटेक्स्ट को बेहतर बनाए रखता है।
  • Markdown, कोड, HTML जैसे विशेष डॉक्यूमेंट के लिए भी उपयुक्त।
  • LangChain में RecursiveCharacterTextSplitter क्लास का उपयोग

3. डॉक्यूमेंट बेस्ड टेक्स्ट स्प्लिटिंग

  • कोड, मार्कडाउन, HTML जैसे संरचित डॉक्यूमेंट के लिए विशेष सेपरेटर का उपयोग।
  • डॉक्यूमेंट के कंस्ट्रक्ट्स (जैसे क्लास, फंक्शन) के आधार पर स्प्लिटिंग।
  • LangChain में भाषा विशेष पैरामीटर के साथ RecursiveCharacterTextSplitter का उपयोग।

4. सिमटिक मीनिंग बेस्ड टेक्स्ट स्प्लिटिंग (Experimental)

  • टेक्स्ट के अर्थ और विषय के आधार पर स्प्लिटिंग।
  • एंबेडिंग मॉडल से सेंटेंस के वेक्टर बनाकर सिमिलैरिटी मापना।
  • सिमिलैरिटी में अचानक गिरावट पर स्प्लिटिंग पॉइंट निर्धारित करना।
  • अभी प्रयोगात्मक स्तर पर, भविष्य में अधिक उपयोगी।

LangChain में टेक्स्ट स्प्लिटिंग का कोड उदाहरण

  • CharacterTextSplitter और RecursiveCharacterTextSplitter क्लासेस का उपयोग।
  • PDF डॉक्यूमेंट लोड करके टेक्स्ट स्प्लिटिंग करना।
  • चंक साइज और चंक ओवरलैप पैरामीटर सेट करना।
  • Markdown और कोड फाइल्स के लिए विशेष स्प्लिटिंग।
  • सिमटिक मीनिंग बेस्ड स्प्लिटिंग के लिए OpenAI एंबेडिंग मॉडल का उपयोग।

निष्कर्ष

  • टेक्स्ट स्प्लिटिंग RAG एप्लीकेशंस में आवश्यक है ताकि LLM की लिमिटेशन को पार किया जा सके।
  • Recursive Character Text Splitter सबसे प्रभावी और व्यापक रूप से उपयोग किया जाने वाला तरीका है।
  • सिमटिक मीनिंग बेस्ड स्प्लिटिंग भविष्य में और बेहतर परिणाम दे सकती है।
  • LangChain लाइब्रेरी में ये सभी तकनीकें उपलब्ध हैं और आसानी से इम्प्लीमेंट की जा सकती हैं।

सुझाव

अगर आपको वीडियो पसंद आया हो तो लाइक और सब्सक्राइब जरूर करें।

Heads up!

This summary and transcript were automatically generated using AI with the Free YouTube Transcript Summary Tool by LunaNotes.

Generate a summary for free
Buy us a coffee

If you found this summary useful, consider buying us a coffee. It would help us a lot!

Let's Try!

Start Taking Better Notes Today with LunaNotes!