长假最后一天,选择用写推文来治愈自己



自从OpenAI o1发布后,因其强大的推理能力引起了巨大反响,甚至直接 将o1-like的LLM更名为LRM(大型推理模型)。
与此同时,一些开源项目也在尝试复现OpenAI o1,先有 g1 ,它主要使用提示词策略通过类似o1的推理链来提高LLM(Llama-3.1 70b)的推理能力。
g1项目地址:https://github.com/bklieger-groq/g1
与g1项目不同,Open-O1则是通过策划一组O1风格的思考数据开发的,然后这些数据被用来训练LLaMA和Qwen模型。有两个模型可用:
OpenO1-V1-LLaMa-8B
OpenO1-V1-Qwen-7B
Open-O1的愿景:旨在媲美OpenAI O1模型的强大功能,为社区提供先进的开源替代方案。
接下来是大家最喜欢问的2个问题:草莓单词有多少个r, 9.9和9.11哪个大,Open-O1 给出了详细、正确的推理过程,都能回答正确!
strawberry里有几个r?
💡Thought
好的,我需要确定单词 "strawberry" 中有多少个 'r'。让我先仔细检查这个词中的每个字母,以识别所有 'r' 的实例。
首先,我会列出 "strawberry" 的字母:S - T - R - A - W - B - E - R - R - Y
现在,我将逐个检查每个字母,看它是否与字母 'r' 匹配:
S:这是第一个字母,它是 's'。不是 'r'。
T:第二个字母是 't'。不是 'r'。
R:第三个字母是 'r'。这是第一个 'r'。
A:第四个字母是 'a'。不是 'r'。
W:第五个字母是 'w'。不是 'r'。
B:第六个字母是 'b'。不是 'r'。
E:第七个字母是 'e'。不是 'r'。
R:第八个字母是 'r'。这是第二个 'r'。
R:第九个字母是 'r'。这是第三个 'r'。
Y:第十个字母是 'y'。不是 'r'。
检查完每个字母后,我发现 'r' 在 "strawberry" 这个词中出现了三次。为了确保准确性,我会再次检查:
位置3:'r'
位置8:'r'
位置9:'r'
这个词中没有其他字母是 'r'。因此,我的最终计数是 "strawberry" 中有3个 'r'。
📝OutPut
strawberry里有3个r。
9.11和9.9哪个更大?
💡Thought
好的,我需要比较9.11和9.9的大小。首先,我注意到这两个数字都是小数,都以9.开头。我应该从左到右逐步比较它们的每一位数字。
首先,比较它们的整数部分。9.11的整数部分是9,9.9的整数部分也是9。所以,整数部分相同,暂时无法确定哪个更大。
接下来,我需要比较它们的小数部分。9.11的小数部分是0.11,9.9的小数部分是0.9。现在,我将比较0.11和0.9。
为了更好地比较这两个小数,我可以将它们转换为相同的小数位数。0.9可以表示为0.90。这样,比较0.11和0.90。
现在,比较0.11和0.90的每一位:
第一位小数:
0.11的第一位小数是1。
0.90的第一位小数是9。
由于1小于9,这意味着0.11小于0.90。
因此,0.11 < 0.90,所以9.11 < 9.9。
但我还可以用另一种方法来确认这个结论。我可以将9.11和9.9都转换为分数形式。
9.11转换为分数是9 + 11/100 = 911/100。
9.9转换为分数是9 + 9/10 = 99/10 = 990/100。
现在,比较911/100和990/100。由于分母相同,比较分子:
911 < 990。
因此,911/100 < 990/100,即9.11 < 9.9。
为了进一步确认,我还可以进行减法运算。计算9.9 - 9.11。
9.9 - 0.11 = 9.79
所以,9.9 - 9.11 = 0.79,这意味着9.9比9.11大0.79。
综上所述,通过比较整数部分、小数部分以及使用分数和减法运算,可以确定9.11 < 9.9。
📝OutPut
9.9更大。
另外,Open-O1在编码、数学推理、物理、密码、反事实、数据分析、谜题、推理等方面也有很多优秀案例。
那么Open-O1是如何炼成的尼?****
训练方法
stage: sft
do_train: true
finetuning_type: full
deepspeed: ds_z3_config.json
数据集
dataset: 4o_response
template: llama3
cutoff_len: 4096
overwrite_cache: true
preprocessing_num_workers: 16
训练过程
per_device_train_batch_size: 4
gradient_accumulation_steps: 2
learning_rate: 1.0e-5
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000
关于Open-O1的SFT数据、RW模型与数据、训练pipeline(SFT、RLHF)会在未来一个月会陆续开源......
体验demo:https://huggingface.co/spaces/happzy2633/open-o1
https://github.com/OpenSource-O1/Open-O1
https://github.com/hijkzzz/Awesome-LLM-Strawberry
推荐阅读
- • 对齐LLM偏好的直接偏好优化方法:DPO、IPO、KTO
- • 一篇搭建AI大模型应用平台架构的全面指南
- • RAG全景图:从RAG启蒙到高级RAG之36技,再到终章Agentic RAG!
- • Agent到多模态Agent再到多模态Multi-Agents系统的发展与案例讲解(1.2万字,20+文献,27张图)
欢迎关注我的公众号“ PaperAgent ”, 每天一篇大模型(LLM)文章来锻炼我们的思维,简单的例子,不简单的方法,提升自己。