2 पॉइंट द्वारा GN⁺ 2024-09-22 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Google DeepMind का SCoRe एक multi-turn online reinforcement learning approach है, जिसमें बाहरी feedback के बिना LLM अपनी ही generated revision trajectories से सीखकर अपने उत्तर खुद सुधारने की क्षमता विकसित करता है
  • मौजूदा SFT तरीके training data की errors और मॉडल की वास्तविक errors के बीच distribution mismatch तथा दूसरे उत्तर में लगभग कुछ भी न सुधारने वाले behavior collapse के प्रति कमजोर होते हैं
  • SCoRe पहले first-attempt distribution को base model के करीब बाँधता है, फिर second attempt को बेहतर बनाने के लिए initialize करता है, और उसके बाद reward shaping के जरिए वास्तविक correction behavior को मजबूत करता है
  • Gemini 1.0 Pro और Gemini 1.5 Flash पर किए गए experiments में base model की तुलना में self-correction performance MATH पर 15.6%p और HumanEval पर 9.1%p बेहतर हुई
  • केवल prompting या offline SFT से intrinsic self-correction को स्थिर रूप से विकसित करना कठिन है, और self-generated data पर collapse रोकने वाली reinforcement learning design की आवश्यकता होती है

SCoRe जिस self-correction समस्या को लक्षित करता है

  • LLM गणित और coding जैसे reasoning tasks में उपयोगी हैं, लेकिन test time पर अपने उत्तर की समीक्षा करके उसे सुधारने वाली meta-strategy को स्थिर रूप से execute नहीं कर पाते
  • self-correction वह क्षमता है जिसमें मॉडल अपनी शुरुआती प्रतिक्रिया को दोबारा देखकर उसे बेहतर final response में बदलता है
  • यह काम उस intrinsic self-correction setting पर केंद्रित है जिसमें मॉडल बाहरी input के बिना अपना उत्तर खुद सुधारता है
    • test time पर answer checker या बाहरी feedback का उपयोग नहीं किया जाता
    • training के दौरान यह माना जाता है कि model output की correctness जाँचने वाले reward function तक पहुँच उपलब्ध है
  • SCoRe किसी अलग correction model के बिना, एक ही model को पहला response और error correction दोनों करने के लिए train करता है

मौजूदा approaches कहाँ अटकते हैं

  • केवल prompting से self-correction कराने पर कई पूर्व अध्ययनों में performance घट भी सकती है
  • कुछ तरीके correct answer, test cases, अधिक शक्तिशाली model, human annotations, या अलग refinement model जैसी अतिरिक्त शर्तों पर निर्भर करते हैं
  • SFT-आधारित approaches self-generated correction trajectories का उपयोग कर सकते हैं, लेकिन experiments में इससे self-correction में बड़ा लाभ नहीं मिला
  • MATH comparison experiment में STaR और Pair-SFT variants का उपयोग किया गया
    • STaR केवल उन trajectories को रखकर SFT करता है जिनमें गलत response को सफलतापूर्वक सुधारा गया हो
    • Pair-SFT गलत response और सही response को जोड़ी बनाकर बने synthetic repair trace पर single model को train करता है

SFT-आधारित self-correction experiments के परिणाम

  • Gemini 1.5 Flash आधारित MATH experiment में base model की first-attempt accuracy 52.6% थी, जबकि second-attempt accuracy 41.4% रही, यानी -11.2%p गिरावट
  • Pair-SFT ने second-attempt accuracy को 54.2% तक बढ़ाया, लेकिन first attempt की तुलना में सुधार केवल 1.8%p रहा
  • STaR की baseline setting में first attempt 55.4% और second attempt 41.2% रहा, यानी -14.2%p की गिरावट
  • correct-to-correct data जोड़ने पर STaR में Δ(t1,t2) 0.4%p तक सुधरा, लेकिन self-correction प्रभाव छोटा रहा
  • correct-to-correct data जोड़ने पर Pair-SFT में first attempt और second attempt दोनों 55.0% हो गए, यानी मॉडल उत्तर न बदलने की दिशा में झुक गया

