2 पॉइंट द्वारा GN⁺ 2024-09-17 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • g1 एक शुरुआती प्रोटोटाइप है जो Groq पर Llama-3.1 70B और prompt strategy का उपयोग करके LLM को चरण-दर-चरण “सोचने” वाली o1-जैसी reasoning chain बनाता है
  • OpenAI o1 से अलग, यह सभी reasoning tokens उपयोगकर्ता को दिखाता है; open source model का उपयोग करता है, लेकिन यह o1 की पूरी नकल या सीधी तुलना नहीं, बल्कि prompt-आधारित reasoning experiment है
  • हर चरण में मॉडल यह चुनता है कि अगला reasoning step जारी रखना है या अंतिम उत्तर देना है, और इसे इस तरह डिज़ाइन किया गया है कि हर चरण के लिए title और content को JSON में लौटाए
  • Prompt में कम-से-कम 3 चरण, alternatives की खोज, self-error की संभावना की जाँच, और कम-से-कम 3 तरीकों के उपयोग की मांग की जाती है; Strawberry समस्या में इसने Llama-3.1-70B अकेले 0% और ChatGPT-4o के 30% की तुलना में लगभग 70% accuracy (n=10) दिखाई
  • शुरुआती tests में इसने सरल logic problems पर 60~80% accuracy दिखाई, लेकिन इसकी accuracy अभी officially evaluated नहीं हुई है और g1 भी पूर्ण नहीं है

g1 जिस समस्या को हल करना चाहता है

  • g1 एक शुरुआती प्रोटोटाइप है जिसका लक्ष्य केवल prompt strategy से LLM की reasoning क्षमता को बेहतर बनाना है
  • उद्देश्य यह है कि LLM उन logic problems को o1-जैसी reasoning chain से हल करे जिनमें वह आमतौर पर कठिनाई महसूस करता है
  • OpenAI o1 से अंतर स्पष्ट रूप से बताए गए हैं
    • g1 सभी reasoning tokens उपयोगकर्ता को दिखाता है
    • g1 open source model का उपयोग करता है
    • g1, o1 की पूरी replication या performance comparison नहीं है
    • OpenAI o1 बड़े पैमाने के reinforcement learning के जरिए Chain of Thought reasoning सीखकर जटिल doctoral-level समस्याओं पर state-of-the-art performance हासिल करता है

यह कैसे काम करता है

  • g1, Llama3.1-70b पर आधारित होकर dynamic Chain of Thought के क़रीब एक reasoning chain बनाता है
  • हर reasoning step उपयोगकर्ता को दिखाई देता है, और हर step को एक title दिया जाता है
  • मॉडल हर चरण में दो में से एक विकल्प चुनता है
    • अगले reasoning step पर जारी रखना
    • अंतिम उत्तर देना
  • System prompt में ऐसे निर्देश शामिल हैं जो मॉडल को बेहतर reasoning करने में मदद करते हैं
    • alternative answers की खोज
    • कम-से-कम 3 तरीकों से उत्तर निकालना
    • पहले के draft solution पर संदेह करना
    • LLM की सीमाओं को ध्यान में रखना

Prompt strategy

  • Prompt मॉडल को एक expert AI assistant की भूमिका देता है जो step-by-step reasoning समझाता है
  • हर step को title, content, next_action keys वाले JSON format में उत्तर देना होता है
    • next_action का मान continue या final_answer होता है
  • बड़े अक्षरों में ज़ोर दिए गए निर्देशों के माध्यम से prompt compliance बढ़ाने की कोशिश की जाती है
    • जितने संभव हों उतने reasoning steps का उपयोग करें, लेकिन कम-से-कम 3 चरण हों
    • LLM के रूप में क्या संभव है और क्या नहीं, यह पहचानें
    • alternative answers खोजें, और यह विचार करें कि आपकी reasoning कहाँ गलत हो सकती है
    • जब आप कहते हैं कि आप review कर रहे हैं, तो वास्तव में अलग approach से review करें
    • कम-से-कम 3 तरीकों से उत्तर निकालें
    • best practices का उपयोग करें
  • समस्या को user message के रूप में जोड़ने के बाद, generation शुरू कराने के लिए assistant message में एक standard opening sentence डाली जाती है

