- 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_actionkeys वाले 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 venvsource venv/bin/activatepip3 install -r requirements.txtexport GROQ_API_KEY=gsk...streamlit run app.py
- Gradio UI चलाने की प्रक्रिया
cd gradiopip3 install -r requirements.txtpython3 app.py
- संबंधित forks और demos
- Hugging Face Spaces Demo
- Mult1: कई AI providers का उपयोग करके o1-जैसी reasoning chain बनाता है
- thinkR: R में local LLM के साथ o1-जैसी Chain of Thought को implement करता है
1 टिप्पणियां
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 का ज़्यादा फ़ोकस research और papers प्रकाशित करने पर है, लेकिन जिस प्रतिस्पर्धी माहौल में OpenAI और Anthropic papers के नतीजे उठा कर इस्तेमाल कर सकते हैं और research community को कुछ भी वापस न दें, उसमें यह उनके लिए नुकसानदेह है
training के दौरान मज़बूत reasoning सीखने के लिए इसे tree के रूप में expand किया गया हो सकता है, लेकिन inference समय पर बात आख़िरकार एक सामान्य Transformer model पर आकर टिकती है
यह सोच अब भी बहुत मज़ेदार लगती है कि “निर्देशों का महत्व जताने और prompt compliance बढ़ाने के लिए सब कुछ ALL CAPS में लिख दो”
सोचता हूँ क्या AGI को पहली बार चालू करने वाला इंसान यह समझेगा कि अगर वह ALL CAPS में कहे कि “मेरे पालतू की जान तुम्हारे जवाब पर निर्भर है”, तो LLM reliability किसी threshold को पार कर जाती है
o1 की असली innovation thought chain नहीं है। बात यह है कि सिर्फ़ ऐसा दिखाने के बजाय, मॉडल को CoT अच्छी तरह करने के लिए बड़े पैमाने पर human feedback से सिखाया गया है
सिर्फ़ prompt engineering से o1 के performance तक पहुँचना संभव नहीं है
हालाँकि STEM विषयों पर बोलने वाले लोग औसतन अधिक बुद्धिमान हो सकते हैं, और कम अंक पाने वाले बहुत से छात्र भी homework पूछते हुए शामिल होते हैं। अधिक बुद्धिमान output पाने के लिए शायद कमज़ोर जवाबों की ख़ामियों की आलोचना करके उन्हें हटाना और अधिक बुद्धिमान जवाबों को प्राथमिकता देना पड़े। या फिर textbooks जैसी चीज़ों पर अधिक मज़बूती से training देनी होगी। सवाल यह भी है कि errors को कैसे reject किया जाए, या synthetic data से training की जाए जो बिना त्रुटिपूर्ण reasoning के बना हो
हो सकता है कि हमारी जानकारी के बिना model routing और prompt engineering से o1 चलाया जा रहा हो
अगर मामला बस 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 पर चलाने का तरीका चाहिए
दो सदियाँ पहले computers नहीं थे, इसलिए इंसानों को सब कुछ ख़ुद करना पड़ता था। code निकालने से पहले हमें उस स्तर तक पहुँचना होगा
मैंने इसे
ollama:8bपर 100% local run के लिए बदल दिया है: https://github.com/punnerud/g1Readme अभी update नहीं किया है
जानकारी के लिए, यह सिर्फ़ एक 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