1 पॉइंट द्वारा GN⁺ 2024-11-23 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • जहाँ अधिकांश LLM शतरंज नहीं खेल पाते, वहाँ सिर्फ gpt-3.5-turbo-instruct के असामान्य रूप से मजबूत होने की घटना को अब कुछ हद तक इस प्रयोग से समझाया गया है कि prompt interface बदलने पर gpt-4o और gpt-4o-mini भी काफ़ी बेहतर हो जाते हैं
  • OpenAI के गुप्त रूप से chess engine कॉल करने की परिकल्पना कमज़ोर लगती है: एक ही बोर्ड पर भी वहाँ तक पहुँचने की चालों के क्रम के अनुसार अलग चाल चलना, prompt बदलाव के प्रति संवेदनशील होना, और प्रदर्शन का engine नहीं बल्कि लगभग 1750 Elo स्तर पर रुक जाना
  • सिर्फ तीन छोटे in-context examples से प्रदर्शन बहुत बढ़ गया, और Stockfish की 100 self-play games से चुने गए उदाहरणों पर fine-tuning करने पर भी सुधार दिखा
  • इसके उलट, वर्तमान में उपलब्ध legal moves की सूची बताने पर प्रदर्शन बहुत बिगड़ गया, और पूरी game notation दोहराने के बाद अगली चाल जोड़ने वाली regurgitation शैली ने chat model को completion model की तरह व्यवहार करने पर मजबूर करके प्रदर्शन बढ़ाया
  • अंतिम संयोजन gpt-4o + regurgitation + examples ने gpt-3.5-turbo-instruct के खिलाफ 50 खेलों में 10 जीत, 5 ड्रॉ, 35 हार दर्ज की, और सफ़ेद मोहरों के लाभ को ध्यान में रखें तो इसका अनुमानित स्तर लगभग 1540 Elo है, जो gpt-3.5-turbo-instruct के लगभग 1750 Elo से कम है

समस्या की सेटिंग: सिर्फ gpt-3.5-turbo-instruct ही शतरंज अच्छा क्यों खेलता है

  • शुरुआती अवलोकन यह था कि अधिकांश LLM शतरंज बहुत खराब खेलते हैं, लेकिन gpt-3.5-turbo-instruct उन्नत शौकिया स्तर पर खेलता है
  • यह मॉडल एक साल से भी पुराना और अपेक्षाकृत छोटा है, फिर भी यह नए मॉडलों से बेहतर शतरंज खेलता दिखा
  • इसके चार बड़े संभावित कारण माने गए थे
    • बड़े base model शतरंज अच्छे खेलते हैं, लेकिन instruction tuning से गुज़रे chat model में यह क्षमता बनी नहीं रहती
    • gpt-3.5-turbo-instruct को अधिक शतरंज डेटा पर train किया गया
    • किसी खास LLM architecture में कोई विशेष तत्व है
    • training data में शतरंज डेटा का हिस्सा पर्याप्त बड़ा होना चाहिए
  • बाद की चर्चा OpenAI द्वारा chess engine कॉल करने की संभावना, LLM वास्तव में शतरंज खेलता है या नहीं, और base model बनाम chat model के अंतर पर सिमट गई

गुप्त chess engine इस्तेमाल करने की परिकल्पना कम विश्वसनीय है

  • यह शक कि gpt-3.5-turbo-instruct शतरंज notation पहचानकर कोई बाहरी chess engine कॉल करता है, बहुत कम संभावित लगता है
  • इसके समर्थन में कई तर्क हैं
    • OpenAI से जुड़े लोगों ने कहा कि ऐसा कोई प्रोसेस नहीं था
    • chess engine एक ही बोर्ड स्थिति पर, उससे पहले की चालों की परवाह किए बिना, वही मूल्यांकन देता है; लेकिन gpt-3.5-turbo-instruct एक ही बोर्ड पर भी वहाँ तक पहुँचने की चालों के क्रम बदलने पर अलग चाल चलता है
    • शतरंज के शौकिया मानदंड से यह अच्छा है, लेकिन विशेषज्ञ स्तर से काफ़ी कमज़ोर है, और chess engine की तुलना में इसका प्रदर्शन बहुत नीचे है
    • prompt बदलने पर इसका खेल सूक्ष्म रूप से बदल जाता है
    • बाद के OpenAI मॉडल डिफ़ॉल्ट रूप में बहुत खराब खेलते हैं, लेकिन सही prompt देने पर बेहतर खेल सकते हैं
  • अगर सचमुच cheating हुई होती, तो इसका मतलब होता कि बाहरी engine call जैसी चीज़ को छिपाते हुए यह दिखाने के लिए बहुत जटिल तरीका अपनाया गया कि LLM खुद चाल चुन रहा है

LLM सिर्फ रटकर शतरंज नहीं खेल रहा

  • gpt-3.5-turbo-instruct एंडगेम में भी illegal moves कम ही सुझाता है
  • 1. e4 d5 2. exd5 Qxd5 3. Nc3 जैसी स्ट्रिंग में आख़िरी चाल legal है या नहीं, यह तय करने के लिए शतरंज के नियम और स्थिति-ट्रैकिंग दोनों चाहिए
  • वास्तविक खेलों में भी gpt-3.5-turbo-instruct इतिहास में कभी न देखी गई नई बोर्ड स्थितियों में काफ़ी अच्छा खेलता है
  • इसलिए यह कहना सही नहीं कि यह opening याद रखता है और बाद में random चालें चलता है