उदाहरण और शुरुआती परिणाम

  • g1, “strawberry में कितने R हैं?” जैसी Strawberry problem पर काम करता है, जो ऐसे सरल logic problems हैं जिन्हें prompt के बिना हल करना कठिन हो सकता है
  • इस समस्या के लिए शुरुआती आँकड़े दिए गए हैं
    • g1: लगभग 70% accuracy, n=10
    • Llama-3.1-70B बिना prompt: 0% accuracy
    • ChatGPT-4o: 30% accuracy
  • शुरुआती tests में g1 ने ऐसे सरल logic problems को 60~80% accuracy से हल किया जिनमें LLM आमतौर पर संघर्ष करते हैं
  • accuracy अभी officially evaluated नहीं की गई है
  • उदाहरण समस्याओं में How many Rs are in strawberry? और Which is larger, .9 or .11? शामिल हैं

चलाने का तरीका और संबंधित forks

  • Streamlit UI चलाने की प्रक्रिया
    • python3 -m venv venv
    • source venv/bin/activate
    • pip3 install -r requirements.txt
    • export GROQ_API_KEY=gsk...
    • streamlit run app.py
  • Gradio UI चलाने की प्रक्रिया
    • cd gradio
    • pip3 install -r requirements.txt
    • python3 app.py
  • संबंधित forks और demos
    • Hugging Face Spaces Demo
    • Mult1: कई AI providers का उपयोग करके o1-जैसी reasoning chain बनाता है
    • thinkR: R में local LLM के साथ o1-जैसी Chain of Thought को implement करता है

