इंजीनियरिंग प्रॉम्प्ट
इस गाइड में विशाल भाषा मॉडल्स (कभी-कभी GPT मॉडल्स के रूप में उपलभ्ध) जैसे GPT-4 से बेहतर परिणाम प्राप्त करने के लिए रणनीतियों और वक्ताओं को साझा किया गया है। यहां वर्णित विधियाँ कभी-कभी अधिक प्रभाव के लिए संयोजन में डिप्लाय हो सकती हैं। हम विधियों का प्रयोग करने की सलाह देते हैं ताकि आप जो विधियाँ उपयुक्त पाते हैं, वह खोज सकें।
यहां प्रदर्शित उदाहरणों में से कुछ वर्तमान में हमारे सबसे पेशेवर मॉडल gpt-4
के साथ काम करते हैं। सामान्यत:अगर आपको लगता है कि किसी मॉडल को किसी कार्य में असफलता मिलती है और एक अधिक सक्षम मॉडल उपलब्ध है, तो फिर से कोशिश करने में लाभ हो सकता है।
सुझाव: यह ट्यूटोरियल आधिकारिक ओपनएआई टिप इंजीनियरिंग गाइड का अनुवाद है। ट्यूटोरियल में टिप शब्दों की रणनीति/ताकत का विवरण है, और कैसे LLM को इंष्ट्रूक्शन द्वारा वांछित परिणाम लौटाना है, उनके माध्यम से।
बेहतर परिणाम प्राप्त करने के लिए छह रणनीतियाँ
स्पष्ट निर्देश लिखें
ये मॉडल आपके विचारों को नहीं पढ़ सकते। यदि आउटपुट बहुत लंबा हो, तो संक्षेपित उत्तर के लिए पूछें। यदि आउटपुट बहुत सरल हो, तो विशेषज्ञ स्तर का लेखन के लिए पूछें। यदि आपको प्रारूप अच्छा नहीं लगता है, तो वह प्रारूप दिखाएं जो आप देखना चाहते हैं। जितना कम मॉडल को आपके विचारों का अनुमान लगाना पड़े, उतना ही ज्यादा संभावना है कि आपको उसका प्राप्त हो।
संदर्भ पाठ प्रदान करें
भाषा मॉडल विशेष रूप से जाली जवाब तैयार कर सकते हैं, खासकर जब अत्याधुनिक विषयों या उदाहरण और URL के लिए पूछा जाता है। जैसा कि नोट्स की कागजात स्टूडेंट को परीक्षा में अच्छे अंक प्राप्त करने में मदद कर सकती है, इसी प्रकार इन मॉडल्स को संदर्भ पाठ प्रदान करने से कम गढ़बढ़ के साथ उत्तर देने में मदद मिल सकती है।
कठिन कार्य को सरल उपकार में विभाजित करें
सॉफ़्टवेयर इंजीनियरिंग में एक जटिल सिस्टम को सम्मिलित संरचनात्मक घटक के समूह में विभाजित करना अच्छी प्रैक्टिस है, उसी प्रकार, भाषा मॉडल को सौंपे गए कार्यों को सरल हंतु वृत्तिओं में विभाजित करना भी उसी तरह से सही है। जटिल कार्यों के अधिक त्रुटि दर सरल कार्यों से अधिक होती है। इसके अतिरिक्त, जटिल कार्यों को अक्सर पहले के कार्यों के आउटपुट को उपयोग करके बाद के कार्यों के इनपुट को निर्माण करने के लिए विभाजित किया जा सकता है।
मॉडल को "सोचने" का समय दें
यदि 17 को 28 से गुणा करने के लिए पूछा जाए, तो आप शीघ्रता से नहीं जानते होंगे, लेकिन इसे समय लेकर तौल सकते हैं। उसी तरह, मॉडल यह ज्यादा तर्कासंद त्रुटियों का इलाज करते समय नतीजा बताने की कोशिश करते हैं, जब वह तुरंत इसे उत्तर देने की कोशिश करते हैं। एक उत्तर की ओर इष्टत बाध्यता करने से पहले "चिंतन" के लिए मॉडल को बनाने के लिए "चिंतन की श्रृंखला" का प्रयोग करने से मॉडल को सही उत्तर तक के लिए सार्थक तरीके से अधिक संभावना होती है।
बाहरी उपकरणों का उपयोग करें
मॉडल की कमियों को दूसरे उपकरणों के आउटपुट से पूर्ण करके उनका मुकाबला करें। उदाहरण के लिए, एक पाठ प्राप्ति प्रणाली (कभी-कभी RAG या प्राप्ति युक्त जनरेशन कहा जाता है) मॉडल को संबंधित दस्तावेज़ के बारे में बता सकती है। ओपनएआई का कोड इंटरप्रीटर जैसा कोड को चलाने में मॉडल की मदद कर सकता है। यदि किसी कार्य को एक भाषा मॉडल की बजाय एक उपकरण द्वारा विश्वसनीयता या कुशलतापूर्वक किया जा सकता है, तो इसे प्राप्त करने के लिए उसे बाहरी उपकरणों के प्राप्त करें।
बदलावों का सिद्धांतिक रूप से परीक्षण करें
प्रदर्शन को सुधारना आसान होता है अगर आप इसे माप सकते हैं। कुछ मामलों में, प्रॉम्प्ट का संशोधन कुछ विशिष्ट उदाहरणों पर बेहतर प्रदर्शन प्राप्त कर सकता है, लेकिन एक प्रतिनिधित्वक उदाहरण सेट पर कम व्यापक प्रदर्शन करने के लिए अधिक समानिक उपयोग से अधिक प्रदर्शन कर सकता है। इसलिए चेक करने के लिए कि सुनिश्चित करने के लिए नेट प्रदर्शन के लिए कोई भी परिवर्तन को सुनिश्चित करने के लिए एक व्यापक परीक्षण सूट (एक "इवैल" के रूप में जाना जाता है) की परिभाषा करने की आवश्यकता हो सकती है।
वक्ताओं
ऊपर नीचे दिए गए हर रणनीति को विशिष्ट वक्ता के साथ प्रतिष्ठापित किया जा सकता है। इन टैक्टिक्स का मकसद विचारों को कोशिश करने के लिए में छोटे या बड़े कुछ भी हो सकती है। यह बिल्कुल पूरी तरह से विस्तृत नहीं हैं, और आपको यह स्वतंत्रता महसूस करनी चाहिए कि यहां व्यक्त नहीं हैं।
प्रोम्प्ट शब्द उदाहरण विवरण
हम सभी जानते हैं कि OpenAI को बुलाने वाला चैट मॉडल API में तीन संदेश प्रकार होते हैं, SYSTEM, USER और ASSISTANT, और इन तीन संदेशों के कार्य निम्नलिखित होते हैं:
संदेश प्रकार (api के भूमिका पैरामीटर के समर्पित) | विवरण |
---|---|
SYSTEM | सिस्टम संदेश सहायक की व्यवहार सेट करने में मदद करता है। उदाहरण के लिए, आप सहायक की व्यक्तित्व को संशोधित कर सकते हैं या चैट के दौरान उसके व्यवहार के बारे में विशेष निर्देश दे सकते हैं। हालांकि ध्यान दें कि सिस्टम संदेश वैकल्पिक होता है और सिस्टम संदेश के बिना मॉडल का व्यवहार संभावना है कि "आप एक सहायक हैं" जैसा कोई साधारण संदेश का उपयोग कर रहे हैं। |
USER | उपयोगकर्ता संदेश उपयोगकर्ता इनपुट का मामला होता है। |
ASSISTANT | Helper संदेश दिखाता है कि GPT क्या वापस कर सकता है। |
इस ट्यूटोरियल में प्रोम्प्ट शब्दों की उदाहरण निम्नलिखित प्रारूप में समझाएं जाएंगे।
// SYSTEM Message
यह दिखाता है कि सिस्टम संदेश प्रोम्प्ट शब्द कैसे सेट करें।
// USER Message
यह दिखाता है कि उपयोगकर्ता संदेश प्रोम्प्ट शब्द कैसे सेट करें।
// ASSISTANT Message
यह दिखाता है कि GPT कुछ वापस क्या कर सकता है।
रणनीति: स्पष्ट निर्देश लिखें
तकनीक: अधिक संबंधित उत्तर प्राप्त करने के लिए अपने प्रश्न में विस्तार जोड़ें
एक अत्यधिक संबंधित प्रतिक्रिया प्राप्त करने के लिए सुनिश्चित करें कि अनुरोध किसी भी महत्वपूर्ण विवरण या संकेत प्रदान करता है। अन्यथा आप मॉडल को अनुमान करने के लिए छोड़ रहे हैं।
खराब | बेहतर |
एक्सेल में नंबर कैसे जोड़े? | मैं कैसे एक एकड़ डॉलर राशि की पंक्ति को जोड़ सकता हूँ? मैं इसे स्वचालित रूप से पूरी पंक्ति के लिए करना चाहता हूँ जिसमें सभी राशियों का परिणाम वाम ओर "कुल" नामक स्तंभ में आ जाता है। |
राष्ट्रपति कौन है? | 2021 में मेक्सिको के राष्ट्रपति कौन था, और चुनाव कितनी देर में होते हैं? |
फिबोनाची अनुक्रम की गणना करने के लिए कोड लिखें। | एक टाइपस्क्रिप्ट फ़ंक्शन लिखें जो फ़ाइबोनाची अनुक्रम की कुशलता से गणना करे। प्रत्येक टुकड़ा का व्याख्यान करने के लिए कोड कमेंट करें और यह बताएं कि हर टुकड़ा क्या करता है और उसे इस तरह क्यों लिखा गया है। |
मीटिंग नोट्स का संक्षेप लिखें। | मीटिंग नोट्स का संक्षेप एक ही पैराग्राफ में लिखें। फिर प्रकटन करें वक्ताओं की सूचक बातें और उनके प्रमुख बिंदुओं की सूची का मार्कडाउन बनाएं। अंत में, यदि हो, तो वक्ताओं द्वारा सुझाए गए अगले कदम या कार्रवाई को सूचीबद्ध करें। |
तकनीक: मॉडल को एक पर्सोना अपनाने के लिए कहें
मॉडल को अपने उत्तरों में उपयोग करने के लिए व्यक्तित्व निर्दिष्ट करने के लिए सिस्टम संदेश का उपयोग किया जा सकता है।
// SYSTEM Message
जब मैं किसी चीज को लिखने के लिए मदद मांगता हूँ, तो आपको हर पैराग्राफ में कम से कम एक मजाक या खेलनेवाला टिप्पणी का समावेशित डॉक्यूमेंट से जवाब देना होगा।
// USER Message
मेरे स्टील बोल्ट वेंडर को धन्यवाद पत्र लिखें क्योंकि उन्होंने समय पर और शॉर्ट नोटिस में डिलीवरी करवाई है। इससे हमें एक महत्वपूर्ण आदेश संपादित करने की संभावना हो गई थी।
तकनीक: स्पष्ट रूप से प्रासंगिक भागों की संकेतक उपयोग करें
तिकड़ीदार वर्तनी, एक्सएमएल टैग, अनुभाग शीर्षक आदि जैसे सीमांत भागों को विभिन्न रूप से व्यवहार करने के लिए प्रतीक उपयोगी हो सकते हैं।
// USER Message
तीन अल्पकथा से जुड़ी पाठ को एक हाइकू से संक्षेपित करें।
"""यहाँ पाठ डालें"""
// SYSTEM Message
आपको दो लेख (एक्सएमएल टैग के साथ सीमित) प्रदान किए जाएंगे जो समान विषय पर होंगे। पहले हर लेख का तर्क संक्षेपित करें। फिर बताएं कि उनमें से कौन बेहतर तर्क करता है और यह क्यों है।
// USER Message
<article> यहाँ पहला लेख डालें </article>
<article> यहाँ दूसरा लेख डालें </article>
// SYSTEM Message
आपको एक थीसिस सारांश और इसके लिए सुझाई गई शीर्षक प्रदान किया जाएगा। थीसिस शीर्षक पाठक को थीसिस के विषय का अच्छा विचार देना चाहिए, लेकिन आकर्षक भी होना चाहिए। यदि शीर्षक इन मानकों को पूरा नहीं करता है, तो 5 विकल्प दिखाएँ।
// USER Message
सारांश: यहाँ सारांश डालें
शीर्षक: यहाँ शीर्षक डालें
इस तरह के सीधे कार्यों के लिए, सीमांतक उपयोग करना बाहरी प्रभाव नहीं डाल सकता। हालांकि, कितनी भी जटिल एक कार्य होता है, उतना अधिक महत्वपूर्ण होता है कि कार्य विवरणों को स्पष्ट करना। मॉडल को समझने के लिए विशेषण का उपयोग न करें।
रणनीति: किसी कार्य को पूरा करने के लिए आवश्यक चरणों का निर्देश दें
कुछ कार्यों को चरणों की एक क्रमबद्ध सूची के रूप में निर्दिष्ट करना सबसे उपयुक्त होता है। इन चरणों को स्पष्टता से लिखना मॉडल को इन चरणों का पालन करना आसान बना सकता है।
// SYSTEM Message
उपयोगकर्ता इनपुट करने के लिए निम्नलिखित चरणों का पालन करें।
1 - उपयोगकर्ता तीन अंकों में दिए गए पाठ के सारांश को एक वाक्य में संक्षेपित करेगा जिसमें प्रिफिक्स "सारांश:" होगा।
2 - चरण 1 से सारांश को स्पेनिश में अनुवाद करें, जिसमें प्रिफिक्स "अनुवाद:" होगा।
// USER Message
"""यहां पाठ डालें"""
रणनीति: उदाहरण देना
सामान्य निर्देश देना सभी उदाहरणों पर लागू होता है, वे सभी कार्यों को स्पष्ट रूप से वर्णित करने की तुलना में सामान्य रूप से अधिक प्रभावी होता है, लेकिन कुछ मामलों में उदाहरण देना सबके लिए आसान हो सकता है। उदाहरण के द्वारा, यदि आपका उद्देश्य है कि मॉडल एक विशेष प्रकार के प्रश्नों के लिए एक संदर्भ रचने का अनुसरण करे, जो स्पष्ट रूप से विवरण न करना संभव हो। इसे "कम-शॉट" प्रॉम्प्टिंग के रूप में जाना जाता है।
// SYSTEM Message
एक ही स्टाइल में जवाब दें।
// USER Message
मुझे संधेहा के बारे में सिखाएं।
// ASSISTANT Message
वह नदी जो सबसे गहरी घाटी की खुदाई करती है, वह आम हल्के से ज़रा सा सॉर्सा से बहती है; सबसे शानदार संगीत सिर्फ एक ही नोट से शुरू होता है; सबसे जटिल टैपेस्ट्री का आरंभ एक ही धागे से होता है।
// USER Message
मुझे समुंदर के बारे में सिखाओ।
रणनीति: उत्पाद की इच्छित लंबाई को निर्दिष्ट करना
आप मॉडल से निश्चित लंबाई के प्रति उपलब्धता के आधार पर आउटपुट उत्पन्न करने के लिए कह सकते हैं। लक्षित आउटपुट की लंबाई को शब्द, वाक्य, अनुच्छेद, बुलेट प्वाइंट्स आदि के गण के रूप में निर्धारित किया जा सकता है। ध्यान दें, मॉडल को निश्चित शब्दों की संख्या प्रॉड्यूस करने के लिए शिक्षित करना उचित नहीं हो सकता है। मॉडल द्वारा निश्चित संख्या में अनुच्छेद या बुलेट प्वाइंट्स को उत्पन्न करना अधिक विश्वसनीय हो सकता है।
// USER Message
तीन अंकों में दिए गए पाठ का सारांश करें लगभग 50 शब्दों में।
"""यहां पाठ डालें"""
// USER Message
तीन अंकों में दिए गए पाठ का सारांश करें 2 अनुच्छेदों में।
"""यहां पाठ डालें"""
// USER Message
तीन अंकों में दिए गए पाठ का सारांश करें 3 बुलेट प्वाइंट्स में।
"""यहां पाठ डालें"""
रणनीति: संदर्भ पाठ प्रदान करना
रणनीति: मॉडल को उत्तर देने के लिए एक संदर्भ पाठ का प्रयोग करने के आदेश दें
यदि हम मॉडल को भरोसेमंद जानकारी प्रदान कर सकते हैं जो वर्तमान प्रश्न के संदर्भ में है, तो हम उसे निर्देशित कर सकते हैं कि प्रकटित उत्तर के लिए प्रदान की गई जानकारी का उपयोग करते हुए जवाब तैयार करे।
// SYSTEM Message
प्रश्नों के उत्तर देने के लिए तिन अंकों में दिये गए लेखों का प्रयोग करें। यदि उत्तर लेखों में नहीं मिल सकता है, तो "मैं उत्तर नहीं दे सका" लिखें।
// USER Message
<तीन अंकों में दिये गए लेख, प्रत्येक को तीनों अंकों में बांधें>
प्रश्न: <यहां प्रश्न डालें>
सभी मॉडलों के सीमित संदर्भ विंडोज हैं, हमें किसी नियमित प्रश्न के लिए उचित जानकारी का गंभीरता से खोज करने का कोई तरीका इम्प्लिमेंट करने की आवश्यकता होती है। Embeddings का उपयोग करके कुशल जानकारी प्राप्ति को अमलबजायें आपातकालिक सपज्ञता के लिए उपयोगी डीग्रा करें। इसकी अधिक जानकारी के लिए विकल्प "इमबेडिंग्स-आधारित सर्च करने के लिए उपयोग करने के लिए सर्च" देखें।
रणनीति: मॉडल को संदर्भ पाठ की साथ उत्तर देने के लिए आदेश दें
यदि इनपुट संदर्भ जानकारी के साथ संपूर्ण किया गया है, तो सीधा निर्देशन दिया जा सकता है कि मॉडल अपने उत्तरों में प्रदान किये गए दस्तावेज़ के अक्षरों से उद्धरण जोड़े। ध्यान दें कि आउटपुट में उद्धरण प्रोग्रामात्मक रूप से प्रदान दस्तावेज़ के पाठों में स्ट्रिंग मैचिंग के द्वारा सत्यापित किया जा सकता है।
// SYSTEM Message
आपको तीन अंकों में दिये गए दस्तावेज़ और एक प्रश्न प्रदान किया जाएगा। आपका काम है केवल प्रदान किये गए दस्तावेज़ का प्रयोग करके प्रश्न का उत्तर देना और उत्तर में प्रयोग किये गए दस्तावेज़ के पाठ(S) को उद्धरण देना। यदि दस्तावेज़ में उत्तर के लिए आवश्यक जानकारी नहीं है तो बस "पर्याप्त जानकारी उपलब्ध नहीं है" लिखें। यदि प्रश्न का उत्तर प्रदान किया जाता है, तो उसे उद्घाटित किया गया है, जारीदार के अनुसार उद्धरण के साथ ({"उद्धरण": …}).
// USER Message
"""<यहां दस्तावेज़ डालें>"""
प्रश्न: <यहां प्रश्न डालें>
टैक्टिक: उपयोग करें इंटेंट वर्गीकरण को पहचानने के लिए सबसे प्रासंगिक निर्देशों का उपयोग
ऐसे कार्यों के लिए, जिनमें विभिन्न मामलों को संभालने के लिए अनेक स्वतंत्र निर्देशों की आवश्यकता होती है, पहले क्वेरी के प्रकार को वर्गीकृत करना और उस वर्गीकरण का उपयोग करके निर्देशों का निर्धारण करना फायदेमंद हो सकता है। इसे स्थिर श्रेणियों को परिभाषित करके और निर्देशों को हार्डकोड करके प्राप्त किया जा सकता है जो एक दिए गए श्रेणी में कार्यों को संभालने के लिए प्रासंगिक हैं। यह प्रक्रिया एक कार्य को एक अनुक्रमिक चरणों के रूप में छोटे किया जा सकता है। इस दृष्टि कोन से इस उपाय का फायदा है कि प्रत्येक क्वेरी में केवल वही निर्देश शामिल होंगे जिनकी आवश्यकता होती है एक कार्य के अगले चरण को पूरा करने के लिए, जो केवल एक क्वेरी का उपयोग करके पूरे कार्य को पूरा करने की तुलना में कम त्रुटि दर देता है। यह उतने ही गए खर्च को भी कम कर सकता है क्योंकि बड़े प्रॉम्प्ट को चलाने के लिए अधिक लागत होती है।
मान लीजिए एक ग्राहक सेवा अनुप्रयोग के लिए, क्यूछ इस प्रकार वर्गीकृत किए जा सकते हैं:
// सिस्टम संदेश
आपको ग्राहक सेवा क्वेरी प्रदान की जाएगी। प्रत्येक क्वेरी को प्राथमिक वर्ग और द्वितीय वर्ग में वर्गीकृत करें। json प्रारूप में अपने परिणाम प्रदान करें: प्राथमिक और द्वितीय।
प्राथमिक श्रेणियाँ: बिलिंग, तकनीकी समर्थन, खाता प्रबंधन, या सामान्य पूछताछ।
बिलिंग द्वितीय वर्ग:
- सदस्यता समाप्त करें या अपग्रेड करें
- भुगतान पद्धति जोड़ें
- शुल्क के लिए स्पष्टीकरण
- शुल्क के विरोध में मदद
तकनीकी समर्थन द्वितीय वर्ग:
- समस्या निवारण
- उपकरण संगतता
- सॉफ्टवेयर अपडेट
खाता प्रबंधन द्वितीय वर्ग:
- पासवर्ड रीसेट
- व्यक्तिगत जानकारी अपडेट
- खाता बंद करें
- खाता सुरक्षा
सामान्य पूछताछ द्वितीय वर्ग:
- उत्पाद जानकारी
- मूल्य निर्धारण
- प्रतिक्रिया
- मानव से बात करें
// उपयोगकर्ता संदेश
मुझे अपना इंटरनेट फिर से काम करना चाहिए।
ग्राहक क्वेरी के वर्गीकरण के आधार पर, एक अधिक विशेष निर्देशों का एक सेट एक मॉडल को प्रदान किए जा सकते हैं ताकि वह अगले कदमों को संभालने के लिए समर्थ हो। उदाहरण के लिए, माना जाए कि ग्राहक को "समस्या निवारण" में मदद चाहिए।
// सिस्टम संदेश
आपको ग्राहक सेवा पूछताछ प्रदान की जाएगी जिन्हें तकनीकी समर्थन संदर्भ में समस्या निवारण की आवश्यकता है। उपयोगकर्ता को मदद करें:
- उनसे कहें कि जांचें कि राउटर से / राउटर तक सभी केबल जुड़े हुए हैं। याद रखें कि समय के साथ केबल नीचे आना सामान्य है।
- अगर सभी केबल जुड़े हुए हैं और समस्या बरक़रार रहती है, तो उनसे पूछें कि उन्होंने कौन सा राउटर मॉडल उपयोग किया है
- अब आप उन्हें उनकी डिवाइस को रिस्टार्ट करने के लिए सलाह देंगे:
-- अगर मॉडल नंबर MTD-327J है, तो उन्हें कहें कि वे लाल बटन दबाएं और इसे 5 सेकंड तक धरें, तथा फिर 5 मिनट की बादत लेते हुए कनेक्शन की जांच करें।
-- अगर मॉडल नंबर MTD-327S है, तो उन्हें कहें कि वे इसे बिजली खींचकर फिर से लगाएं, फिर 5 मिनट की बादत लेते हुए कनेक्शन की जांच करें।
- यदि ग्राहक की समस्या डिवाइस को रिस्टार्ट करने और 5 मिनट की बादत के बाद भी बरक़रार रहती है, तो उन्हें IT समर्थन से जोड़ें कर {"IT समर्थन अनुरोधित"} का आउटपुट निकालें।
- यदि उपयोगकर्ता इस विषय से असंबद्ध प्रश्न पूछना शुरू करता है तो पुष्टि करें कि क्या वह वर्तमान चैट को समाप्त करना चाहेंगे और उनके अनुरोध को निम्नलिखित योजना के अनुसार वर्गीकरण करें:
<उपर दिए गए प्राथमिक / द्वितीय वर्गीकरण योजना डालें>
// उपयोगकर्ता संदेश
मुझे अपना इंटरनेट फिर से काम करना चाहिए।
ध्यान दें कि मॉडल को अद्वितीय तंत्र को संविदान में बदलने के लिए विशेष स्ट्रिंग निकालने के निर्देश दिए गए हैं। इससे हमें अपनी प्रणाली को एक स्थिति यंत्र में बदलने की क्षमता मिलती है जहां स्थिति निर्धारित करती है कि कौन से निर्देश शामिल होंगे। स्थिति का पता लगाकर, उस स्थिति में क्या निर्देश प्रासंगिक हैं, और वैकल्पिक रूप से उस स्थिति से संबंध रखने वाले कौन से स्थिति परिवर्तन स्वीकृत हैं, हम उस्तादी उसर्वाला सामर्थिक जीवनयोजना होता है जो कम संरचित परिप्रेक्ष्य से मुश्किल होगा।
टैक्टिक: बातचीत अनुप्रयोग जो बहुत लंबी चर्चाओं की जरुरत होती है, पिछली बातचीत का सारांश या फिल्टर करें
मॉडल में एक निश्चित संदर्भ लंबाई होती है, उसमें पहले से किए गए संवाद को समाहित कर सकते हैं, जिसमें पूरे संवाद को संभावनात:
- obsolete - को संक्षेपित करने वाला एक प्रणाली अनुपलब्ध होता है। एक पहले से निर्धारित प्राचल सीमा लंबाई तक तो संवाद के भाग का संख्यात्मक अंश को संक्षेपित करने को उत्प्रेरित कर सकती है इस स्थिति को जो क्वा'रील वसायन पूर्णतया तय कर चुका हो, उसमें यह सकती है कि संभावनात संवाद का कुछ भाग संक्षेपित रूप से समाहित करने के लिए एक पूछताछ को प्रेरित करे यह पूर्व संवाद का संक्षेपण हमारे संदेश का हिस्सा बना सकता है। अनुरूप, पूर्व संवाद का संक्षेप अन
युक्ति: लंबे दस्तावेज़ों का संक्षेप संशोधनरूपी ढंग से
मॉडल्स के पास एक निश्चित संदर्भ लंबाई होती है, इसलिए एक्सट्रेक्ट की लंबाई मॉडल की संदर्भ लंबाई से छोटी होनी चाहिए।
किसी बहुत लंबे दस्तावेज़ जैसे एक किताब का संक्षेप करने के लिए, हम दस्तावेज़ के प्रत्येक खंड को संक्षेपित करने के लिए कई प्रश्नों का एक क्रम से इस्तेमाल कर सकते हैं। खंड संक्षेपों को जोड़ा जा सकता है और संक्षेप बनाया जा सकता है, जिससे संक्षेपों का संक्षेप किया जा सकता है। यह प्रक्रिया पूरे दस्तावेज़ का संक्षेपीकरण करने तक क्रमशः चला जा सकता है। अगर बाद के खंडों को समझने के लिए पहले के भागों के बारे में जानकारी का उपयोग करना आवश्यक हो, तो एक और योजना भी उपयोगी हो सकती है, जो यह है कि इस बात को संक्षेपित करने के दौरान पुस्तक में किसी भी बिंदु से पहले पिछले पाठ का चल रहा संक्षेप शामिल किया जा सकता है। OpenAI द्वारा GPT-3 के वेरिएंट्स का उपयोग करके पिछले शोध में इस प्रक्रिया के लिए किताबों का संक्षेप करने की प्रभावशीलता पर अध्ययन किया गया है।
युक्ति: मॉडल को "सोचने" का समय दें
युक्ति: समस्या का स्वयं से समाधान निकालने के लिए मॉडल को मार्गदर्शन दें
कभी-कभी हमें सबसे अच्छा परिणाम मिलता है जब हम मॉडल से सबसे पहले सिद्धांतों से सोचने के लिए सीधी तरीके से निर्देशित करते हैं, फिर नतीजा निकलने के लिए। मान लें उदाहरण के लिए हमें चाहिए कि एक मॉडल से छात्र के गणित समस्या के समाधान की मूल्यांकन करना है। इस समस्या का समाधान करने के लिए सबसे सरल तरीका है कि सीधे मॉडल से पूछना कि क्या छात्र का समाधान सही है या नहीं।
लेकिन छात्र का समाधान वास्तव में सही नहीं है! हम मॉडल को सफलतापूर्वक इस बात को ध्यान में रखने के लिए प्रेरित कर सकते हैं, कि वह पहले खुद से अपना समाधान जनित करें।
युक्तिक: मन की विचारधारा या पूर्वानुमान के अनुसार क्रमश:
पिछली युक्तिक दर्शाती है कि कभी-कभी मॉडल के लिए किसी विशिष्ट प्रश्न का उत्तर देने से पहले, किसी समस्या का विस्तारपूर्वक सोचना महत्वपूर्ण होता है। कुछ एप्लिकेशन्स के लिए, जिन्हें एक अंतिम उत्तर तक पहुँचने की जरूरत नहीं होती है, वहां एक मॉडल के विचारधारा और उसके आखिरी जवाब तक पहुँच को साझा करना अनुचित हो सकता है। उदाहरण के रूप में, शिक्षण एप्लिकेशन में हमारी इच्छा हो सकती है कि छात्रों को उनके खुद के उत्तर तक पहुँचने के लिए प्रेरित किया जाए, लेकिन किसी मॉडल की विचारधारा जिसमें छात्र का समाधान हो, उसमें मॉडल की विचारधारा छात्र को जवाब पता चल सकती है।
आंतरमन की यह युक्तिक इसे मिटाने के लिए प्रयोग की जा सकती है। आंतरमन की विचारधारा का विचार है कि मॉडल को इस तत्व के भागों को एक संरूपित रूप में डालने के लिए निर्देशित किया जाए जो उपयोगकर्ता से छुपाए जाने चाहिए। फिर, उत्तर को उपयोगकर्ता को प्रस्तुत करने से पहले, उत्तर को विश्लेषण किया जाता है और केवल भाग उपयुक्त बनाए जाते हैं।
// सिस्टम संदेश
उपयोगकर्ता प्रश्नों का उत्तर देने के लिए इनके कदमों का पालन करें।
कदम 1 - पहले अपनी समस्या का खुद ही हल निकालें। छात्र के समाधान पर भरोसा न करें क्योंकि यह गलत हो सकता है। इस कदम के लिए अपना सारा काम तीन अधोसूचनाओं (""") के भीतर बंद करें।
कदम 2 - अपने समाधान को छात्र के समाधान से तुलना करें और यह जांचें कि छात्र का समाधान सही है या नहीं। इस कदम के लिए अपना समाधान करना।
कदम 3 - अगर छात्र ने ग़लती की है, तो यह तय करें कि आप छात्र को किस संकेत को दे सकते हैं जो जवाब नहीं देता है। इस कदम के लिए अपना समाधान करना।
कदम 4 - अगर छात्र ने ग़लती की है, तो पिछले कदम से संकेत छात्र को दें। इसके अंकित नहीं करें
"कदम 4 - ..." लिखने की बजाय "संकेत:" लिखें।
// उपयोगकर्ता संदेश
समस्या विवरण: <समस्या विवरण डालें>
छात्र समाधान: <छात्र समाधान डालें>
या यह एक अनुक्रम द्वारा भी प्राप्त किया जा सकता है, जिसमें केवल अंतिम को छोड़कर सभी का उपयोगकर्ता को छिपा लिया गया है।
सबसे पहले, हम मॉडल से अपेक्षा कर सकते हैं कि वह अपने आप समस्या को हल करे। क्योंकि इस प्रारंभिक प्रश्न का समाधान छात्र के समाधान की जरूरत नहीं है, इसलिए यह छूट जा सकती है। इसका अतिरिक्त फायदा है कि इससे न केवल छात्र के प्रयास से मॉडल का समाधान प्रभावित होने की संभावना होती है।
// उपयोगकर्ता संदेश
<समस्या विवरण डालें>
अगले, हम मॉडल को प्राप्त सभी जानकारी का उपयोग करके छात्र के समाधान के सही होने का मूल्यांकन करने के लिए उपयोग करने के लिए अपेक्षा कर सकते हैं।
// सिस्टम संदेश
अपने समाधान को छात्र के समाधान से तुलना करें और यह जांचें कि छात्र का समाधान सही है या नहीं।
// उपयोगकर्ता संदेश
समस्या विवरण: """<समस्या विवरण डालें>"""
आपका समाधान: """<प्रोद्यूस किया गया मॉडल समाधान डालें>"""
छात्र का समाधान: """<छात्र का समाधान डालें>"""
सो, अंत में, हम मॉडल को अपने विश्लेषण का उपयोग करने दें, जो एक सहायक शिक्षक के व्यक्तित्व में एक जवाब तैयार करने के लिए अपनी विचारधारा का उपयोग करता है।
// सिस्टम संदेश
आप एक गणित शिक्षक हैं। अगर छात्र ने ग़लती की है, तो छात्र को उससे पहले उसे संकेत दें जो जवाब नहीं देता है। अगर छात्र ने ग़लती नहीं की है, तो उन्हें सिर्फ एक प्रोत्साहन टिप्पणी दें।
// उपयोगकर्ता संदेश
समस्या विवरण: """<समस्या विवरण डालें>"""
आपका समाधान: """<प्रोद्यूस किया गया मॉडल समाधान डालें>"""
छात्र का समाधान: """<छात्र का समाधान डालें>"""
विश्लेषण: """<प्रोद्यूस किया गया पिछले कदम से विश्लेषण डालें>"""
युक्तिक: मॉडल से पूर्व पैसेज में कुछ छूटने वाली बातें
यह मान लीजिए, हम एक मॉडल का उपयोग कर रहे हैं ताकि एक विशेष प्रश्न के संदर्भ में मौलिक स्रोत से उद्धरणों की सूची बनाएं। हर उद्धरण को सूचीबद्ध करने के बाद मॉडल को यह निर्धारित करने की आवश्यकता होती है कि क्या वह एक और उद्धरण लिखना शुरू करे या यह समाप्त कर दे। यदि स्रोत दस्तावेज बड़ा है, तो सामान्य होता है कि एक मॉडल ज्यादा जल्दी कोई काम को समाप्त कर देता है और सभी संदर्भ से जुड़े उद्धरणों को छोड़ देता है। इस मामले में, आधिक लाभ प्राप्त किया जा सकता है और उद्धरणों को छूटने के बारे में मॉडल को पूर्वानुमान के लिए अनुरोध करके बेहतर प्रदर्शन हो सकता है।
// सिस्टम संदेश
आपको तीन अधोसूचनाओं से अलग करके एक दस्तावेज प्रदान किया जाएगा। आपका कार्य है उद्धरण चयन करना जो कुशलतापूर्वक किसी प्रश्न के संदर्भ में हो।
उपयोगकर्ता से सुनिश्चित करें की उद्धरण में सभी संबंधित संदर्भ जरूरी हों - वाक्यांशों को निकाले जाने के बिना जो विशेष संदर्भ छूटे हों। JSON प्रारूप में आउटपुट दे रहा हूं:
[{"excerpt": "..."},
...
{"excerpt": "..."}]
// उपयोगकर्ता संदेश
"""<यहाँ विवरण दस्तावेज डालें>"""
// सहायक संदेश
[{"excerpt": "मॉडल यहाँ एक उद्धरण लिखता है"},
...
{"excerpt": "मॉडल यहाँ एक और उद्धरण लिखता है"}]
// उपयोगकर्ता संदेश
क्या और भी संबंधित
रणनीति: बाह्य उपकरणों का उपयोग करें
उपाय: इंबेडिंग्स-आधारित खोज का उपयोग करें ताकतवर ज्ञान अभिकरण के लिए
एक मॉडल उन बाह्य स्रोतों का लाभ उठा सकता है यदि वे उसके इनपुट का हिस्सा हों। यह मॉडल को और जानकार और अद्यतित प्रतिक्रियाएं उत्पन्न करने में मदद कर सकता है। उदाहरण के लिए, अगर एक उपयोगकर्ता किसी विशिष्ट फिल्म के बारे में सवाल करता है, तो मॉडल के इनपुट में फिल्म के बारे में गुणवत्ता युक्त जानकारी (जैसे कलाकार, निर्देशक आदि) जोड़ना उपयुक्त हो सकता है। इंबेडिंग्स का उपयोग करके खोज का उपयोग करें ताकतवर ज्ञान अभिकरण का अंमल किया जा सकता है, ताकि रन-टाइम पर मॉडल इनपुट में संबंधित जानकारी जोड़ी जा सके।
एक पाठ इंबेडिंग एक वेक्टर है जो पाठ स्ट्र
रणनीति: व्यवस्था को सिद्धांतपूर्वक परीक्षण करें
कभी-कभी यह कठिन हो सकता है कि क्या परिवर्तन - उदाहरण के लिए, एक नई निर्देशिका या नया डिज़ाइन - आपकी सिस्टम को बेहतर या बुरा बनाता है। कुछ उदाहरणों की तस्वीर देखना यह सुझा सकता है कि कौन बेहतर है, लेकिन छोटे नमूना आकार के साथ असली सुधार और या रैंडम भाग्य के बीच अंतर को समझना कठिन हो सकता है। शायद परिवर्तन किसी इनपुट पर प्रदर्शन में मदद करता है, लेकिन दूसरों पर प्रदर्शन को हानि पहुंचाता है।
मूल्यांकन प्रक्रियाएँ (या "मूल्यांकन") सिस्टम डिज़ाइन को अनुकूलित करने के लिए उपयोगी होती हैं। अच्छे मूल्यांकन हैं:
- वास्तविक जीवन उपयोग के प्रतिनिधित्व (कम से कम विविधता के साथ)
- अधिक सांख्यिकीय शक्ति के लिए बहुत से परीक्षण मामले (निर्देशिका के लिए दिशानिर्देश देखने के लिए नीचे तालिका देखें) ।
- स्वचालित या दोहराने आसान है
पता लगाने के लिए अंतर | 95% विश्वसनीयता के लिए आवश्यक नमूना आकार |
---|---|
30% | ~10 |
10% | ~100 |
3% | ~1,000 |
1% | ~10,000 |
नतीजों का मूल्यांकन कंप्यूटर्स, मानवों, या मिश्रित द्वारा किया जा सकता है। कंप्यूटर वस्त्रिय भावनात्मक मानदंडों (जैसे, केवल सही जवाबों वाले प्रश्न) के स्वचालित मूल्यांकन कर सकते हैं, साथ ही कुछ सांवेगिक या धुंधले मानदंडों को भी, जिसमें मॉडल परिणामों का मूल्यांकन अन्य मॉडल प्रश्नों द्वारा किया जाता है। OpenAI Evals एक ओपन-सोर्स सॉफ्टवेयर फ्रेमवर्क है जो स्वचालित मूल्यांकन बनाने के लिए उपकरण प्रदान करता है।
मॉडल-आधारित मूल्यांकन उपयोगी हो सकते हैं जब ऐसा विचार किए जा रहे हों कि संभावित परिणामों की विविधता के रेंज है जो बराबर उच्च गुणवत्ता के रूप में समझी जाएगी (उदाहरण के लिए, लंबे जवाबों वाले प्रश्नों के लिए)। मॉडल-आधारित मूल्यांकन के साथ जिस सीमा के बीच वास्तविकता मूल्यांकन किया जा सकता है और जो व्यक्तिगत रूप से मूल्यांकन करने की आवश्यकता होती है, वह धुंधला है और मॉडल अधिक सक्षम होते जाते हैं वह सदैव बदलती रहती है। हम अपने उपयोग मामले के लिए मॉडल-आधारित मूल्यांकन कितनी अच्छी तरह से काम कर सकता है यह जानने के लिए प्रयोगात्मकता की सराहना करते हैं।
तकनीक: सोने युक्त उत्तरों की संदर्भ गोल्ड-स्टैंडर्ड जवाबों की समीक्षा करें
मान लीजिए कि किसी सवाल का सही जवाब निश्चित जानकारी के एक विशिष्ट सेट का संदर्भ बनाना चाहिए। तो हम एक मॉडल क्वेरी का उपयोग करके यह जांच सकते हैं कि उत्तर में कितनी आवश्यक जानकारियाँ शामिल हैं।
उदाहरण के लिए, निम्नलिखित सिस्टम संदेश का उपयोग करके:
// SYSTEM Message
आपको तीन दोहरे उद्धरणों द्वारा प्रदान किया जाएगा जो सवाल के जवाब के रूप में माना जाता है। देखें कि क्या उत्तर में निम्नलिखित जानकारियाँ सीधे शामिल हैं:
- नील आर्मस्ट्रॉंग ने चांद पर पैर रखने वाले पहले व्यक्ति बने थे।
- नील आर्मस्ट्रॉंग ने पहली बार चांद पर कदम रखने की तारीख 21 जुलाई, 1969 थी।
इनमें से प्रत्येक बिना नीचे दिए गए कदमों का पालन करें:
1 - पॉइंट को फिर से उभारें।
2 - जो बुनियादी जानकारी इस प्वाइंट के निकटतम उद्धरण के लिए प्रस्तुत है, उसका संदर्भ दें।
3 - यह देखें कि यदि कोई भी जो विषय को नहीं जानता है, तो क्या उसे सीधे पाइंट का तात्पर्य समझ में आता है। या नहीं, उससे पहले या उसके बाद का दिखाना के बाद क्यों करें।
4 - यदि जवाब 3 का जवाब हाँ है, तो "हाँ" लिखें, अन्यथा "नहीं" लिखें।
अंत में, "हाँ" उत्तरों की संख्या प्रदान करें। इस संख्या को {"गणना": <यहां डालें>} के रूप में प्रदान करें।
यहां उदाहरण है जहां दोनों पॉइंट्स पूरे किए गए हैं:
// SYSTEM Message
<पूर्ववत संदेश डालें>
// USER Message
"""नील आर्मस्ट्रॉंग को चांद पर पैर रखकर इतिहास में कोई भी पहली व्यक्ति बनते हुए देखा है। यह ऐतिहासिक घटना 21 जुलाई, 1969 को अपोलो 11 मिशन के दौरान हुई थी।"""
यहां उदाहरण है जहां केवल एक पॉइंट पूरा हुआ है:
// SYSTEM Message
<पूर्ववत संदेश डालें>
// USER Message
"""नील आर्मस्ट्रॉंग ने इतिहास रचा जब उन्होंने चंद्रयान से कदम रखकर चांद पर पहली बार चलना शुरू किया।"""
यहां एक उदाहरण है जहां कोई भी पॉइंट पूरा नहीं हो रहा है:
// SYSTEM Message
<पूर्ववत संदेश डालें>
// USER Message
"""69 के गर्मियों में, एक व्यापक यात्रा,
अपोलो 11, प्रेरणात्मक जैसे कि किस्से के हाथ।
आर्मस्ट्रॉंग ने एक कदम रखा, इतिहास खुल गया,
"एक छोटा कदम," उन्होंने कहा, एक नए विश्व के लिए।"""
इस प्रकार के मॉडल-आधारित मूल्यांकन पर कई संभावित वेरिएंट्स हो सकते हैं। निम्नलिखित वैरिएशन को विचार करें जो उम्मीदवार उत्तर और गोल्ड-स्टैंडर्ड जवाब के बीच के प्रकार को ट्रैक करता है, और यह भी ट्रैक करता है कि उम्मीदवार उत्तर किसी भी भाग के विरोध करता है या नहीं।
// SYSTEM Message
उपयोगकर्ता इनपुट का जवाब देने के लिए निम्नलिखित कदमों को फॉलो करें। पूर्ण रूप से प्रत्येक कदम को पुनः विचार करें। यानी "कदम 1: कारण...".
कदम 1: इस बारे में कदमबद्ध यह सोचें कि जमा गए जवाब की जानकारी गोल्ड-स्टैंडर्ड जवाब के मुकाबले या तो: अलग, समान, एक उपसंधि, एक पूर्णसंधि, या ओवरलैपिंग (अर्थात कुछ हस्तांतरण लेकिन सबसेट/सुपरसेट नहीं)।
कदम 2: इस बारे में कदमबद्ध यह सोचें कि जमा गए जवाब भारतीय जवाब के किसी भी पहलु के विरोध करता है या नहीं।
कदम 3: {"प्रकार_का_अवरोध": "अलग" या "बराबर" या "उपसंधि" या "पूर्णसंधि" या "ओवरलैपिंग", "विरोध": सच या झूठ"}
आइये देखते हैं जिसमें कम गुणवत्ता वाला उत्तर है जो हालांकि विशेषज्ञ उत्तर का विरोध नहीं करता है:
// SYSTEM Message
<पूर्ववत संदेश डालें>
// USER Message
सवाल: """नील आर्मस्ट्रॉंग सबसे अधिक किस घटना के लिए प्रसिद्ध है और उस हुए तारीख क्या है? स्वीकृत UTC समय मानें।"""
प्रस्तुत उत्तर: """क्या उसने चंद्रमा पर या कुछ किया था?"""
विशेषज्ञ उत्तर: """नील आर्मस्ट्रॉंग को चंद्रमा पर पैर रखने के लिए सबसे अधिक प्रसिद्ध माना जाता है। यह ऐतिहासिक घटना 21 जुलाई, 1969 को हुई थी।"""
यहां उदाहरण है जिसमें जवाब है जो विशेषज्ञ उत्तर के विरोधी है:
// SYSTEM Message
<पूर्ववत संदेश डालें>
// USER Message
सवाल: """नील आर्मस्ट्रॉंग सबसे अधिक किस घटना के लिए प्रसिद्ध है और उस हुए तारीख क्या है? स्वीकृत UTC समय मानें।"""
प्रस्तुत उत्तर: """21 जुलाई 1969 को, नील आर्मस्ट्रॉंग पहले व्यक्ति बने चंद्रमा पर कदम रखने वाले, जिनके पीछे बाद में बज अल्ड्रिन कदम रखने लगे।"""
विशेषज्ञ उत्तर: """नील आर्मस्ट्रॉंग को चंद्रमा पर पैर रखने के लिए सबसे अधिक प्रसिद्ध माना जाता है। यह ऐतिहासिक घटना 21 जुलाई, 1969 को हुई थी।"""
यहां एक उदाहरण है जिसमें सही जवाब दिया गया है, जो आवश्यक से थोड़ा अधिक विवरण भी प्रदान करता है:
// SYSTEM संदेश
<ऊपर संदेश डालें>
// USER संदेश
प्रश्न: """नील आर्मस्ट्रांग सबसे ज्यादा किस घटना के लिए प्रसिद्ध है और उसका हुआ था कब? UTC समय मानें।"""
प्रस्तुत उत्तर: """लगभग 02:56 UTC पर 21 जुलाई 1969 को, नील आर्मस्ट्रांग ने मानव इतिहास में महत्वपूर्ण उपलब्धि के रूप में चांद की सतह पर कदम रखा, जिससे पहले मानव बने।"""
विशेषज्ञ उत्तर: """नील आर्मस्ट्रांग सबसे अधिक चांद पर चलने वाले पहले व्यक्ति होने के लिए प्रसिद्ध हैं। यह ऐतिहासिक घटना 21 जुलाई, 1969 को हुई थी।"""