- कई LLM को समान शर्तों पर शतरंज में उतारा गया तो ज़्यादातर शुरुआती चरण के बाद ढह गए, लेकिन केवल gpt-3.5-turbo-instruct ने Stockfish की सबसे कम कठिनाई के खिलाफ बहुत मजबूत प्रदर्शन दिखाया
- प्रयोग में LLM को सफेद मोहरों से खिलाया गया और Stockfish की सबसे कम कठिनाई के खिलाफ गेम के बाद, हर चाल पर बोर्ड की स्थिति को chess engine के centipawn score से आंका गया
llama-3.2-3b,llama-3.1-70b,Qwen-2.5-72b,command-r-v01,gemma-2-27b,gpt-3.5-turbo,gpt-4o-mini,gpt-4o,o1-miniमें से कोई भीgpt-3.5-turbo-instructके करीब नहीं पहुंचा- मिलती-जुलती family के models की तुलना में instruction/chat tuning शतरंज प्रदर्शन को घटाने की दिशा में दिखी, लेकिन गिरावट की मात्रा model के हिसाब से कम या बहुत बड़ी रही
- open models में prompt के अंत में एक space से performance काफी बदलने वाली tokenizer समस्या दिखी, और chess notation input LLM की internal representation और generation constraints के प्रति संवेदनशील रूप से प्रतिक्रिया करता है
प्रयोग की setup और evaluation पद्धति
- LLM को chess grandmaster की तरह अगली चाल चुनने वाला prompt दिया गया, और input आंशिक रूप से चल चुकी chess notation थी
- notation में
e4,Rdf8,R1a3जैसी standard algebraic notation का इस्तेमाल हुआ - turn number न लिखने और चुनी गई चाल का कारण न समझाने का निर्देश भी शामिल था
- notation में
- सभी games में LLM ने सफेद मोहरों से खेला, और प्रतिद्वंद्वी standard chess AI Stockfish की सबसे कम कठिनाई था
- हर turn के बाद board state को chess engine से score कर model performance की तुलना की गई
- unit centipawn है, जिसमें एक pawn को 100 points माना जाता है और positional value भी reflect होती है
- game खत्म होने पर LLM की जीत को +1500, draw को 0, और हार को -1500 माना गया
opening के बाद तेजी से कमजोर हो जाने वाले models
llama-3.2-3b3 अरब parameters वाला base model है, और 50 games में सभी हार गया- standard opening की कुछ चालें खेल पाया, लेकिन जल्द ही मोहरे गंवाने लगा
- opponent Stockfish की सबसे कम setting पर था, फिर भी सभी games हार गया
- 70 अरब parameters वाला
llama-3.1-70bबस थोड़ा बेहतर था, लेकिन नतीजे अभी भी बहुत खराब रहे llama-3.1-70b-instruct,Qwen-2.5-72b,command-r-v01,gemma-2-27bको भी इसी तरीके से test किया गया, लेकिन मजबूत chess performance नहीं दिखी- कुछ games खेलने वाला
llama-3.1-405bभीgpt-3.5-turboसे बड़ा model है, लेकिन नतीजे फिर भी खराब रहे
असाधारण रूप से मजबूत gpt-3.5-turbo-instruct
gpt-3.5-turbo-instructOpenAI का closed model है, इसलिए details अस्पष्ट हैं, लेकिन 10 tests में इसने बहुत अच्छा प्रदर्शन दिखाया- Stockfish difficulty को कुछ levels बढ़ाने पर भी यह इतना मजबूत था कि सभी games जीत गया
- मिलते-जुलते नाम वाला
gpt-3.5-turboअधिक conversational tuning वाला model है, और उसका chess performancegpt-3.5-turbo-instructसे काफी अलग था gpt-4o-mini,gpt-4o,o1-miniभी test में शामिल थे, औरgpt-4oथोड़ा अधिक धीरे हारा, लेकिन सभी games में हार गया- इंटरनेट पर LLM chess experiments का trend ऐसा था कि 2023 के सितंबर-अक्टूबर में advanced amateur level की बातों से दिलचस्पी बढ़ी थी, लेकिन हालिया models में फिर से opening के बाद ढहने वाला pattern लौट आया
instruction/chat tuning और chess performance
- मिलती-जुलती family में base के करीब models और additional tuned models की तुलना करने पर, extra instruction tuning हर मामले में chess performance को खराब करने की दिशा में दिखी
- गिरावट की मात्रा समान नहीं थी
- दो मामलों में अंतर छोटा था
- एक मामले में अंतर बहुत बड़ा था
gpt-3.5-turbo-instructनाम को सामान्य naming convention से अलग तरह से समझना होगा- यहां इसे
gpt-3.5-turboकी तुलना में base model के ज्यादा करीब माना गया है - यह आम तौर पर
instructयाitसे conversation और instruction-following tuning ज्यादा होने के अर्थ के उलट है
- यहां इसे
संभावित कारणों के candidates
-
बड़ा base model शतरंज खेल सकता है, लेकिन instruction tuning उसे बिगाड़ सकती है
- यह प्रयोग के नतीजों से मेल खाता है, लेकिन बड़ा
llama-3.1-405bभी खराब निकला, जो एक counterexample है
- यह प्रयोग के नतीजों से मेल खाता है, लेकिन बड़ा
-
gpt-3.5-turbo-instructको अधिक chess games पर train किया गया हो सकता है- सभी models ने बहुत से chess games से सीखा होगा, इसकी संभावना अधिक है, लेकिन सटीक मात्रा जानना मुश्किल है
-
Transformer architecture के अंतर का असर पड़ा हो सकता है
- Llama family के models chess में खास तौर पर कमजोर हो सकते हैं, इसे खारिज करना मुश्किल है
-
अलग-अलग data types के बीच competition हुआ हो सकता है
- केवल chess games पर trained Transformer शतरंज बहुत अच्छी तरह खेल सकता है
- अगर
gpt-3.5-turbo-instructको chess games के अधिक अनुपात वाले data पर train किया गया था, तो parameters का बड़ा हिस्सा chess में लगा हो सकता है - अगर यह hypothesis सही है, तो पर्याप्त बड़ा model chess games का proportion कम होने पर भी पर्याप्त chess data सीखकर शतरंज अच्छा खेलना चाहिए
implementation details और constraints
- open models सीधे चलाए गए, और OpenAI के अलावा models को open models के रूप में classify किया गया
- open models चलाने में
Q5_K_Mquantization का इस्तेमाल हुआ - open models में current legal moves सीधे बनाए गए, और llama.cpp grammars से output को constrain किया गया ताकि हमेशा legal move निकले
- OpenAI models complete grammar support नहीं करते, इसलिए अधिकतम 10 बार generate कराया गया, और फिर भी legal move न निकले तो random move चुनी गई
- chat models
llama-3.1-70b-instruct,gemma-2-27b-it,gpt-3.5-turbo,gpt-4o-mini,gpt-4oके लिए अलग system prompt इस्तेमाल हुआ o1-miniमें system prompt बदला नहीं जा सकता, इसलिए उसे वैसे ही चलाया गया- open models temperature 0.7 पर, और OpenAI models default values पर चलाए गए
prompt space और tokenizer की अजीब घटना
- open models में
1. e4 e5 2.जैसे अंत में space वाले prompt ने1 e4 e5 2.जैसे बिना space के खत्म होने वाले prompt की तुलना में बहुत खराब performance दी - कारण tokenizer से जुड़ा माना गया
- Llama tokenizer
1.के बादeको एक token के रूप में generate करता है - यह space token के बाद
egenerate करने जैसा नहीं है - input के अंत में space डालकर अगला token generate कराने पर model उलझन भरी स्थिति में आ जाता है
- Llama tokenizer
- उचित handling तरीका input के आखिरी token को हटाकर, हटाई गई string से शुरू होने वाली सभी strings पर constrained generation करने वाला token healing है
- implementation में token healing के बजाय space हटाया गया, और grammar को ऐसा बदला गया कि वह space generate कर भी सके या न भी करे, फिर current legal move और optional space generate कराए
- update में जोड़ा गया कि इस घटना का कारण सच में समझ लिया गया है, और सही explanation अभी तक किसी ने नहीं पहचानी है
OpenAI optimization की संभावना
- एक assumption यह है कि OpenAI ने chess performance में interest देखकर
gpt-3.5-turbo-instructकी chess performance बढ़ाने के लिए training data, fine-tuning, या algorithm में से किसी चीज़ को optimize किया हो सकता है - उसी assumption में यह optimization cost या अन्य features की गिरावट जैसे trade-offs के कारण बाद के models में जारी नहीं रखी गई हो सकती है
- यह कोई ठोस evidence नहीं, बल्कि “OpenAI ने जानबूझकर किया” स्तर का अनुमान है, और timing भी निश्चित नहीं है
1 टिप्पणियां
Hacker News की राय
लगता है लेख ने एक साफ़ संभावना छोड़ दी: OpenAI ने chess को ऐसा benchmark माना जिसे “जीतना चाहिए”, और
gpt-3.5-turbo-instructके अंदर सिर्फ़ chess के लिए special handling डाल दी, लेकिन बाद के models में उसे नहीं रखा क्योंकि उससे लगातार media attention नहीं बनतीtest में कुछ महत्वपूर्ण बातें थीं: closed OpenAI models में अगर legal move नहीं निकला तो अधिकतम 10 बार generate किया गया, और फिर भी न हुआ तो random move चुना गया; open models को
Q5_K_Mquantization के साथ खुद चलाया गया; prompt के अंत में space होने या न होने भर से open models की performance काफ़ी बदल गई; open models में temperature 0.7 था, जबकि OpenAI models में default values इस्तेमाल हुईंtokenizer के अजीब behavior, temperature, quantization, random moves और chess prompt—सब कुछ मिला हुआ है, इसलिए समझ नहीं आता कि results को कैसे interpret किया जाए। फिर भी लेख दिलचस्प है
शायद अगर हमें सच में intelligent model चाहिए, तो tokenization को ही बंद करना पड़े। model क्या देखता है और दुनिया को कैसे perceive करता है, इसे हम शुरुआत से ही input information flow की structure से सीमित कर रहे हैं
raw bits या bytes के साथ काम करना धीमा है, यह पता है, लेकिन यह hypothesis कि बड़ी समस्याएं tokenization के कारण हो सकती हैं, उसे disprove करना तुलनात्मक रूप से सस्ता और आसान लगता है। हैरानी है कि radically different tokenization पर ज़्यादा research नहीं दिखती
उदाहरण के लिए लोग कहते हैं कि LLM basic counting इसलिए नहीं कर पाता क्योंकि tokenization है, लेकिन वही LLM chain-of-thought prompt इस्तेमाल करने पर ठीक count करता है। तब इसे tokenization से explain नहीं किया जा सकता। समस्या यह है कि इंसान को उसे बताना पड़ता है कि step-by-step हल करने पर सही answer मिलेगा, और उस मदद के बिना वह बस guess करने लगता है
अगर images को tokens में बदला जा सकता है और audio को भी tokens में बदला जा सकता है, तो क्या model द्वारा खुद चुने गए semantic representation tokens का set बनाकर फिर उन tokens को वापस text में decode नहीं किया जा सकता? मैं बार-बार यही सोचता हूं। नुकसान यह है कि encoded tokens को text में वापस बदलने की process lossy होगी, इसलिए देखे गए text को 1:1 quote नहीं किया जा सकेगा
मेरी समझ के हिसाब से OpenAI ने
gpt-4oreport की image में ठीक ऐसा ही किया लगता है। “Explorations of capabilities” देखें: https://openai.com/index/hello-gpt-4o/Karpathy भी इसी सोच से सहमत हैं। यह 2 घंटे तक tokenizer को फिर से बनाते हुए tokenizer से नफ़रत करने वाला video है
prompt और board position को कई तरीकों से बदलकर experiment करना worth है। reference के लिए, model को दी गई board position यह image है: https://i.imgur.com/qRxalgH.png
इस experiment में एक से ज़्यादा अजीब बातें हो सकती हैं। जैसे, instruction-tuned न किए गए variant model को instructions देना उल्टा असर कर सकता है। ज़्यादा महत्वपूर्ण यह है कि जब सिर्फ़ truncated PGN दिया गया, तो यह position white को grandmaster-level player जैसा दिखाती है या नहीं, इस पर संदेह है। model chess अच्छी तरह समझता भी हो, तो वह current position में सबसे plausible move predict करने की कोशिश करेगा; अगर वह white को कमजोर player मानता है, तो खराब move की probability ज़्यादा मान सकता है
फिर भी Stockfish को lowest level पर रखकर “बहुत strong opponent” की तरह भिड़ाना model को कुछ हद तक confuse कर सकता था। अगर मैंने chart सही समझा है, तो model की शुरुआती कुछ moves ठीक लगती हैं, और उसके बाद problem शुरू होती दिखती है। prompt guide, Stockfish strength, starting position, fictional player names आदि बदलकर repeat experiments करने लायक हैं
अगर सिर्फ़ एक single move के against किया गया होता, तो “जीतना” या “हारना” आखिर मतलब क्या रखता?
सहमत। prompt में कुछ variations आज़माए जा सकते हैं: अगर model को सोचने की प्रक्रिया की अनुमति दी जाए तो कैसा रहेगा—इस experiment में इसे स्पष्ट रूप से मना किया गया था। साथ ही हर step पर board position को prompt में समझा दिया जाए, तो model को अंदरूनी तौर पर calculate या अनुमान नहीं लगाना पड़ेगा
जिज्ञासा है कि क्या model illegal moves करने की कोशिश करता है। मूल लेखक ने इसका ज़िक्र नहीं किया, लेकिन chess के नियम काफ़ी arbitrary हैं और LLM कठिन problems में “answer नहीं है” मानने के बजाय plausible बातें गढ़ने के लिए बदनाम हैं, इसलिए लगता है कि कम-से-कम एक बार तो यह अनिवार्य रूप से होगा
समझ नहीं आता कि पढ़े-लिखे लोग क्यों उम्मीद करते हैं कि LLM chess को ठीक-ठाक स्तर पर खेल पाएगा
LLM को अपने data की quality नहीं पता होती। “x की तरह behave करो” वाला prompt chess में साफ़ तौर पर ज़रूरी वास्तविक reasoning और deterministic calculation का विकल्प नहीं है
turbo-instructसच में अच्छा खेलता है? “वास्तविक reasoning” जैसी बेबुनियाद anthropomorphic intuition पर आधारित ढीले-ढाले दावे बहुत हैं। मुझे लगता है कि मौजूदा स्थिति इस बात का अच्छा सबूत है कि किसी को ठीक से समझ नहीं है कि हो क्या रहा हैअगर कोई mental model कहता है कि LLM को chess नहीं खेल पाना चाहिए, तो वह मजबूत chess खेलने वाले LLM को explain नहीं कर पाता। उल्टा, जो model कहता है कि उसे अच्छा खेलना चाहिए, वह यह explain नहीं कर पाता कि कई बड़े models chess में बुरी तरह fail क्यों होते हैं। साफ़ है कि कुछ ज़्यादा complex चल रहा है
“ठीक-ठाक स्तर” subjective है, लेकिन इतना हो तो उसे beginner को हराना चाहिए। लेख में इस्तेमाल किया गया Stockfish का सबसे निचला level भी सबसे निचले intermediate player के स्तर का है। यह इस पर निर्भर करता है कि आप मौजूदा public implementation की बात कर रहे हैं या LLM के idea की सामान्य रूप से; और अगर बेहतर results चाहिए तो chess books और पुराने games की analysis उसे कहीं ज़्यादा feed की जा सकती है
GPT-3.5-turbo-instructको advanced amateur level पर खेलते देखा है। हालांकि नए models में डाले गए RLHF और distillation ने शायद उस capability को खराब कर दिया हैgpt-3.5-instructStockfish को कैसे हरा सकता हैpublic model को
Q5_K_Mquantization के साथ चलाने का मतलब सिर्फ यह है कि सभी parameters को lossy compress किया गया है। शायद यह महत्वपूर्ण नहीं होगा?मेरे हिसाब से chess को sequence के रूप में train करने का तरीका फायदे से ज्यादा problems पैदा करता है। 1 trillion games train करने पर भी यह नहीं बचाएगा: https://en.wikipedia.org/wiki/Shannon_number
completeness के लिए जोड़ दूँ: modern chess engines high-quality chess-specific models को अपने tools के हिस्से के रूप में इस्तेमाल करते हैं, और वे आज या अतीत के किसी भी player से हर बार कम-से-कम draw कर सकते हैं। opponent अगर ज़रा-सी भी गलती करे तो हार जाता है। Stockfish level को maximum तक बढ़ाने या कम-से-कम 1800+ Elo player तक बढ़ाने से शायद ज़्यादा successful games मिलें, लेकिन वह सिर्फ इसलिए होगा कि advanced players बेकार moves कम खेलते हैं, यानी training data का noise घटता है; इसका मतलब बेहतर play नहीं है
अरबों-खरबों positions में best move सीखना और उसे किसी AI में डालना शायद बेहतर काम कर सकता है। मिलती-जुलती positions में अक्सर उसी तरह के best moves होते हैं
gpt-3.5-turbo-instruct,gpt-3.5-turbo,gpt-4सहित related experiments का एक set मिलाconclusion भी उतना ही हैरान करने वाला है: gpt-3.5-turbo-instruct chess कहीं बेहतर खेलता है
https://blog.mathieuacher.com/GPTsChessEloRatingLegalMoves/
OpenAI के पास game-playing AI बनाने का बहुत बड़ा experience है। अगर याद हो तो कई सालों तक यही उनका main area था। इसलिए शायद उन्होंने एक model को chess के लिए अच्छे से tune किया, यह देखने के लिए कि chess learning का general intelligence पर असर होता है या नहीं। जैसे इंसान chess सीखकर अधिक smart हो सकता है, और math या programming सीखना भी ऐसा कर सकता है
LLM reasoning या search नहीं करता; वह पिछले text के आधार पर text लिखता है। इसलिए हमारी नज़र में वह play जैसा लग सकता है, लेकिन असल में यह पुराने games के आधार पर smart guessing है। यह वैसा है जैसे Kasparov वास्तविक pieces की placement imagine किए बिना moves लिख रहे हों। दिलचस्प experiment यह होगा कि सिर्फ rules दिए जाने पर model खेल सकता है या नहीं; शायद नहीं खेल पाएगा। अभी यह goal track नहीं कर रहा, बल्कि memory से replay कर रहा है। अभी forward attention जैसी कोई चीज़ नहीं है और beam search काफी महंगा है, इसलिए बेहतर है कि classical chess algorithm पर fallback किया जाए
OpenAI ने conversational agents के अलावा कुछ नहीं किया