Chain-of-thought prompting काम करता है क्योंकि भाषा मॉडल next-token predictors हैं, और जो tokens वे उत्पन्न करते हैं वे अपने स्वयं के context का हिस्सा बनते हैं। जब आप एक मॉडल से "step by step सोचें" के लिए कहते हैं, तो आप कुछ hidden reasoning module को सक्रिय नहीं कर रहे हैं — आप इसे intermediate tokens उत्पन्न करने के लिए मजबूर कर रहे हैं जो subsequent tokens को एक सही उत्तर की ओर constrain और guide करते हैं। उन intermediate steps के बिना, मॉडल को प्रश्न से उत्तर तक एक एकल विशाल inferential leap लेनी होती है, और वही जगह है जहाँ errors ढेर हो जाते हैं। CoT के साथ, हर step अगले के लिए probability space को narrow करता है। यह 347 को 29 से अपने सिर में सब कुछ एक साथ multiply करने की कोशिश करने और कागज़ पर partial products लिखने के बीच का अंतर है।
Wei et al. द्वारा Google में मूल 2022 paper ने दिखाया कि CoT prompting बड़े मॉडलों के लिए अनिवार्य रूप से free था — एक prompt में बस "Let's think step by step" जोड़ने ने PaLM 540B पर GSM8K math accuracy को लगभग 18% से 57% तक boost किया। लेकिन तकनीक ने छोटे मॉडलों की मुश्किल से मदद की, जिसने एक व्यावहारिक thumb नियम को जन्म दिया: CoT लगभग 10 अरब parameters से ऊपर के मॉडलों पर सबसे उपयोगी है। उस threshold से नीचे, मॉडल अक्सर plausible-sounding लेकिन ग़लत reasoning steps उत्पन्न करता है, जो वास्तव में सीधे एक उत्तर पर कूदने से अधिक नुकसान पहुँचाता है। यह याद रखने योग्य है यदि आप production में विभिन्न आकारों के मॉडलों के बीच routing कर रहे हैं।
आधुनिक फ्रंटियर मॉडल — Claude, GPT-4, Gemini — ने प्रशिक्षण के दौरान काफी हद तक chain-of-thought को आंतरिक किया है। Anthropic और OpenAI दोनों process reward models और reinforcement learning के variants का उपयोग ऐसे मॉडलों को प्रशिक्षित करने के लिए करते हैं जो उत्तर देने से पहले समस्याओं के माध्यम से reason करते हैं, भले ही आप उन्हें स्पष्ट रूप से ऐसा करने के लिए न कहें। OpenAI के o1 और o3 मॉडल इसे सबसे आगे ले जाते हैं, विस्तारित आंतरिक reasoning करते हुए जिसे आप एक "thinking" trace में देख सकते हैं। Claude का extended thinking समान रूप से काम करता है। व्यावहारिक उपशीर्ष यह है कि cutting-edge मॉडलों के लिए, स्पष्ट CoT prompting 2023 की तुलना में कम मायने रखती है, लेकिन यह अभी भी मदद करती है जब आप reasoning का निरीक्षण करना चाहते हैं, errors पकड़ना चाहते हैं, या जब आप छोटे या open-source मॉडलों के साथ काम कर रहे हैं जिन्हें वह प्रशिक्षण नहीं मिला।
एक आम ग़लतफ़हमी यह है कि chain-of-thought का हमेशा अर्थ है लंबी, धीमी प्रतिक्रियाएँ। व्यवहार में, आप CoT को structured output के साथ संयोजित कर सकते हैं — मॉडल से एक scratchpad section में reason करने के लिए कहें, फिर एक concise final उत्तर उत्पन्न करें। कई API users reasoning को एक अलग field में डालते हैं या thinking को उत्तर से delimit करने के लिए XML tags का उपयोग करते हैं। यह आपको accuracy लाभ देता है बिना अपने end users को reasoning के paragraphs से wade करने के लिए मजबूर किए। एक और gotcha: CoT वास्तव में सरल कार्यों पर मॉडलों को बदतर बना सकता है जहाँ overthinking अनावश्यक doubt पेश करती है। यदि आप पूछ रहे हैं "France की राजधानी क्या है?" तो आपको reasoning के पाँच steps की आवश्यकता नहीं है — आपको एक सीधे उत्तर की आवश्यकता है।
CoT के variants जानने योग्य हैं। Zero-shot CoT (बस "step by step सोचें" appending) सबसे सरल है। Few-shot CoT prompt में reasoning chains के साथ worked उदाहरण प्रदान करता है। Tree-of-thought और आगे जाता है, मॉडल को कई reasoning branches का अन्वेषण और backtrack करने देता है। Self-consistency कई CoT paths उत्पन्न करता है और final उत्तर पर एक majority vote लेता है, जो उपलब्ध सबसे विश्वसनीय accuracy boosters में से एक है। हर step up अधिक tokens और latency खर्च करता है, इसलिए सही विकल्प इस पर निर्भर करता है कि आप लागत, गति, या correctness के लिए optimize कर रहे हैं — और समस्या वास्तव में कितनी कठिन है।