पिछली यूनिट में, सामान्य काम के लिए इस्तेमाल होने वाले एलएलएम के बारे में बताया गया था. इन्हें अलग-अलग नामों से जाना जाता है:
- फ़ाउंडेशन एलएलएम
- बेस एलएलएम
- पहले से ट्रेन किए गए एलएलएम
फ़ाउंडेशन एलएलएम को ज़रूरत के मुताबिक़ नैचुरल लैंग्वेज पर ट्रेनिंग दी जाती है, ताकि वह व्याकरण, शब्दों, और मुहावरों के बारे में काफ़ी कुछ "जान सके". फ़ाउंडेशन लैंग्वेज मॉडल, उन विषयों के बारे में मददगार वाक्य जनरेट कर सकता है जिन पर उसे ट्रेन किया गया है. इसके अलावा, फ़ाउंडेशन एलएलएम में कुछ ऐसे काम किए जा सकते हैं जिन्हें आम तौर पर "क्रिएटिव" कहा जाता है. जैसे, कविता लिखना. हालांकि, फ़ाउंडेशन एलएलएम का जनरेटिव टेक्स्ट आउटपुट, एमएल से जुड़ी अन्य सामान्य समस्याओं का समाधान नहीं है. जैसे, रेग्रेसन या क्लासिफ़िकेशन. इस्तेमाल के इन उदाहरणों के लिए, फ़ाउंडेशन एलएलएम, किसी समाधान के बजाय प्लैटफ़ॉर्म के तौर पर काम कर सकता है.
फ़ाउंडेशन एलएलएम को किसी ऐप्लिकेशन की ज़रूरतों के हिसाब से समाधान में बदलने के लिए, बेहतर बनाने की प्रोसेस की ज़रूरत होती है. डिस्टिलेशन नाम की एक दूसरी प्रोसेस, बेहतर बनाए गए मॉडल का छोटा (कम पैरामीटर वाला) वर्शन जनरेट करती है.
फ़ाइन-ट्यूनिंग
रिसर्च से पता चलता है कि फ़ाउंडेशन लैंग्वेज मॉडल, पैटर्न की पहचान करने की काफ़ी बेहतर सुविधाएं देते हैं. इसलिए, उन्हें कुछ खास टास्क सीखने के लिए, ज़्यादा ट्रेनिंग की ज़रूरत नहीं पड़ती. इस अतिरिक्त ट्रेनिंग से, मॉडल को किसी खास टास्क के लिए बेहतर अनुमान लगाने में मदद मिलती है. इस अतिरिक्त ट्रेनिंग को बेहतर बनाना कहा जाता है. इससे एलएलएम की प्रैक्टिकल जानकारी मिलती है.
फ़ाइन-ट्यूनिंग, आपके ऐप्लिकेशन के टास्क के लिए खास उदाहरणों पर ट्रेन करता है. इंजीनियर कभी-कभी, फ़ाउंडेशन एलएलएम को सिर्फ़ कुछ हज़ार या कुछ हज़ार ट्रेनिंग उदाहरणों के आधार पर बेहतर बना सकते हैं.
ट्रेनिंग के उदाहरणों की संख्या कम होने के बावजूद, स्टैंडर्ड फ़ाइन-ट्यूनिंग के लिए अक्सर ज़्यादा कंप्यूटिंग की ज़रूरत होती है. ऐसा इसलिए है, क्योंकि स्टैंडर्ड फ़ाइन-ट्यूनिंग में, हर बैकप्रोपगेशन के दौरान, हर पैरामीटर के वेट और बायस को अपडेट करना शामिल होता है. पैरामीटर के हिसाब से बेहतर ट्यूनिंग नाम की एक बेहतर प्रोसेस की मदद से, एलएलएम को बेहतर बनाया जा सकता है. इसके लिए, बैकप्रोपगेशन के हर दोहराव पर, पैरामीटर के सिर्फ़ एक सबसेट में बदलाव किया जाता है.
आम तौर पर, बेहतर बनाए गए मॉडल के अनुमान, फ़ाउंडेशन एलएलएम के अनुमान से बेहतर होते हैं. हालांकि, बेहतर बनाए गए मॉडल में उतने ही पैरामीटर होते हैं जितने फ़ाउंडेशन एलएलएम में होते हैं. इसलिए, अगर फ़ाउंडेशन एलएलएम में 10 अरब पैरामीटर हैं, तो बेहतर वर्शन में भी 10 अरब पैरामीटर होंगे.
डिस्टिलेशन
ज़्यादातर बेहतर एलएलएम में बहुत ज़्यादा पैरामीटर होते हैं. इसलिए, अनुमान जनरेट करने के लिए, फ़ाउंडेशन एलएलएम को कंप्यूटिंग और एनवायरमेंट से जुड़े ज़्यादा संसाधनों की ज़रूरत होती है. ध्यान दें कि आम तौर पर, उन पैरामीटर का ज़्यादातर हिस्सा किसी खास ऐप्लिकेशन के लिए काम का नहीं होता.
डिस्टिलेशन, एलएलएम का छोटा वर्शन बनाता है. छोटा किया गया एलएलएम, अनुमान बहुत तेज़ी से जनरेट करता है. साथ ही, इसके लिए पूरे एलएलएम की तुलना में, कम कंप्यूटिंग और पर्यावरण से जुड़े रिसॉर्स की ज़रूरत होती है. हालांकि, आम तौर पर, छोटे किए गए मॉडल के अनुमान, ओरिजनल एलएलएम के अनुमान के मुकाबले उतने अच्छे नहीं होते. याद रखें कि ज़्यादा पैरामीटर वाले एलएलएम, कम पैरामीटर वाले एलएलएम की तुलना में हमेशा बेहतर अनुमान जनरेट करते हैं.
प्रॉम्प्ट इंजीनियरिंग
प्रॉम्प्ट इंजीनियरिंग की मदद से, एलएलएम के असल उपयोगकर्ता, मॉडल के आउटपुट को पसंद के मुताबिक बना सकते हैं. इसका मतलब है कि असली उपयोगकर्ता यह तय करते हैं कि एलएलएम को उनके प्रॉम्प्ट का जवाब कैसे देना चाहिए.
लोग उदाहरणों से अच्छी तरह सीखते हैं. एलएलएम भी ऐसा ही करते हैं. एलएलएम को एक उदाहरण दिखाने को वन-शॉट प्रॉम्प्ट कहा जाता है. उदाहरण के लिए, मान लें कि आपको किसी फ़ल की फ़ैमिली को आउटपुट करने के लिए, मॉडल को इस फ़ॉर्मैट का इस्तेमाल करना है:
उपयोगकर्ता किसी फल का नाम डालता है: एलएलएम उस फल की क्लास दिखाता है.
वन-शॉट प्रॉम्प्ट, एलएलएम को पिछले फ़ॉर्मैट का एक उदाहरण दिखाता है और फिर उस उदाहरण के आधार पर क्वेरी को पूरा करने के लिए कहता है. उदाहरण के लिए:
peach: drupe apple: ______
कभी-कभी एक उदाहरण ही काफ़ी होता है. अगर ऐसा है, तो एलएलएम एक काम का अनुमान दिखाता है. उदाहरण के लिए:
apple: pome
अन्य मामलों में, एक उदाहरण काफ़ी नहीं होता. इसका मतलब है कि उपयोगकर्ता को एलएलएम के कई उदाहरण दिखाने होंगे. उदाहरण के लिए, यहां दिए गए प्रॉम्प्ट में दो उदाहरण दिए गए हैं:
plum: drupe pear: pome lemon: ____
एक से ज़्यादा उदाहरण देने को, फ़्यू-शॉट प्रॉम्प्ट कहा जाता है. पिछले प्रॉम्प्ट की पहली दो लाइनों को ट्रेनिंग के उदाहरण के तौर पर देखा जा सकता है.
क्या एलएलएम, बिना किसी उदाहरण के काम के अनुमान दे सकता है (ज़ीरो-शॉट प्रॉम्प्ट)? कभी-कभी, लेकिन एलएलएम को कॉन्टेक्स्ट पसंद है. बिना संदर्भ के, यहां दिया गया शून्य शॉट प्रॉम्प्ट, फ़ल के बजाय टेक्नोलॉजी कंपनी के बारे में जानकारी दिखा सकता है:
apple: _______
ऑफ़लाइन अनुमान
कभी-कभी एलएलएम में पैरामीटर की संख्या इतनी ज़्यादा होती है कि ऑनलाइन अनुमान बहुत धीमा हो जाता है. इस वजह से, यह रेग्रेसन या क्लासिफ़िकेशन जैसे असल कामों के लिए काम का नहीं होता. इसलिए, कई इंजीनियरिंग टीमें ऑफ़लाइन अनुमान (इसे बल्क अनुमान या स्टैटिक अनुमान भी कहा जाता है) पर भरोसा करती हैं. दूसरे शब्दों में, ट्रेन किया गया मॉडल, अनुमान पहले से लगा लेता है और फिर उन अनुमान को कैश मेमोरी में सेव कर लेता है. इसके बाद, अनुमान दिखाने के लिए, क्वेरी के जवाब देने की ज़रूरत नहीं पड़ती.
अगर एलएलएम को अपना टास्क पूरा करने में ज़्यादा समय लगता है, तो इससे कोई फ़र्क़ नहीं पड़ता. ऐसा तब होता है, जब एलएलएम को अपना टास्क सिर्फ़ हफ़्ते में एक बार या महीने में एक बार करना हो.
उदाहरण के लिए, Google Search ने ऑफ़लाइन अनुमान लगाने के लिए, एलएलएम का इस्तेमाल किया. इससे, 50 से ज़्यादा भाषाओं में, COVID के टीकों के लिए 800 से ज़्यादा मिलते-जुलते शब्दों की सूची को कैश मेमोरी में सेव किया जा सका. इसके बाद, Google Search ने लाइव ट्रैफ़िक में, टीकों के बारे में की गई क्वेरी की पहचान करने के लिए, कैश मेमोरी में सेव की गई सूची का इस्तेमाल किया.
एलएलएम का इस्तेमाल ज़िम्मेदारी से करना
मशीन लर्निंग के किसी भी फ़ॉर्म की तरह, एलएलएम में भी आम तौर पर इन चीज़ों का पूर्वाग्रह होता है:
- जिस डेटा पर उन्हें ट्रेनिंग दी गई थी.
- वह डेटा जिससे उन्हें बनाया गया था.
डेटा मॉड्यूल और फ़ेयरनेस मॉड्यूल में दिए गए दिशा-निर्देशों का पालन करते हुए, एलएलएम का इस्तेमाल निष्पक्ष और ज़िम्मेदारी के साथ करें.