𝗖𝗼𝗻𝘁𝗲𝘅𝘁 𝗘𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝗶𝗻𝗴 𝗳𝗼𝗿 𝗣𝗿𝗼𝗺𝗽𝘁 𝗘𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝘀
लोग कहते हैं कि प्रॉम्प्ट इंजीनियरिंग खत्म हो गई है। उनका कहना है कि कॉन्टेक्स्ट इंजीनियरिंग ने उसकी जगह ले ली है। यह गलत है।
प्रॉम्प्ट इंजीनियरिंग कॉन्टेक्स्ट इंजीनियरिंग का केवल एक हिस्सा है। प्रॉम्प्टिंग वह है जो आप कहते हैं। कॉन्टेक्स्ट इंजीनियरिंग वह सब कुछ है जो मॉडल देखता है। इसमें सिस्टम प्रॉम्प्ट्स (system prompts), टूल डेफिनिशन (tool definitions), रिट्रीव्ड डॉक्यूमेंट्स (retrieved documents) और मेमोरी शामिल हैं।
आपका प्रॉम्प्ट एक बड़ी पहेली का केवल एक हिस्सा है। अब इसका दायरा और बढ़ गया है।
सब कुछ हल करने के लिए विशाल कॉन्टेक्स्ट विंडोज़ (context windows) का उपयोग करने की कोशिश न करें। एक मिलियन-टोकन विंडो का मतलब यह नहीं है कि मॉडल एक मिलियन टोकन तक उपयोगी ध्यान (attention) दे पाएगा। अधिक इनपुट वास्तव में मॉडल के प्रदर्शन को खराब कर सकता है।
आपको दो मुख्य समस्याओं से सावधान रहना चाहिए:
• Lost in the middle (बीच में खो जाना): मॉडल प्रॉम्प्ट की शुरुआत और अंत पर सबसे अच्छा ध्यान केंद्रित करते हैं। जब महत्वपूर्ण डेटा बीच में होता है, तो उन्हें कठिनाई होती है। • Context rot (कॉन्टेक्स्ट का क्षय): जैसे-जैसे इनपुट की लंबाई बढ़ती है, तर्क (reasoning) और रिकॉल (recall) की क्षमता कम होने लगती है। जब विंडो भर जाती है, तो मॉडल के लिए सरल कार्य भी कठिन हो जाते हैं।
लक्ष्य हाई-सिग्नल टोकन (high-signal tokens) का सबसे छोटा सेट खोजना है जो काम पूरा कर सके। अपनी कॉन्टेक्स्ट विंडो को एक बजट की तरह समझें।
अपने बजट को प्रबंधित करने के लिए इन छह पैटर्न्स का उपयोग करें:
• Attention budgeting (अटेंशन बजटिंग): सभी बॉयलरप्लेट (boilerplate) और अनावश्यक टेक्स्ट को हटा दें। केवल हाई-सिग्नल कंटेंट का उपयोग करें। • Retrieval placement (रिट्रीवल प्लेसमेंट): प्रासंगिक डेटा को शुरुआत या अंत में रखें। महत्वपूर्ण जानकारी को बीच में रखने से बचें। • Tool-result formatting (टूल-रिजल्ट फॉर्मेटिंग): संक्षिप्त डेटा वापस करें। विंडो में बड़े API ऑब्जेक्ट्स को न डालें। • Schema design (स्कीमा डिज़ाइन): स्ट्रक्चर्ड आउटपुट का उपयोग करें। त्रुटियों से बचने के लिए नेस्टिंग लेवल (nesting levels) को कम रखें। • System vs. turn separation (सिस्टम बनाम टर्न सेपरेशन): मुख्य नियमों को सिस्टम प्रॉम्प्ट में रखें। विशिष्ट डेटा को यूजर टर्न्स (user turns) में रखें। • Memory and compaction (मेमोरी और कॉम्पैक्शन): स्टेट (state) को विंडो के बाहर सेव करें। थ्रेड को सक्रिय रखने के लिए पुराने डेटा का सारांश (summarize) तैयार करें।
कॉन्टेक्स्ट इंजीनियरिंग केवल RAG नहीं है। यह प्लेसमेंट और संयम के बारे में है। यदि आप पहले से ही अच्छा प्रॉम्प्ट लिखते हैं, तो आप शून्य से शुरुआत नहीं कर रहे हैं। आप उस बजट को प्रबंधित करना सीख रहे हैं जिसे आपका प्रॉम्प्ट खर्च करता है।
Source: https://dev.to/anoopk/context-engineering-for-people-who-already-know-how-to-prompt-2pj1
Optional learning community: https://t.me/GyaanSetuAi