मूल प्रयोग: completion model और chat model का अंतर

  • gpt-3.5-turbo-instruct एक completion model है, इसलिए अगली चाल पाने के लिए उससे PGN रूप के टेक्स्ट को आगे बढ़ाने के लिए कहा गया
    • उदाहरण के तौर पर [Event "Shamkir Chess"], खिलाड़ियों के नाम, Elo, परिणाम, और 1. e4 e5 2. Nf3 Nc6 3. जैसी notation दी जाती है
  • gpt-4o-mini और gpt-4o chat model हैं, इसलिए system prompt और user prompt के ज़रिए उनसे सिर्फ अगली चाल standard algebraic notation में देने को कहा गया
  • Stockfish level 1 के खिलाफ हर चाल पर अधिकतम 0.01 सेकंड देकर 50 खेलों का औसत लिया गया, और खेल के बाद हर turn का score centipawn में निकाला गया
    • pawn को 100 points माना गया
    • ±1500 जीत/हार के बराबर माना गया
  • बेसिक prompt में gpt-3.5-turbo-instruct मजबूत निकला, जबकि gpt-4o और gpt-4o-mini जैसे chat model कमजोर दिखे

prompt संरचना के प्रयोग

  • यह जाँचा गया कि user prompt की शुरुआत में system prompt दोहराया जाए या नहीं, और खिलाड़ियों के नाम व Elo जैसे metadata जोड़े जाएँ या नहीं
  • gpt-4o-mini में बड़ा अंतर लगभग नहीं दिखा
  • gpt-4o में system prompt दोहराना थोड़ा मददगार और metadata थोड़ा नुकसानदेह लगा, लेकिन यह noise भी हो सकता है
  • बाद के प्रयोगों में सरलता के लिए system prompt repetition और metadata दोनों बंद कर दिए गए

सिर्फ तीन उदाहरणों से प्रदर्शन में बड़ा सुधार

  • जैसे LLM से काम करवाते समय आम तौर पर किया जाता है, वैसे ही API के ज़रिए तीन छोटे input-output examples दिए गए
    • इनपुट 1. → आउटपुट e4
    • इनपुट 1. e4 → आउटपुट d5
    • इनपुट 1. e4 e5 2. Nf3 Nc6 3. → आउटपुट Bb5
  • सिर्फ इन तीन उदाहरणों से परिणाम बहुत बेहतर हो गया
  • संभव है कि अधिक या अलग उदाहरण और अच्छे हों, लेकिन हर chart बनाने के लिए बहुत सारी queries चाहिए थीं, इसलिए आगे जाँच नहीं की गई

fine-tuning मदद करती है, लेकिन उदाहरणों के साथ इसका संयोजन अस्थिर है

  • gpt-4o-mini और gpt-4o दोनों पर fine-tuning की गई
  • डेटा बनाने का तरीका यह था
    • Stockfish ने highest difficulty पर खुद के साथ 100 खेल खेले
    • हर game से एक random चाल चुनकर उसे training example बनाया गया
    • अलग से Stockfish self-play की 100 games validation data के रूप में इस्तेमाल की गईं
  • fine-tuning अपने आप में प्रदर्शन सुधारती है
  • लेकिन gpt-4o की पहली fine-tuning खराब दिखी, इसलिए इसे छोटी step size के साथ फिर चलाया गया; यह एक अनिश्चितता बनी रही
  • उदाहरणों और fine-tuning को साथ रखने पर परिणाम उम्मीद के मुताबिक लगातार अच्छे नहीं रहे
    • सिर्फ fine-tuning हो तो मदद मिलती है
    • सिर्फ उदाहरण हों तो भी मदद मिलती है
    • fine-tuning के बाद उदाहरण जोड़ने पर लगभग कोई असर नहीं पड़ता
    • और उदाहरण मौजूद हों तो fine-tuning उल्टा नुकसानदेह बन जाती है

legal moves की सूची देना प्रदर्शन बिगाड़ देता है

  • क्योंकि मॉडल कभी-कभी illegal move दे देता था, इसलिए एक प्रयोग में मौजूदा legal moves की सूची को notation से पहले दिया गया
  • system prompt भी इस तरह बदला गया कि वह legal moves की सूची और आंशिक notation ले
  • परिणाम बहुत खराब रहे
    • सिर्फ जीत दर नहीं घटी, बल्कि मॉडल पहले ही turns से गलतियाँ करने लगा
  • इसके बाद legal moves की सूची का उपयोग नहीं किया गया

