Skip to content

Latest commit

 

History

History
241 lines (149 loc) · 50.8 KB

File metadata and controls

241 lines (149 loc) · 50.8 KB

प्रॉम्प्ट इंजिनिअरिंग मूलभूत गोष्टी

परिचय

या मॉड्यूलमध्ये जनरेटिव्ह AI मॉडेल्समध्ये प्रभावी प्रॉम्प्ट तयार करण्यासाठी आवश्यक संकल्पना आणि तंत्रांचा समावेश आहे. तुमचा प्रॉम्प्ट LLM ला कसा लिहिता याचाही महत्त्व आहे. काळजीपूर्वक तयार केलेला प्रॉम्प्ट उत्तम प्रतिसाद गुणवत्ता मिळवू शकतो. पण प्रॉम्प्ट आणि प्रॉम्प्ट इंजिनिअरिंग सारख्या संज्ञा नेमक्या काय अर्थ देतात? आणि मी LLM ला पाठवणारा प्रॉम्प्ट इनपुट कसा सुधारू शकतो? या प्रश्नांची उत्तरे या अध्यायात आणि पुढील अध्यायात शोधू.

जनरेटिव्ह AI नवीन सामग्री (उदा., मजकूर, प्रतिमा, ऑडिओ, कोड इ.) वापरकर्त्याच्या विनंत्यांना प्रतिसाद देण्यासाठी तयार करण्यास सक्षम आहे. हे नैसर्गिक भाषा आणि कोड वापरण्यासाठी प्रशिक्षित केलेल्या OpenAI च्या GPT ("जनरेटिव्ह प्री-ट्रेंड ट्रान्सफॉर्मर") मालिकेसारख्या मोठ्या भाषा मॉडेल्स वापरून हे साध्य करते.

वापरकर्ते आता तांत्रिक कौशल्य किंवा प्रशिक्षणाची आवश्यकता नसलेल्या चॅट सारख्या परिचित पॅराडायम्सचा वापर करून या मॉडेल्सशी संवाद साधू शकतात. मॉडेल्स प्रॉम्प्ट-आधारित आहेत - वापरकर्ते मजकूर इनपुट (प्रॉम्प्ट) पाठवतात आणि AI प्रतिसाद (पूर्णता) परत मिळवतात. नंतर ते "AI सोबत चॅट" करू शकतात, मल्टी-टर्न संवादात, त्यांचा प्रॉम्प्ट सुधारत, जोपर्यंत प्रतिसाद त्यांच्या अपेक्षेप्रमाणे जुळत नाही.

"प्रॉम्प्ट" आता जनरेटिव्ह AI अॅप्ससाठी प्राथमिक प्रोग्रामिंग इंटरफेस बनले आहेत, मॉडेल्सना काय करायचे आहे ते सांगणे आणि परत मिळालेल्या प्रतिसादांची गुणवत्ता प्रभावित करणे. "प्रॉम्प्ट इंजिनिअरिंग" हे एक जलद वाढणारे अभ्यास क्षेत्र आहे जे प्रमाणात सातत्यपूर्ण आणि गुणवत्तापूर्ण प्रतिसाद देण्यासाठी प्रॉम्प्टच्या डिझाइन आणि ऑप्टिमायझेशन वर लक्ष केंद्रित करते.

शिकण्याची उद्दिष्टे

या धड्यात, आम्ही प्रॉम्प्ट इंजिनिअरिंग म्हणजे काय, ते का महत्त्वाचे आहे आणि आम्ही दिलेल्या मॉडेल आणि अनुप्रयोग उद्देशासाठी अधिक प्रभावी प्रॉम्प्ट कसे तयार करू शकतो हे शिकतो. आम्ही प्रॉम्प्ट इंजिनिअरिंगसाठी मुख्य संकल्पना आणि सर्वोत्तम पद्धती समजून घेऊ - आणि आम्ही एक इंटरएक्टिव्ह ज्युपिटर नोटबुक्स "सँडबॉक्स" वातावरणाबद्दल शिकू जिथे आम्ही या संकल्पनांचा वास्तविक उदाहरणांवर लागू केलेला भाग पाहू शकतो.

