स्टेप 7 · डेटा ही असली प्रोडक्ट है
आर्किटेक्चर लगभग मुफ़्त है — आप इसे कॉपी कर सकते हैं। डेटा वह जगह है जहाँ मॉडल्स वास्तव में अलग होते हैं, और जहाँ लगभग सारा काम होता है।
60 सेकंड में
स्टेप 7 · डेटा ही असली प्रोडक्ट है
आर्किटेक्चर लगभग मुफ़्त है — आप इसे कॉपी कर सकते हैं। डेटा वह जगह है जहाँ मॉडल्स वास्तव में अलग होते हैं, और जहाँ लगभग सारा काम होता है।
पाइपलाइन, क्रम में
- 1
1 · हासिल करना (Acquire)
वेब क्रॉल, किताबें, कोड, रिसर्च पेपर्स, क्यूरेटेड कलेक्शन्स। लाइसेंस ज़रूर जांचें। "यह इंटरनेट पर था" कोई लाइसेंस नहीं होता, और इस पर अब नियमित रूप से मुकदमे चल रहे हैं। - 2
2 · एक्सट्रैक्ट करना (Extract)
HTML से टेक्स्ट निकालना जितना आसान दिखता है, उससे कहीं ज़्यादा कठिन है। बॉयलरप्लेट, नेविगेशन, कुकी बैनर और कमेंट स्पैम सब कुछ नौसिखिए एक्सट्रैक्शन में आ जाते हैं और ये सभी मॉडल को ख़राब (ज़हरीला) करते हैं। - 3
3 · क्वालिटी के लिए फ़िल्टर करना (Filter for quality)
भाषा की पहचान, अच्छे माने जाने वाले टेक्स्ट पर ट्रेंड क्लासिफायर, पर्प्लेक्सिटी फ़िल्टर्स, विराम चिह्नों और लाइन की लंबाई पर नियम (ह्यूरिस्टिक्स)। क्रॉल किए गए अधिकांश टेक्स्ट को हटा दिया जाता है — अक्सर 90% या उससे भी अधिक। - 4
4 · डुप्लिकेट हटाना (Deduplicate)
एक जैसे और लगभग मिलते-जुलते (near-duplicate) टेक्स्ट को हटाना, आमतौर पर MinHash के साथ। यह सबसे अधिक फ़ायदेमंद अकेला स्टेप है: डुप्लिकेट टेक्स्ट कंप्यूट बर्बाद करता है और रटने की समस्या पैदा करता है। - 5
5 · डीकंटेमिनेट करना (Decontaminate)
अपने इवैल्यूएशन सेट्स से मेल खाने वाली किसी भी चीज़ को हटा दें। इसे छोड़ देंगे तो आपके बेंचमार्क नंबर्स मनगढ़ंत होंगे — मॉड्यूल 28 देखें। - 6
6 · मिक्स करना (Mix)
हर सोर्स के लिए अनुपात चुनें और तय करें कि किसे कितनी बार दोहराया जाएगा। यह एक डिज़ाइन निर्णय है जिसका अंतिम मॉडल पर बहुत बड़ा असर पड़ता है। - 7
7 · टोकनाइज़ और शार्ड करना (Tokenize and shard)
पहले से टोकनाइज़ करके फ़्लैट बाइनरी शार्ड्स में बदलें। टोकनाइज़्ड uint16 ऐरे को पढ़ना, साथ के साथ (on the fly) टोकनाइज़ करने की तुलना में काफ़ी तेज़ होता है।
from datasketch import MinHash, MinHashLSH
def shingles(text, k=5):
words = text.split()
return {" ".join(words[i:i+k]) for i in range(len(words) - k + 1)}
lsh = MinHashLSH(threshold=0.8, num_perm=128)
kept = []
for i, doc in enumerate(documents):
m = MinHash(num_perm=128)
for sh in shingles(doc):
m.update(sh.encode("utf-8"))
if not lsh.query(m): # nothing similar seen yet
lsh.insert(str(i), m)
kept.append(doc)एक वास्तविक मिश्रण
| सोर्स | हिस्सा | क्यों |
|---|---|---|
| फ़िल्टर किया हुआ वेब टेक्स्ट | 50–65% | व्यापकता, और बड़े पैमाने पर उपलब्ध एकमात्र सोर्स |
| कोड | 10–20% | बिना कोड वाले टास्क्स के लिए भी रीज़निंग और स्ट्रक्चर को बेहतर बनाता है |
| किताबें और लंबा टेक्स्ट | 5–15% | लंबे समय तक निरंतरता (Long-range coherence), जो वेब टेक्स्ट में शायद ही कभी होती है |
| एकेडेमिक और संदर्भ सामग्री | 5–10% | तथ्यों का घनत्व (Factual density) |
| क्यूरेटेड / सिंथेटिक | 5–15% | लक्षित स्किल्स, निर्देश के प्रारूप, कम प्रतिनिधित्व वाली भाषाएँ |
| बहुभाषी (Multilingual) | बदलता रहता है | सोच-समझकर किया गया, वरना आपका मॉडल एक अंग्रेज़ी मॉडल बनकर रह जाएगा जो बाकी जगहों पर लड़खड़ाएगा |
सिंथेटिक डेटा: वर्तमान फ्रंटियर
- बिखरे हुए टेक्स्ट को साफ़ स्पष्टीकरणों में फिर से लिखना।
- रीज़निंग स्टेप्स जिन्हें जाँचा (verify) जा सके — उत्तरों के साथ गणित, टेस्ट्स के साथ कोड।
- निर्देशों और फ़ॉर्मेट की विविधता।
- कमियों को भरना: दुर्लभ भाषाएँ, दुर्लभ क्षेत्र।
- असत्यापित तथ्य — जनरेटर की ग़लतियाँ ट्रेनिंग का लक्ष्य बन जाती हैं।
- स्टाइल कोलैप्स: सब कुछ एक जैसा लगने लगता है।
- पीढ़ी-दर-पीढ़ी कम होती विविधता।
- चुपके से अपने ही बेंचमार्क उत्तरों पर ट्रेनिंग देना।
कितना डेटा?
और देखें और पढ़ें
लैब
एक डेटा पाइपलाइन जो अपने अधिकांश इनपुट को सही तरीके से बाहर फेंक देती है।
समस्या
stages = ["raw", "extracted", "quality", "deduped", "decontaminated"]
for a, b in zip(stages, stages[1:]):
print(f"{a:16} -> {b:16} {len(sets[b])/len(sets[a]):.1%} survived")आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1आपका क्वालिटी फ़िल्टर क्रॉल का केवल 8% रखता है। पहले तर्क दें कि यह बहुत ज़्यादा आक्रामक है, फिर तर्क दें कि यह नहीं है।दिखाएं
अक्सर पूछे जाने वाले सवाल
क्या मैं सिर्फ़ किसी पब्लिक डेटासेट का उपयोग कर सकता हूँ?
हाँ, और सीखने के लिए आपको ऐसा करना भी चाहिए। FineWeb, The Pile, RedPajama, Dolma और ऐसे ही कलेक्शन्स पहले से ही फ़िल्टर और डुप्लिकेट-मुक्त हैं। उनकी डेटाशीट्स पढ़ें — उन्होंने जो फ़िल्टरिंग विकल्प चुने हैं, वे अब आपके विकल्प हैं।
डुप्लिकेट हटाना (deduplication) कितना मायने रखता है?
बहुत ज़्यादा। प्रकाशित परिणाम फ़ाइनल लॉस में सार्थक सुधार और हूबहू रटने में भारी कमी दिखाते हैं। यह पूरी पाइपलाइन में प्रति-घंटा सबसे अधिक फ़ायदा देने वाला स्टेप है।
क्या कॉपीराइट वाले टेक्स्ट पर ट्रेनिंग देना कानूनी है?
इस पर विवाद जारी है, यह क्षेत्राधिकार के अनुसार अलग-अलग है, और अभी अदालतों में इस पर फ़ैसले हो रहे हैं। यदि आप व्यावसायिक रूप से कुछ लॉन्च कर रहे हैं, तो बड़ी लैब्स जो करती दिख रही हैं उसका अनुसरण करने के बजाय अपने बाज़ार के अनुसार सलाह लें।
क्रॉल में पर्सनल डेटा के बारे में क्या?
यह वहाँ मौजूद होता है, और मॉडल्स इसे याद रख सकते हैं और दोबारा दोहरा सकते हैं। पर्सनल जानकारी को फ़िल्टर करें, डेटा हटाने के अनुरोधों का समर्थन करें, और समझें कि अधिकांश प्राइवेसी कानूनों के तहत "मॉडल ने इसे रट लिया था" कोई बचाव नहीं है।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।