मुख्य विचार: पूरी game notation दोहराने के लिए कहना

  • chat model special token और instruction tuning के ज़रिए <|SYSTEM|>, <|USER|>, <|ASSISTANT|> जैसे बातचीत-आधारित format में काम करते हैं
  • base model स्ट्रिंग को आगे बढ़ाने वाले completion model के अधिक करीब होते हैं, और PGN notation भी उसी शैली से बेहतर मेल खाती है
  • OpenAI के gpt-4-base तक सीधे पहुँच नहीं है, और gpt-4o को completion mode में भी कॉल नहीं किया जा सकता, इसलिए सीधी तुलना संभव नहीं थी
  • इसके बजाय gpt-4o को completion model जैसा व्यवहार कराने के लिए उससे सिर्फ अगली चाल नहीं, बल्कि पूरा खेल दोहराकर उसके बाद एक नई चाल जोड़ने को कहा गया
  • उदाहरण के लिए, अगर इनपुट 1. e4 e5 2. हो, तो आउटपुट 1. e4 e5 2. Nf7 जैसे रूप में माँगा गया
  • इस तरीके से gpt-4o-mini और gpt-4o दोनों की शतरंज क्षमता बेहतर हुई
  • पूरी चाल-श्रृंखला दोहराने से मॉडल खुद ऐसा संदर्भ बना लेता है जिसमें अच्छी चाल चुनने की संभावना बढ़ जाती है
  • यह परिणाम इस बात का संकेत है कि अगर अप्राप्य gpt-4-base को completion mode में कॉल किया जा सके, तो वह शायद शतरंज काफ़ी अच्छा खेले

regurgitation, examples और fine-tuning का संयोजन

  • regurgitation शैली पर भी अलग fine-tuning प्रयोग फिर से किए गए
    • इनपुट पहले की तरह आंशिक notation था
    • वांछित आउटपुट वह रूप था जिसमें पूरी इनपुट notation दोहराने के बाद अगली चाल जोड़ी जाए
  • इस शैली की fine-tuning थोड़ी मददगार दिखी
  • इसी शैली के अनुसार तीन उदाहरण भी फिर बनाए गए
    • इनपुट 1. → आउटपुट 1. e4
    • इनपुट 1. d4 → आउटपुट 1. d4 d5
    • इनपुट 1. e4 e5 2. Nf3 Nc6 3. → आउटपुट 1. e4 e5 2. Nf3 Nc6 3. Nf3
  • कम जानकारी होने के बावजूद उदाहरणों का असर फिर बहुत बड़ा रहा
  • उदाहरणों और fine-tuning को साथ रखने पर वही अजीब पैटर्न दोहराया गया
    • fine-tuning में उदाहरण जोड़ने से मदद मिलती है
    • लेकिन फिर भी यह सिर्फ उदाहरणों वाले मामले से बदतर रहता है

प्रयोग के परिणाम और Elo अनुमान

  • परिणामों को तीन श्रेणियों में बाँटा गया
    • अच्छा: regurgitation, examples, और examples के बिना fine-tuning
    • अस्पष्ट: metadata, system prompt repetition, और examples के साथ fine-tuning
    • खराब: legal moves की सूची देना
  • अंतिम संयोजन में regurgitation और examples का उपयोग किया गया और बाकी सब बंद रखा गया
  • gpt-4o + regurgitation + examples काफ़ी ठीक था, लेकिन gpt-3.5-turbo-instruct जितना मजबूत नहीं था
  • दोनों मॉडलों ने 50 खेल खेले, और हर खेल में gpt-4o सफ़ेद मोहरों से खेला
gpt-4o परिणाम संख्या
जीत 10
ड्रॉ 5
हार 35
  • यह परिणाम लगभग -191 Elo अंतर के अनुरूप है
  • अगर सफ़ेद की पहली चाल के लाभ को लगभग 35 Elo माना जाए, तो gpt-4o + regurgitation + examples का अनुमान 1750 - 191 - 35/2 ≈ 1540 Elo बनता है
  • इसे मध्यम स्तर के शौकिया खिलाड़ी के बराबर माना गया

वर्तमान परिकल्पना: डेटा और interface साथ मिलकर असर डालते हैं

  • मौजूदा परिकल्पना के दो हिस्से हैं
    • OpenAI के base model को open models की तुलना में अधिक या बेहतर chess game data पर train किया गया
    • नए OpenAI base model completion mode में शतरंज अच्छा खेल सकते हैं, लेकिन वास्तव में उपलब्ध chat model नहीं
  • open models, चाहे base हों या chat, शतरंज अच्छा नहीं खेलते दिखे; इससे architecture सीमा की तुलना में data का अंतर अधिक संभावित लगता है
  • एक paper के section A.2 में लिखा है कि GPT-4 को PGN notation वाले chess games पर train किया गया था, और केवल Elo 1800 से ऊपर के खिलाड़ियों के खेल शामिल करने के लिए filter किया गया था
  • gpt-3.5-turbo-instruct ने भी वही data इस्तेमाल किया था, इसकी सार्वजनिक पुष्टि नहीं है, लेकिन इसका PGN notation में शतरंज खेलना और लगभग 1750 Elo मापा जाना संयोग जैसा नहीं लगता
  • Llama जैसे open models की training में कितना chess data शामिल था, यह स्पष्ट नहीं हो सका
  • open internet से बहुत सारे खेल गए होंगे, लेकिन संभव है कि बड़े पैमाने पर चुने गए उच्च-गुणवत्ता वाले games वाले database ने बेहतर परिणाम दिए हों
  • यह भी संभव है कि बहुत अधिक निम्न-स्तरीय chess data मॉडल को कमजोर चालों की भविष्यवाणी की ओर धकेलता हो, लेकिन जहाँ पहले की चालें मजबूत हों वहाँ अगली चाल भी मजबूत खिलाड़ियों जैसी होनी चाहिए, इसलिए इसे मुख्य कारण नहीं माना गया