या धड्याच्या शेवटी आम्ही सक्षम असू:

  1. प्रॉम्प्ट इंजिनिअरिंग म्हणजे काय आणि ते का महत्त्वाचे आहे ते स्पष्ट करा.
  2. प्रॉम्प्टचे घटक वर्णन करा आणि ते कसे वापरले जातात ते सांगा.
  3. प्रॉम्प्ट इंजिनिअरिंगसाठी सर्वोत्तम पद्धती आणि तंत्रे शिका.
  4. ओपनएआय एंडपॉइंट वापरून वास्तविक उदाहरणांवर शिकलेली तंत्रे लागू करा.

मुख्य संज्ञा

प्रॉम्प्ट इंजिनिअरिंग: AI मॉडेल्सना अपेक्षित आउटपुट तयार करण्यासाठी मार्गदर्शन करण्यासाठी इनपुट्स डिझाइन आणि सुधारण्याची पद्धत. टोकनायझेशन: मजकूर लहान युनिट्समध्ये रूपांतरित करण्याची प्रक्रिया, ज्याला टोकन म्हणतात, जे मॉडेल समजू शकते आणि प्रक्रिया करू शकते. इन्स्ट्रक्शन-ट्यूनड LLMs: मोठ्या भाषा मॉडेल्स (LLMs) जे त्यांच्या प्रतिसादाची अचूकता आणि संबंधितता सुधारण्यासाठी विशिष्ट निर्देशांसह सुधारले गेले आहेत.

लर्निंग सँडबॉक्स

प्रॉम्प्ट इंजिनिअरिंग सध्या विज्ञानापेक्षा अधिक कला आहे. त्यासाठी आपली अंतर्ज्ञान सुधारण्यासाठी सर्वोत्तम मार्ग म्हणजे अधिक सराव करणे आणि अनुप्रयोग डोमेन कौशल्य, शिफारस केलेल्या तंत्रांचा आणि मॉडेल-विशिष्ट ऑप्टिमायझेशनचा एकत्रित वापर करून प्रयत्न-त्रुटी दृष्टिकोन स्वीकारणे.

या धड्याशी संबंधित ज्युपिटर नोटबुक तुम्हाला शिकताना - किंवा शेवटी कोड आव्हानाचा भाग म्हणून काय शिकता येईल ते प्रयत्न करण्यासाठी एक सँडबॉक्स वातावरण प्रदान करते. व्यायाम करण्यासाठी, तुम्हाला आवश्यक असेल:

  1. एक Azure OpenAI API की - तैनात LLM साठी सेवा एंडपॉइंट.
  2. एक पायथन रनटाइम - ज्यामध्ये नोटबुक कार्यान्वित केले जाऊ शकते.
  3. स्थानिक वातावरण व्हेरिएबल्स - सेटअप चरणे पूर्ण करा.

नोटबुकमध्ये स्टार्टर व्यायाम आहेत - परंतु तुम्हाला अधिक उदाहरणे किंवा कल्पना प्रयत्न करण्यासाठी तुमच्या स्वतःच्या मार्कडाउन (वर्णन) आणि कोड (प्रॉम्प्ट विनंत्या) विभाग जोडण्यास प्रोत्साहित केले जाते - आणि प्रॉम्प्ट डिझाइनसाठी तुमची अंतर्ज्ञान निर्माण करा.

चित्रित मार्गदर्शक

या धड्यात तुम्ही उतरायच्या आधी हे धडा काय समाविष्ट करते याची संपूर्ण कल्पना हवी आहे का? या चित्रित मार्गदर्शकाची तपासणी करा, जे तुम्हाला समाविष्ट केलेल्या मुख्य विषयांची आणि प्रत्येकामध्ये विचार करण्यासाठी तुम्हाला महत्त्वाच्या गोष्टींची कल्पना देते. धडा रोडमॅप तुम्हाला मुख्य संकल्पना आणि आव्हाने समजून घेण्यापासून ते संबंधित प्रॉम्प्ट इंजिनिअरिंग तंत्र आणि सर्वोत्तम पद्धतींसह त्यांना संबोधित करण्याकडे नेतो. लक्षात ठेवा की या मार्गदर्शकातील "प्रगत तंत्रे" विभाग या अभ्यासक्रमाच्या पुढील अध्यायातील सामग्रीस संदर्भित करतो.

आमची स्टार्टअप

