जनरेटिव मॉडल के बारे में जानकारी

मॉडल के Gemini परिवार जैसे जनरेटिव आर्टिफ़िशियल इंटेलिजेंस (एआई) मॉडल अलग-अलग तरह के डेटा इनपुट से कॉन्टेंट बना सकते हैं. जैसे, टेक्स्ट, इमेज, और ऑडियो. अपने सबसे बुनियादी स्तर पर, ये मॉडल बेहतर ऑटोकंप्लीट ऐप्लिकेशन की तरह काम करते हैं. इनपुट टेक्स्ट ("आप घोड़े को पानी की तरफ़ ले जा सकते हैं"), तो जनरेटिव मॉडल यह अनुमान लगा सकता है कि स्टैटिक तौर पर किस आउटपुट टेक्स्ट के फ़ॉलो किया जा सकता है ("लेकिन आप इसे नहीं पी सकते", यह उनके ट्रेनिंग डेटा से सीखे गए पैटर्न के आधार पर जनरेट होता है. जनरेटिव मॉडल की इस बुनियादी प्रॉपर्टी का इस्तेमाल, अलग-अलग ऐप्लिकेशन के लिए किया जा सकता है:

  • कविता, छोटी-छोटी कहानियां, उपमा, और ब्लॉग पोस्ट जैसी क्रिएटिव लेखन लिखें
  • स्ट्रक्चर्ड डेटा को फ़्रीफ़ॉर्म टेक्स्ट में बदलना
  • फ़्रीफ़ॉर्म टेक्स्ट से जानकारी निकालना और उसके बारे में खास जानकारी देना
  • कोड जनरेट करें
  • एक भाषा से दूसरी भाषा में अनुवाद पाएं

इन सुविधाओं को बनाने के लिए जनरेटिव मॉडल का इस्तेमाल करने के लिए, किसी मशीन लर्निंग (एमएल) की विशेषज्ञता की ज़रूरत नहीं होती. आपको बड़ा डेटासेट इकट्ठा करने या किसी मॉडल को ट्रेनिंग देने की ज़रूरत नहीं है. अपना पहला प्रोटोटाइप शुरू करने के लिए, कुछ वाक्यों में यह बताना होता है कि मॉडल से क्या किया जाना है.

ऐसे जनरेटिव मॉडल जो सिर्फ़ टेक्स्ट इनपुट और आउटपुट को हैंडल करते हैं उन्हें लार्ज लैंग्वेज मॉडल (एलएलएम) भी कहा जाता है. Gemini मॉडल की फ़ैमिली, टेक्स्ट डेटा के अलावा ज़्यादा डेटा प्रोसेस कर सकती है. हालाँकि, वे एलएलएम के काम करने के तरीके को ज़्यादा अच्छी तरह से जनरेटिव मॉडल कहते हैं.

उदाहरण ऐप्लिकेशन

नीचे दिए गए उदाहरणों में, जनरेटिव मॉडल के लिए सामान्य टेक्स्ट इनपुट और उससे मिलने वाले आउटपुट दिखाए गए हैं.

कविता जनरेट करें

उपयोगकर्ता का इनपुट: Write me a four-line poem about puppies and Android phones. Make sure it rhymes.

मॉडल आउटपुट:

Puppies are cute,
Android phones are neat,
They both bring joy,
And make life complete.

सूची जनरेट करें

उपयोगकर्ता का इनपुट: Generate a bulleted list of items I need to pack for a three-day camping trip.

मॉडल आउटपुट:

*   Tent
*   Sleeping bag
*   Sleeping pad
*   Camp stove
*   Pots and pans
*   Utensils
*   Food
*   Water
*   First-aid kit
*   Sunscreen
*   Insect repellent
*   ...

इस तरह के काम करने के लिए जनरेटिव मॉडल मिल सकते हैं. इनकी मदद से, सही इनपुट टेक्स्ट तैयार किया जाता है, जिसे प्रॉम्प्ट भी कहा जाता है. जनरेटिव मॉडल पाने के लिए, सही शब्दों का इस्तेमाल करने की कला और विज्ञान को प्रॉम्प्ट डिज़ाइन कहा जाता है. इसे "प्रॉम्प्ट इंजीनियरिंग" या सिर्फ़ "प्रॉम्प्टिंग" भी कहा जाता है.

प्रॉम्प्ट डिज़ाइन 101

पिछले सेक्शन में, ऐसे सवालों के उदाहरण दिखाए गए थे जिनमें कोई निर्देश दिया गया था. जैसे, 'मुझे एक कविता लिखो'. कुछ खास तरह के कामों के लिए इस तरह का निर्देश देने से फ़ायदा हो सकता है. हालांकि, दूसरे ऐप्लिकेशन के लिए, कुछ समय के लिए निर्देश देने वाली दूसरी तकनीक बेहतर काम कर सकती है. कुछ शॉट में प्रॉम्प्ट इस बात का फ़ायदा उठाते हैं कि बड़े लैंग्वेज मॉडल, टेक्स्ट डेटा में मौजूद पैटर्न की पहचान और उनकी नकल करने में बहुत अच्छे हैं. आइडिया यह है कि जनरेटिव मॉडल को ऐसा टेक्स्ट पैटर्न भेजा जाए जिसे वह सीखता है. उदाहरण के लिए, मान लें कि आपको एक ऐसा ऐप्लिकेशन बनाना है जो किसी देश का नाम लेता हो और उसके बड़े शहर का नाम दिखाता हो. यहां एक टेक्स्ट प्रॉम्प्ट दिया गया है जिसे खास तौर पर ऐसा करने के लिए डिज़ाइन किया गया है:

Italy : Rome
France : Paris
Germany :

इस प्रॉम्प्ट में, आपको एक पैटर्न तय करना होगा: [country] : [capital]. अगर इस प्रॉम्प्ट को किसी बड़े लैंग्वेज मॉडल पर भेजा जाता है, तो यह पैटर्न को अपने-आप पूरा कर देगा. साथ ही, कुछ ऐसा दिखाएगा:

     Berlin
Turkey : Ankara
Greece : Athens

यह मॉडल रिस्पॉन्स कुछ अजीब लग सकता है. मॉडल ने न सिर्फ़ जर्मनी की राजधानी (आपके हाथ से लिखे गए प्रॉम्प्ट का आखिरी देश) की, बल्कि अतिरिक्त देशों और पूंजी जोड़ों की पूरी सूची भी दिखाई. इसकी वजह यह है कि जनरेटिव मॉडल “पैटर्न को जारी रखना” है. अगर आपको सिर्फ़ एक ऐसा फ़ंक्शन बनाना है जो आपको किसी इनपुट देश ("जर्मनी : बर्लिन") की राजधानी के बारे में बताता है, तो शायद आप "बर्लिन" के बाद मॉडल से जनरेट होने वाले किसी भी टेक्स्ट पर ध्यान न दें. ऐप्लिकेशन डिज़ाइनर के तौर पर, हो सकता है कि आप उन ग़ैर-ज़रूरी उदाहरणों को हटाना चाहें. इसके अलावा, शायद आप इनपुट को पैरामीटर करना चाहें, ताकि जर्मनी कोई तय स्ट्रिंग न हो, बल्कि एक ऐसा वैरिएबल हो जो असली उपयोगकर्ता से मिला हो:

Italy : Rome
France : Paris
<user input here> :

आपने देश की राजधानियां जनरेट करने के लिए अभी कुछ-कुछ प्रॉम्प्ट लिखा है.

इस कुछ सवाल वाले प्रॉम्प्ट टेंप्लेट का इस्तेमाल करके, कई टास्क पूरे किए जा सकते हैं. यहां थोड़े अलग फ़ॉर्मैट वाले कुछ शॉट के प्रॉम्प्ट दिए गए हैं, जो Python को JavaScript में बदल देता है:

Convert Python to JavaScript.
Python: print("hello world")
JavaScript: console.log("hello world")
Python: for x in range(0, 100):
JavaScript: for(var i = 0; i < 100; i++) {
Python: ${USER INPUT HERE}
JavaScript:

या, इस "रिवर्स डिक्शनरी" प्रॉम्प्ट का इस्तेमाल करें. परिभाषा दी जाने पर, यह उस परिभाषा से मेल खाने वाले शब्द को दिखाता है:

Given a definition, return the word it defines.
Definition: When you're happy that other people are also sad.
Word: schadenfreude
Definition: existing purely in the mind, but not in physical reality
Word: abstract
Definition: ${USER INPUT HERE}
Word:

आपने शायद ध्यान दिया होगा कि इन कुछ शॉट के प्रॉम्प्ट का पैटर्न थोड़ा अलग होता है. उदाहरण शामिल करने के अलावा, अपने प्रॉम्प्ट में निर्देश देना भी एक अतिरिक्त रणनीति है. इस रणनीति का इस्तेमाल, अपने प्रॉम्प्ट लिखते समय किया जा सकता है. इससे मॉडल को अपने मकसद के बारे में बताने में मदद मिलती है.

प्रॉम्प्टिंग बनाम पारंपरिक सॉफ़्टवेयर डेवलपमेंट

ध्यान से लिखे जाने वाले खास सॉफ़्टवेयर के उलट, जनरेटिव मॉडल का व्यवहार काफ़ी हद तक मॉडल ट्रेनर के काम का नहीं होता. इस वजह से, आम तौर पर पहले से यह अनुमान नहीं लगाया जा सकता कि किसी मॉडल के लिए, किस तरह के प्रॉम्प्ट स्ट्रक्चर बेहतर काम करेंगे. इसके अलावा, जनरेटिव मॉडल के काम करने का तरीका बहुत हद तक उसकी ट्रेनिंग वाले डेटा से तय होता है. मॉडल को नए डेटासेट पर लगातार ट्यून किया जाता है. इसलिए, कभी-कभी मॉडल में अनजाने में इतना बदलाव हो जाता है कि यह प्रॉम्प्ट सबसे अच्छी तरह काम करता है. आपके लिए इसके क्या मायने हैं? Experiment! प्रॉम्प्ट के अलग-अलग फ़ॉर्मैट आज़माएं.

मॉडल पैरामीटर

मॉडल को भेजे जाने वाले हर प्रॉम्प्ट में, पैरामीटर वैल्यू शामिल होती हैं. इनसे यह कंट्रोल किया जाता है कि मॉडल कैसे रिस्पॉन्स जनरेट करता है. मॉडल अलग-अलग पैरामीटर वैल्यू के लिए अलग-अलग नतीजे जनरेट कर सकता है. सबसे सामान्य मॉडल पैरामीटर ये हैं:

  1. ज़्यादा से ज़्यादा आउटपुट टोकन: इससे यह पता चलता है कि रिस्पॉन्स में ज़्यादा से ज़्यादा कितने टोकन जनरेट हो सकते हैं. एक टोकन में करीब चार वर्ण होते हैं. 100 टोकन करीब 60 से 80 शब्दों के होते हैं.

  2. तापमान: यह तापमान टोकन चुने जाने में रैंडमनेस के लेवल को कंट्रोल करता है. तापमान का इस्तेमाल, रिस्पॉन्स जनरेट करने के दौरान सैंपल लेने के लिए किया जाता है. यह तब होता है, जब topP और topK लागू किए जाते हैं. कम तापमान ऐसे प्रॉम्प्ट के लिए अच्छा होता है जिनके लिए ज़्यादा तय और खुले जवाब की ज़रूरत होती है. वहीं, ज़्यादा तापमान से अलग-अलग तरह के नतीजे या क्रिएटिव नतीजे मिलते हैं. तापमान 0 होने पर, उसे तय किया जाता है. इसका मतलब है कि सबसे ज़्यादा संभावना वाले रिस्पॉन्स को हमेशा चुना जाता है.

  3. topK: topK पैरामीटर, आउटपुट के लिए टोकन चुनने के तरीके को बदलता है. 1 में से topK का मतलब है कि चुना गया टोकन, मॉडल की शब्दावली में मौजूद सभी टोकन में से सबसे ज़्यादा संभावना है. इसे लाली डीकोडिंग भी कहा जाता है. वहीं, तीन में से topK का मतलब है कि तापमान का इस्तेमाल करके, अगले टोकन को तीन में से चुना गया है. टोकन चुनने के हर चरण के लिए, सबसे ज़्यादा संभावना वाले topK टोकन का सैंपल लिया जाता है. इसके बाद, टोकन को topP के आधार पर फ़िल्टर किया जाता है. साथ ही, आखिरी टोकन को टेंपरेचर सैंपलिंग का इस्तेमाल करके फ़िल्टर किया जाता है.

  4. topP: topP पैरामीटर, आउटपुट के लिए टोकन चुनने के तरीके को बदलता है. टोकन को सबसे कम संभावना वाले पॉइंट से तब तक चुना जाता है, जब तक कि उनकी संभावनाओं का योग topP वैल्यू के बराबर न हो. उदाहरण के लिए, अगर टोकन A, B, और C की 0.3, 0.2, और 0.1 की संभावना है और topP वैल्यू 0.5 है, तो मॉडल, तापमान का इस्तेमाल करके A या B को अगले टोकन के तौर पर चुनेगा और C को कैंडिडेट के तौर पर बाहर रखेगा. topP की डिफ़ॉल्ट वैल्यू 0.95 है.

  5. stop_sequences: मॉडल को कॉन्टेंट जनरेट करना बंद करने के लिए कहने के लिए, स्टॉप सीक्वेंस सेट करें. स्टॉप का क्रम, वर्णों का कोई भी क्रम हो सकता है. उन वर्णों के क्रम का इस्तेमाल करने से बचें जो जनरेट किए गए कॉन्टेंट में दिख सकते हैं.

प्रॉम्प्ट के टाइप

उनमें शामिल संदर्भ के हिसाब से जानकारी के लेवल के आधार पर, प्रॉम्प्ट को तीन तरह की कैटगरी में बांटा जाता है.

ज़ीरो-शॉट प्रॉम्प्ट

इन प्रॉम्प्ट में, मॉडल को कॉपी करने के उदाहरण नहीं होते. ज़ीरो-शॉट प्रॉम्प्ट से पता चलता है कि मॉडल, किसी दूसरे उदाहरण या जानकारी के बिना भी प्रॉम्प्ट को पूरा कर सकता है या नहीं. इसका मतलब है कि मॉडल को सही जवाब पाने के लिए, पहले से मौजूद अपनी जानकारी पर भरोसा करना होगा.

आम तौर पर, ज़ीरो-शॉट प्रॉम्प्ट के कुछ ऐसे पैटर्न इस्तेमाल किए जाते हैं:

  • निर्देश से जुड़ा कॉन्टेंट
<Overall instruction>
<Content to operate on>

उदाहरण के लिए,

Summarize the following into two sentences at the third-grade level:

Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds.

Hummingbirds are made up of three main parts: the head, the body, and the tail.
The head is small and round, and it contains the eyes, the beak, and the brain.
The body is long and slender, and it contains the wings, the legs, and the
heart. The tail is long and forked, and it helps the hummingbird to balance
while it is flying.

Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color!

Hummingbirds are very active creatures. They spend most of their time flying,
and they are also very good at hovering. Hummingbirds need to eat a lot of food
in order to maintain their energy, and they often visit flowers to drink nectar.

Hummingbirds are amazing creatures. They are small, but they are also very
powerful. They are beautiful, and they are very important to the ecosystem.
  • निर्देश कॉन्टेंट से जुड़ा निर्देश
<Overall instruction or context setting>
<Content to operate on>
<Final instruction>

उदाहरण के लिए,

Here is some text I'd like you to summarize:

Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds. Hummingbirds
are made up of three main parts: the head, the body, and the tail. The head is
small and round, and it contains the eyes, the beak, and the brain. The body is
long and slender, and it contains the wings, the legs, and the heart. The tail
is long and forked, and it helps the hummingbird to balance while it is flying.
Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color! Hummingbirds are very active creatures. They spend most
of their time flying, and they are also very good at hovering. Hummingbirds need
to eat a lot of food in order to maintain their energy, and they often visit
flowers to drink nectar. Hummingbirds are amazing creatures. They are small, but
they are also very powerful. They are beautiful, and they are very important to
the ecosystem.

Summarize it in two sentences at the third-grade reading level.
  • जारी है. कभी-कभी, बिना किसी निर्देश के मॉडल को जारी रखने के लिए टेक्स्ट दिखाया जा सकता है. उदाहरण के लिए, यहां एक ज़ीरो-शॉट प्रॉम्प्ट दिया गया है, जिसमें मॉडल का मकसद, दिए गए इनपुट को जारी रखना है:
Once upon a time, there was a little sparrow building a nest in a farmer's
barn. This sparrow

कविताओं, कोड, स्क्रिप्ट, संगीत के हिस्सों, ईमेल या अक्षरों जैसे क्रिएटिव टेक्स्ट फ़ॉर्मैट जनरेट करने के लिए, ज़ीरो-शॉट प्रॉम्प्ट का इस्तेमाल करें.

एक बार में दिए जाने वाले प्रॉम्प्ट

इन प्रॉम्प्ट की मदद से, इस मॉडल में पैटर्न को दोहराने और उसे जारी रखने के लिए एक उदाहरण दिया जाता है. यह मॉडल से अनुमान लगाने लायक रिस्पॉन्स जनरेट करने की अनुमति देता है.

उदाहरण के लिए, खाने के साथ जोड़ने के लिए इस तरह की जानकारी जनरेट की जा सकती है:

Food: Apple
Pairs with: Cheese
Food: Pear
Pairs with:

कुछ शॉट प्रॉम्प्ट

इन प्रॉम्प्ट की मदद से, इस मॉडल को कॉपी करने के लिए कई उदाहरण दिए जा सकते हैं. मुश्किल कामों को पूरा करने के लिए, कुछ शॉट प्रॉम्प्ट का इस्तेमाल करें. जैसे, किसी पैटर्न के हिसाब से डेटा इकट्ठा करना.

प्रॉम्प्ट का यह उदाहरण हो सकता है:

Generate a grocery shopping list for a week for one person. Use the JSON format
given below.
{"item": "eggs", "quantity": "6"}
{"item": "bread", "quantity": "one loaf"}

हुड के तहत जनरेटिव मॉडल

इस सेक्शन में इस सवाल का जवाब दिया गया है - क्या जनरेटिव मॉडल के जवाबों में रैंडमिटी है या वे तय हैं?

कम शब्दों का जवाब - दोनों के लिए हां. जनरेटिव मॉडल से सवाल पूछने पर, टेक्स्ट का जवाब दो चरणों में जनरेट होता है. पहले चरण में, जनरेटिव मॉडल, इनपुट प्रॉम्प्ट को प्रोसेस करता है और आने वाले संभावित टोकन (शब्दों) के बजाय प्रॉबबिलिटी डिस्ट्रिब्यूशन जनरेट करता है. उदाहरण के लिए, अगर आपने इनपुट टेक्स्ट के साथ कहा कि "कुत्ते ने इस शब्द को पार किया ... ", तो जनरेटिव मॉडल ऐसा होगा जिससे आगे आने वाले शब्दों का कलेक्शन बनाया जा सके:

[("fence", 0.77), ("ledge", 0.12), ("blanket", 0.03), ...]

यह प्रोसेस डिटर्मिनिस्टिक है. जनरेटिव मॉडल, हर बार एक ही प्रॉम्प्ट टेक्स्ट इनपुट करने पर एक ही डिस्ट्रिब्यूशन को जनरेट करेगा.

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

इसके बारे में और पढ़ें

  • अब आपको प्रॉम्प्ट और जनरेटिव मॉडल के बारे में बेहतर जानकारी हो गई है. इसलिए, Google AI Studio का इस्तेमाल करके, अपने प्रॉम्प्ट लिखने की कोशिश करें.
  • प्रॉम्प्ट बनाने के सबसे सही तरीकों के बारे में ज़्यादा जानने के लिए, प्रॉम्प्ट से जुड़े दिशा-निर्देश देखें.