बची हुई अनिश्चितताएँ और व्यावहारिक धारणा

  • अगर gpt-4o का chat mode, gpt-4-base के completion mode से कमजोर है, तो कारण chat interface है, instruction tuning है, या दोनों, यह पता नहीं
  • यह भी परखा नहीं जा सकता कि gpt-4-base को chat mode जैसा simulate करने पर वह अच्छा खेलेगा या नहीं, या gpt-4o को completion mode में कॉल करने पर वह अच्छा खेलेगा या नहीं
  • संभव है कि gpt-4o से बेहतर व्यवहार निकलवाने के और तरीके हों
  • prompt, examples और fine-tuning का सर्वोत्तम संयोजन ढूँढना बहुत कठिन है
    • खोज-क्षेत्र बड़ा है
    • कोई आसान abstraction नहीं है
    • LLM का व्यवहार अनुमान लगाना कठिन और नाज़ुक है
    • प्रयोग धीमे और महंगे हैं
  • जब यही अंतिम recipe gpt-4 पर लागू की गई, तो उसने शतरंज अच्छा नहीं खेला
  • संभव है कि मिला हुआ संयोजन खास तौर पर gpt-4o के लिए काम करता हो, और gpt-4 के लिए अलग prompt, अधिक examples, या fine-tuning चाहिए हो
  • यह पूरी प्रक्रिया engineering से ज़्यादा मंत्र खोजने जैसी लगती है, क्योंकि हर मॉडल की संवेदनशीलता बहुत अलग है