आता, हा विषय आमच्या स्टार्टअप मिशनशी शिक्षणात AI नवोपक्रम आणणे कसा संबंधित आहे ते बोलूया. आम्हाला वैयक्तिकृत शिक्षण च्या AI-सक्षम अनुप्रयोगांची निर्मिती करायची आहे - म्हणून विचार करूया की आमच्या अनुप्रयोगाचे विविध वापरकर्ते "प्रॉम्प्ट" कसे "डिझाइन" करू शकतात:

  • प्रशासक AI ला अभ्यासक्रम डेटा विश्लेषण करण्यासाठी कव्हरेजमध्ये अंतर ओळखण्यासाठी विचारू शकतात. AI परिणामांचे सारांश देऊ शकतो किंवा कोडसह त्यांचे दृश्य देऊ शकतो.
  • शिक्षक AI ला लक्ष्य प्रेक्षक आणि विषयासाठी एक धडा योजना तयार करण्यासाठी विचारू शकतात. AI निर्दिष्ट स्वरूपात वैयक्तिकृत योजना तयार करू शकतो.
  • विद्यार्थी AI ला कठीण विषयात त्यांना शिकवण्यासाठी विचारू शकतात. AI आता विद्यार्थ्यांना त्यांच्या स्तरानुसार धडे, संकेत आणि उदाहरणे देऊन मार्गदर्शन करू शकतो.

ते फक्त हिमनगाचे टोक आहे. शिक्षणासाठी प्रॉम्प्ट्स तपासा - शिक्षण तज्ञांनी क्युरेट केलेले एक ओपन-सोर्स प्रॉम्प्ट्स लायब्ररी - शक्यता अधिक विस्तृत अर्थ मिळवण्यासाठी! सँडबॉक्समध्ये किंवा OpenAI Playground वापरून काही प्रॉम्प्ट्स चालवण्याचा प्रयत्न करा आणि काय होते ते पहा!

प्रॉम्प्ट इंजिनिअरिंग म्हणजे काय?

आम्ही हा धडा प्रॉम्प्ट इंजिनिअरिंग म्हणजे काय आणि ते का आवश्यक आहे हे डिझाइन आणि ऑप्टिमायझेशन प्रक्रियेसाठी परिभाषित करून सुरुवात केली. आम्ही याला 2-स्टेप प्रक्रिया म्हणून विचार करू शकतो:

  • दिलेल्या मॉडेल आणि उद्देशासाठी प्रारंभिक प्रॉम्प्ट डिझाइन करणे
  • प्रतिसादाची गुणवत्ता सुधारण्यासाठी प्रॉम्प्ट सुधारणे

हे अनिवार्यपणे प्रयत्न-त्रुटी प्रक्रिया आहे ज्यासाठी इष्टतम परिणाम मिळवण्यासाठी वापरकर्त्याची अंतर्ज्ञान आणि प्रयत्न आवश्यक आहे. तर ते महत्त्वाचे का आहे? त्या प्रश्नाचे उत्तर देण्यासाठी, आम्हाला प्रथम तीन संकल्पना समजून घेणे आवश्यक आहे:

  • टोकनायझेशन = मॉडेल प्रॉम्प्टला "कसे पाहतो"
  • बेस LLMs = फाउंडेशन मॉडेल प्रॉम्प्ट "कसे प्रक्रिया" करतो
  • इन्स्ट्रक्शन-ट्यूनड LLMs = मॉडेल आता "कार्ये" कसे पाहू शकतो

टोकनायझेशन

एक LLM प्रॉम्प्ट्सना टोकन्सच्या अनुक्रम म्हणून पाहतो जिथे वेगवेगळे मॉडेल्स (किंवा मॉडेलचे आवृत्त्या) समान प्रॉम्प्टला वेगवेगळ्या प्रकारे टोकनाइज करू शकतात. कारण LLMs टोकन्सवर प्रशिक्षित केले जातात (कच्च्या मजकूरावर नाही), प्रॉम्प्ट्स कसे टोकनाइज केले जातात याचा जनरेट केलेल्या प्रतिसादाच्या गुणवत्तेवर थेट परिणाम होतो.

टोकनायझेशन कसे कार्य करते याची अंतर्ज्ञान मिळवण्यासाठी, OpenAI Tokenizer सारखी साधने वापरून पहा. तुमचा प्रॉम्प्ट कॉपी करा - आणि ते टोकन्समध्ये कसे रूपांतरित होते ते पहा, व्हाइटस्पेस वर्ण आणि विरामचिन्हे कशी हाताळली जातात याकडे लक्ष द्या. लक्षात ठेवा की हे उदाहरण जुने LLM (GPT-3) दर्शवते - त्यामुळे नवीन मॉडेलसह हे प्रयत्न करणे वेगळा परिणाम देऊ शकते.

