Markov chain LLM से ज़्यादा मज़ेदार क्यों होते हैं
(emnudge.dev)- Markov chain अगला शब्द चुनने वाला एक साधारण statistical model है, लेकिन अर्थ को पूरी तरह पकड़ न पाने वाली इसकी टेढ़ी-मेढ़ी प्रकृति के कारण यह LLM से भी ज़्यादा मज़ेदार output बना सकता है
- हास्य हल्के और अनपेक्षित surprise से आता है; एक परिचित pattern बनाकर फिर उम्मीद तोड़ने वाला “snap” joke को मजबूत बनाता है
- LLM बहुत सारे context और probability calculations के जरिए सबसे plausible अगला token खोजते हैं, इसलिए performance बेहतर होने पर वे औसत और अनुमानित वाक्यों के और करीब जाते हैं
- ChatGPT 3.5 और King James Bible व computer science textbooks पर trained Markov chain की तुलना में, Markov chain लगभग अर्थपूर्ण लगता है और अंत में अजीब meaning shift कर देता है
- मौजूदा LLM creative writing या joke generation के लिए सही fit नहीं हैं; ऐसे कामों के लिए language model को आज के LLM से श्रेणीगत रूप से अलग रूप का होना होगा
Markov chain ज़्यादा मज़ेदार क्यों दिखते हैं
- King James Bible और computer science textbook dataset पर trained Markov chain के उदाहरण biblical style और programming terms को मिलाकर ऐसे वाक्य बनाते हैं जो “लगभग समझ में आते हैं, लेकिन अंत में बिखर जाते हैं”
- ChatGPT 3.5 को मिलता-जुलता output बनाने का निर्देश दिया गया था, लेकिन result ज़्यादा व्यवस्थित और अर्थ में स्थिर वाक्यों जैसा निकला
- दोनों उदाहरण curated cases हैं, लेकिन तुलना दोनों तरफ से अच्छे candidates चुनकर की गई है
- Markov chain के वाक्यों में अजीब अर्थ होता है, और वाक्य के अंत के करीब जाते-जाते वे बेमतलब दिशा-परिवर्तन कर देते हैं
Markov chain “बहुत बेवकूफ LLM” जैसा है
- जब LLM को शुरुआती दौर में व्यापक रूप से समझाया जाता था, तो उन्हें कभी-कभी “बहुत smart Markov chain” से compare किया जाता था; लेकिन अब Markov chain को “बहुत dumb LLM” की तरह देखा जा सकता है
- ChatGPT एक LLM, यानी Large Language Model, का एक प्रकार है
- 300GB से बड़े बहुत बड़े models भी हैं, और 10GB से छोटे models भी हैं
- छोटे होने पर भी उन्हें आम तौर पर “small language model” नहीं, बल्कि छोटे LLM कहा जाता है
- Markov chain भी मौजूदा context के आधार पर अगला शब्द predict करता है, लेकिन semantics, dimensionality और specialised vector math को ध्यान में न रखने वाला सरल statistical model है
- फोन keyboard के ऊपर दिखने वाला next-word suggestion feature आम तौर पर Markov chain से बनाया जाता है; इसकी running cost कम होती है और इसे user के messaging style के हिसाब से आसानी से update किया जा सकता है
- अगर किसी खास लक्ष्य वाला वाक्य generate करना हो, तो LLM अक्सर बेहतर काम करता है, लेकिन accuracy सीधे-सीधे मज़ेदार होने में नहीं बदलती
हास्य “हल्का और अनपेक्षित surprise” है
- हास्य को unserious surprise, यानी गंभीर न लगने वाले surprise, के रूप में समझा जा सकता है
- अच्छे joke में मज़ेदार और साफ़ “snap” होता है
- “snap” शब्द punchline के semantic baggage से बचने के लिए इस्तेमाल किया गया है
- surprise जितना कम होगा, मज़ा उतना कम होगा
- एक ही joke को कई बार सुनने पर वह कम मज़ेदार लगता है, क्योंकि surprise घट जाता है
- “random” humour मज़ेदार न लगने की वजह यह हो सकती है कि शब्द भले ही unpredictable हों, लेकिन unpredictable होने की expectation पहले से predictable हो जाती है
- परिचित pattern को reuse करके फिर expectation तोड़ने पर snap मजबूत होता है
- “banana, apple, orange, vehicular manslaughter” एक-शब्द वाले फल की list का pattern बनाता है और फिर crime expression से expectation तोड़ता है
- joke writing मोटे तौर पर pattern violation के करीब है
scene जितना clear होगा, snap भी उतना मजबूत होगा
- ज़्यादा original या descriptive language इस्तेमाल करने से scene ज़्यादा real लगता है और snap भी मजबूत हो सकता है
- सिर्फ “he was shot” लिखने के बजाय “he was pierced by a 35mm” लिखने से scene ज़्यादा specific हो जाता है
- “he fell” की जगह “his face met the ground” जैसा expression scene को ज़्यादा vivid बनाता है
- scene के बीच से शुरू करने का तरीका भी असरदार होता है
- “a urinal cake? I’m not falling for that one again” यह कल्पना करवाता है कि पहले क्या हुआ होगा, और scene की realness बढ़ाता है
- अच्छा joke writing और अच्छी writing के goals कुछ हद तक overlap करते हैं
- cliché scene को अवास्तविक/अधूरा छोड़ देते हैं, इसलिए वे शब्दों की बर्बादी करते हैं
humour के काम करने की शर्तें
- क्या चीज़ “हल्का और अनपेक्षित surprise” है, यह universal नहीं है, इसलिए humour subjective है
- crude humour को बहुत serious ले लिया जाए तो वह मज़ेदार नहीं लगेगा; उल्टा, बहुत predictable होने पर भी fail हो सकता है
- anti-joke तभी मज़ेदार हो सकता है जब joke structure खुद predictable हो
- absurdism तभी काम करता है जब उसे स्वीकार करने की तैयारी हो
- cultural norms का violation किया जा सकता है, लेकिन उस violation को serious नहीं माना जाना चाहिए
- English-only American author ने भी non-English environment में “no” को culturally unexpected तरीके से इस्तेमाल करके successful joke बना पाया
LLM predictability की ओर optimise होते हैं
- किसी sentence को सफलतापूर्वक predict करने के लिए बहुत context चाहिए, और LLM उसी context का इस्तेमाल करते हैं
- complex calculations के जरिए सबसे likely अगला token खोजने का तरीका LLM का basic operation है
- अगर corpus sensible बातों से बना है, तो बेहतर LLM और ज़्यादा predictable output बनाएगा
- इसी property के कारण LLM creative writing के लिए खराब choice हो सकते हैं
- बहुत prompt engineering के बिना generate किए गए paragraphs आसानी से LLM-written लग सकते हैं
- output context में संभव सबसे average sentence जैसा महसूस होता है
- LLM से “original thought” मांगना लगभग contradiction है; LLM ऐसा काम न करने के लिए बने tools हैं
मौजूदा LLM joke generation के लिए fit नहीं हैं
- joke बनाने के लिए common expressions को अनपेक्षित तरीके से मोड़कर meaning बदलना पड़ता है
- अच्छे LLM ऐसे deviation से बचने के लिए ही optimise किए जाते हैं
- इस दावे से सहमति नहीं है कि comedy algorithmically generate नहीं हो सकती
- comedy का analysis और measurement किया जा सकता है
- पर्याप्त बड़े support के साथ on-demand comedy generation भी संभव हो सकता है
- संभव होने का मतलब यह नहीं कि उसे करना ही चाहिए
- मौजूदा LLM इस काम के लिए सही tool नहीं हैं
- शुरुआती stage के LLM ज़्यादा मज़ेदार थे, और image generation भी शुरुआती stage में ज़्यादा मज़ेदार था
- Dall-e mini की “trail cam” images जैसे examples हैं
- system बेहतर होते गए, तो humour गायब हो गया
बेहतर prediction machines और artistic expression के बीच tension
- बहुत शानदार prediction machine artistic expression में बहुत मददगार नहीं हो सकती
- LLM के अब भी कई uses हैं, लेकिन वे creative work के perfect tool नहीं हैं
- LLM कभी-कभी ऐसे interesting concepts miss कर देते हैं जिन्हें बच्चा आसानी से दे सकता है
- इस framework को ध्यान में रखते हुए दूसरी तरह का language model बनाया जा सकता है
- वह model मौजूदा LLM से श्रेणीगत रूप से अलग होना चाहिए
- इतना अलग कि शायद उसे LLM ही न कहा जाए
LLM output में दिखने वाला abstraction leak
- यह argument “spiritual human vs machine” वाली debate नहीं है
- LLM बेहतर होते जाने पर भी बार-बार दिखने वाली flaws रखते हैं; human-like दिखने की कोशिश में उनकी internal structure दिखने लगती है, जैसे leaky abstraction
- ChatGPT के हर message का high-school essay जैसा पढ़ा जाना इसलिए है क्योंकि वह सबसे average output reproduce करता है
- LLM output personality हटाकर academic rigour से कसा हुआ फीका corporate style लग सकता है
- fake Amazon reviews को “क्या मैं ऐसे लिखता?” सोचकर पहचानना आसान है
- Oxiclean dish wipes के use experience में introduction और conclusion जोड़ने पर संदेह होता है
- manufacturer को धन्यवाद देना और customer service dedication को acknowledge करने वाले sentences असली user experience जैसे नहीं लग सकते
- LLM detection models को screen CAPTCHA की तरह जल्द ही personality पहचाननी पड़ सकती है
संदर्भ लिंक
- famous tumblr blog: King James Bible और programming style को मिलाने वाले Markov chain examples का source, और हाल ही में फिर से active हुआ है
1 टिप्पणियां
Hacker News की राय
कुछ साल पहले एक side project करते हुए मैं भी इसी नतीजे पर पहुँचा था
LLM आने से पहले, मैंने fake AWS Blog Posts बनाने वाली साइट https://totes-not-amazon.com/ बनाई थी, और उस समय तक की सारी AWS announcement posts पर Markov chain generator को train किया था, फिर AWS blog का HTML/CSS कॉपी करके उसे Python+JS से जोड़ा था
AWS blog से परिचित लोग भी कुछ वाक्य पढ़ने के बाद ही समझ पाते थे कि यह word soup है, इसलिए यह काफ़ी मज़ेदार था
जब GPT अभी-अभी आया था, तब मैंने Minimaxir के gpt-2-simple से AWS content पर आधारित blog posts generate करके इसे upgrade करने की कोशिश की, लेकिन नतीजे इतने plausible थे कि मज़ा बहुत कम हो गया। वह असली blog post जैसा पढ़ा जाता था, बस तथ्य ग़लत होते थे
आख़िरकार शुरुआती Markov output का हास्य उस बेतुकेपन में था, जिसमें कुछ शब्दों या कुछ वाक्यों बाद पता चलता था कि सब कुछ पूरी तरह nonsense है, और आज के LLM उस स्तर पर बहुत अच्छे हैं। वे ग़लत हो सकते हैं, लेकिन मज़ेदार ढंग से बेतुके कम ही होते हैं
Markov chain content इस तरह ग़लत होता है जैसे “बच्चे अजीब-अजीब बातें बोलते हैं”, जबकि modern LLM इस तरह ग़लत होते हैं जैसे “वह चाचा जिसे basic geography भी नहीं पता”
https://github.com/cemulate/the-mlab
यह nLab की parody है, जो category theory और higher category theory की collaborative wiki है। जिसने nLab देखा है वह जानता होगा, लेकिन नए लोगों के लिए उसकी terminology लगभग unreadable होती है, और इसी से इस project का idea आया
यह project nearley-generator package का इस्तेमाल करता है, जो Nearley grammar को efficient और controllable fake text generator में बदल देता है, और grammar file
/src/grammar/nlab.neमें हैज़्यादातर बातें बकवास या non-funny exaggeration होती थीं (“इस hero की armor अब 500 है”), लेकिन आम तौर पर कम-से-कम 5–6 lines बहुत मज़ेदार होती थीं, और कभी-कभी कुछ बातें भविष्यवाणी जैसी सही भी निकलती थीं। उदाहरण के लिए, “Fiend's Grip अतिरिक्त illusions 1/2/3 पैदा करता है” जैसी चीज़ें
लेकिन LLM की वजह से यह सब बिगड़ गया। बड़े subreddits ने AI content पूरी तरह ban कर दिया, क्योंकि भोले users और bots बहुत सारा boring Midjourney content पोस्ट कर रहे थे। पहुँच ख़त्म हुई तो दिलचस्पी भी ख़त्म हो गई, और मैंने Markov chains बनाना बंद कर दिया
इस हफ़्ते मैंने LLM chatbots बहुत इस्तेमाल किए, और अगर वह चाचा सिर्फ़ आत्मविश्वास से झूठ बोलने तक सीमित न होकर self-evaluation की क्षमता से भी पूरी तरह खाली होता, तो अब तक उसकी हत्या हो चुकी होती
मैंने Claude 3.5 Sonnet को यह prompt दिया: “हाल की essay और Hacker News discussion के आधार पर, essay के लेखक के बताए ढंग में 10 छोटे मज़ेदार jokes लिखो”
Claude ने जवाब दिया कि वह Markov chain के LLM से ज़्यादा मज़ेदार होने वाले theme पर “गंभीर न लगने वाला surprise” और expected patterns के violation को निशाना बनाकर jokes बनाएगा
उदाहरण थे: “एक LLM और एक Markov chain bar में गए। LLM ने statistically plausible drink order की, और Markov chain ने cheese से बने lampshade का order दिया”, “bulb बदलने के लिए कितने LLM चाहिए? एक, लेकिन उससे पहले वह 20 मिनट तक bulb replacement की optimal process समझाएगा”, “Markov chain अच्छा therapist क्यों नहीं बन सकता? क्योंकि उसकी सलाह हमेशा ऐसी होती है: ‘और फिर अपनी भावनाओं को banana करके तब तक रखो जब तक वे hat न बन जाएँ’”
बात बस कुछ भी randomly जोड़ देने की नहीं है। Markov chain में किसी तरह का अर्थ बन जाने की संभावना ज़्यादा होती है, लेकिन वह अर्थ ग़लत किस्म का होता है
उदाहरण के लिए, “एक LLM, एक Markov chain, और GPT-4 bar में गए। Bartender ने कहा, ‘तुम लोगों की entry नहीं है।’ GPT-4 चला गया, LLM ethics पर बहस करने के लिए रुक गया, और Markov chain ने coup order कर दिया” ज़्यादा सही लगता है
कॉलेज के दिनों में मेरे दोस्तों ने campus newspaper के “police reports” section पर Markov chain generator चलाया था
3-token generator से निकले top 10% नतीजे आज तक देखे गए machine-generated text में सबसे मज़ेदार चीज़ों में थे, क्योंकि उनमें उस तरह की absurdity थी जिससे modern LLM high-level semantic consistency बनाए रखने की कोशिश में बचते हैं
उस समय library में कोई exhibitionist भी था, शायद वह भी अच्छे raw material की तरह काम आया
अख़बार The Daily Utah Chronicle था, और जहाँ तक मुझे याद है, दोस्तों ने personal ads section पर भी Markov chain generator चलाया था और वहाँ से भी काफ़ी अच्छे नतीजे मिले थे
दूसरी ओर Markov chain, homophone-आधारित slips जैसे connections की वजह से, हर वाक्य को random दिशा में खींचते हुए संयोग से absurdist comedy तक पहुँच जाता है
अगर अनुभवजन्य सबूत चाहिए, तो
/r/SubredditSimulatorएक Markov-आधारित Reddit पैरोडी है, और/r/SubSimulatorGPT2उसका LLM-आधारित कज़िन हैMarkov वाला वर्ज़न कहीं ज़्यादा upvotes लेकर आया, और बस ज़्यादा मज़ेदार है
मैंने कुछ सालों में Reddit पर “AI द्वारा लिखा गया नकली XYZ” कई बार पोस्ट किया है, और सबसे अच्छा रिस्पॉन्स GPT-2 मॉडल को मिला
Markov chain एक-दो वाक्य से ज़्यादा दिलचस्पी बनाए रखने में कमज़ोर पड़ जाती है, और GPT-3 के बाद के मॉडल बहुत ज़्यादा polished और उबाऊ हो गए
GPT-2 बिल्कुल सही बीच का बिंदु है: यह ज़्यादातर grammar सही रख सकता है और एक cohesive idea बनाए रख सकता है, लेकिन अभी भी अलग-अलग विषयों की बारीकियों को इतना नहीं जानता कि संदर्भ के हिसाब से पूरी तरह समझदार आउटपुट दे सके
योजना यह थी कि जिस IRC चैनल में मैं आम तौर पर रहता हूँ, वहाँ bot deploy करूँ और देखूँ कि लोगों को यह समझने में कितना समय लगता है कि वह bot है। जब भी कोई मैसेज आता, मैं पिछले 10 मैसेज LLM को भेजता, और अगर रिज़ल्ट किसी खास prefix से शुरू होता, तो वही मैसेज चैनल में भेज दिया जाता
अफ़सोस, GPT-2 इतना अच्छा नहीं निकला, और उसने हल्का-सा सुसंगत, विषय पर लेकिन बेतुका कंटेंट बनाया
सिस्टम को फिर से ठीक करने के बाद मैं 7B model को fine-tune करने का सोच रहा हूँ
AI Weirdness ब्लॉग(https://www.aiweirdness.com/) में पिछले कुछ सालों में जो बदलाव आए हैं, वे इस विचार को कुछ हद तक सपोर्ट करते हैं
हालांकि लेखक को LLM से भी बहुत मज़ेदार नतीजे मिले, लेकिन ज़्यादातर शुरुआती मॉडल, GPT-3 तक, और GPT-3 के छोटे variants से
उदाहरण के लिए, GPT के Ada version द्वारा बनाए गए cereal names, Da Vinci version की तुलना में कहीं ज़्यादा मज़ेदार थे: https://www.aiweirdness.com/new-breakfast-cereals-from-ai/
temperature बढ़ा देने से काम नहीं चलेगा क्या?
Markov chain में भाषा की समझ ज़्यादा भद्दी होती है। LLM का temperature, यानी randomness, बढ़ाने पर आप वैसी ही भद्दी approximation तक पहुँच सकते हैं
ऊपर से, लेखक ने ChatGPT-3.5 इस्तेमाल किया था। ChatGPT में RLHF लगाया गया है ताकि वह जितना हो सके उतना generic लगे, और 3.5 की humour समझ 4 से भी कम है
मुझे इस लेख की दलील भरोसेमंद नहीं लगती
अफ़सोस, वह अकाउंट अब मौजूद नहीं है, लेकिन लगभग 10 साल पहले जब मैं स्कूल में था, तब मैंने एक Markov Twitter bot बनाया था जिसे इन दो स्रोतों पर train किया था
एक था पिछले 1 साल में Linus Torvalds द्वारा LKML पर भेजे गए सारे emails, और दूसरा था King James Bible में Jesus के सीधे quotes
वह सच में बहुत मज़ेदार था। क्योंकि दोनों training sets लगभग बिल्कुल overlap नहीं करते थे, मुझे एक heuristic जोड़नी पड़ी जो chain के किसी एक dataset में ज़्यादा देर तक “फँसे” रहने पर दूसरे dataset के विकल्पों को ज़्यादा weight देती थी
https://www.tumblr.com/kingjamesprogramming
मैं लगभग 20 साल से IRC Markov chain bot चला रहा हूँ
पिछले कुछ सालों से उसके साथ local LLM भी चला रहा हूँ। अभी भी कुछ लोग Markov chain bot को ज़्यादा पसंद करते हैं, लेकिन ज़्यादातर लोग LLM को बुलाते हैं
हालांकि यह इस वजह से भी हो सकता है कि मैंने ChatGPT जैसी hosted LLM service की तरह smart, locked-down और low-temperature model की जगह, Mistral-7B fine-tune जैसा ज़्यादा hallucinatory, कम refusal वाला और मज़ेदार model चुना है
LLM और Markov bot को साथ-साथ देखकर मुझे और भी ज़्यादा महसूस होता है कि Markov bot का “humour” कितना हद तक बस संयोग से बने आउटपुट पर इंसानों द्वारा अर्थ थोपने का नतीजा है। फिर भी, Markov की “learning” क्षमता अब भी कहीं बेहतर है
मेरे bots कभी इतने लंबे नहीं टिके। एक बार मैंने users के LiveJournal scrape करके random text generate किया था: https://hewgill.com/journal/entries/68-new-lj-toy.html
मैं Twitch chat में Markov chain bot चलाता हूँ और कभी-कभी उससे कमाल के पल निकलते हैं। कुछ समय तक मैंने LLM भी इस्तेमाल किया और हाल की chat को prompt में डाला, लेकिन उससे ख़ास मज़ेदार नतीजे नहीं आए
मैंने prompt engineering भी की, यानी किस तरह का joke बनाना है यह खास तौर पर बताने की कोशिश की, लेकिन LLM हमेशा एक ही तरह के फ़ॉर्मैट की तरफ झुकता रहा
एक private Discord server में दो bots हैं
एक पूरा Markov chain bot है जिसे पूरे chat history पर train किया गया है, और दूसरा एक proper LLM है जिसे पीछे के कुछ tokens पर train किया गया है। दोनों कभी-कभी chat के बीच randomly कूद पड़ते हैं
Markov chain bot हमेशा कहीं ज़्यादा मज़ेदार होता है
यह भी जानना है कि बीच में बोलना है या नहीं, इसका फैसला आपने किसी और मैसेज के बाद simple probability (जैसे 25%) से किया था, या timer पर चलाया था