मॉडल याद नहीं रखता। आप रखते हैं।

Large Language Models (LLMs) के पास मेमोरी नहीं होती है।

मैं सोचता था कि हर चैट सेशन अपना कॉन्टेक्स्ट (context) स्टोर करता है। मैं गलत था। जब आप किसी LLM से बात करते हैं, तो वह आपके पिछले सवाल को याद नहीं रखता, जब तक कि आप उसे वापस न भेजें।

मॉडल stateless होता है। इसका मतलब है कि हर रिक्वेस्ट एक नई शुरुआत है।

बातचीत करने के लिए, आपको इतिहास (history) को खुद मैनेज करना होगा। आप ऐसा हर नई रिक्वेस्ट के साथ पिछले सभी मैसेज का एक array भेजकर करते हैं।

"मेमोरी" सिर्फ मैसेज की एक लिस्ट है:

  • User: नमस्ते।
  • Assistant: नमस्ते!
  • User: आप कैसे हैं?

यदि आप अपनी अगली रिक्वेस्ट में पहली दो लाइनें शामिल नहीं करते हैं, तो मॉडल को पता नहीं चलेगा कि आपने पहले ही नमस्ते कहा था।

मैंने यह SDKs से बचकर सीखा। अधिकांश डेवलपर्स इस जटिलता को छिपाने के लिए Anthropic SDK जैसे टूल्स का उपयोग करते हैं। SDK आपके लिए मैसेज हिस्ट्री और हेडर को संभालता है।

यदि आप सीखना चाहते हैं कि LLMs कैसे काम करते हैं, तो इसके बजाय raw fetch का उपयोग करें। किसी abstraction का उपयोग न करें। जब आप रिक्वेस्ट और रिस्पॉन्स साइकिल को मैन्युअल रूप से मैनेज करते हैं, तो आप हर निर्णय को देख पाते हैं।

यह मैन्युअल कंट्रोल आपको बाद में उन्नत रणनीतियाँ (advanced strategies) बनाने की अनुमति देता है, जैसे:

  • लंबी चैट को मैनेज करने के लिए Sliding windows.
  • Retrieval Augmented Generation (RAG).
  • Semantic search.

इस array को समझना AI डेवलपमेंट की नींव है। आप ही कॉन्टेक्स्ट प्रदान कर रहे हैं। मॉडल केवल वही जानता है जो आप भेजते हैं।

Source: https://dev.to/marcochavezco/the-model-doesnt-remember-you-do-3mmk