संकल्पना: फाउंडेशन मॉडेल्स

एकदा प्रॉम्प्ट टोकनाइज झाल्यावर, "बेस LLM" (किंवा फाउंडेशन मॉडेल) चे प्राथमिक कार्य त्या अनुक्रमात टोकनची भविष्यवाणी करणे आहे. कारण LLMs मोठ्या मजकूर डेटासेट्सवर प्रशिक्षित केले जातात, त्यांना टोकन्समधील सांख्यिकी संबंधांचा चांगला अर्थ आहे आणि ते काही आत्मविश्वासाने ती भविष्यवाणी करू शकतात. लक्षात ठेवा की त्यांना प्रॉम्प्ट किंवा टोकनमधील शब्दांचा अर्थ समजत नाही; ते फक्त एक नमुना पाहतात जे ते त्यांच्या पुढील भविष्यवाणीसह "पूर्ण" करू शकतात. ते वापरकर्त्याच्या हस्तक्षेपाने किंवा काही पूर्व-स्थापित स्थितीने समाप्त होईपर्यंत अनुक्रमाची भविष्यवाणी करत राहू शकतात.

प्रॉम्प्ट-आधारित पूर्णता कशी कार्य करते ते पाहायचे आहे? वरील प्रॉम्प्ट Azure OpenAI Studio Chat Playground मध्ये डिफॉल्ट सेटिंग्जसह प्रविष्ट करा. सिस्टम प्रॉम्प्ट्सला माहितीच्या विनंती म्हणून मानण्यास कॉन्फिगर केलेले आहे - त्यामुळे तुम्ही या संदर्भात समाधानकारक पूर्णता पाहायला हवी.

पण काय जर वापरकर्त्याला काही विशिष्ट पाहायचे असेल ज्याने काही निकष किंवा कार्य उद्देश पूर्ण केले असेल? येथे इन्स्ट्रक्शन-ट्यूनड LLMs चित्रात येतात.

संकल्पना: इन्स्ट्रक्शन ट्यूनड LLMs

एक इन्स्ट्रक्शन ट्यूनड LLM फाउंडेशन मॉडेलपासून सुरू होते आणि उदाहरणे किंवा इनपुट/आउटपुट जोड्या (उदा., मल्टी-टर्न "मेसेंजे") ज्यात स्पष्ट निर्देश असू शकतात - आणि AI चे प्रतिसाद त्या निर्देशाचे अनुसरण करण्याचा प्रयत्न करते.

हे Reinforcement Learning with Human Feedback (RLHF) सारख्या तंत्रांचा वापर करते जे मॉडेलला निर्देशांचे अनुसरण करण्यासाठी आणि प्रतिसादांपासून शिकण्यासाठी प्रशिक्षण देऊ शकते जेणेकरून ते व्यावहारिक अनुप्रयोगांसाठी अधिक योग्य आणि वापरकर्त्याच्या उद्देशांसाठी अधिक संबंधित प्रतिसाद तयार करेल.

ते प्रयत्न करून पाहूया - वरील प्रॉम्प्ट पुन्हा पहा, पण आता सिस्टम मेसेज बदलून खालील निर्देश संदर्भ म्हणून द्या:

तुम्हाला दिलेल्या सामग्रीचे दुसऱ्या वर्गाच्या विद्यार्थ्यासाठी सारांश करा. परिणामी एक परिच्छेद 3-5 बुलेट पॉइंट्ससह ठेवा.

पहा की परिणाम आता इच्छित उद्दिष्ट आणि स्वरूप प्रतिबिंबित करण्यासाठी ट्यून केला आहे? शिक्षक आता त्यांच्या वर्गासाठी त्यांच्या स्लाइड्समध्ये हा प्रतिसाद थेट वापरू शकतो.

प्रॉम्प्ट इंजिनिअरिंगची गरज का आहे?