दो failure modes

  • SFT-आधारित तरीके distribution mismatch के प्रति कमजोर होते हैं
    • training data base model द्वारा बनाए गए first-attempt errors के अनुरूप होता है
    • लेकिन trained model द्वारा स्वयं उत्पन्न first-attempt error distribution पर correction performance गिर सकती है
  • Pair-SFT fixed first-response set पर correction accuracy बढ़ाता है, लेकिन learner द्वारा स्वयं generate किए गए first responses पर self-correction accuracy खराब हो जाती है
  • behavior collapse होने पर second attempt में या तो वास्तविक correction नहीं होता, या बहुत ही conservative correction होता है
  • edit distance ratio analysis में STaR और SFT models अक्सर लगभग कोई edit न करने वाला pattern दिखाते हैं
  • standard multi-turn RL दोनों attempts की performance बढ़ा सकता है, लेकिन first attempt और second attempt के बीच का अंतर Δ(t1,t2) नहीं बढ़ा पाता, इसलिए इसे self-correction क्षमता में बदलना कठिन होता है

SCoRe की training structure

  • SCoRe self-generated online data पर train होकर distribution mismatch को कम करने वाला on-policy multi-turn RL approach है
  • मूल RL training में fixed model के विरुद्ध KL-divergence penalty के साथ REINFORCE policy gradient method का उपयोग किया जाता है
  • Stage I दो attempts के behavior को अलग करने के लिए initialization stage है
    • first-attempt distribution को base model के करीब बनाए रखने के लिए KL constraint लगाया जाता है
    • second attempt को उच्च reward पाने के लिए train किया जाता है
    • लक्ष्य ऐसी initial policy बनाना है जो second attempt में बेहतर responses खोज सके
  • Stage II दोनों attempts को साथ में optimize करता है
    • second-attempt reward में progress bonus जोड़ा जाता है
    • जब second attempt, first attempt की तुलना में correctness सुधारता है, तब bonus बढ़ता है
    • जो transition सही first response को गलत उत्तर में बदल दे, उस पर मजबूत negative effect दिया जाता है

reward shaping क्यों ज़रूरी है

  • केवल standard RL objective रखने पर दो अलग strategies संभव हैं
    • second answer में first answer को बेहतर बनाना
    • first answer को जितना हो सके उतना अच्छा बनाना और second answer में लगभग कुछ न बदलना
  • training data में दोनों strategies अच्छी दिख सकती हैं, लेकिन दूसरी strategy नए problems पर self-correction के रूप में generalize नहीं करती
  • SCoRe का reward shaping केवल final correctness ही नहीं, बल्कि correctness में बदलाव को भी reward में शामिल करता है
  • यह design सिर्फ high-reward answer पाने के बजाय, गलत first response को सही second response में बदलने वाले behavior को मजबूत करता है

performance और examples

  • SCoRe ने MATH में ऐसे examples दिखाए जहाँ second attempt में arithmetic error और reasoning error सुधारे गए
    • arithmetic example में modular multiplication calculation के first answer 1 को second attempt में 3 किया गया
    • reasoning example में function range count problem के first answer ∞ को second attempt में 3 में सुधारा गया
  • Gemini 1.0 Pro और Gemini 1.5 Flash पर SCoRe ने top-level self-correction performance हासिल की
  • base Gemini models की तुलना में self-correction improvement MATH पर 15.6%p और HumanEval पर 9.1%p रहा
  • MATH inference-time scaling experiment में एक ऐसा क्षेत्र दिखा जहाँ samples को केवल parallel direct generation में लगाने की तुलना में sequential self-correction में लगाना अधिक प्रभावी रहा

व्यावहारिक निहितार्थ

  • self-correction training को केवल सही उत्तरों का data इकट्ठा करके SFT करने से संभालना कठिन है
  • अगर model को test time पर अपनी ही बनाई errors सुधारनी हैं, तो training के दौरान भी उसे अपनी response distribution पर correction behavior सीखना होगा
  • SCoRe की मुख्य शर्त यह है कि training के दौरान correctness evaluate करने वाला reward function चाहिए, लेकिन test time पर उस reward का उपयोग नहीं होता
  • single-model deployment बनाए रखते हुए self-correction क्षमता बढ़ानी हो, तो अलग correction model या teacher supervision के बिना भी multi-turn RL और collapse-रोकू reward design की आवश्यकता होती है