1 टिप्पणियां

 
GN⁺ 2024-11-23
Hacker News की रायें
  • यह देखने के लिए कि gpt-3.5-turbo-instruct सच में chess समझता है या नहीं, उसे checkmate नहीं बल्कि 1000 random legal positions से अगली चाल चलने को कहा जा सकता है
    ऐसी positions https://github.com/tromp/ChessPositionRanking से बनाई जा सकती हैं, ये training data में दिखी होंगी ऐसी सामान्य games से बिल्कुल अलग होती हैं, और कई बार legal moves के विकल्प भी बहुत सीमित होते हैं
    अगली चाल की legality test करने के लिए यह अच्छा है, लेकिन आमतौर पर एक side बेहद ज़्यादा बेहतर होती है, इसलिए move quality अलग करने में यह कम उपयोगी है

    • chess livestream में सुनी एक दिलचस्प बात: इंसानी super grandmasters को भी ऐसी बेहद अजीब positions को evaluate या solve करने में बहुत कठिनाई होती है जो logical opening-middlegame-endgame flow से नहीं आई हों
      Hikaru को किसी position को देखकर शुरुआत से “live commentary” की तरह यह दिखाते देखना हैरान करने वाला था कि वह position कैसे पहुँची, लेकिन उसी video में उन्होंने समझाया कि अजीब random chess puzzles पर यह तरीका लगभग काम नहीं करता
      असली games से आए puzzles random generated puzzles से कहीं बेहतर होते हैं, और शीर्ष स्तर के इंसानों को भी वे ज़्यादा समझ में आते हैं
    • यह काफी अजीब है कि system chess समझने का दावा करता है, जबकि लेख में नीचे बताया गया है कि 10 कोशिशों के बाद भी legal move नहीं मिला और उसे random move से replace किया गया
      chess को अच्छे से समझने वाला व्यक्ति, जैसे Elo 1800 level का, पहली कोशिश में legal move न दे पाए ऐसा लगभग कभी नहीं होता
    • इस समय यह बहुत साफ दिखता है कि LLMs सामान्य अर्थ में कही जाने वाली reasoning हासिल नहीं कर पाए हैं
      असली reasoning के लिए symbolic logic और abstraction चाहिए मानी जा सकती है, जबकि LLM next-token predictor है
    • क्या केवल वह test इसे पर्याप्त रूप से साबित कर देगा? अगर LLM को सिर्फ legal moves के set पर train किया गया हो, तो संभव है कि उसने वास्तव में reason किए बिना भी functionally सीख लिया हो कि हर piece कैसे move कर सकता है
      उदाहरण के लिए, bishop को हमेशा diagonal में ही चलते देखा है, इसलिए वह सिर्फ वैसी चालों पर विचार कर सकता है, लेकिन यह ज़रूरी नहीं कि उसने legal/illegal move concept infer किया हो
    • समस्या यह है कि LLM किसी position से चाल चलना नहीं सीखता, बल्कि internet archives में आम तौर पर सिर्फ game records होते हैं
      अंदरूनी तौर पर वह positions represent करने वाली कोई चीज़ बना भी सकता है, लेकिन encoded chess position देने पर वह representation अपने-आप activate हो जाए, यह ज़रूरी नहीं
  • अगर दावा है कि gpt-3.5-turbo-instruct chess को “समझता” है, “reasoning” करता है और “real logic” लागू करता है, तो मैं कहना चाहूँगा कि लेख में बताए गए advanced amateur स्तर के chess players में किसी ऐसे को ढूँढकर दिखाइए जो illegal move करता हो
    chess जानने वाला कोई भी व्यक्ति पुष्टि कर देगा कि ऐसा लगभग नहीं होता
    यह भी जानना चाहूँगा कि illegal moves वाली games के links हैं या नहीं

    • मैं expert-level chess player हूँ, और मैंने अपने आसपास के स्तर के कई लोगों को offline classical time-control games में illegal moves करते देखा है
      मैंने अपने से कहीं ऊँचे level के streamers को भी बार-बार illegal moves try करते देखा है, जब तक उन्हें एहसास नहीं हुआ कि interface उन्हें illegal होने की वजह से reject कर रहा है
    • “chess जानने वाले लोग illegal moves नहीं करते” कहना थोड़ा गलत है
      YouTube पर “GM illegal moves” खोजते ही grandmasters द्वारा illegal moves के इतने examples मिल जाते हैं कि compilation बन जाए
      उदाहरण: https://www.youtube.com/watch?v=m5WVJu154F0 — Vidit vs Hikaru वाला मामला खास तौर पर प्रभावशाली है, जहाँ Vidit ने अपने king से Hikaru के king पर attack किया
    • समस्या यह है कि LLM researchers ने यह देखने का मुद्दा लगभग छोड़ दिया है कि LLM के अंदर वास्तव में क्या चल रहा है
      जब तक LLM black box है, हम नहीं जान सकते कि उसने rules follow करके reason किया और legal moves को समझा, या फिर उसने legal-move data बहुत ज़्यादा देखकर legal moves निकालना ही सीख लिया
      आप किसी भी पक्ष को सच कह सकते हैं, लेकिन LLM ने क्या “सोचा” इसे सचमुच समझने का कोई तरीका नहीं है
    • अगर LLM को सिर्फ move sequence मिलता है और position नहीं मिलती, तो वह असल में blindfold chess खेल रहा है
      blindfold chess में कभी भी illegal move न करने के लिए काफी अच्छा खिलाड़ी होना पड़ता है
    • इस thread की चर्चा हैरान करने वाली है
      इंसान, यहाँ तक कि अपने field के मशहूर experts भी बहुत गलतियाँ करते हैं, और कभी-कभी अपने ही expertise area में बहुत महँगी और पीछे मुड़कर देखने पर साफ दिखने वाली गलतियाँ कर बैठते हैं
      फिर भी जब इंसानी मूर्खताओं से भरे corpus पर trained LLM chess में illegal move करता है, तो दिमाग तुरंत प्रतिक्रिया देता है: “मैं तो chess में illegal move नहीं करता, तो computer ऐसा करके chess कैसे खेल सकता है?”
      कम से कम यह metacognitive bias और general attribution error का एक perfect example लगता है
  • इस लेख में भी पिछले लेख जैसी ही समस्या है। लेखक ने अवैध चालों की frequency पर कोई डेटा बिल्कुल नहीं दिया है
    इसलिए कोई meaningful निष्कर्ष निकालना संभव नहीं है
    यह कुछ वैसा है जैसे यह दावा करना कि LLM एक विशेषज्ञ डॉक्टर है, लेकिन डेटा से गलत मेडिकल सलाह वाले सभी मामलों को छांट देना

    • मुझे नहीं लगता कि वह बहुत केंद्रीय बात है
      अगर अवैध चालों के प्रयासों की संख्या approach के हिसाब से meaningful रूप से अलग होती, और खासकर अगर वह अंतर अवैध चालें हटाने के बाद की performance से correlate न करता, तो यह दिलचस्प होता, लेकिन लेख के निष्कर्ष को इससे बहुत ज्यादा झटका नहीं लगता
      legal moves के set से random चुनने पर सचमुच बेहद खराब chess player बनेगा, इसलिए अगर LLM output से sampling करने पर वह काफी बेहतर खेलता है, तो साफ है कि LLM कुछ न कुछ योगदान दे रहा है
      अवैध चालों के सभी प्रयासों को हार मानना चाहिए, यह कहते हुए LLM की अकेली क्षमता की परिभाषा पर बहस करना मुख्य मुद्दे से भटका हुआ लगता है
    • अवैध chess moves को computationally detect करना trivial है, इसलिए यह गलत मेडिकल सलाह को filter करने से बिल्कुल अलग है
    • अगर गलत मेडिकल सलाह को अपने-आप हटाने वाली script लिखी जा सके, तो वह analogy सही हो सकती है
      तब असल में “LLM+script” विशेषज्ञ डॉक्टर बन जाएगा, लेकिन chess की अवैध चालों के लिए यह संभव है, मेडिकल सलाह का मूल्यांकन करने के लिए जाहिर तौर पर नहीं
    • 3-turbo-instruct में 8205 चालों में अवैध चालें लगभग 5 या उससे कम हैं
      यहां नहीं है, लेकिन turbo instruct का पहले मूल्यांकन हो चुका है
      https://github.com/adamkarvonen/chess_gpt_eval
    • यह तीखी observation है। इसी तरह Andrew Ng और Stanford University की team ने भी Nature Medicine में छपे अपने मशहूर cardiologist-level paper में training-test ratio overfitting वाली वही चाल चली थी
      training ratio 99% से ज्यादा और test 1% से कम था, इसलिए वह AI validation की बुनियादी कसौटी भी पार नहीं करता
      ज्यादातर AI conferences में ऐसा paper टिकना मुश्किल होता, लेकिन यह बहुत ऊंचे impact factor वाली Nature Medicine में छपा और medical AI field में खूब cite हुआ
      https://www.nature.com/articles/s41591-018-0268-3
  • “कई मायनों में यह engineering से ज्यादा मंत्र खोजने जैसा लगता है” — यह expression अब भी LLMs के बारे में मेरी overall impression जैसा ही है
    यह कि वे काम करते हैं, हैरान करने वाली बात है, लेकिन उम्मीद है कि अगला तकनीकी innovation हर बार किसी खराब SF फिल्म के अंदर होने जैसा एहसास नहीं कराएगा

  • मुझे नहीं लगता कि “सब लोग गलत थे”
    यह बात कहने वाला मैं अकेला भी नहीं था, इसलिए हैरानी हुई कि यह theory सूची में नहीं थी; 7 दिन पहले भी मैंने यह लिखा था: https://news.ycombinator.com/item?id=42145710
    “जो भी public benchmark बन जाता है, मानकर चलना चाहिए कि training के दौरान उसे specifically target किया जाएगा।”
    यह लेख में बताई और खारिज की गई “cheating/LLM output replacement” theory से अलग है
    follow-up लेख इस अनुमान को support करता है। OpenAI ने open models की तुलना में ज्यादा और बेहतर chess game data से base model को train किया, और एक paper के A.2 में OpenAI authors ने बताया कि GPT-4 को Elo 1800 से ऊपर के players की PGN notation वाली chess games पर train किया गया था
    OpenAI का training data को ऐसे कामों के data से augment करना पूरी तरह समझ में आता है, जिन्हें लोग वास्तव में आजमा सकते हैं
    यह अनैतिक भी नहीं है। कोई भी dataset सच में “neutral” नहीं होता, इसलिए जब choice करनी ही है, तो संभावित रूप से useful answers देने में अच्छा train न करने की कोई वजह नहीं है

    • मैंने पहले सुझाव दिया था कि जैसे math और code सीखना logical thinking के दूसरे पहलुओं को भी improve करता है, वैसे ही chess में अच्छा train करने से general intelligence में मदद मिलती है या नहीं, यह देखने के लिए model train किया गया हो सकता है
      वैसे भी OpenAI के पास game AI का काफी अनुभव है
      https://news.ycombinator.com/item?id=42145215
    • यह थोड़ा paranoid लगता है
      कोई भी इस उम्मीद में कि कोई blogger संयोग से 1800 Elo स्तर की कमजोर performance खोजकर tweet करेगा, बेहद महंगे बड़े LLM को विशाल dataset पर train नहीं करता
      chess इतना standard LLM benchmark भी नहीं है कि वह Goodhart का target बने, और OpenAI आम तौर पर shortcuts या cheating की बजाय सही तरीके से problems solve करने की कोशिश करता आया है
      GPT series standard benchmarks या counterexamples पर आसानी से overfit हो सकती थी और उसका PR value भी कहीं ज्यादा होता, फिर भी उसने extreme overfitting नहीं की। मसलन “strawberry problem” जैसी चीज पर train कराना बहुत आसान होता
      दूसरी तरफ कुछ अन्य LLM providers के scores memorization-prevention papers में कहीं ज्यादा गिरते हैं
      साथ ही, जिस paper में उस dataset का उल्लेख है, उसमें स्पष्ट research use है, और chess में oracle इस्तेमाल किया जा सकता है, इसलिए LLMs की guidance और world modeling को analyze करने के लिए एक model organism के रूप में उसमें interest है
      DeepMind का blitz chess LLM paper भी Gemini से chess skill fake करवाकर GCP marketing में इस्तेमाल करने की कोई चालाक योजना का हिस्सा नहीं है
    • सबसे सरल और समझ में आने वाली explanation यह है कि OpenAI ने training objective बदल दिया
      शुरू में उन्हें chess cool लगा होगा, और कल उन्हें Go या poetry-writing skill cool लग सकती है
    • काश यह approach दूसरे, ज्यादा practical domains में भी इस्तेमाल हो
      domain चाहे जो हो, training data में “amateur” content की तुलना में expert content ज्यादा डालने के रूप में
  • प्रॉम्प्ट में “गेम जीतने की कोशिश करो” नहीं कहा गया है, लेकिन नतीजा इस बात से मापा गया कि LLM कितना जीतता है
    क्या यह बात “आप एक chess grandmaster हैं” वाले प्रॉम्प्ट में implicit रूप से शामिल है?
    क्या LLM training में कहीं “गेम हो तो हमेशा जीतने की कोशिश करनी है” वाला pattern है?
    अगर सीधे जीतने को कहा जाए, तो क्या win rate बढ़ सकता है?

    • मुझे लगता है कि आप intention को बहुत ज़्यादा महत्व दे रहे हैं। LLM में कोई intention नहीं होता; यह सबसे plausible output देने के लिए trained एक mathematical model है
      chess games के उदाहरणों और explanations में लगभग हमेशा हर player जीतने की कोशिश करता है, इसलिए winning move खेलना ही सबसे logical output है
      इसलिए explicit रूप से जीतने को prompt करने से performance बहुत बेहतर होगी, ऐसा नहीं लगता
      उल्टा, अगर उसे हारने वाली या खराब चाल चलने को कहा जाए तो क्या होता है, यह दिलचस्प होगा। वह इसे प्रभावी ढंग से कर पाता है या नहीं, और चालें अब भी ज़्यादातर legal रहती हैं या नहीं—इससे यह और साफ हो सकता है कि वह पहले देखे गए concepts पर कितना निर्भर है
    • मुझे लगता है कि “आप एक chess grandmaster हैं” वाले prompt में यह स्पष्ट रूप से implicit है
      वह वाक्य best possible move tokens generate करने की probability बढ़ाएगा
    • prompt में डालने पर भी यह लगभग सजावट जैसा ही होगा
      model की chess sequence generate करने की क्षमता training data के games pool में मौजूद expertise तक सीमित है
      अगर कुछ games में कुछ players जानबूझकर हारने की कोशिश कर रहे थे, तब भी शायद उसका असर बहुत मामूली होगा; और chess games में player intention को annotate नहीं किया जाता, इसलिए जीतने या हारने को prompt करने पर LLM उसे अलग से पकड़ नहीं पाएगा
      LLM को जानबूझकर हारने को कहकर देखा जा सकता है। मेरे अनुभव में ChatGPT खुद को scholar's mate में फंसाने के लिए set up करने की कोशिश करता है, लेकिन अगर opponent उसे accept नहीं करता, तो वह implicit रूप से जीतने की कोशिश करने जैसा opponent के undefended pieces लेना शुरू कर देता है
      “क्यों?” पूछने पर, हमेशा की तरह, वह post-hoc rationalization दे देता है
    • code generation कराते समय भी हम सिर्फ “आप Python expert हैं और यह code है” नहीं कहते; desired outcome की direction बताने पर आमतौर पर बेहतर result मिलता है
      इसलिए “और जीतो” या “black wins” जैसी expression न होना मुझे surprising लगा
    • ऊपर से prompt भी “best move” नहीं बल्कि “next move चुनें” है
      अगर reinforcement learning की वजह से LLM जानबूझकर avoid कर रहा है ताकि इंसान game हारकर बुरा महसूस न करे, तो यह काफी मज़ेदार होगा
  • prompt को improve करना अच्छा है, लेकिन अब भी दो बहुत बड़ी improvement possibilities छूट रही हैं
    पहली, move suggest करने से पहले current board position और आगे की plan explain कराना। इससे model सच में ज़्यादा सोचता है; o1 जैसा है, लेकिन यहाँ ज़्यादा focused processing सुनिश्चित की जा सकती है
    दूसरी, हर step पर सच में ASCII board draw कराना। board+move format 20 moves की list के मुकाबले ज्यादा stable तरीके से process करना आसान हो सकता है, जिससे legal moves बढ़ सकते हैं

    • ASCII board draw कराने से कोई बड़ा फर्क पड़ेगा, ऐसा नहीं लगता
      ASCII art जैसी 2D “graphics” language models के लिए unfamiliar होती हैं, और model text को line breaks सहित token stream के रूप में देखता है, इसलिए lines के बीच की “vertical” relationship वैसी साफ नहीं होती जैसी इंसान को दिखती है
      context window में board diagram होने पर भी model को game reason करने में शायद ज्यादा मदद नहीं मिलेगी
      इसके बजाय “c5 पर black knight” की तरह हर piece की position normal text में list कराना position awareness को मजबूत करने के लिए ज्यादा उपयुक्त हो सकता है
    • नंबर 2 पहले से दूसरों द्वारा बताए गए कारणों के चलते मददगार नहीं लगेगा
      नंबर 1 निश्चित रूप से try करने लायक है, और model के हिसाब से काम करने वाले variants भी और हैं
      Anthropic models में docs input के important parts को XML notation से label और classify करने की सलाह देते हैं। ऐसी soft structure Claude model results को improve करती दिखती है, और शायद model को इसे recognize करने के लिए खास तौर पर train किया गया होगा
      संदर्भ: https://docs.anthropic.com/en/docs/build-with-claude/prompt-...
      Anthropic model के लिए final prompt कुछ ऐसा हो सकता है: “आप chess grandmaster हैं। tags के अंदर incomplete game देखकर पूरे game को repeat करें, फिर standard algebraic notation में एक नया move दें, और नया notation देने से पहले tag block के अंदर अपनी reasoning explain करें”
      ऐसे prompt Anthropic models में noticeable improvement देने के लिए बने हैं
      irony यह है कि Claude 3.5 Sonnet को कई महीनों तक खूब use करने के बाद भी मैंने यह कुछ हफ्ते पहले ही खोजा। RTFM अब भी useful skill है
      OpenAI models में भी ऐसा ही simple लेकिन कम-known affordance हो सकता है
    • chain of thought कई problems में मदद करता है, लेकिन GPT की chess performance को उल्टा बहुत गिरा देता है
      मेरे 1.5 साल पहले के chess experiments में पूरे move sequence को repeat करने वाली trick fine-tuning के बिना सबसे अच्छा method था
    • यह expression training data में relatively rare है, इसलिए response को improve करने के बजाय खराब करने की संभावना ज्यादा है
      results देखना चाहूंगा, लेकिन अगर बेहतर हुआ तो मुझे काफी surprise होगा
    • मेरा मानना है कि अब तक के सभी moves repeat कराने पर improvement इसलिए हुआ क्योंकि LLM को सोचने के लिए अधिक time और space मिला
      hypothesis यह है कि दूसरे तरीकों से भी अधिक time और space देने पर performance और बेहतर हो सकती है
      उदाहरण के लिए current board position दिखाना, position analysis कराना, key weaknesses और strengths की list बनवाना, possible strategies की list, उनमें से strategy selection, और अंत में move selection
      यानी उसे तुरंत move उगलने को न कहकर सचमुच सोचने पर मजबूर करना। यहाँ examples ही key होंगे
      ऐसे ideas ReAct paper और chain-of-thought paper में अच्छी तरह काम करते दिखे हैं, और इसमें N बार repeat करके majority answer आने पर रोकने का तरीका भी जोड़ा जा सकता है। यह idea chain-of-thought self-consistency paper से लिया गया है
  • “fine-tuning मदद करती है और examples भी मदद करते हैं, लेकिन fine-tuning को unnecessary बनाने वाली चीज examples हैं, उल्टा नहीं” वाला हिस्सा बहुत interesting है
    इस specific case में simple examples देना fine-tuning के बराबर है
    मेरे लिए यह बड़ी discovery है, इसलिए आगे examples को ज्यादा बार इस्तेमाल करने की सोच रहा हूं

    • intuitively यह बहुत सही लगता है
      वजह समझाना मुश्किल है, लेकिन मुझे हमेशा यह gut feeling थी कि fine-tuning overrated है
      एक वजह यह हो सकती है कि examples “यहीं सामने” होते हैं, इसलिए fine-tuned neurons की तुलना में implicitly उनका weight कहीं ज्यादा मिलता है
    • fine-tuning की तुलना में examples देना ज्यादा useful है—इस insight से सहमत हूं
      इस toy case में यह इतना महत्वपूर्ण नहीं है, लेकिन याद रखना चाहिए कि input में दिया गया हर example fine-tuning की तुलना में prediction time और cost बढ़ाता है
  • commercial LLMs के साथ अंधेरे में टटोलने जैसे प्रयोग अब बंद करने चाहिए
    इस समस्या की तह तक जाने के लिए सिर्फ chess games पर LLM को train करके देखना दिलचस्प होगा। Stockfish को खुद से खेलाकर इन्हें अनंत रूप से synthesize किया जा सकता है, और chess commentary के साथ “board पर कितने pawns हैं?”, “मेरा rook कहाँ है?”, “board draw करो” जैसे chess conversation examples थोड़ा मिलाकर दिखाया जा सकता है कि उसके पास board representation है या नहीं
    मुझे नहीं लगता कि “emergent phenomenon” या general language ability, या क्षमता होने का दिखावा करने की क्षमता, chess खेलने के लिए जरूरी है। Chess में अच्छा होने का मतलब यह नहीं कि बाकी चीजों में भी intelligent हो, और इसका उल्टा भी सही है
    ऐसा प्रयोग मुझे गलत भी साबित कर सकता है
    करीब एक हफ्ते पहले आया paper https://arxiv.org/pdf/2411.06655 fine-tuned Llama से अच्छे परिणाम पाता दिखता है
    chess commentary ability पर यह paper भी मुझे पसंद है: https://arxiv.org/abs/2410.20811

    • expert chess policy की अगली move predict करना बस अच्छी तरह studied imitation learning है
      बचा हुआ reward जोड़कर network को यह सीखने दिया जा सकता है कि अच्छी और खराब games में कौन-सी moves आती हैं, और यह Decision Transformer जैसे offline reinforcement learning setup में बदल जाता है
      मेरे हिसाब से chess skill general LLMs के लिए पूरी तरह बेकार है और कोई emergent phenomenon भी नहीं; यह बस इस शानदार trick के लिए gradient bandwidth और parameter space खर्च करना है
      यह इस बात से साफ है कि chess के लिए खास तौर पर train न किए गए LLMs chess अच्छे से नहीं खेलते
  • chess move notation के लिए optimized tokenizer बनाकर, Stockfish games से LLM को scratch से train करना दिलचस्प हो सकता है
    custom tokenizer इस्तेमाल करने पर वही model size बेहतर quality दे सकता है
    encoding और decoding में बहुत सारी layers बर्बाद नहीं करनी पड़ेंगी, और “natural” latent representation भी ज्यादा intuitive हो सकता है