<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
  <title>Paweł Dubiel Tech Blog: शब्दावली</title>
  <link>https://paweldubiel.com/hi</link>
  <atom:link href="https://paweldubiel.com/hi/glossary.xml" rel="self" type="application/rss+xml" />
  <description>AI, लैंग्वेज मॉडल और सॉफ़्टवेयर इंजीनियरिंग पर नोट्स।</description>
  <language>hi</language>
  <lastBuildDate>Sun, 11 Oct 2026 00:00:00 GMT</lastBuildDate>
<item>
  <title>Overfitting</title>
  <link>https://paweldubiel.com/hi/glossary/overfitting</link>
  <guid isPermaLink="true">https://paweldubiel.com/hi/glossary/overfitting</guid>
  <pubDate>Sun, 11 Oct 2026 15:59:40 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>आप आइसक्रीम का एक स्टॉल चलाते हैं। 10 दिन तक आपने नोटबुक में दोपहर का तापमान और बिके हुए स्कूप की संख्या लिखी। आप इन notes से एक नियम बनाना चाहते हैं: कल 24°C रहने वाला है, कितनी आइसक्रीम तैयार रखी…</description>
  <content:encoded><![CDATA[<p>आप आइसक्रीम का एक स्टॉल चलाते हैं। 10 दिन तक आपने नोटबुक में दोपहर का तापमान और बिके हुए स्कूप की संख्या लिखी। आप इन notes से एक नियम बनाना चाहते हैं: कल 24°C रहने वाला है, कितनी आइसक्रीम तैयार रखी जाए?</p>
<p>सबसे सरल नियम एक सीधी रेखा है: "हर एक डिग्री ज़्यादा यानी कुछ स्कूप ज़्यादा"। इस note के उदाहरण में वह नोटबुक में दर्ज दिनों पर आम तौर पर 27.5 स्कूप से चूकता है, क्योंकि उसे यह नहीं दिखता कि सबसे तेज़ गर्मी में बिक्री गिर जाती है। तो नियम को ज़्यादा छूट दी जा सकती है और curve को मुड़ने दिया जा सकता है। आज़माए गए curves में सबसे लचीला curve ठीक सभी 10 बिंदुओं से होकर गुज़रता है। नोटबुक के दिनों पर उसकी error 0 है।</p>
<p>यह एकदम सही नियम जैसा दिखता है। बस इतना है कि नोटबुक के दिन बीत चुके हैं, और नियम को कल काम करना है। उसी स्टॉल के 400 नए दिनों पर यह "एकदम सही" curve आम तौर पर 236.5 स्कूप से चूकता है। मध्यम लचीलेपन वाला curve, जो नोटबुक पर ख़राब दिख रहा था (10.9), नए दिनों पर 16.8 से चूकता है।</p>
<p><strong>Overfitting</strong> वह स्थिति है जिसमें model की error सीखने में इस्तेमाल हुए data पर छोटी होती है, और उसी तरह के नए data पर उसके मुकाबले बहुत बड़ी (<a href="https://www.deeplearningbook.org/contents/ml.html" rel="noopener noreferrer">Goodfellow, Bengio और Courville, <em>Deep Learning</em>, §5.2</a>)। Model अपने data set की उन ख़ासियतों पर fit हो गया जो उसके बाहर दोहराई नहीं जातीं। उलटी मुश्किल को <strong>underfitting</strong> कहते हैं: नियम इतना सरल है कि उस data को भी ठीक से नहीं बता पाता जो उसने देखा है। हमारे उदाहरण की सीधी रेखा ऐसा ही बर्ताव करती है।</p>
<p><img src="https://paweldubiel.com/assets/overfitting-smooth-rule-versus-tangled-line-through-every-point.webp" alt="अगल-बगल आइसक्रीम के दो स्टॉल: पहले के ऊपर एक चिकनी रेखा बिंदुओं के बीच से हल्के घुमाव में गुज़रती है, दूसरे के ऊपर एक उलझी हुई रेखा हर बिंदु को छूती है और तस्वीर के बहुत बाहर तक उछल जाती है।" loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="यह-अंतर-कहाँ-से-आता-है">यह अंतर कहाँ से आता है</h2>
<p>नोटबुक की हर entry दो चीज़ों से बनी है: नियमितता (गर्मी ज़्यादा, तो आइसक्रीम ज़्यादा) और संयोग (उस दिन संयोग से सैलानियों का एक दल आ गया)। नियम को पहली चीज़ पकड़नी है और दूसरी छोड़ देनी है। लेकिन model को नहीं पता कि क्या क्या है। उसे सिर्फ़ बिंदु दिखते हैं।</p>
<p>Model कितना संयोग सोख लेगा, यह उसके लचीलेपन से तय होता है, जिसे साहित्य में <strong>capacity</strong> कहते हैं: कई अलग-अलग शक्लों पर fit हो सकने की क्षमता। उदाहरण के curve को 2 से 10 संख्याएँ बताती हैं, जिन्हें data के हिसाब से चुना जाता है; उनकी गिनती curve की degree से एक ज़्यादा है। Degree 9 वाले curve के पास 10 दिनों के लिए ऐसी 10 संख्याएँ हैं, इसलिए वह हर बिंदु पर जा बैठ सकता है, सारे संयोग समेत। पाठ्यपुस्तक के लेखक इसे यूँ बताते हैं: बहुत लचीला model सही संबंध को तो दिखा सकता है, लेकिन ढेरों दूसरे संबंधों को भी, जो training data पर उतने ही अच्छे बैठते हैं, और इसकी संभावना कम है कि वह ठीक वही चुने जो आगे भी काम आए (§5.2)।</p>
<p>आम तौर पर सिलसिला ऐसा रहता है: लचीलापन बढ़ने पर training data पर error घटती है, जबकि नए data पर error पहले घटती है, फिर बढ़ने लगती है (§5.2, चित्र 5.3)। इससे एक व्यावहारिक नियम निकलता है। Model को उस data पर नहीं परखा जाता जिस पर उसने सीखा, और लचीलापन उस data की error देखकर नहीं चुना जाता, क्योंकि वह हमेशा सबसे ज़्यादा लचीलेपन की ओर इशारा करेगी। Data का एक हिस्सा अलग रख दिया जाता है: <strong><a href="https://paweldubiel.com/glossary/validation-set" hreflang="pl">validation set [Polski]</a></strong> settings चुनने के काम आता है, और अलग <strong>test set</strong> अंतिम मूल्यांकन के (§5.3)।</p>
<h2 id="ख़ुद-जाँचिए">ख़ुद जाँचिए</h2>
<p>नीचे वही स्टॉल है। इस note की सारी संख्याएँ दोबारा निकाली जा सकती हैं: "शुरू से" पर click करने पर 10 दिन दिखते हैं, और प्रयोग 1–5 बताए गए मामलों को set कर देते हैं।</p>
<div id="overfitting-lab"></div>
<p>दो चीज़ें करके देखने लायक़ हैं, जो स्थिर chart नहीं दिखाता। पहली, "24 और नोटबुक" चालू कीजिए और degree बदलिए: कम degree पर धूसर रेखाएँ एक-दूसरे के पास रहती हैं, ऊँची degree पर हर तरफ़ बिखर जाती हैं, जबकि हर एक उसी स्टॉल से आई है। दूसरी, किसी एक बिंदु को खींचकर बहुत ऊपर ले जाइए। Degree 2 वाला curve बस थोड़ा-सा खिसकेगा, जबकि degree 9 वाला curve उस बिंदु पर पहुँचने के लिए अपनी पूरी लंबाई में बदल जाएगा।</p>
<h2 id="क्या-मदद-करता-है">क्या मदद करता है</h2>
<ul>
<li><strong>ज़्यादा data।</strong> 80 दिनों पर वही degree 9 वाला curve नोटबुक पर आम तौर पर 14.8 स्कूप से और नए दिनों पर 15.9 से चूकता है। अंतर लगभग मिट जाता है, क्योंकि curve अब हर बिंदु पर नहीं बैठ सकता (§5.2)।</li>
<li><strong>कम लचीलापन।</strong> 10 दिनों पर degree 3 वाला curve: नोटबुक पर 10.9, नए दिनों पर 16.8।</li>
<li><strong>Regularization</strong>, यानी training के तरीके में ऐसा बदलाव जिसका मक़सद नए data पर error घटाना है, training data पर नहीं (§5.2.2)। इसका एक उदाहरण बड़े coefficients पर penalty है, जो <a href="https://paweldubiel.com/glossary/weight-decay" hreflang="pl">Weight decay [Polski]</a> से जुड़ी हुई है: penalty λ = 0.01 के साथ degree 9 वाला curve नोटबुक पर 5.8 से और नए दिनों पर 21.2 से चूकता है, 236.5 की जगह।</li>
</ul>
<p>इनमें से कोई भी setting सिर्फ़ training data की error देखकर नहीं चुनी जा सकती।</p>
<h2 id="सीमाएँ">सीमाएँ</h2>
<ul>
<li>यह मेरा अपना उदाहरण है, जिसमें एक ही input मात्रा और simulated data है। यहाँ सिर्फ़ संयोग ही आम तौर पर 15 स्कूप की error देता है, और नए दिनों पर कोई नियम इससे नीचे नहीं जाएगा।</li>
<li>"पहले बेहतर, फिर बदतर" वाली शक्ल आम है, गारंटी नहीं। लेखक बताते हैं कि deep networks में model का असल लचीलापन तय करना भी मुश्किल है, क्योंकि वह training algorithm पर भी निर्भर करता है (§5.2)। इसलिए LLM के parameters की संख्या अकेले यह नहीं बताती कि model overfit है या नहीं।</li>
<li>नए data पर छोटी error उसी स्रोत के data के बारे में है। अगर स्टॉल समुद्र किनारे चला जाए, तो शहर वाली नोटबुक किसी बात का वादा नहीं करती।</li>
</ul>
<h2 id="संबंधित-विषय">संबंधित विषय</h2>
<ul>
<li><a href="https://paweldubiel.com/glossary/weight-decay" hreflang="pl">Weight decay [Polski]</a> weights के आकार को सीमित करता है और training data तथा नए data की error के बीच का अंतर घटाने के तरीकों में से एक है।</li>
<li><a href="https://paweldubiel.com/glossary/grokking" hreflang="pl">Grokking [Polski]</a> उन मामलों को बताता है जिनमें overfit दिखने वाला model लंबी अतिरिक्त training के बाद नए data पर अच्छा काम करने लगता है।</li>
<li>छोटे data set पर <a href="https://paweldubiel.com/glossary/fine-tuning" hreflang="pl">Fine-tuning [Polski]</a> के लिए भी यही जाँच चाहिए: अलग data, जिसे model ने training के दौरान नहीं देखा।</li>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> एक अलग समस्या है: वहाँ model नई training के बाद पुरानी क्षमता खो देता है, जबकि यहाँ वह शुरू से ही अपने training data के बाहर कमज़ोर चलता है।</li>
</ul>]]></content:encoded>
</item>
<item>
  <title>Time horizon</title>
  <link>https://paweldubiel.com/hi/glossary/time-horizon</link>
  <guid isPermaLink="true">https://paweldubiel.com/hi/glossary/time-horizon</guid>
  <pubDate>Sun, 11 Oct 2026 15:02:00 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>papers</category>
  <category>llm</category>
  <category>agents</category>
  <category>benchmarks</category>
  <description>Agents के evaluation में time horizon tasks की वह लंबाई बताता है जिस पर agent सफलता का चुना हुआ स्तर हासिल करता है। लंबाई उस समय से नापी जाती है जो इंसान को लगता है, AI के चलने के समय से नहीं।</description>
  <content:encoded><![CDATA[<p>Agents के evaluation में <strong>time horizon</strong> tasks की वह लंबाई बताता है जिस पर agent सफलता का चुना हुआ स्तर हासिल करता है। लंबाई उस समय से नापी जाती है जो इंसान को लगता है, AI के चलने के समय से नहीं।</p>
<p>50% वाले रूप के लिए हम अलग-अलग मानवीय समय वाले tasks पर agent की सफल और असफल कोशिशें जमा करते हैं। फिर सफलता की संभावना का curve fit करते हैं और वह समय पढ़ते हैं जहाँ यह curve 50% को काटता है। यह किसी तय समय वाले tasks के distribution के लिए एक अनुमान है; इसका मतलब यह नहीं कि उनमें से हर task के पूरे होने की संभावना एक जैसी है। <a href="https://metr.org/time-horizons/" rel="noopener noreferrer">METR: परिभाषा और methodology</a>।</p>
<p>समझाने के लिए एक उदाहरण: अगर fit किया गया curve दो घंटे पर 50% तक पहुँचता है, तो horizon दो घंटे है। सफल task को agent इससे कहीं जल्दी पूरा कर सकता है। यह नतीजा अपने आप यह भी नहीं बताता कि किसी दूसरे क्षेत्र का task वह कितनी सफलता से करेगा।</p>
<p>इस reading के लिए ज़रूरी है कि इंसान के समय और AI के लिए कठिनाई के बीच कोई सार्थक संबंध हो। जब curve सपाट होता है, तो संभावना में छोटा-सा बदलाव भी threshold के साथ उसके कटान बिंदु को बहुत दूर खिसका सकता है। <a href="https://paweldubiel.com/hi/articles/a-longer-metr-horizon-does-not-mean-proportionally-harder-tasks">METR horizon के रूपांतरण पर लेख</a> इस समस्या को एक ऐसे उदाहरण पर दिखाता है जिसे गिनकर देखा जा सकता है, और METR के data पर की गई नई fit की चर्चा करता है। <a href="https://arxiv.org/html/2610.12466v1#S2" rel="noopener noreferrer">Nguyen और Fithian, §2–3</a>।</p>
<p>Horizons की तुलना करते समय tasks के set, agent के environment, कोशिशों के budget और सफलता के चुने गए threshold की जानकारी साथ रखनी चाहिए।</p>]]></content:encoded>
</item>
<item>
  <title>Item response theory</title>
  <link>https://paweldubiel.com/hi/glossary/item-response-theory</link>
  <guid isPermaLink="true">https://paweldubiel.com/hi/glossary/item-response-theory</guid>
  <pubDate>Sun, 11 Oct 2026 15:01:00 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>papers</category>
  <category>llm</category>
  <category>agents</category>
  <category>benchmarks</category>
  <description>Item response theory (IRT) तरीकों का एक परिवार है जो अलग-अलग tasks पर मिले जवाबों से, एक साथ, करने वालों की क्षमता और tasks की कठिनाई का अनुमान लगाता है। AI के evaluation में करने वाला agent होता…</description>
  <content:encoded><![CDATA[<p><strong>Item response theory (IRT)</strong> तरीकों का एक परिवार है जो अलग-अलग tasks पर मिले जवाबों से, एक साथ, करने वालों की क्षमता और tasks की कठिनाई का अनुमान लगाता है। AI के evaluation में करने वाला agent होता है, और जवाब किसी पूरी कोशिश की सफलता या असफलता हो सकता है।</p>
<p>मान लीजिए कि दो agents वही तीन tasks हल करते हैं। पहला आम तौर पर A और B कर लेता है, दूसरा C भी। सफलताओं का प्रतिशत अकेले एक ranking दे देता है। IRT इसके अलावा यह अनुमान लगाने की कोशिश करता है कि बाकी tasks के मुकाबले C कितना कठिन है और क्षमता का कितना अंतर जवाबों के इस pattern को समझाता है। यह समझाने के लिए एक उदाहरण है; इतनी छोटी तालिका भरोसेमंद fit के लिए काफ़ी नहीं है।</p>
<p>सरल Rasch model में सफलता की संभावना तब बढ़ती है जब task की कठिनाई के मुकाबले agent की क्षमता ज़्यादा हो। दोनों मात्राएँ छिपी हुई हैं: हम उनका अनुमान नतीजों से लगाते हैं, बजाय इसके कि कठिनाई को सीधे निर्देश की लंबाई या इंसान के समय के बराबर मान लें। IRT के अलग-अलग रूप और parameters तथा मान्यताएँ जोड़ते हैं।</p>
<p><a href="https://paweldubiel.com/hi/articles/a-longer-metr-horizon-does-not-mean-proportionally-harder-tasks">METR horizons के विश्लेषण</a> में लेखक छिपी हुई कठिनाई को, data से सीखे गए एक curve के ज़रिए, इंसान के काम के समय से जोड़ते हैं। वे tasks के परिवारों के effects और दोहराई गई कोशिशों के नतीजों का बिखराव भी जोड़ते हैं। इससे यह जाँचा जा सकता है कि किस दायरे में समय सचमुच AI के लिए कठिन और आसान tasks में फ़र्क़ करता है। <a href="https://arxiv.org/html/2610.12466v1#S2.SS3" rel="noopener noreferrer">Nguyen और Fithian, §2.3 और §3.1</a>।</p>
<p>जवाबों का अच्छा अनुमान यह साबित नहीं करता कि सीखा गया parameter agent की हर तरह की क्षमता को समेट लेता है। व्याख्या करते समय model की मान्यताओं को और उन tasks पर नतीजों को जाँचना ज़रूरी है जो fit में इस्तेमाल नहीं हुए।</p>]]></content:encoded>
</item>
<item>
  <title>Elastic Weight Consolidation</title>
  <link>https://paweldubiel.com/hi/glossary/elastic-weight-consolidation</link>
  <guid isPermaLink="true">https://paweldubiel.com/hi/glossary/elastic-weight-consolidation</guid>
  <pubDate>Sun, 11 Oct 2026 12:00:11 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>एक model ग्राहकों के सवालों को &quot;डिलीवरी&quot; और &quot;वापसी&quot; विभागों में भेजता है। अब उसे शिकायतें पहचानना सीखना है, लेकिन पुराने संदेशों को सँभालकर रखने की अब इजाज़त नहीं है। इसलिए training के दौरान उन्हें…</description>
  <content:encoded><![CDATA[<p>एक model ग्राहकों के सवालों को "डिलीवरी" और "वापसी" विभागों में भेजता है। अब उसे शिकायतें पहचानना सीखना है, लेकिन पुराने संदेशों को सँभालकर रखने की अब इजाज़त नहीं है। इसलिए training के दौरान उन्हें दोहराया नहीं जा सकता। पुराने task से जो कुछ बचा है, वह सिर्फ़ model ख़ुद है: पहले की training में तय हुई लाखों संख्याएँ, जिन्हें weights कहते हैं।</p>
<p>Model को शिकायतें बिना किसी रोक-टोक के सिखाई जा सकती हैं। तब weights उधर खिसकते हैं जिधर नए task को फ़ायदा हो, वे weights भी जिन पर डिलीवरी और वापसी की पहचान टिकी थी। हर बदलाव पर एक जैसी penalty भी लगाई जा सकती है, लेकिन तब model पुरानी settings से इतना चिपका रहता है कि नई चीज़ ठीक से सीख नहीं पाता। ज़रूरत इस सवाल के जवाब की है: <strong>किन weights को छेड़ा जा सकता है, और किन्हें न छेड़ना बेहतर है?</strong></p>
<p><strong>Elastic Weight Consolidation (EWC)</strong> नए task की training में इस बात की penalty जोड़ता है कि weights पुराने task के बाद वाले मानों से कितनी दूर जाते हैं, और कोई weight पुराने task के लिए जितना अहम था, penalty उतनी ही बड़ी होती है। लेखक इसकी तुलना हर weight से बँधी spring से करते हैं: अहम weights पर सख़्त, बाकी पर ढीली (<a href="https://arxiv.org/abs/1612.00796" rel="noopener noreferrer">Kirkpatrick et al., <em>Overcoming catastrophic forgetting in neural networks</em>, §2</a>)।</p>
<p><img src="https://paweldubiel.com/assets/elastic-weight-consolidation-stiff-and-loose-springs.webp" alt="खंभों से springs के ज़रिए बँधी चकतियों की एक क़तार: मोटी, सख़्त springs वाली चकतियाँ अपनी जगह रहती हैं, जबकि पतली और ढीली springs वाली चकतियाँ लाल गोले की ओर खिसक जाती हैं।" loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="दो-weights-एक-नया-task">दो weights, एक नया task</h2>
<p>सिर्फ़ दो weights लेते हैं। डिलीवरी और वापसी सीखने के बाद दोनों का मान 1 है। पहला पुराने विभागों के लिए बहुत अहम है (महत्व 10), दूसरा लगभग बेअसर (महत्व 0.1)। नया task बस इतना चाहता है कि <strong>दोनों weights का जोड़ 4 हो</strong>। यह कई settings से पूरा होता है: (2, 2), लेकिन (1, 3) भी।</p>
<ul>
<li><strong>बिना सुरक्षा</strong> training दोनों weights को बराबर खिसकाती है, (2, 2) तक। नया task सीख लिया गया है, लेकिन अहम weight 1 से हट गया और पुराने task पर loss 0 से बढ़कर 5.05 हो जाता है।</li>
<li>दोनों weights पर <strong>एक जैसी penalty</strong> उन्हें आधे रास्ते में, (1.67, 1.67) पर रोक देती है। पुराने task को कम नुक़सान होता है, लेकिन जोड़ 4 की जगह 3.33 है।</li>
<li><strong>EWC</strong> लगभग सारी हरकत कम अहम weight पर डाल देता है: (1.02, 2.80)। जोड़ 3.82 है, और पुराने task पर loss सिर्फ़ 0.16।</li>
</ul>
<p>Loss वह संख्या है जो बताती है कि model कितना ग़लत है; यह जितनी छोटी हो, उतना अच्छा। नीचे के प्रयोग में आप penalty की ताक़त λ और सुरक्षा का तरीका बदल सकते हैं। नतीजा ठीक इसी दो weights वाले उदाहरण के लिए निकाला जाता है; यह किसी असली network का simulation नहीं है।</p>
<div id="ewc-spring-lab"></div>
<h2 id="कैसे-पता-चलता-है-कि-कौन-सा-weight-अहम-है">कैसे पता चलता है कि कौन-सा weight अहम है</h2>
<p>असली network में महत्व कोई पहले से नहीं बताता। उसका अनुमान पुराना task ख़त्म होने के बाद लगाया जाता है, जब तक उसका data उपलब्ध है: यह देखा जाता है कि किसी weight में छोटा-सा बदलाव पुराने उदाहरणों पर model के जवाबों को कितना बदल देता है। पेपर इसके लिए <em>Fisher information matrix</em> के diagonal का इस्तेमाल करता है, यानी हर weight के लिए महत्व की एक संख्या। इसके बाद data हटाया जा सकता है; weights के पुराने मान और उनके महत्व बचे रहते हैं।</p>
<p>नई training के दौरान दो हिस्सों का जोड़ minimize किया जाता है (पेपर में समीकरण 3):</p>
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>L</mi><mo stretchy="false">(</mo><mi>θ</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>L</mi><mi>B</mi></msub><mo stretchy="false">(</mo><mi>θ</mi><mo stretchy="false">)</mo><mo>+</mo><munder><mo>∑</mo><mi>i</mi></munder><mfrac><mi>λ</mi><mn>2</mn></mfrac><msub><mi>F</mi><mi>i</mi></msub><mtext> </mtext><mo stretchy="false">(</mo><msub><mi>θ</mi><mi>i</mi></msub><mo>−</mo><msubsup><mi>θ</mi><mrow><mi>A</mi><mo separator="true">,</mo><mi>i</mi></mrow><mo>∗</mo></msubsup><msup><mo stretchy="false">)</mo><mn>2</mn></msup></mrow><annotation encoding="application/x-tex">L(\theta) = L_B(\theta) + \sum_i \frac{\lambda}{2} F_i \,(\theta_i - \theta^*_{A,i})^2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">L</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathnormal">L</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3283em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.0502em;">B</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:2.6491em;vertical-align:-1.2777em;"></span><span class="mop op-limits"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.05em;"><span style="top:-1.8723em;margin-left:0em;"><span class="pstrut" style="height:3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span><span style="top:-3.05em;"><span class="pstrut" style="height:3.05em;"></span><span><span class="mop op-symbol large-op">∑</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.2777em;"><span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.3714em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal">λ</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">F</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1.2472em;vertical-align:-0.3831em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.7387em;"><span style="top:-2.453em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">A</span><span class="mpunct mtight">,</span><span class="mord mathnormal mtight">i</span></span></span></span><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∗</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.3831em;"><span></span></span></span></span></span></span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8641em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span></span>
<p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>L</mi><mi>B</mi></msub></mrow><annotation encoding="application/x-tex">L_B</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">L</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3283em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.0502em;">B</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> नए task पर loss है, <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>θ</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">\theta_i</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8444em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> weight संख्या <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6595em;"></span><span class="mord mathnormal">i</span></span></span></span> का मौजूदा मान है, <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msubsup><mi>θ</mi><mrow><mi>A</mi><mo separator="true">,</mo><mi>i</mi></mrow><mo>∗</mo></msubsup></mrow><annotation encoding="application/x-tex">\theta^*_{A,i}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.1059em;vertical-align:-0.4114em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.6887em;"><span style="top:-2.4247em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">A</span><span class="mpunct mtight">,</span><span class="mord mathnormal mtight">i</span></span></span></span><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∗</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.4114em;"><span></span></span></span></span></span></span></span></span></span> पुराने task के बाद उसका मान, <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>F</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">F_i</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">F</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> उसका महत्व, और <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>λ</mi></mrow><annotation encoding="application/x-tex">\lambda</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal">λ</span></span></span></span> बताता है कि नए task के मुकाबले पुराना task कितना मायने रखता है। हमारे उदाहरण में <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>F</mi><mo>=</mo><mo stretchy="false">(</mo><mn>10</mn><mo separator="true">,</mo><mtext> </mtext><mn>0.1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">F = (10,\ 0.1)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.1389em;">F</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord">10</span><span class="mpunct">,</span><span class="mspace"> </span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">0.1</span><span class="mclose">)</span></span></span></span> और <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>λ</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">\lambda = 1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal">λ</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">1</span></span></span></span> है।</p>
<h2 id="इस-तरीके-की-सीमाएँ">इस तरीके की सीमाएँ</h2>
<p>महत्व एक अनुमान है, जो एक ही बिंदु पर और हर weight के लिए अलग से निकाला जाता है। लेखक ख़ुद दिखाते हैं कि उनका अनुमान कभी-कभी इस बारे में ज़रूरत से ज़्यादा आश्वस्त होता है कि कौन-से weights ग़ैर-ज़रूरी हैं, और इसे इस तरीके की मुख्य कमज़ोरी बताते हैं (§2.2 और §3)। Atari games पर उनके प्रयोगों में EWC वाला agent एक के बाद एक कई games सीखता गया, लेकिन हर game के लिए अलग से train किए गए networks की बराबरी नहीं कर पाया। नतीजे अंकों की पहचान और games के बारे में हैं, बड़े language models के बारे में नहीं। हमारे दो weights और ग्राहकों के संदेश हमारा अपना सरलीकरण हैं।</p>
<ul>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> नई training के बाद पुरानी क्षमताओं में भारी गिरावट है; EWC पुराने data तक पहुँच के बिना इसे कम करने की कोशिश करता है।</li>
<li><a href="https://paweldubiel.com/hi/glossary/experience-replay">Experience Replay</a> इसी समस्या को दूसरे ढंग से हल करता है: वह weights के महत्व की जगह कुछ पुराने उदाहरण सँभालकर रखता है।</li>
<li><a href="https://paweldubiel.com/hi/glossary/continual-learning">Continual Learning</a> लक्ष्य बताता है, यानी पहले के tasks को बचाए रखते हुए नए tasks सीखना; EWC उसके तरीकों में से एक है।</li>
<li><a href="https://paweldubiel.com/glossary/fine-tuning" hreflang="pl">Fine-tuning [Polski]</a> तैयार model की आगे की training है; EWC अहम weights को छेड़ने पर penalty जोड़कर उसका लक्ष्य बदल देता है।</li>
</ul>
<p><em>पाठ और चित्र AI की मदद से तैयार किए गए हैं। दो weights, उनके महत्व और demonstration सिखाने के लिए बनाया गया मेरा अपना सरल उदाहरण हैं; चित्र एक रूपक है, model की बनावट का आरेख नहीं।</em></p>]]></content:encoded>
</item>
<item>
  <title>Reservoir Sampling</title>
  <link>https://paweldubiel.com/hi/glossary/reservoir-sampling</link>
  <guid isPermaLink="true">https://paweldubiel.com/hi/glossary/reservoir-sampling</guid>
  <pubDate>Sun, 11 Oct 2026 12:00:11 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>Customer service का एक model उन संदेशों पर सीखता है जो एक के बाद एक आते हैं। आप उनमें से कुछ को बाद में दोहराने के लिए बचाना चाहते हैं, लेकिन memory में सिर्फ़ चार जगहें हैं। आपको यह भी नहीं पता कि…</description>
  <content:encoded><![CDATA[<p>Customer service का एक model उन संदेशों पर सीखता है जो एक के बाद एक आते हैं। आप उनमें से कुछ को बाद में दोहराने के लिए बचाना चाहते हैं, लेकिन memory में सिर्फ़ चार जगहें हैं। आपको यह भी नहीं पता कि अभी कितने संदेश और आएँगे: बीस या बीस लाख।</p>
<p>पहले चार रख लें? तब memory सिर्फ़ शुरुआत को जानती है। हमेशा आख़िरी चार रखें? तब वह सिर्फ़ अंत को जानती है। "पूरे में से चार" का निष्पक्ष यादृच्छिक चुनाव करने के लिए या तो सब कुछ सँभालकर रखना पड़ता, या संदेशों की संख्या पहले से मालूम होनी चाहिए। सवाल यह है: <strong>जगहों की संख्या तय हो और stream की लंबाई मालूम न हो, तो हर संदेश को बराबर मौक़ा कैसे दिया जाए?</strong></p>
<p><strong>Reservoir Sampling</strong> ऐसे data पर, जिसकी संख्या हमें पहले से मालूम नहीं, एक ही बार गुज़रते हुए तय आकार का यादृच्छिक नमूना बनाए रखने का तरीका है। हर नए संदेश के बाद memory में, जिसे यहाँ reservoir कहा जाता है, अब तक आई हर चीज़ का एक निष्पक्ष यादृच्छिक नमूना होता है। सबसे सरल रूप, Algorithm R, का वर्णन <a href="https://doi.org/10.1145/3147.3165" rel="noopener noreferrer">Vitter, <em>Random Sampling with a Reservoir</em>, §2</a> में है, जो इसका श्रेय Alan Waterman को देते हैं।</p>
<p><img src="https://paweldubiel.com/assets/reservoir-sampling-pebble-stream-four-slot-tray.webp" alt="कंकड़ों और सीपियों की एक लंबी धारा चार खाँचों वाली लकड़ी की छोटी तश्तरी के पास से बह रही है; एक हाथ तश्तरी से एक कंकड़ निकाल रहा है, दूसरा उसकी जगह धारा से एक कंकड़ रख रहा है।" loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="दो-क़दमों-का-नुस्ख़ा">दो क़दमों का नुस्ख़ा</h2>
<ol>
<li>पहले चार संदेश बिना किसी यादृच्छिक चुनाव के memory में जाते हैं।</li>
<li>संदेश संख्या <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>t</mi></mrow><annotation encoding="application/x-tex">t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6151em;"></span><span class="mord mathnormal">t</span></span></span></span> (पाँचवाँ, छठा और उसके बाद का हर संदेश) <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>4</mn><mi mathvariant="normal">/</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">4/t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">4/</span><span class="mord mathnormal">t</span></span></span></span> की संभावना से memory में जाता है। अगर वह गया, तो बचाए गए चार में से यादृच्छिक रूप से चुने गए किसी एक की जगह लेता है।</li>
</ol>
<p>यानी पाँचवाँ संदेश 4/5 की संभावना से अंदर जाता है, सौवाँ 4/100 की संभावना से। नए संदेशों के अंदर जाने की संभावना घटती जाती है, लेकिन पुराने संदेश पहले ही कई बार निकाले जाने के ख़तरे से गुज़र चुके होते हैं, और ये दोनों असर एक-दूसरे को ठीक-ठीक बराबर कर देते हैं। पाँचवें संदेश के बाद इसे जाँच लेते हैं। वह 4/5 की संभावना से अंदर जाता है। पहला संदेश तभी बाहर होता है जब पाँचवाँ अंदर गया (4/5) और ठीक उसी की जगह पर पड़ा (1/4), यानी 1/5 की संभावना से। वह 4/5 की संभावना से बना रहता है: ठीक उतनी, जितनी पाँचवें की है। <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>t</mi></mrow><annotation encoding="application/x-tex">t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6151em;"></span><span class="mord mathnormal">t</span></span></span></span> संदेशों के बाद उनमें से हर एक <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>4</mn><mi mathvariant="normal">/</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">4/t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">4/</span><span class="mord mathnormal">t</span></span></span></span> की संभावना से memory में होता है।</p>
<h2 id="बराबर-मौक़ा-गारंटी-नहीं-है">बराबर मौक़ा गारंटी नहीं है</h2>
<p>प्रयोग में stream में 20 संदेश हैं। अठारह डिलीवरी के बारे में हैं, और दो, नौवाँ और पंद्रहवाँ, वापसी के बारे में। हर बार चलाने पर ऐसी stream 2000 बार गुज़ारी जाती है और गिना जाता है कि कोई स्थान आख़िर में कितनी बार memory में बचा। यादृच्छिक चुनाव असली हैं, इसलिए नतीजे हर बार प्रतिशत के एक अंश जितने अलग होते हैं।</p>
<div id="reservoir-sampling-lab"></div>
<p>Reservoir Sampling में हर bar करीब 20% का होता है, यानी 4/20। साथ ही ज़्यादातर runs में वापसी वाले दोनों संदेशों में से कोई भी memory में नहीं बचता। सटीक मान 3060/4845 है, यानी करीब 63%: 20 संदेशों में से चुने गए सभी चौकों में से इतने सिर्फ़ डिलीवरी वाले अठारह संदेशों से बने होते हैं। यह तरीका अलग-अलग संदेशों के साथ निष्पक्ष है, लेकिन इस बात का ध्यान नहीं रखता कि हर श्रेणी का कोई प्रतिनिधि मौजूद रहे।</p>
<h2 id="यह-कहाँ-मायने-रखता-है">यह कहाँ मायने रखता है</h2>
<p>दोहराव वाली training में Reservoir Sampling कभी-कभी buffer में लिखने का तरीका होता है: न stream की लंबाई मालूम होनी चाहिए, न tasks के बीच की सीमाएँ। <a href="https://arxiv.org/html/1902.10486v2#S2" rel="noopener noreferrer">Chaudhry et al., <em>Continual Learning with Tiny Episodic Memories</em>, §2, algorithm 2</a> इसे ठीक इसी तरह इस्तेमाल करते हैं। Image tasks पर उनके प्रयोगों में यह अच्छा चला, सिवाय बहुत छोटी memories के, जहाँ buffer से पहले की classes ग़ायब हो जाती थीं; तब वे रणनीतियाँ बेहतर रहीं जो classes के बराबर प्रतिनिधित्व का ध्यान रखती हैं (§4.4)। यह image classification का नतीजा है, LLM का नहीं।</p>
<p>Algorithm अपने आप में machine learning के बारे में नहीं है। Vitter का 1985 का पेपर अनजानी लंबाई वाले magnetic tape से records के यादृच्छिक चुनाव का वर्णन करता है और तेज़ रूप सुझाता है, जो हर record पर यादृच्छिक चुनाव करने की जगह यह निकालते हैं कि कितने records छोड़ने हैं। ग्राहकों के संदेश और 20 स्थानों वाली stream हमारा अपना उदाहरण हैं।</p>
<ul>
<li><a href="https://paweldubiel.com/hi/glossary/experience-replay">Experience Replay</a> को पुराने उदाहरणों वाला buffer चाहिए; Reservoir Sampling यह तय करने के तरीकों में से एक है कि उसमें क्या जाए।</li>
<li><a href="https://paweldubiel.com/hi/glossary/continual-learning">Continual Learning</a> सीमित memory के साथ data की stream से सीखना मानकर चलता है, यानी ऐसी स्थिति जिसमें सब कुछ बचाकर नहीं रखा जा सकता।</li>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> तब और बढ़ सकता है जब छोटी memory से किसी पुरानी श्रेणी के सारे उदाहरण निकल जाएँ।</li>
</ul>
<p><em>पाठ और चित्र AI की मदद से तैयार किए गए हैं। संदेशों की stream और demonstration सिखाने के लिए बनाया गया मेरा अपना सरल उदाहरण हैं; चित्र एक रूपक है, algorithm का आरेख नहीं।</em></p>]]></content:encoded>
</item>
<item>
  <title>Experience Replay</title>
  <link>https://paweldubiel.com/hi/glossary/experience-replay</link>
  <guid isPermaLink="true">https://paweldubiel.com/hi/glossary/experience-replay</guid>
  <pubDate>Sun, 11 Oct 2026 08:22:26 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>एक model ने ग्राहकों के सवालों को &quot;डिलीवरी&quot; और &quot;वापसी&quot; विभागों में भेजना सीख लिया है। अब आप उसे शिकायतें पहचानना सिखा रहे हैं, जैसे &quot;सामान टूटा हुआ पहुँचा&quot;। अगर आगे के अभ्यासों में उसे सिर्फ़…</description>
  <content:encoded><![CDATA[<p>एक model ने ग्राहकों के सवालों को "डिलीवरी" और "वापसी" विभागों में भेजना सीख लिया है। अब आप उसे शिकायतें पहचानना सिखा रहे हैं, जैसे "सामान टूटा हुआ पहुँचा"। अगर आगे के अभ्यासों में उसे सिर्फ़ शिकायतें दिखती हैं, तो हो सकता है कि वह पहले से जाने-पहचाने "पार्सल कहाँ है?" को पहले से ख़राब सँभाले। पूरा पुराना archive उपलब्ध नहीं है। क्या बचाकर रखे गए कुछ ही संदेशों पर लौटा जा सकता है?</p>
<p><strong>Experience Replay (ER)</strong> का मतलब है पहले के कुछ उदाहरणों को सँभालकर रखना और उन्हें training में दोबारा इस्तेमाल करना। सरल रूप में हम नए data के batch में memory से लिए गए उदाहरण मिला देते हैं; इस memory को <em>replay buffer</em> कहते हैं। यह दोहराव के लिए रखे गए data का डिब्बा है, model के पूरे ज्ञान का record नहीं। ऐसी साझा training का वर्णन <a href="https://arxiv.org/html/1902.10486v2#S2" rel="noopener noreferrer">Chaudhry et al., <em>Continual Learning with Tiny Episodic Memories</em>, §2, algorithm 1</a> में है।</p>
<p><img src="https://paweldubiel.com/assets/experience-replay-card-box-returning-examples.webp" alt="बचाकर रखे गए गहरे नीले और गेरुए कार्ड एक छोटे डिब्बे से निकलकर नए लाल कार्डों की क़तार में लौट रहे हैं: आगे की training के दौरान दोहराव का रूपक।" loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="अगले-अभ्यास-में-क्या-जाता-है">अगले अभ्यास में क्या जाता है</h2>
<p>Archive खोने से पहले हमने चार संदेश उनके सही विभागों के साथ बचा लिए थे। अब हमारे पास चार नई शिकायतें हैं। दोहराव के बिना model चार नए संदेशों पर सीखता है। दोहराव के साथ वह चार पुराने संदेशों पर भी अभ्यास करता है: उसे फिर से संकेत मिलता है कि "पार्सल कहाँ है?" डिलीवरी का मामला है। इस छोटे उदाहरण में हम पूरा buffer इस्तेमाल करते हैं; बड़े buffers से आम तौर पर एक यादृच्छिक हिस्सा लिया जाता है।</p>
<p>लेकिन memory की जगहें गिन लेना काफ़ी नहीं है। डिलीवरी के बारे में बचाए गए चार सवालों में वापसी का एक भी उदाहरण नहीं है। उनमें से दो की जगह "ख़रीदा हुआ सामान कैसे लौटाऊँ?" और "मुझे कमीज़ लौटानी है" रख देने पर दोहरावों की संख्या वही रहती है, लेकिन अब उनमें पहले के दोनों विभाग शामिल हैं। नीचे का प्रयोग <strong>data के batch में उदाहरण गिनता है; वह model की accuracy का अनुमान नहीं लगाता</strong>।</p>
<div id="experience-replay-lab"></div>
<h2 id="दोहराव-सिर्फ़-उपलब्ध-data-पर-मदद-करता-है">दोहराव सिर्फ़ उपलब्ध data पर मदद करता है</h2>
<p>Model को पहले के जवाबों का अभ्यास करने का मौक़ा मिलता है, सारी क्षमताएँ बची रहने की गारंटी नहीं। यादृच्छिक छोटा नमूना किसी दुर्लभ श्रेणी को पूरी तरह छोड़ सकता है; शोधकर्ताओं ने यह समस्या बहुत छोटे buffers के साथ देखी (उसी पेपर का §4.4)। हमारे संदेश हमारा अपना उदाहरण हैं, उन प्रयोगों का नतीजा नहीं। Training का असर अलग रखे गए पुराने और नए संदेशों पर जाँचना पड़ता है, जो training में इस्तेमाल न हुए हों। Buffer memory भी घेरता है और उसके लिए चुने हुए data को सँभालकर रखना पड़ता है।</p>
<p>यह भी देखें: <a href="https://paweldubiel.com/hi/glossary/reservoir-sampling">Reservoir Sampling</a> — यह तय करने का तरीका कि stream के कौन-से उदाहरण तय आकार वाले buffer में जाएँ, जिसमें हर उदाहरण को बराबर मौक़ा मिलता है।</p>
<p>Games में, <a href="https://paweldubiel.com/glossary/reinforcement-learning" hreflang="pl">Reinforcement Learning [Polski]</a> में — यानी rewards के आधार पर actions सीखने में — स्थिति, action, reward और अगली स्थिति सँभालकर रखी जाती है। ऐसे records को यादृच्छिक ढंग से चुनने से ठीक एक के बाद एक आने वाली घटनाओं पर निर्भरता घटती है (<a href="https://storage.googleapis.com/deepmind-media/dqn/DQNNaturePaper.pdf#page=7" rel="noopener noreferrer">Mnih et al., <em>Human-level control through deep reinforcement learning</em>, Methods, "Training algorithm for deep Q-networks"</a>)। यह सही विभाग वाले संदेश से अलग क़िस्म का data है; Atari के नतीजों को सीधे LLM पर लागू नहीं करना चाहिए।</p>
<ul>
<li><a href="https://paweldubiel.com/hi/glossary/continual-learning">Continual Learning</a> पहले की क्षमताओं को बचाए रखते हुए आगे सीखने का लक्ष्य बताता है; ER उसे हासिल करने के तरीकों में से एक है।</li>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> पुरानी क्षमताओं में भारी गिरावट को बताता है, जिसे दोहराव कम कर सकता है।</li>
<li><a href="https://paweldubiel.com/glossary/fine-tuning" hreflang="pl">Fine-tuning [Polski]</a> model की आगे की training है; replay उसके data का चुनाव बदल देता है। पुराने संदेशों को बातचीत में बस चिपका देना model का ऐसा update नहीं है।</li>
</ul>
<p><em>पाठ और चित्र AI की मदद से तैयार किए गए हैं। संदेश और demonstration सिखाने के लिए बनाया गया मेरा अपना सरल उदाहरण हैं; चित्र एक रूपक है, model की बनावट का आरेख नहीं।</em></p>]]></content:encoded>
</item>
<item>
  <title>Continual Learning</title>
  <link>https://paweldubiel.com/hi/glossary/continual-learning</link>
  <guid isPermaLink="true">https://paweldubiel.com/hi/glossary/continual-learning</guid>
  <pubDate>Sat, 10 Oct 2026 20:03:52 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>एक model ग्राहकों के संदेशों को &quot;ऑर्डर&quot; और &quot;वापसी&quot; विभागों में भेजता है। वह &quot;मेरा पार्सल कहाँ है?&quot; जैसे संदेश को पहचान लेता है। अब कंपनी शिकायतों का विभाग खोलती है। आप model को ख़राब निकले सामान…</description>
  <content:encoded><![CDATA[<p>एक model ग्राहकों के संदेशों को "ऑर्डर" और "वापसी" विभागों में भेजता है। वह "मेरा पार्सल कहाँ है?" जैसे संदेश को पहचान लेता है। अब कंपनी शिकायतों का विभाग खोलती है। आप model को ख़राब निकले सामान वाले संदेशों पर आगे सिखाते हैं। शिकायतें पहले से बेहतर ढंग से सही जगह पहुँचने लगती हैं, लेकिन डिलीवरी के बारे में कुछ सवाल भी नए विभाग में जाने लगते हैं। सिर्फ़ शिकायतों को जाँचने से तरक़्क़ी का झूठा एहसास होता।</p>
<p>आपको ज़रूरत है कि <strong>model को नई चीज़ें सिखाई जाएँ और पहले की क्षमताएँ बनी रहें</strong>। यही <strong>Continual Learning</strong> का लक्ष्य है: एक के बाद एक आते data या tasks पर सीखना, यह ध्यान में रखते हुए कि model पहले क्या सीख चुका है। यह नाम एक समस्या और तरीकों के एक परिवार को बताता है; यह इस बात की गारंटी नहीं है कि model कुछ नहीं भूलेगा। इस ज़रूरत का वर्णन <a href="https://arxiv.org/html/1612.00796v2#S1" rel="noopener noreferrer">Kirkpatrick et al., <em>Overcoming catastrophic forgetting in neural networks</em>, §1</a> में मिलता है।</p>
<p><img src="https://paweldubiel.com/assets/continual-learning-embroidered-sampler-growing-repertoire.webp" alt="कपड़े के एक ही टुकड़े पर कढ़े हुए गोले और त्रिकोण बने रहते हैं, और सुई एक नया लहरदार नमूना जोड़ रही है: पहले की क्षमताओं को बचाए रखते हुए नई क्षमताएँ जोड़ने का रूपक।" loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="सिखाने-और-जाँचने-में-हम-क्या-बदलते-हैं">सिखाने और जाँचने में हम क्या बदलते हैं</h2>
<p>मान लीजिए कि पहले की training में इस्तेमाल हुए उदाहरणों का पूरा archive अब उपलब्ध नहीं है। उसे हटाने से पहले हमने एक छोटा नमूना बचा लिया था: 20 संदेश, जिनके सही विभाग हमें मालूम हैं। एक संभव तरीका यह है कि इस नमूने को शिकायतों के नए उदाहरणों में मिला दिया जाए। इससे आगे की training को यह संकेत भी मिलता रहता है कि "मेरा पार्सल कहाँ है?" को अब भी सही ढंग से सँभालना है। पुराने उदाहरणों को दोबारा इस्तेमाल करना उन रणनीतियों में से एक है जिनका वर्णन <a href="https://arxiv.org/pdf/1904.07734v1" rel="noopener noreferrer">van de Ven और Tolias, <em>Three scenarios for continual learning</em>, §3.3</a> में है।</p>
<p>यह भी देखें: <a href="https://paweldubiel.com/hi/glossary/experience-replay">Experience Replay</a> — पुराने उदाहरणों का एक छोटा नमूना सँभालकर रखना और उसे नई training में मिलाना।</p>
<p>मूल्यांकन करने वाली टीम पुराने संदेशों का एक अलग test रखती है, जिसे <strong>हम training में इस्तेमाल नहीं करते</strong>। हर update के बाद हम पुरानी और नई, दोनों श्रेणियों की जाँच करते हैं। नीचे दिए गए आँकड़े एक गढ़ा हुआ उदाहरण हैं, किसी शोध का नतीजा नहीं; हर test में 100 संदेश हैं।</p>

























<table><thead><tr><th>Model का रूप</th><th>सही पहचाने गए पुराने संदेश</th><th>सही पहचानी गई शिकायतें</th></tr></thead><tbody><tr><td>नई training से पहले</td><td>90/100</td><td>0/100 — यह श्रेणी थी ही नहीं</td></tr><tr><td>सिर्फ़ शिकायतों पर training के बाद</td><td>40/100</td><td>92/100</td></tr><tr><td>पुराने संदेशों के नमूने के साथ training के बाद</td><td>89/100</td><td>87/100</td></tr></tbody></table>
<p>आख़िरी रूप पहले की क्षमता को बेहतर बचाए रखता है, हालाँकि शिकायतों को वह दूसरे रूप से कुछ कमज़ोर पहचानता है। तालिका यह दिखाती है कि <strong>किन चीज़ों की तुलना करनी है</strong>; वह यह वादा नहीं करती कि 20 उदाहरण जोड़ने पर ऐसा ही नतीजा मिलेगा।</p>
<h2 id="शर्तें-कठिनाई-को-बदल-देती-हैं">शर्तें कठिनाई को बदल देती हैं</h2>
<p>हमारे उदाहरण में model अब तक सीखे गए सभी विभागों में से ख़ुद चुनता है। "यह संदेश नई श्रेणी का है" जैसा इशारा test को आसान बना देता। तरीकों की तुलना करते समय यह अहम है कि ऐसे इशारे और tasks के बीच की सीमाएँ उपलब्ध हैं या नहीं (<a href="https://arxiv.org/pdf/1904.07734v1" rel="noopener noreferrer">van de Ven और Tolias, §2–2.3</a>)। छोटा नमूना दुर्लभ सवालों को छोड़ सकता है; अच्छा औसत यह साबित नहीं करता कि हर क्षमता बची हुई है।</p>
<ul>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> पुरानी क्षमताओं में भारी गिरावट को बताता है; उसका demonstration दिखाता है कि नई training साझा settings को कैसे बदल देती है।</li>
<li><a href="https://paweldubiel.com/glossary/fine-tuning" hreflang="pl">Fine-tuning [Polski]</a> चुने हुए उदाहरणों पर model की आगे की training है। हर नई training के बाद हम पहले की क्षमताओं को भी जाँचते हैं।</li>
<li><a href="https://paweldubiel.com/glossary/knowledge-distillation" hreflang="pl">Knowledge Distillation [Polski]</a> पुराने model से update किए जा रहे model तक संकेत पहुँचा सकता है; यह मूल संदेशों को सँभालकर रखने से अलग रणनीति है (van de Ven और Tolias के पेपर का §3.3)।</li>
</ul>
<p><em>पाठ और चित्र AI की मदद से तैयार किए गए हैं; संदेश, नमूने का आकार और तालिका के नतीजे सिखाने के लिए बनाया गया मेरा अपना उदाहरण हैं। चित्र पहले की क्षमताओं को बचाए रखने का लक्ष्य दिखाता है, model की बनावट नहीं।</em></p>]]></content:encoded>
</item>
</channel>
</rss>