डेटा लोड करने और टेक्स्ट को खंडों में बाँटने की मूल बातें
असंरचित डेटा लोड करना और सर्वोत्तम रिट्रीवल प्रदर्शन के लिए प्रभावी टेक्स्ट-विभाजन रणनीतियाँ लागू करना सीखिए।
डेटा लोड करने और टेक्स्ट को खंडों में बाँटने की मूल बातें, CoddyKit पर उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
RAG के लिए डेटा लोड करना
पाठ 2 में आपका स्वागत है! Retrieval Augmented Generation (RAG) में पहला कदम हमेशा अपने डेटा को तैयार करना होता है। इसका अर्थ है अपनी जानकारी लोड करना और उसे Large Language Model (LLM) के लिए तैयार करना।
वास्तविक दुनिया का अधिकांश डेटा असंरचित होता है, यानी वह स्प्रेडशीट की तरह व्यवस्थित रूप से पंक्तियों और स्तंभों में नहीं बंटा होता। दस्तावेज़ों, वेब पृष्ठों या पुस्तकों के बारे में सोचिए।
असंरचित डेटा के सामान्य स्रोत
RAG सिस्टम कई प्रकार के असंरचित डेटा के साथ काम कर सकते हैं। यहाँ कुछ सामान्य उदाहरण दिए गए हैं:
- पाठ फ़ाइलें (.txt): सरल, सादा पाठ दस्तावेज़।
- PDF (.pdf): इनमें अक्सर पाठ, चित्र और जटिल लेआउट होते हैं।
- Word दस्तावेज़ (.docx): स्वरूपण वाला समृद्ध पाठ।
- वेब पृष्ठ (.html): वेबसाइटों की सामग्री।
- डेटाबेस/API: विभिन्न फ़ील्ड से निकाला गया पाठ।
लक्ष्य इन स्रोतों से कच्चे पाठ की सामग्री निकालना है।
मूल पाठ फ़ाइल लोड करना
आइए सबसे सरल तरीके से शुरुआत करते हैं: एक सादा पाठ फ़ाइल लोड करना। Python में आप किसी फ़ाइल की पूरी सामग्री को आसानी से एक स्ट्रिंग में पढ़ सकते हैं।
यह उदाहरण एक छोटी sample.txt फ़ाइल बनाता है और फिर उसकी सामग्री पढ़ता है।
import os
def load_text_file(filepath):
with open(filepath, 'r', encoding='utf-8') as f:
return f.read()
if __name__ == "__main__":
# Create a dummy file for demonstration
file_content = "This is the first line.\nThis is the second line.\nAnd a final line of text."
with open("sample.txt", "w", encoding="utf-8") as f:
f.write(file_content)
# Load and print the content
loaded_data = load_text_file("sample.txt")
print("--- Loaded Content ---")
print(loaded_data)
# Clean up the dummy file
os.remove("sample.txt")पाठ को खंडों में बाँटना क्यों आवश्यक है
डेटा लोड करने के बाद आप आमतौर पर किसी पूरी पुस्तक या लंबे दस्तावेज़ को सीधे LLM को नहीं भेज सकते। ऐसा क्यों?
- संदर्भ विंडो की सीमाएँ: LLM एक बार में संसाधित किए जा सकने वाले पाठ की अधिकतम मात्रा तक ही संभाल सकते हैं।
- लागत: बहुत लंबा पाठ भेजना महँगा होता है, क्योंकि सामान्यतः शुल्क प्रति टोकन लिया जाता है।
- प्रासंगिकता: छोटे और केंद्रित पाठ-खंड अक्सर खोज के लिए अधिक प्रासंगिक होते हैं।
यहीं पाठ को खंडों में बाँटना उपयोगी होता है।
संदर्भ विंडो को समझना
संदर्भ विंडो LLM की अल्पकालिक स्मृति जैसी होती है। यह टोकन (शब्द या शब्दों के छोटे हिस्से) की वह अधिकतम संख्या है, जिन पर वह उत्तर बनाते समय विचार कर सकता है।
- यदि आपका इनपुट पाठ बहुत लंबा है, तो उसे काटकर छोटा कर दिया जाता है।
- LLM केवल वही देखता है जो उसकी संदर्भ विंडो में होता है।
खंडों में बाँटने से आपका बड़ा दस्तावेज़ छोटे, संभालने योग्य हिस्सों में टूट जाता है, जो इस विंडो में समा जाते हैं।
मूल खंडन: निश्चित आकार
खंडों में बाँटने की सबसे सरल रणनीति निश्चित आकार के खंडन की है। आप वर्णों या टोकन की एक निश्चित संख्या तय करते हैं और फिर दस्तावेज़ को उसी आकार के खंडों में बाँटते हैं।
उदाहरण के लिए, यदि आपके पास 1000 वर्णों का दस्तावेज़ है और खंड का आकार 100 है, तो आपको 10 खंड मिलेंगे।
- लाभ: इसे लागू करना आसान है।
- हानियाँ: वाक्य या अनुच्छेद बीच से कट सकते हैं, जिससे संदर्भ खो जाता है।
निश्चित आकार के खंडन का प्रयोग
यहाँ निश्चित आकार के खंडन को दिखाने वाला Python उदाहरण दिया गया है। ध्यान दें कि पाठ को नियमित अंतराल पर सीधे काटा जाता है, जिससे कभी-कभी शब्द या वाक्य टूट सकते हैं।
def fixed_size_chunker(text, chunk_size):
chunks = []
for i in range(0, len(text), chunk_size):
chunks.append(text[i : i + chunk_size])
return chunks
if __name__ == "__main__":
sample_text = "Large language models are powerful tools for text generation and understanding. However, they have limitations, especially with very long inputs due to their context window size."
chunk_size = 40
chunks = fixed_size_chunker(sample_text, chunk_size)
print(f"Original text length: {len(sample_text)}")
print(f"Chunk size: {chunk_size}")
print("--- Chunks ---")
for i, chunk in enumerate(chunks):
print(f"Chunk {i+1} ({len(chunk)} chars): '{chunk}'")ओवरलैप से संदर्भ बेहतर बनाना
यदि महत्वपूर्ण संदर्भ दो खंडों में बँट जाए, तो निश्चित आकार का खंडन समस्या पैदा कर सकता है। इसे कम करने के लिए हम ओवरलैप वाले खंडों का उपयोग करते हैं।
ओवरलैप में प्रत्येक नया खंड पिछले खंड के समाप्त होने से कुछ पहले शुरू होता है। इससे कुछ पाठ कई खंडों में दिखाई देता है और निरंतरता बनी रहती है।
- सामान्य ओवरलैप आकार, खंड के आकार का 10–20% होता है।
- यदि विचार खंडों की सीमाओं के पार फैले हों, तब भी यह LLM को उन्हें जोड़ने में मदद करता है।
ओवरलैप वाले खंडन का उदाहरण
देखिए कि ओवरलैप जोड़ने से संदर्भ बनाए रखने में कैसे मदद मिलती है। प्रत्येक नए खंड की शुरुआत में पिछले खंड के अंत का कुछ पाठ शामिल होता है।
def overlapping_chunker(text, chunk_size, overlap_size):
chunks = []
start = 0
while start < len(text):
end = start + chunk_size
chunk = text[start:end]
chunks.append(chunk)
start += chunk_size - overlap_size
if start < 0: # Handle cases where overlap > chunk_size initially
start = 0
return chunks
if __name__ == "__main__":
text_data = "The quick brown fox jumps over the lazy dog. Dogs are mammals and often friendly animals."
chunk_size = 30
overlap_size = 10
chunks = overlapping_chunker(text_data, chunk_size, overlap_size)
print(f"Original text length: {len(text_data)}")
print(f"Chunk size: {chunk_size}, Overlap size: {overlap_size}")
print("--- Overlapping Chunks ---")
for i, chunk in enumerate(chunks):
print(f"Chunk {i+1} ({len(chunk)} chars): '{chunk}'")अपनी समझ जाँचिए
आपने डेटा लोड करने और खंडों में बाँटने की मूल रणनीतियों के बारे में सीखा है। अब अपने ज्ञान की जाँच कीजिए!
पुनरावृत्ति: डेटा लोड करना और खंडन
बहुत अच्छा! इस पाठ में हमने RAG अनुप्रयोगों के लिए डेटा तैयार करने के मूलभूत चरणों को शामिल किया:
- डेटा लोड करना: पाठ फ़ाइलों, PDF और वेब पृष्ठों जैसे विभिन्न असंरचित स्रोतों से कच्चा पाठ निकालना।
- पाठ को खंडों में बाँटना: लंबे दस्तावेज़ों को छोटे, संभालने योग्य हिस्सों में बाँटने की आवश्यक प्रक्रिया।
- संदर्भ विंडो: इनपुट पाठ की लंबाई पर LLM की सीमा को समझना, जिसे टोकन में मापा जाता है।
- खंडन की रणनीतियाँ: हमने मूल निश्चित आकार के खंडन और संदर्भ बनाए रखने के लिए ओवरलैप वाले बेहतर निश्चित आकार के खंडन का अध्ययन किया।
अगले पाठ में हम देखेंगे कि इन खंडों का उपयोग एक सरल RAG पाइपलाइन बनाने के लिए कैसे किया जाता है!
एआई शिक्षक के साथ उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “डेटा लोड करने और टेक्स्ट को खंडों में बाँटने की मूल बातें” पाठ निःशुल्क है?
हाँ—“डेटा लोड करने और टेक्स्ट को खंडों में बाँटने की मूल बातें” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“डेटा लोड करने और टेक्स्ट को खंडों में बाँटने की मूल बातें” में मैं क्या सीखूँगा?
असंरचित डेटा लोड करना और सर्वोत्तम रिट्रीवल प्रदर्शन के लिए प्रभावी टेक्स्ट-विभाजन रणनीतियाँ लागू करना सीखिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“डेटा लोड करने और टेक्स्ट को खंडों में बाँटने की मूल बातें” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर उत्पादन में LLM अनुप्रयोग (RAG + वेक्टर DB + कैशिंग) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- LLM प्रदाता चुनना
- डेटा लोड करने और टेक्स्ट को खंडों में बाँटने की मूल बातें
- सरल RAG कार्यप्रवाह बनाना
- अपने RAG ऐप का परीक्षण और मूल्यांकन