आता आपण जाणून घेतले आहे की प्रॉम्प्ट्स LLMs द्वारे कसे प्रक्रिया केली जातात, चला आपण प्रॉम्प्ट इंजिनिअरिंगची गरज का आहे याबद्दल बोलूया. उत्तर हे आहे की वर्तमान LLMs काही आव्हाने उभे करतात ज्यामुळे विश्वसनीय आणि सातत्यपूर्ण पूर्णता साध्य करणे अधिक आव्हानात्मक होते ज्यामुळे प्रॉम्प्ट बांधणी आणि ऑप्टिमायझेशनमध्ये प्रयत्न न करता. उदाहरणार्थ:

  1. मॉडेल प्रतिसाद यादृच्छिक आहेत. समान प्रॉम्प्ट वेगवेगळ्या मॉडेल्स किंवा मॉडेल आवृत्त्यांसह वेगवेगळे प्रतिसाद देण्याची शक्यता आहे. आणि ते समान मॉडेल सह वेगवेगळ्या वेळी वेगवेगळे परिणाम देऊ शकते. प्रॉम्प्ट इंजिनिअरिंग तंत्रे आम्हाला चांगले गार्डरेल्स प्रदान करून या विविधतांना कमी करण्यात मदत करू शकतात.

  2. मॉडेल्स प्रतिसाद तयार करू शकतात. मॉडेल्स मोठे पण सीमित डेटासेट्ससह पूर्व-प्रशिक्षित केले जातात, याचा अर्थ त्यांच्या प्रशिक्षणाच्या व्याप्तीच्या बाहेरील संकल्पनांबद्दल त्यांच्याकडे ज्ञान नाही. परिणामी, ते अशा पूर्णता तयार करू शकतात जी अचूक नाहीत, काल्पनिक आहेत किंवा ज्ञात तथ्यांना थेट विरोधी आहेत. प्रॉम्प्ट इंजिनिअरिंग तंत्रे वापरकर्त्यांना अशा बनावट वस्तू ओळखण्यात आणि कमी करण्यात मदत करतात उदा., AI ला संदर्भ किंवा तर्क विचारून.

  3. मॉडेल्सची क्षमता भिन्न असेल. नवीन मॉडेल्स किंवा मॉडेल पिढ्यांमध्ये समृद्ध क्षमता असतील परंतु खर्च आणि जटिलतेमध्ये अद्वितीय विचित्रता आणि व्यापार बंद देखील आणतील. प्रॉम्प्ट इंजिनिअरिंग आम्हाला सर्वोत्तम पद्धती आणि वर्कफ्लो विकसित करण्यात मदत करू शकते जे मॉडेल-विशिष्ट आवश्यकता स्केलेबल, अखंड मार्गाने स्वीकारण्यासाठी आणि रूपांतरित करण्यासाठी फरक दूर करतात.

हे OpenAI किंवा Azure OpenAI Playground मध्ये क्रियेत पाहूया:

  • वेगवेगळ्या LLM तैनातीसह समान प्रॉम्प्ट वापरा (उदा., OpenAI, Azure OpenAI, Hugging Face) - तुम्हाला विविधता दिसली का?
  • समान LLM तैनातीसह वारंवार समान प्रॉम्प्ट वापरा (उदा., Azure OpenAI Playground) - या विविधता कशा भिन्न होत्या?

बनावट उदाहरण