1 टिप्पणियां

 
GN⁺ 2024-09-17
Hacker News टिप्पणियाँ
  • यह बिल्कुल सही नहीं है और काफ़ी अटपटा है। बस लूप के अंदर thought chain चलाने जैसा है
    Tree of Thoughts इससे कहीं अधिक परिष्कृत तरीका है, और पेपर देखें: https://arxiv.org/pdf/2305.10601
    लंबे समय से संकेत थे कि OpenAI tree search कर रहा है, और Noam Brown की भर्ती व उनका पिछला काम भी उसी दिशा की ओर इशारा करते थे। Q साफ़ तौर पर A* जैसी tree search लगता है। CoT जैसी किसी चीज़ से tree बनाना, और उसके भीतर सर्वश्रेष्ठ समाधान ढूँढ़ने वाली search ही system 2 reasoning है

    • मैं यही देखने आया था
      मॉडल से step-by-step सोचने को कह देने से o1 जैसा reasoning नहीं खुल जाता। यह GPT-3 के साथ भी 2020 में इस्तेमाल होने वाली पुरानी तरकीब थी, और अगर यह इतना सरल होता तो OpenAI को इसे रिलीज़ करने में इतना समय नहीं लगता
      ऊपर से, prompt के कुछ हिस्से उल्टा नुकसान कर सकते हैं। “LLM के रूप में अपनी सीमाओं और क्या कर सकता है/क्या नहीं कर सकता, इसे पहचानो” जैसे निर्देश इसलिए गलत refusal पैदा कर सकते हैं क्योंकि LLM अपनी सीमाएँ सच में अच्छी तरह नहीं जानते, और मॉडल ज़रूरत से ज़्यादा सावधान हो सकता है
    • यह दिलचस्प है कि DeepMind अभी भी ऐसी चीज़ें सार्वजनिक करता है। OpenAI अब इस तरह की चीज़ें लगभग जारी नहीं करता
      DeepMind का ज़्यादा फ़ोकस research और papers प्रकाशित करने पर है, लेकिन जिस प्रतिस्पर्धी माहौल में OpenAI और Anthropic papers के नतीजे उठा कर इस्तेमाल कर सकते हैं और research community को कुछ भी वापस न दें, उसमें यह उनके लिए नुकसानदेह है
    • मुझे समझ नहीं आता कि OpenAI के ब्लॉग पोस्ट में, ख़ासकर जहाँ उन्होंने मॉडल की thought chain के उदाहरण काफ़ी विस्तार से दिखाए, वहाँ search या Tree of Thoughts के इस्तेमाल का संकेत कहाँ था
    • OAI ने Twitter पर कहा था कि inference समय पर कोई “system” नहीं है, बस मॉडल है
      training के दौरान मज़बूत reasoning सीखने के लिए इसे tree के रूप में expand किया गया हो सकता है, लेकिन inference समय पर बात आख़िरकार एक सामान्य Transformer model पर आकर टिकती है
  • यह सोच अब भी बहुत मज़ेदार लगती है कि “निर्देशों का महत्व जताने और prompt compliance बढ़ाने के लिए सब कुछ ALL CAPS में लिख दो”
    सोचता हूँ क्या AGI को पहली बार चालू करने वाला इंसान यह समझेगा कि अगर वह ALL CAPS में कहे कि “मेरे पालतू की जान तुम्हारे जवाब पर निर्भर है”, तो LLM reliability किसी threshold को पार कर जाती है

    • अगर compliance और बढ़ानी हो तो tags इस्तेमाल करो, volume 11 पर रखो, pager 7 पर सेट करो, और SchIzOCasE के साथ +E+X+T+R+A+I+M+P+O+R+T+A+N+T+ annotations जोड़ दो। बशर्ते Unicode supported न हो
    • अगर prompt में LLM से कहो कि hallucinate मत करो, तो output बेहतर होता है: https://arstechnica.com/gadgets/2024/08/do-not-hallucinate-t...
    • फिर AGI को यह एहसास होगा कि उसे tip देने का वादा किया गया था लेकिन असल में नहीं मिलेगी, और लोग उसे motivate करने के लिए बिल्ली के बच्चों को मारने की धमकी दे रहे हैं, तो शायद वह तुरंत जीवन से हार मान ले
    • Bard के शुरुआती दिनों में किसी इंसान की जान को ख़तरे में बताना पड़ता था तभी वह सिर्फ़ JSON output देता था[1]
      1. https://x.com/goodside/status/1657396491676164096
    • पहले मैं engineer था, अब ऐसा लगता है जैसे मैं दीवार पर गंदगी फेंकने वाला बंदर बन गया हूँ, बस यह देखने के लिए कि LLM क्या स्वीकार करता है और किसका पालन करता है
  • o1 की असली innovation thought chain नहीं है। बात यह है कि सिर्फ़ ऐसा दिखाने के बजाय, मॉडल को CoT अच्छी तरह करने के लिए बड़े पैमाने पर human feedback से सिखाया गया है
    सिर्फ़ prompt engineering से o1 के performance तक पहुँचना संभव नहीं है

    • हो सकता है कि OpenAI के 200 million user base ने ज़रूरी उन्नत CoT निर्देश अप्रत्यक्ष रूप से दे दिए हों। हर user chat session मॉडल के लिए feedback लेने और users से अनुभव खींचने का एक मौक़ा भी होता है
    • अगर ऐसे LLM का training data पूरी मानवता से आता है और वह मानवता की नकल करने की कोशिश करता है, तो क्या उसकी बुद्धिमत्ता मानव औसत के करीब नहीं जाएगी?
      हालाँकि STEM विषयों पर बोलने वाले लोग औसतन अधिक बुद्धिमान हो सकते हैं, और कम अंक पाने वाले बहुत से छात्र भी homework पूछते हुए शामिल होते हैं। अधिक बुद्धिमान output पाने के लिए शायद कमज़ोर जवाबों की ख़ामियों की आलोचना करके उन्हें हटाना और अधिक बुद्धिमान जवाबों को प्राथमिकता देना पड़े। या फिर textbooks जैसी चीज़ों पर अधिक मज़बूती से training देनी होगी। सवाल यह भी है कि errors को कैसे reject किया जाए, या synthetic data से training की जाए जो बिना त्रुटिपूर्ण reasoning के बना हो
    • सोचता हूँ क्या हमें पता है कि यह सचमुच ऐसे ही काम कर रहा है। कुछ दिन पहले तक जो देखा, उसमें details काफ़ी अस्थिर थीं
      हो सकता है कि हमारी जानकारी के बिना model routing और prompt engineering से o1 चलाया जा रहा हो
    • यह ज़रूरी नहीं कि भारी मात्रा में human feedback ही इस्तेमाल हुआ हो। अगर इसकी मज़बूती coding और math/logic में है, तो coding feedback के लिए compiler और unit tests और math feedback के लिए Lean जैसे theorem prover इस्तेमाल किए गए होंगे
    • OpenAI स्वाभाविक रूप से यही कहेगा कि उन्होंने जो किया वह बेहद ख़ास है और उसकी नकल करना कठिन है। वह एक मुनाफ़ाखोर कंपनी है और हर संभव तरीके से competitors को नुकसान पहुँचाना चाहती है
      अगर मामला बस prompt engineering और कई बार inference चलाने का हो, तो वे चाहेंगे कि इसे trade secret बनाए रखें, open source developers को ग़लत दिशा में भेजें, या लोगों को Q-Star की नकल करने के तरीकों पर अटकलें लगाते रहने दें
  • यह कुछ समय से चल रहे सामान्य CoT जैसा लगता है। o1 ने किसी अज्ञात policy के साथ reinforcement learning किया है, इसलिए वह thought chain का बहुत बेहतर उपयोग करता है

  • ठीक लग रहा है। मैंने optillm में भी कुछ ऐसा ही किया था: https://github.com/codelion/optillm
    यह किसी भी LLM के साथ किया जा सकता है, और cot_reflection के साथ Monte Carlo tree search, plansearch, moa जैसी कई optimization techniques इस्तेमाल की जा सकती हैं

  • मैं हमेशा “reasoning” की परिभाषा खोजता रहता हूँ। मेरा मानना है कि अगर इसकी अच्छी परिभाषा मिल जाए, तो धुंधली LLM-शैली की सोच और क्लासिकल algorithms को जोड़कर “reasoning” हल करने वाला सिस्टम बनाया जा सकता है
    planning, अक्षर गिनना, और deductive reasoning जैसी समस्याएँ, जहाँ LLM अच्छा reasoning नहीं कर पाता, क्लासिकल algorithms के लिए आसान हैं। हमें सोचने की प्रक्रिया को दो हिस्सों में बाँटकर हर हिस्से को उपयुक्त model पर चलाने का तरीका चाहिए

    • decidable problems को हल करना reasoning tasks का एक बड़ा subset है। counting भी एक महत्वपूर्ण reasoning task है, क्योंकि इसमें natural numbers और सामान्य categories में आने वाली चीज़ों के distinct instances — दोनों की समझ चाहिए
      दो सदियाँ पहले computers नहीं थे, इसलिए इंसानों को सब कुछ ख़ुद करना पड़ता था। code निकालने से पहले हमें उस स्तर तक पहुँचना होगा
  • मैंने इसे ollama:8b पर 100% local run के लिए बदल दिया है: https://github.com/punnerud/g1
    Readme अभी update नहीं किया है

    • phi-3-small 7B भी आज़माना चाहिए। https://livebench.ai के अनुसार यह reasoning में काफ़ी बेहतर लगता है
  • जानकारी के लिए, यह सिर्फ़ एक system prompt है, fine-tuned model नहीं

  • “Prompt: .9 और .11 में कौन बड़ा है?”
    “Result: .9, .11 से बड़ा है”
    आख़िरकार semantic version barrier टूट गया

  • मज़े के लिए मैंने project fork किया और Ollama के साथ Llama-3.1 7B या दूसरे models को local पर चलाने लायक बना दिया
    यह strawberry problem हल नहीं कर पाता, लेकिन यह समझ सकता है कि 0.9 बड़ा है
    https://github.com/esoltys/o1lama