1 टिप्पणियां

 
GN⁺ 2024-09-22
Hacker News राय
  • यह OpenAI के o1 मॉडल जैसी approach लगती है, लेकिन o1 पेपर सार्वजनिक नहीं है, इसलिए citation नहीं है
    अफसोस, weights release के बारे में कोई उल्लेख नहीं दिखता

    • लगता है यह पेपर मुख्य training के हिस्से के रूप में या उसके बाद के चरण में reinforcement learning इस्तेमाल करने और फिर model के सामान्य तरीके से inference करने के बारे में है
      o1 में भी शायद ऐसा हुआ हो, लेकिन मुझे बड़ा बदलाव prompt मिलने के बाद final answer देने से पहले शब्दों में “सोचते” हुए execution time पर खुद को readjust करने वाली runtime thinking process लगता है
      अगर यह समझ सही है, तो दोनों approaches समान नहीं हैं। मेरी जानकारी में OpenAI ने ChatGPT के पहले version के बाद सभी subsequent models में reinforcement learning इस्तेमाल किया है, और UI में feedback छोड़ पाने की वजह भी मूल रूप से यही है
    • जिज्ञासा है कि यह किस मायने में समान है
  • पेपर अपने core proposition को सीधे समझाने के बजाय उसके आसपास काफी घूमता है, इसलिए समझना थोड़ा कठिन था। मेरी समझ के अनुसार, लक्ष्य कठिन समस्याओं पर LLM से अधिक सटीक जवाब दिलवाना है
    एक hypothesis यह है कि model को self-correction व्यवहार सिखाकर, गलत जवाब को input के रूप में लेकर उसे बेहतर जवाब या सही जवाब में सुधारने लायक बनाया जा सकता है
    पहले भी corrected answer की quality को reward बनाकर कई reinforcement learning techniques से ऐसा व्यवहार सिखाने की कोशिश हुई थी, लेकिन वे ठीक से काम नहीं कर पाईं, और सीखा गया behavior भी अच्छी तरह generalize नहीं हुआ
    इस पेपर का core यह है कि जब model को Answer 1, Reasoning, Corrected Answer training examples और “Corrected Answer को बेहतर बनाओ” वाला signal मिलता है, तो असल में दो पूरी तरह possible solutions होते हैं। एक है हमारी अपेक्षा के अनुसार Reasoning, Corrected Answer को सुधारना, और दूसरा है बस Answer 1 को ही सुधार देना ताकि Corrected Answer = Answer 1 हो जाए
    पुराने research में लगता है कि बाद वाला हुआ, इसलिए desired behavior की training fail हुई। Model correction behavior को improve करने के बजाय बस पहले answer को improve करने की कोशिश करता है
    इस पेपर का solution training procedure को थोड़ा बदलकर पहले approach को encourage करना है। यानी यह पिछले answer को ठीक करने वाला desired behavior वास्तव में सिखाने की कोशिश है
    Training दो stages में होती है। Stage 1 में KL divergence loss से first answer को जस का तस रखने के लिए मजबूर किया जाता है, और second answer सुधारने पर reward दिया जाता है। इससे initial answer distribution बना रहता है, ताकि बाद में गलत answers model से training के दौरान गायब होकर “गलत answers” कम दिखने की समस्या से बचा जा सके, और model में self-correction behavior initialize किया जा सके
    Stage 2 में model first answer भी बदल सकता है, लेकिन reward function को adjust करके उन flips को ज्यादा reward दिया जाता है जहाँ first answer खराब था और second answer अच्छा। इस stage में first answer सुधारने की strategy और self-correction सुधारने की strategy, दोनों इस्तेमाल की जा सकती हैं, लेकिन बाद वाली को बड़ा reward मिलता है। यह overall performance को fine-tune करते हुए भी self-correction behavior बनाए रखने वाली refinement process जैसी लगती है
    Metrics के हिसाब से यह technique बेहतर काम करती है और बेहतर generalize होती है
    हालांकि Stage 2 में मुझे थोड़ी चिंता है कि model flip reward को maximize करने के लिए Answer 1 को जानबूझकर और खराब लिखना न सीख ले। Answer 1 खराब न हो, इसके लिए कोई balancing mechanism चाहिए होगा, लेकिन यह reward function में है या यह सच में valid concern है, मुझे ठीक से नहीं पता

    • जवाब में idea के आसपास घूमने का तरीका कई LLM outputs में दिखने वाली phenomenon को अच्छी तरह समझाता है। मैंने o1 को खुद इस्तेमाल नहीं किया है, लेकिन लगता है वह इस समस्या को ठीक करता है
    • “दूसरा है बस Answer 1 को ही सुधार देना ताकि Corrected Answer = Answer 1 हो जाए” वाले हिस्से का मतलब क्या है, यह जानना चाहूँगा
      Answer 1 को सुधारना ही तो असल लक्ष्य नहीं है? केवल explanation देखकर Answer 1 input नहीं बल्कि LLM का output जैसा लगता है
  • LLM अपनी सीखने की प्रक्रिया के संवेदी अनुभव को सीधे याद नहीं रख पाते। खुद को सुधारने के मेरे मुख्य तरीकों में से एक यह है कि जब मैं किसी चीज़ के बारे में बोलने लगता हूँ, तो यह सोचता हूँ कि मैं उसे कैसे/क्यों जानता हूँ, और अंदाज़ा लगाता हूँ कि क्या मैं सच में जानता हूँ, मनगढ़ंत बना रहा हूँ, या किसी कम भरोसेमंद स्रोत से सुना है।
    अगर LLM किसी भी तरीके से अपनी सीखने की प्रक्रिया याद नहीं रखता, तो मुझे लगता है self-correction मुश्किल है

    • तो क्या समाधान यह है कि हर training batch के आगे संवेदी अनुभव का वर्णन जोड़ दिया जाए? जैसे, “आपने 1997 में पेरिस के एक कैफ़े में निम्न सामग्री पढ़ी। पढ़ते समय आप शानदार baguette, उबला अंडा और ज़रूरत से ज़्यादा भुनी हुई coffee खा/पी रहे थे। बगल वाली मेज़ पर बैठी महिला ने सुंदर नीली टोपी पहनी थी” वगैरह।
      और फिर final model को post-train करके यह याद कराया जाए कि कौन-सा text कहाँ पढ़ा था, या अगर ऐसा text आए जिसे उसने नहीं पढ़ा, तो उसे कोई अनुभव याद न हो?
      अगर कोई यह आज़माकर सफल हो गया, तो मैं PhD छोड़कर फिर से camp counsellor बन जाऊँगा
    • यह मिलती-जुलती दिशा लगती है। वास्तव में मदद मिलती है: Source-Aware Training Enables Knowledge Attribution in Language Models (https://arxiv.org/abs/2404.01019)
      abstract के अनुसार, LLM को ऐसी क्षमता देने के लिए source-aware training की पड़ताल की गई है। खास तौर पर (i) LLM को हर document के ज्ञान को एक unique source document identifier से जोड़ना सिखाया जाता है, और फिर (ii) prompt दिए जाने पर समर्थन देने वाले pretraining sources को cite करने के लिए instruction tuning की जाती है
    • कड़ी असहमति: https://mypapers.nyc3.cdn.digitaloceanspaces.com/the_phenomenology_of_machine.pdf
      यह भी देखने लायक है: https://www.sciencedirect.com/science/article/pii/S1571064523001094
      o1 का training तरीका इस formalisation में strange particle model से समझाया गया है
    • रोज़मर्रा के उपयोग में आप इसकी value को शायद बहुत ज़्यादा महत्व दे रहे हैं। ज्ञान जमा होने पर, खासकर ऐसी विविध जानकारी जो किसी system के भीतर embed नहीं है, “मुझे नहीं पता मैं यह क्यों जानता हूँ, लेकिन जवाब X है” वाला pattern आम है।
      भले ही knowledge computer science जैसी किसी व्यवस्थित field के भीतर हो, समय के साथ संवेदी अनुभव background में धुंधला पड़ जाता है। उदाहरण के लिए, computer science वालों की तरह मैं भी कई algorithms की O() performance characteristics तुरंत बता सकता हूँ, लेकिन कोई specific algorithm कहाँ सीखा था, यह बहुत पहले धुंधला हो चुका है।
      जब लोग खुद को सुधारते हैं, तो सामान्य प्रक्रिया “मैं यह जानता हूँ या नहीं, इसका अंदाज़ा लगाना” या “क्या मैंने यह किसी कम भरोसेमंद स्रोत से सुना था, यह याद करना” जैसा कोई बड़ा काम नहीं होती। आम तौर पर “मैंने इसे पूरी तरह नहीं समझा था” जैसी धुंधली-सी अनुभूति होती है, और self-correction भरोसेमंद स्रोत से जानकारी दोबारा verify करना होता है।
      इसलिए memory recall में संवेदी अनुभव उतना महत्वपूर्ण है, जितना आप सोच रहे हैं, मुझे ऐसा नहीं लगता
    • अगर कोई drugs के प्रभाव में नहीं है या गंभीर mental-health crisis से नहीं गुजर रहा, तो यह hallucination नहीं बल्कि confabulation के ज़्यादा करीब है
  • Spoiler: autoregressive next-token prediction paradigm में hallucinations हटाए नहीं जा सकते, उर्फ़ LeCun का नियम।
    यहाँ समस्या यह है कि लोग language models को उनके असल मजबूत काम—अर्ध-रचनात्मक text generation—के बजाय deterministic problem solver की तरह इस्तेमाल करना चाहते हैं

    • क्या LeCun का नियम सच में मौजूद है? Search करने पर लगभग कोई result नहीं मिलता, बस HN comment जैसा कुछ मिलता है जहाँ इसे किसी और definition में इस्तेमाल किया गया है। हो सकता है यह किसी कम-ज्ञात paper से आया हो, लेकिन documentation इतनी कमजोर होने पर इस context में इसे उठाना अजीब लगता है
    • मुझे उत्सुकता है कि क्या किसी ने पिछले tokens की perplexity को फिर से model में feed करने जैसा प्रयास किया है, ताकि model को पता चल सके कि वह track से हट रहा है।
      ऐसी स्थिति में कम-आत्मविश्वासी answers देने की training देकर शायद hallucinate करने की tendency घटाई जा सके
    • यह viewpoint देखकर अच्छा लगा।
      मैं लोगों को ऐसे समझाता हूँ: एक ऐसी company की कल्पना करें जिसमें सिर्फ PR department हो। वह press releases बनाने और journalists के सवालों का जवाब देने में बहुत अच्छी है, लेकिन company का बाकी हिस्सा है ही नहीं, इसलिए output text को अर्थपूर्ण ढंग से constrain करने वाली कोई चीज़ नहीं है।
      अगर लोग यह समझते—किसी दूसरे universe में—तो LLMs को गंभीर कामों में बिल्कुल इस्तेमाल नहीं किया जाता और उन्हें कई मज़ेदार छोटे art projects में इस्तेमाल किया जाता
    • LeCun का argument गंभीर रूप से flawed है। वह बिल्कुल rigorous नहीं है, और बिना आधार के इतना व्यापक conclusion नहीं निकालना चाहिए
    • “कभी नहीं” शब्द अपने-आप में समस्या नहीं है। इंसान भी कुछ ऐसा ही करते हैं।
      nuclear fusion को बस एक बार ठीक से solve करना है
  • क्या यह मूलतः किसी तरह की knowledge distillation है?

  • मुझे यह पसंद नहीं कि AI आलोचकों ने hallucination शब्द को लोकप्रिय बना दिया। यह statistics के ढेर को मानवीय रूप देकर ऐसा दिखाता है मानो वह इंसानी मन जैसी किसी गहरी सोच-प्रक्रिया से गुजर रहा हो
    नहीं, यह “hallucinate” नहीं कर रहा। यह झूठ नहीं बोल रहा और न ही गढ़ रहा है। यह बस underlying weights से trigger होने के अनुसार डेटा उगलता है
    अगर यह कोई आम JSON API endpoint होता, तो हम यह नहीं कहते कि API hallucinate कर रहा है; हम कहते कि यह खराब है, इसलिए “यह API घटिया है”

    • मैं इसे उल्टा देखता हूँ। लोग मानते हैं कि इंसानी मन “गहरी सोच” करता है, लेकिन असल में वह बस statistics का ढेर हो सकता है
    • सटीक शब्द confabulation है। यह वह घटना है जिसमें गायब जानकारी भरी जाती है, लेकिन हो सकता है कि उसे खुद पता न हो कि वह ऐसा कर रहा है
      कोई भी nervous system training data को पूरी तरह store नहीं कर सकता, इसलिए हम सभी कुछ हद तक confabulate करते हैं
      इसके उलट, इंसानी “hallucination” sensory feedback loop के किसी खास breakdown के ज्यादा करीब है। LLM में शुरुआत से ही ऐसी कोई प्रक्रिया नहीं होती
      hallucination तब होता है जब internal sensory feedback loop वास्तविक sensory input पर हावी हो जाता है, जिससे झूठे sensory experiences या signals का flow बनता और process होता है। वह झूठा चल रहा अनुभव असली sensory information को कुछ हद तक शामिल कर सकता है, या नहीं भी कर सकता
      सपने देखते समय हम hallucinate कर रहे होते हैं। असली sensations से अलग हुआ sensory experience loop स्वतंत्र रूप से चलता है, लेकिन उसका productive उद्देश्य भी होता है
      senses में feedback इसलिए होता है ताकि sensory input की interpretation को clue बनाकर अगले पल के input की interpretation को आसान बनाया जा सके। लेकिन अगर नया input expectation से बहुत अलग हो, तो ongoing interpretation को reset करके जल्दी से दिशा दोबारा पकड़ना महत्वपूर्ण होता है
      वास्तविक context change के अनुसार गलत interpretation सुधारने के लिए raw input interpretation पर वापस लौटना महत्वपूर्ण है ही, साथ ही ऐसा reset इस बात का संकेत भी है कि कुछ नया या अप्रत्याशित हुआ है, इसलिए उसके learning को trigger करने की संभावना भी अधिक होती है
      इसलिए “hallucination” शब्द का चुनाव दुर्भाग्यपूर्ण था और गलतफहमी पैदा करता है
    • बुरी खबर यह है कि यह शब्द LLM के आने से बहुत पहले से deep learning research में इस्तेमाल हो रहा था। आलोचक कुछ लोकप्रिय बनाने या LLM की कमियों को सही ठहराने की कोशिश नहीं कर रहे थे; यह researchers द्वारा उस phenomenon को दिया गया नाम था जिस पर वे research कर रहे थे
      LLM से पहले इस तरह के इस्तेमाल वाले papers के उदाहरण ये हैं
      2021: The Curious Case of Hallucinations in Neural Machine Translation (https://arxiv.org/abs/2104.06683)
      2019: Identifying Fluently Inadequate Output in Neural and Statistical Machine Translation (https://aclanthology.org/W19-6623/)
  • किसी intelligent algorithm से एक बेवकूफ, non-intelligent next-word predictor को guide कर भी दें, तो आखिर में वह सिर्फ एक non-intelligent algorithm ही रहता है
    कचरे को ज्यादा elegant तरीके से sort करना सही है, लेकिन अंततः वह कचरा ही रहता है
    मुझे उम्मीद थी कि reinforcement learning जैसा approach Transformer जैसे approach की जगह लेगा, लेकिन वह लगभग एक खोखला सपना ही है