या कोर्समध्ये, आम्ही LLMs कधीकधी त्यांच्या प्रशिक्षणातील मर्यादा किंवा इतर मर्यादांमुळे वस्तुनिष्ठरीत्या चुकीची माहिती तयार करतात या घटनेचा संदर्भ देण्यासाठी "फॅब्रिकेशन" हा शब्द वापरतो. तुम्ही लोकप्रिय लेख किंवा संशोधन पत्रांमध्ये "हॅलुसिनेशन्स" म्हणून याचा संदर्भ ऐकला असेल. तथापि, आम्ही "फॅब्रिकेशन" हा शब्द वापरण्याची जोरदार शिफारस करतो जेणेकरून आपण मानवीसारखे वैशिष्ट्य मशीन-चालित परिणामासाठी देऊन वर्तनाचे मानवीकरण करण्याच्या चुकीच्या कृत्याने आपल्याला दुखापत होऊ नये. हे [जबाबदार AI मार्गदर्शक तत्त्वे](https://www शेवटी, टेम्पलेट्सचे खरे मूल्य उभ्या अनुप्रयोग डोमेनसाठी प्रॉम्प्ट लायब्ररी तयार करण्याची आणि प्रकाशित करण्याची क्षमता आहे - जिथे प्रॉम्प्ट टेम्पलेट आता ऑप्टिमाइझ केले गेले आहे जेणेकरून अनुप्रयोग-विशिष्ट संदर्भ किंवा उदाहरणे प्रतिबिंबित होतात ज्यामुळे प्रतिसाद लक्ष्यित वापरकर्त्यांसाठी अधिक संबंधित आणि अचूक बनतात. Prompts For Edu रेपॉझिटरी हा दृष्टिकोनाचा एक उत्तम उदाहरण आहे, शिक्षण डोमेनसाठी प्रॉम्प्ट्सची लायब्ररी क्युरेट करणे ज्यामध्ये धडे नियोजन, अभ्यासक्रम डिझाइन, विद्यार्थी शिकवणे इत्यादीसारख्या प्रमुख उद्दिष्टांवर भर दिला जातो.

समर्थन सामग्री

जर आपण प्रॉम्प्ट बांधकामाची कल्पना करू तर त्यात एक सूचना (कार्य) आणि एक लक्ष्य (प्राथमिक सामग्री) आहे, तर दुय्यम सामग्री ही अतिरिक्त संदर्भासारखी आहे जी आपण काही प्रकारे आउटपुटला प्रभावित करण्यासाठी प्रदान करतो. हे ट्यूनिंग पॅरामीटर्स, फॉरमॅटिंग सूचना, विषय वर्गीकरण इत्यादी असू शकतात जे मॉडेलला त्याचे उत्तर अनुकूलित करण्यासाठी मदत करू शकतात ज्यामुळे वापरकर्त्याचे उद्दिष्टे किंवा अपेक्षा पूर्ण होतात.

उदाहरणार्थ: अभ्यासक्रमातील उपलब्ध सर्व अभ्यासक्रमांवरील विस्तृत मेटाडेटासह अभ्यासक्रम कॅटलॉग दिल्यास (नाव, वर्णन, स्तर, मेटाडेटा टॅग, प्रशिक्षक इत्यादी):

  • आपण "फॉल 2023 साठी अभ्यासक्रम कॅटलॉग सारांशित करा" ही सूचना परिभाषित करू शकतो
  • आम्ही अपेक्षित आउटपुटचे काही उदाहरणे प्रदान करण्यासाठी प्राथमिक सामग्रीचा वापर करू शकतो
  • आम्ही दुय्यम सामग्रीचा वापर करून शीर्ष 5 "टॅग" ओळखू शकतो.

आता, मॉडेल काही उदाहरणांनी दर्शविलेल्या स्वरूपात सारांश प्रदान करू शकतो - परंतु जर एखाद्या निकालात एकाधिक टॅग असतील, तर ते दुय्यम सामग्रीमध्ये ओळखलेले 5 टॅग प्राधान्य देऊ शकतो.


प्रॉम्प्टिंग सर्वोत्तम पद्धती

आता आपण प्रॉम्प्ट्स कसे बांधले जाऊ शकतात हे जाणून घेतले आहे, आपण सर्वोत्तम पद्धतींचे प्रतिबिंबित करण्यासाठी त्यांना कसे डिझाइन करायचे याचा विचार करू शकतो. आपण हे दोन भागांमध्ये विचार करू शकतो - योग्य विचारसरणी असणे आणि योग्य तंत्रे लागू करणे.

प्रॉम्प्ट इंजिनीअरिंग विचारसरणी

प्रॉम्प्ट इंजिनीअरिंग हा एक ट्रायल-आणि-एरर प्रक्रिया आहे म्हणून तीन व्यापक मार्गदर्शक घटक लक्षात ठेवा:

  1. डोमेन समज महत्त्वाची आहे. प्रतिसादाची अचूकता आणि संबंधितता हा त्या अनुप्रयोग किंवा वापरकर्ता ज्या डोमेन मध्ये कार्य करतो त्याचा एक कार्य आहे. तंत्रे अनुकूलित करण्यासाठी तुमची अंतर्ज्ञान आणि डोमेन तज्ञता लागू करा. उदाहरणार्थ, तुमच्या सिस्टम प्रॉम्प्ट्समध्ये डोमेन-विशिष्ट व्यक्तिमत्व परिभाषित करा, किंवा तुमच्या वापरकर्ता प्रॉम्प्ट्समध्ये डोमेन-विशिष्ट टेम्पलेट्स वापरा. दुय्यम सामग्री प्रदान करा जी डोमेन-विशिष्ट संदर्भ प्रतिबिंबित करते, किंवा मॉडेलला परिचित वापर पॅटर्नकडे मार्गदर्शन करण्यासाठी डोमेन-विशिष्ट संकेत आणि उदाहरणे वापरा.

  2. मॉडेल समज महत्त्वाची आहे. आम्हाला माहित आहे की मॉडेल्स स्वाभाविकपणे स्टोचॅस्टिक आहेत. परंतु मॉडेल अंमलबजावणीसाठी ते वापरतात अशा प्रशिक्षण डेटासेट (पूर्व-प्रशिक्षित ज्ञान), ते प्रदान करतात अशा क्षमतांमध्ये (उदा., API किंवा SDK द्वारे) आणि ते अनुकूलित केलेल्या सामग्रीच्या प्रकारात (उदा., कोड विरुद्ध प्रतिमा विरुद्ध मजकूर) देखील बदलू शकतात. तुम्ही वापरत असलेल्या मॉडेलच्या ताकदी आणि मर्यादा समजून घ्या आणि त्या ज्ञानाचा वापर कार्यांना प्राधान्य देण्यासाठी किंवा मॉडेलच्या क्षमतांसाठी अनुकूलित केलेले सानुकूलित टेम्पलेट्स तयार करण्यासाठी करा.

  3. पुनरावृत्ती आणि सत्यापन महत्त्वाची आहे. मॉडेल्स वेगाने विकसित होत आहेत, आणि प्रॉम्प्ट इंजिनीअरिंगसाठी तंत्रे देखील विकसित होत आहेत. एक डोमेन तज्ञ म्हणून, तुमच्या विशिष्ट अनुप्रयोगासाठी तुम्हाला इतर संदर्भ किंवा निकष असू शकतात, जे व्यापक समुदायासाठी लागू होत नाहीत. प्रॉम्प्ट इंजिनीअरिंग टूल्स आणि तंत्रांचा वापर करून प्रॉम्प्ट बांधकामाला "झटकून सुरू करा", मग परिणामांची पुनरावृत्ती करा आणि सत्यापित करा तुमच्या स्वतःच्या अंतर्ज्ञान आणि डोमेन तज्ञतेचा वापर करून. तुमची अंतर्दृष्टी नोंदवा आणि एक ज्ञान आधार तयार करा (उदा., प्रॉम्प्ट लायब्ररी) ज्याचा वापर इतरांनी नवीन आधार म्हणून केला जाऊ शकतो, भविष्यात जलद पुनरावृत्तीसाठी.

सर्वोत्तम पद्धती

आता आपण OpenAI आणि Azure OpenAI तज्ञांनी शिफारस केलेल्या सामान्य सर्वोत्तम पद्धतींकडे पाहू.

काय का
नवीनतम मॉडेल्सचे मूल्यांकन करा. नवीन मॉडेल पिढ्या सुधारित वैशिष्ट्ये आणि गुणवत्ता असण्याची शक्यता आहे - परंतु त्यात उच्च खर्च देखील लागू होऊ शकतो. प्रभावासाठी त्यांचे मूल्यांकन करा, मग स्थलांतर निर्णय घ्या.
सूचना आणि संदर्भ वेगळे करा. तुमचे मॉडेल/प्रदाता सीमारेषा परिभाषित करतो का ते तपासा जेणेकरून सूचना, प्राथमिक आणि दुय्यम सामग्री अधिक स्पष्टपणे वेगळे करता येईल. हे मॉडेल्सना टोकनसाठी अधिक अचूक वजन देण्यास मदत करू शकते.
विशिष्ट आणि स्पष्ट असणे अपेक्षित संदर्भ, परिणाम, लांबी, स्वरूप, शैली इत्यादीबद्दल अधिक तपशील द्या. यामुळे प्रतिसादांची गुणवत्ता आणि सुसंगतता सुधारेल. पुन्हा वापरण्यायोग्य टेम्पलेट्समध्ये रेसिपी कॅप्चर करा.
वर्णनात्मक असणे, उदाहरणे वापरणे मॉडेल्स "शो आणि टेल" दृष्टिकोनास उत्तम प्रतिसाद देऊ शकतात. zero-shot approach where you give it an instruction (but no examples) then try few-shot as a refinement, providing a few examples of the desired output. Use analogies.
Use cues to jumpstart completions Nudge it towards a desired outcome by giving it some leading words or phrases that it can use as a starting point for the response.
Double Down Sometimes you may need to repeat yourself to the model. Give instructions before and after your primary content, use an instruction and a cue, etc. Iterate & validate to see what works.
Order Matters The order in which you present information to the model may impact the output, even in the learning examples, thanks to recency bias. Try different options to see what works best.
Give the model an “out” Give the model a fallback completion response it can provide if it cannot complete the task for any reason. This can reduce chances of models generating false or fabricated responses.

As with any best practice, remember that your mileage may vary based on the model, the task and the domain. Use these as a starting point, and iterate to find what works best for you. Constantly re-evaluate your prompt engineering process as new models and tools become available, with a focus on process scalability and response quality.

Assignment

Congratulations! You made it to the end of the lesson! It's time to put some of those concepts and techniques to the test with real examples!

For our assignment, we'll be using a Jupyter Notebook with exercises you can complete interactively. You can also extend the Notebook with your own Markdown and Code cells to explore ideas and techniques on your own.

To get started, fork the repo, then

  • (Recommended) Launch GitHub Codespaces
  • (Alternatively) Clone the repo to your local device and use it with Docker Desktop
  • (Alternatively) Open the Notebook with your preferred Notebook runtime environment.

Next, configure your environment variables

  • Copy the .env.copy file in repo root to .env and fill in the AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT and AZURE_OPENAI_DEPLOYMENT मूल्यांसह प्रारंभ करा. Learning Sandbox section मध्ये परत जा शिकण्यासाठी.

पुढे, Jupyter Notebook उघडा

  • रनटाइम कर्नल निवडा. पर्याय 1 किंवा 2 वापरत असल्यास, फक्त डेव्ह कंटेनरद्वारे प्रदान केलेला डीफॉल्ट Python 3.10.x कर्नल निवडा.

तुम्ही व्यायाम चालवण्यासाठी तयार आहात. येथे योग्य आणि चुकीचे उत्तर नाहीत - फक्त ट्रायल-आणि-एररद्वारे पर्याय शोधणे आणि दिलेल्या मॉडेल आणि अनुप्रयोग डोमेनसाठी काय कार्य करते यासाठी अंतर्ज्ञान तयार करणे.

या कारणास्तव या धड्यात कोड सोल्यूशन विभाग नाहीत. त्याऐवजी, Notebook मध्ये "My Solution:" नावाचे Markdown सेल्स असतील जे संदर्भासाठी एक उदाहरण आउटपुट दर्शवेल.

ज्ञान तपासणी

खालीलपैकी कोणते काही योग्य सर्वोत्तम पद्धतींनुसार एक चांगला प्रॉम्प्ट आहे?

  1. मला लाल कारची एक प्रतिमा दाखवा
  2. मला लाल कारची प्रतिमा दाखवा ज्याचे उत्पादन Volvo आहे आणि मॉडेल XC90 आहे जो एका कड्यावर पार्क केलेला आहे आणि सूर्यास्त होत आहे
  3. मला लाल कारची प्रतिमा दाखवा ज्याचे उत्पादन Volvo आहे आणि मॉडेल XC90 आहे

A: 2, हे सर्वोत्तम प्रॉम्प्ट आहे कारण ते "काय" याबद्दल तपशील प्रदान करते आणि विशिष्टतेत जाते (फक्त कोणतीही कार नाही तर एक विशिष्ट उत्पादन आणि मॉडेल) आणि ते एकूण सेटिंगचे वर्णन देखील करते. 3 पुढील सर्वोत्तम आहे कारण त्यात देखील बरेच वर्णन आहे.

🚀 आव्हान

प्रॉम्प्टसह "संकेत" तंत्राचा उपयोग करून पाहा: वाक्य पूर्ण करा "मला लाल कारची प्रतिमा दाखवा ज्याचे उत्पादन Volvo आहे आणि ". ते कशासह प्रतिसाद देते आणि तुम्ही ते कसे सुधारित कराल?

उत्तम कार्य! तुमचे शिक्षण सुरू ठेवा

वेगवेगळ्या प्रॉम्प्ट इंजिनीअरिंग संकल्पनांबद्दल अधिक जाणून घेऊ इच्छिता? या विषयावर इतर उत्तम संसाधने शोधण्यासाठी सतत शिक्षण पृष्ठ वर जा.

पाठ 5 मध्ये जा जिथे आम्ही प्रगत प्रॉम्प्टिंग तंत्रे पाहणार आहोत!

अस्वीकृती:
हा दस्तऐवज AI भाषांतर सेवा Co-op Translator वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात ठेवा की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेची कमतरता असू शकते. मूळ भाषेतील दस्तऐवज अधिकृत स्रोत मानला पाहिजे. महत्वाच्या माहितीसाठी, व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून उद्भवलेल्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थाबद्दल आम्ही जबाबदार नाही.