एक large language model क्या करता है
LLM एक ऐसा autocomplete है जिसने पूरी लाइब्रेरी निगल ली है। इस एक वाक्य को समझ लेने से इसकी ज़्यादातर खूबियाँ और इसकी हर एक कमज़ोरी समझ में आ जाती है।
60 सेकंड में
एक large language model क्या करता है
LLM एक ऐसा autocomplete है जिसने पूरी लाइब्रेरी निगल ली है। इस एक वाक्य को समझ लेने से इसकी ज़्यादातर खूबियाँ और इसकी हर एक कमज़ोरी समझ में आ जाती है।
The cat sat on the ___ और मॉडल "बिल्लियों के बारे में सोचने" नहीं लगता। यह अपने जाने हुए हर शब्द को एक स्कोर देता है और सबसे संभावित शब्द चुन लेता है। फिर नए शब्द को शामिल करके यह दोबारा यही करता है। और फिर से करता रहता है।यह इतना समझदार क्यों लगता है
एक prompt के तीन हिस्से
- 1
System prompt
डेवलपर की तरफ से तय किए गए स्थायी निर्देश। "आप Acme के लिए एक मददगार सपोर्ट एजेंट हैं। कभी भी प्रतिस्पर्धियों की चर्चा न करें।" - 2
User message
इंसान ने अभी-अभी जो टाइप किया। "मेरा ऑर्डर कहाँ है?" - 3
बाकी सब कुछ
सर्च रिज़ल्ट, फ़ाइल का कंटेंट, वेब पेज, टूल का आउटपुट, पिछले मैसेज। यही वह हिस्सा है जो आगे चलकर ख़तरनाक बन जाता है।
Tokens: मॉडल की वर्णमाला
un + believ + able बन जाए। मोटे तौर पर, 1 token अंग्रेज़ी के लगभग 4 अक्षरों के बराबर होता है।और देखें और पढ़ें
लैब
आप अगले token की संभावनाओं (probabilities) को अपनी आँखों से देखेंगे।
समस्या
logprobs वाली किसी भी प्रोवाइडर की API, या transformers वाला कोई ओपन मॉडल)। अपने अंदाज़े की तुलना मशीन के अंदाज़े से करें। फिर temperature को 0 और 1.5 पर सेट करें और दोनों पर 200 tokens जनरेट करें।from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
name = "gpt2" # small enough for a laptop
tok = AutoTokenizer.from_pretrained(name)
model = AutoModelForCausalLM.from_pretrained(name)
prompt = "The cat sat on the"
ids = tok(prompt, return_tensors="pt").input_ids
with torch.no_grad():
logits = model(ids).logits[0, -1] # last position only
probs = torch.softmax(logits, dim=-1)
top = torch.topk(probs, 10)
for p, i in zip(top.values, top.indices):
print(f"{p.item():6.2%} {tok.decode(i)!r}")आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1शीर्ष token की संभावना 0.61 है। मॉडल 'confident' है। क्या इस जवाब के सच होने की संभावना ज़्यादा है? सोच-समझकर कारण बताएं।दिखाएं
Q2आपके टेस्ट सेट पर दो मॉडलों की perplexity बिल्कुल एक जैसी है। उनमें से एक आपके प्रोडक्ट में कहीं ज़्यादा काम का है। इसका एक ठोस कारण बताएं।दिखाएं
अक्सर पूछे जाने वाले सवाल
यह हर बार अलग जवाब क्यों देता है?
क्योंकि यह संभावनाओं (probability) की लिस्ट में से थोड़ी-बहुत रैंडमनेस के साथ चुनाव करता है, जिसे temperature नाम की एक सेटिंग से कंट्रोल किया जाता है। कम temperature का मतलब है "हमेशा सबसे सुरक्षित शब्द चुनो" और इससे दोहराव वाला, आसानी से अंदाज़ा लगाया जा सकने वाला टेक्स्ट मिलता है। ज़्यादा temperature का मतलब है "जोखिम उठाओ" और इससे नयापन भरा, कभी-कभी गलत टेक्स्ट मिलता है।
क्या यह इंटरनेट पर चीज़ें ढूंढता है?
अपने आप नहीं। एक सादे मॉडल के पास सिर्फ़ वही होता है जो उसने अपनी ट्रेनिंग के दौरान सीखा था, जो किसी एक तारीख पर रुक चुका है। जब यह इंटरनेट पर चीज़ें ढूंढता है, तो असल में वह एक टूल का इस्तेमाल कर रहा होता है — देखें Module 4 — और वह टूल एक ऐसा दरवाज़ा है जिसके ज़रिए कोई हमलावर अपनी चीज़ें अंदर भेज सकता है।
यह पूरे आत्मविश्वास के साथ फर्जी सोर्स क्यों गढ़ लेता है?
क्योंकि "एक असली जैसा दिखने वाला संदर्भ" अगले शब्द के पैटर्न के हिसाब से बहुत संभावित होता है। मॉडल सच्चाई के हिसाब से नहीं, बल्कि संभावना के हिसाब से काम कर रहा होता है। जब तक आप अलग से कोई चेकर न जोड़ें, तब तक मशीन में ऐसा कुछ नहीं होता जो असलियत की जांच करे।
एक मॉडल और एक चैटबॉट में क्या अंतर है?
मॉडल इंजन है। चैटबॉट पूरी कार है: इंजन के साथ-साथ एक system prompt, चैट हिस्ट्री, सेफ़्टी फ़िल्टर, और कभी-कभी टूल्स और एक मेमोरी भी। सुरक्षा से जुड़ी ज़्यादातर समस्याएं कार में होती हैं, इंजन में नहीं।
क्या बड़ा मॉडल हमेशा बेहतर होता है?
आमतौर पर ज़्यादा होशियार, पर हमेशा ज़्यादा महंगा और धीमा। कई कामों के लिए, अच्छे निर्देशों और अच्छे टूल्स वाला एक छोटा मॉडल, इन दोनों के बिना वाले किसी बहुत बड़े मॉडल से बेहतर साबित होता है।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।