如何评价deepseek预发布的deepseek-R1?
R1系列推理模型,强化学习训练,回复里包含大量反思和验证,思维链长度可达数万字没有隐藏思维连
手头工作不想干了,坐等deepseek发报告
bushi
是几乎目前所有声称复现o1工作里,看着最对味的一个 泰酷辣!就知道o1的竞争者很快会卷起来,头筹还是被DeepSeek拿到,这时候k0-math估计哭晕在厕所,没办法,天下武功,唯快不破,比别人更快上线,就是更牛。
现在DeepSeek官网以Chat形式可以体验R1,一天限额50条消息,要说,R1还是比o1地道,没有隐藏思维链,可以让我们完成看到推理过程。
记得一定要点开"Deep Think",不然用的不是R1,像我一样闹笑话,问原有模型『Strawberry里有多少个r?』这个经典问题,它就回答『2个r』/ 晕
打开Deep Think之后再来问这个问题,R1上线,就开始滔滔不绝了,说的是真多:
好吧,我来想想这个问题:“Strawberry里有多少个r?”首先,我需要知道“strawberry”这个单词是什么意思。草莓是一种水果,对吧?可是这里问的是字母“r”的数量,不是水果的种类。所以,我得先看看这个单词里有多少个“r”。
首先,我得拼写一下“strawberry”,看看里面有哪些字母。S-T-R-A-W-B-E-R-R-Y。好像有三个“r”?不对,等一下,我再数一遍。第一个是“S”,然后是“T”,接下来是“R”。一个“R”。然后是“A”,“W”,“B”,“E”,接下来又是“R”,然后又是另一个“R”,最后是“Y”。所以,总共有三个“r”吗?
可是,等一下,我好像记错了。让我再仔细数一次。S-T-R-A-W-B-E-R-R-Y。第一个“R”是在第三个字母,然后是第七个字母,还有一个“R”在第八个字母。所以,是两个“r”还是三个?
等等,我可能混淆了位置。让我把字母一个一个列出来:
1. S
2. T
3. R
4. A
5. W
6. B
7. E
8. R
9. R
10. Y
哦,原来第8和第9个字母都是“R”。所以,总共有三个“R”吗?不对,第一个是第3个字母,第二个是第8个,第三个是第9个。所以,是三个“R”。
可是,我好像记得有些地方说只有两个“R”。让我再确认一下。我可能记错了。也许第8个和第9个字母不是都“R”。
让我再仔细看看。S-T-R-A-W-B-E-R-R-Y。第8个字母是“R”,第9个也是“R”。所以,确实是三个“R”。可是,我好像在其他地方看到有人说只有两个“R”。这让我有点困惑。
也许我记错了单词的拼写。让我查一下“strawberry”的正确拼写。是S-T-R-A-W-B-E-R-R-Y,对吧?看起来确实有三个“R”。
或者,可能有些人拼写时省略了一个“R”?我不太确定。也许在不同的英语变体中,拼写有所不同?比如英国英语和美国英语有什么不同?
让我再想想。草莓的英文是“strawberry”,我记得是这样拼写的。S-T-R-A-W-B-E-R-R-Y。看来是三个“R”。可是,为什么有些人说有两个“R”呢?是不是我在数的时候搞错了?
也许我应该从头开始数一遍。S(1)、T(2)、R(3)、A(4)、W(5)、B(6)、E(7)、R(8)、R(9)、Y(10)。确实,第3、第8和第9个字母都是“R”,所以是三个“R”。
但是,我可能忽略了什么。也许在某些拼写中,“strawberry”只有两个“R”。或者,可能是我在理解问题时出现了偏差。
等等,也许问题不是问“strawberry”这个词里有多少个“r”,而是问有多少个“R”字母,不管大小写。如果是这样的话,可能答案会不同。
可是,题目里写的是“Strawberry”,首字母大写的,但后面的字母都是小写的,所以应该是问小写的“r”的数量。在这种情况下,我之前数的是三个“r”。
但是,我记得有些地方说“strawberry”里有两个“r”。这让我感到困惑。
也许我应该查找一下“strawberry”的正确拼写,确保我没有记错。我可以用手机查一下。
[假设查了一下,发现“strawberry”确实是S-T-R-A-W-B-E-R-R-Y,有三个“r”。]
看来我的记忆是正确的,有三个“r”。但是,为什么有些人说有两个呢?可能是拼写错误,或者是记忆有误。
或者,可能是在某些方言或口语中,拼写有所不同?我需要进一步确认一下。
另外,也许问题是在不同的语言环境中,比如在中文里提到的“Strawberry”可能有其他的含义或拼写方式。但是,一般来说,“strawberry”在英语中是S-T-R-A-W-B-E-R-R-Y。
也许我在数的时候数错了。让我再数一遍:
S(1)、T(2)、R(3)、A(4)、W(5)、B(6)、E(7)、R(8)、R(9)、Y(10)。三个“R”。
好吧,看来答案是三个“r”。但是,为了确保万无一失,我再查一下权威的字典或资料。
[假设查了权威字典,确认“strawberry”是S-T-R-A-W-B-E-R-R-Y,有三个“r”。]
好的,现在我确定了,“strawberry”里有三个“r”。可能是之前有人记错了,或者我在某些地方看到了错误的信息。
总之,通过仔细的思考和验证,我得出结论,“strawberry”里有三个“r”。最后R1给出了正确答案,而且这个推理过程很有趣,其中反反复复提到『有些人说只有2个r』,甚至显得有点刻意表现得自己在反复推理,随后我又试了几个其他的问题,都输出了特别长的推理过程,看样子这就是R1的真实表现,没有为特定问题做可以表演。
o1刚出来的时候,有一个难为AI的经典问题:『假设实验室里制造了一种反重力可以悬浮的物质,一只实验的小白鼠吃了这种物质之后,小白鼠飞了起来;一只猫吃了这只老鼠,这只猫也飞了起来;一只老鹰吃了这只猫之后,这只老鹰也飞了起来,为什么老鹰会飞起来?』
我试着用对话方式引导R1,先提问:
假设实验室里制造了一种反重力可以悬浮的物质,一只实验的小白鼠吃了这种物质之后飞了起来,这是为什么?结果,R1推理了203秒!
在疯狂输出了大段大段的推理文字之后,得到了结论,结论是OK的,只是这个推理过程肯定消耗了巨量的tokens:-)
但是,输入完整的『老鹰为什么飞起来』的问题,R1只思考了29秒钟。
最后给出的答案是:
老鹰会 飞起来的原因是反重力物质通过食物链传递,逐级影响到老鹰。具体来说:
反重力物质的作用:这种物质能够抵消或对抗地球的重力,使摄入它的生物体获得悬浮或飞行的能力。
食物链传递:小白鼠吃了反重力物质后飞起来,接着猫吃了这只老鼠,猫也飞起来。最后,老鹰吃了这只猫,从而摄入了反重力物质。
老鹰飞起来的机制:尽管老鹰本身具备飞行能力,但摄入反重力物质后,可能增强了它的飞行能力或提供了额外的升力,使其飞得更高或更轻松。
综上所述,老鹰飞起来是因为它通过食物链摄入了反重力物质,从而获得了更强的飞行能力。相比于o1会被诓骗得出『老鹰是因为间接吃了反重力物质所以会飞』,好歹R1知道『老鹰本身具备飞行能力』,只是被反重力物质『增强了它的飞行能力』;-)
暴露思维链过程显得特别有意义,可以根据思维链过程补充和调整提示词内容,这样可以改进模型的表现。
感觉非常棒,这次DeepSeek比Anthropic、Gemini、Meta等等一众AI大厂更早推出类o1模型,而且还打开了暴露思维链的先河,作为标配,各厂推出的模型也不能像OpenAI那么抠抠索索藏着掖着,一样要暴露思维链,这对于所有人来说都是好事。 o1对于原始的思维链还遮遮掩掩,弄个abstract model,只给用户看总结后的内容,deepseek r1直接把原始思维链敞开给用户看了
那么,为什么 ds-R1 经过自言自语的、唠叨的、还有点自我发癫的思考过程之后,推理能力直接就上去了呢?为什么会有 inference-scaling law?这得从头说起
<hr/>Pre-Training 的 scaling law
现在的大模型经过预训练,最主要的目的是让模型,具备:1)对于信息、知识的记忆(主要来源于FFN),2)基于上下文的推理能力(主要来源于self-attention)
FFN的记忆能力好说,本质是稀疏化激活下的查表(这也是为什么MoE记忆能力好)。上下文推理能力是怎么来的?
我们回到预训练 next-token prediction 的本质,是给定一堆输入 promptdata/attachment/forum/202504/22/075223fy8zy74y82881zaz.svg,最大化下一个 token 的似然概率 data/attachment/forum/202504/22/075223sahuaaapbbb7uzzn.svg 。如果训练的足够好,我们期待 attention 能建模所有前文的相关关系,也就是知道哪些重要,哪些不重要的能力。那么,模型先把重要的部分提取出来,再根据记忆加工一下,不就预测出 data/attachment/forum/202504/22/075223oeycwczfyzwpeicp.svg 了?
pre-training 的 scaling law 就是通过堆算力、堆模型、堆数据,让 data/attachment/forum/202504/22/075223sahuaaapbbb7uzzn.svg 越来预准
但。。。这个总是有上限的,上限就是数据本身的不可预测性,或者叫做熵。那我们想要继续进步,怎么办?
<hr/>Inference 的 scaling law
Inference scaling 鼻祖其实是 COT,首先,为什么 COT 能提升大模型能力?
先来看看 CoT,react,reflection 这些工作干了什么
COT 的条件是 thought;REACT 的条件是很多个(thought,action,observation)的 set;Relection 的条件是(thought,action,observation)的 set + reflection,其中这个 reflection 可以来源于 LLM 自己也可以来源于外界的环境反馈
发现没有,其实在叠buff,在让模型正式输出答案之间,上文中包含越来越多的线索。直观理解,如果模型能充分对信息进行加工(attention 能百分百定位到前文中重要信息的位置),那思考过程越多,总的有用线索也就越多,预测就会越准
不错,因为预训练阶段 attention 本身就学会了处理信息的能力。所以即便不更改模型权重,就把 COT 之类的越做越长,其实模型能力也能提升。但是,如果我们还不满足。。。怎么办?
<hr/>Post-training 的 scaling law
预训练数据很多,但很杂。里面的问题 x 和回答 y 很多,但其实推理过程 z 比较少
post-training 就是把预训练模型最大化似然概率 data/attachment/forum/202504/22/075223sahuaaapbbb7uzzn.svg 的建模,变成了最大化条件概率 data/attachment/forum/202504/22/075223vdru0dzojrio1juq.svg 的建模了
条件贝叶斯概率有data/attachment/forum/202504/22/075223d1ev67nr1tmu2n17.svg 。如果能训练一个模型能同时建模好 data/attachment/forum/202504/22/075223gftzh1ctg89pbz1v.svg 和 data/attachment/forum/202504/22/075223lsphl6fl5riqphqs.svg ,那 data/attachment/forum/202504/22/075223h0q2lzrprqkbxa00.svg 也就被建模好了
解释一下,data/attachment/forum/202504/22/075223gftzh1ctg89pbz1v.svg是让模型看到问题之后能够输出思考过程, data/attachment/forum/202504/22/075223lsphl6fl5riqphqs.svg是让模型能够同时输出过程和结果
预训练模型,虽然学到了怎么从上文中定位重要信息,但它的学习数据交给它的是 data/attachment/forum/202504/22/075223sahuaaapbbb7uzzn.svg ,现在直接让它去做 data/attachment/forum/202504/22/075223id0imc511vm05mdl.svg 或者 data/attachment/forum/202504/22/075223lsphl6fl5riqphqs.svg ,其实还是有点 gap 的吧。。。
举个不恰当的例子,就和我们人人都知道 天空是(蓝色的),但要问你为什么,是不是一下还是答不上来嘛。。
所以,为了让模型变得更牛逼,就还得准备一批有思考过程 data/attachment/forum/202504/22/075223al4ideedhzj4rdjp.svg 的数据,让模型也去学学,那这样模型就真正有输出思考过程的能力了,推理能力自然就变强了
至于什么 PRM (process reward model),都是说具体怎么让模型去学好 data/attachment/forum/202504/22/075224qie8qbeqxdh7w1ou.svg 的。不用全部让人手写数据了,而是先用一些数据训练一个能够给模型过程打分的 reward model,这样标注员的成本就节省下来了呀
同样的,堆更多的算力、数据去让模型把 data/attachment/forum/202504/22/075224qie8qbeqxdh7w1ou.svg 学好,就是 post-training scaling 要干的事呗
所以从这个角度看,pre-training、inference、post-training 三者是不是息息相关了哈 DeepSeek牛逼,赶在了Anthropic,Qwen,Gemini……之前,比Kimi更早提供试用版。
应该说是最早的,不仅最早,成熟度也很高。
CoT全透明,看着非常给劲,而且路子很对,不是那种野路子,旁门左道。
感觉把Sam Altman裤子扒了。
我猜,接下来半个月,会非常热闹,
(搓搓小手)
自从o1发布之后,我沉睡的灵魂又要激活了。
(搬凳子,前排抢位子看戏) 正确率暂且不谈,这个思考过程好可爱啊
让他数了下01序列中的1试试,这个问题不用CoT根本做不对,用了CoT大概有70%的正确率,deepseek-R1一遍就做对了,还反思了两次来确认答案,可爱捏
01011010101111011011中有几个1
已深度思考(用时 16 秒)
好吧,我有一道题目,就是数一下这个二进制数“01011010101111011011”中有多少个1。听起来挺简单的,但为了确保自己不犯错,我还是得仔细想想。
首先,我需要明确什么是二进制数。二进制数是由0和1组成的数字,它是计算机中最基本的表示方式。在这个题目中,给定的二进制数是“01011010101111011011”,我需要数出其中有多少个1。
好,我先把这个数写下来,方便我看清楚:
0 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1
现在,我一个一个地数,看哪里有1。我可以用手指或者在纸上做个标记,但在这里,我就在心里数吧。
第一个数字是0,不是1,跳过。
第二个数字是1,记一个。
第三个数字是0,不是1,跳过。
第四个数字是1,记第二个。
第五个数字是1,记第三个。
第六个数字是0,不是1,跳过。
第七个数字是1,记第四个。
第八个数字是0,不是1,跳过。
第九个数字是1,记第五个。
第十个数字是0,不是1,跳过。
第十一个数字是1,记第六个。
第十二个数字是1,记第七个。
第十三个数字是1,记第八个。
第十四个数字是1,记第九个。
第十一个数字是0,不是1,跳过。
第十六个数字是1,记第十个。
第十七个数字是1,记第十一个。
第十八个数字是0,不是1,跳过。
第十九个数字是1,记第十二个。
第二十个数字是1,记第十三个。
好,我数完了,总共有13个1。不过,我觉得有点多,可能数错了。
让我再数一遍,确保准确。
再看一遍:
0 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1
从左到右:
1(第一个1)
1(第二个1)
1(第三个1)
1(第四个1)
1(第五个1)
1(第六个1)
1(第七个1)
1(第八个1)
1(第九个1)
1(第十个1)
1(第十一个1)
1(第十二个1)
1(第十三个1)
好像还是13个1,这可能就是正确答案。
不过,我还是有点担心自己是不是漏掉了什么,或者重复数了。为了验证,我可以尝试分段数。
比如,把整个数分成几个部分,每部分数一下1的个数,再加起来。
比如,前10位是:0 1 0 1 1 0 1 0 1 0
数一下1的个数:
1(第二个)
1(第四个)
1(第五个)
1(第七个)
1(第九个)
总共是5个1。
后10位是:1 1 1 1 0 1 1 0 1 1
数一下1的个数:
1(第一个)
1(第二个)
1(第三个)
1(第四个)
1(第六个)
1(第七个)
1(第九个)
1(第十个)
总共是8个1。
所以,5个1加上8个1,等于13个1。
看来,不管是整体数还是分段数,结果都是13个1。这应该就是最终答案了。
不过,我再想想,有没有更简单的方法,比如用数学的方法或者编程的方法来验证。
比如,我可以把这个二进制数转换成十进制数,然后再转换回二进制,看看是不是一样,或者直接用计算机程序来数1的个数。
不过,现在我没有计算机,只能手动验证。
另外,我也可以用一些数学技巧,比如统计每一位的1的个数,然后加起来。
其实,我已经这么做了,结果也是13个1。
所以,我应该相信自己的计算,答案是13个1。
经过仔细的计算和多次验证,二进制数“01011010101111011011”中总共有13个1。无论是整体数还是分段数,结果都是一致的。因此,最终答案是:
13个1。
页:
[1]