摘要:最新,大神安德烈·卡帕西(Andrej Karpathy)放出一段视频1,通俗易懂、深入浅出、旁征博引地介绍了大模型工作原理,其中多次谈及deepseek,并从心理学层面分析了大模型的特点、弱点和解决方法。内容非常精彩,任何学习大模型的人,都值得一看。
本文来源:卫sir说
作者:卫剑钒
大神谈deepseek及大模型心理学
最新,大神安德烈·卡帕西(Andrej Karpathy)放出一段视频1,通俗易懂、深入浅出、旁征博引地介绍了大模型工作原理,其中多次谈及deepseek,并从心理学层面分析了大模型的特点、弱点和解决方法。内容非常精彩,任何学习大模型的人,都值得一看。
安德烈·卡帕西, 2015 年在斯坦福大学获得博士学位,师从李飞飞。2015 年作为创始团队成员加入 OpenAI 担任研究科学家。2024年,从OpenAI离职,并成立了一家AI 原生教育公司Eureka Labs。
安德烈·卡帕西(Andrej Karpathy)
视频内容比较长,3.5小时,大多数人应该没有时间和耐心去观看,我把他的一些比较重要和有趣的内容总结如下。
(注:涉及心理学的概念已用不同颜色标出)
1、大模型处理的是一维序列
训练大模型的材料,是互联网上的各种高质量数据,这些数据经过BPE编码后,形成一个一个的token,大模型现在用的训练文本,大约是15万亿个token(存储量为44T)。
训练时,这15亿token,首尾相连地送进大模型,通过反向传播算法,反复调整权重参数,就可以训练出基础模型。
基础模型的特点是,给它一段文本,它就能接上话,其本质是从统计学上,模拟互联网文字。
比较有趣的是,不管是基础模型、还是微调后的问答模型、还是deepseek这种思考模型(或称推理模型),大模型永远是一维进、一维出。
比如你问它,“巴黎有什么好玩的”,其实送给大模型的,就是下面这样的一维的token序列:
27, 91, 318, 5011, 91, 29, 9125, 27, 91, 318, 55875, 91, 29, 2675, 527, 264, 11190, 18328, 27, 91, 318, 6345, 91, 1822, 91, 318, 5011, 91, 29, 882, 27, 91, 318, 55875, 91, 29, 17597, 112, 30868, 236, 19361, 6271, 222, 82696, 53901, 29207, 102, 9554, 30590, 24273, 27, 91, 318, 6345, 91, 1822, 91, 318, 5011, 91, 29, 78191, 27, 91, 318, 55875, 91, 29
大模型只能看到一维的token序列
一维的表达会体现思考和智能吗?当然可以,因为人类的思考和智能,只要能说出来,就是在通过文字表达,而文字是一维的。(人类说不出来的那些智能,我们先不去谈论它)
即便图像是二维的,也可以分片(patch)转化为一维的token,然后扔进大模型;音乐、视频,都是一样的,都可以转换为token;即便是三维的信息,至少也可以用切片的方法转化成二维,然后再转成一维。
什么是智能?从第一性原理来讲,智能就是,对于给定输入,它能给出不错的输出。(这是上次我和李继刚聊天时想到的)
由于几乎所有信息都可以转换为token,这种处理一维token序列的生成式大模型,只要训练的好,就会有好的智能。
下面简单科普一下token,了解的读者可以直接跳过这部分。
token可以简单理解为单词、分词,是用一个数字表示的,对于GPT4而言,全世界所有文本,一共可划分为100,277种token,“A”是一个token,“B”是一个token,“hello”是一个token,“der”也是一个token。
“Hello world!”可以分解为3个token:9906, 1917, 0,分别代表了Hello,空格和world,感叹号!
“中华人民共和国”可以分解为7个token表达:16325, 86461, 17792, 70821, 55999, 34208, 29504,一个字对应一个token。
“哪吒之魔童闹海”是13个token:20648, 103, 7305, 240, 55030, 165, 255, 242, 25781, 98, 13357, 117, 56235,哪、吒、童、闹都各占两个token,之、海各占一个token,魔是三个token,为什么一个汉字会体现为3个token?因为汉字是先做UTF8编码然后再做BPE编码的,这7个汉字的UTF8编码是e593aa e59092 e4b98b e9ad94 e7aba5 e997b9 e6b5b7,每个汉字占3个字节,所以可能每个汉字可能是一个或两个或三个token。
你可以去 https://tiktokenizer.vercel.app/ 这个网站玩一玩,理解一下token。
2、大模型本质是人类知识的搅拌
上节说了,大模型在多次学习互联网上较佳文本后,给定输入的token序列,经过大量计算后,输出下一个token,试图模拟互联网上的知识。
而模型训练和推理时的大量计算(当然包括注意力计算),可以看作是大量token的大量搅拌,在这个搅拌过程中,大模型完成了人类知识的融会贯通。
可以这样理解基础模型,一个人,看了几十万本书,而且他记性很好,理解力很好,你问他什么,他都能不假思索的把话接下去,就像是用潜意识在回答。
杨立昆以前不看好大模型,就是基于这点,他说,你虽然看书看得多,但你不思考,你能有什么智慧呢。
那么,现在出来了OpenAI的o1、o3,出来了deepseek的R1,这些思考模型(或称推理模型),又是什么情况?后面会说。
3、我们不应该对大模型进行硬编码
搞AI的人都知道,对于大模型,你只能训练它,而不能硬编码它。
所谓硬编码,就是你告诉它一个规则,然后试图让他遵守规则。
这并不好,大模型是神经元之间的连接,你非要写一个逻辑进去,也写不进去啊。
即便你很丑陋地在什么地方实现它,也会让大模型变味,因为那并不是它的智能。
人们只能通过训练和微调或是RL(强化学习)等方式,改变它的权重,从而改变它的行为。
这就好比,你告诉孩子说,每天必须9点半上床睡觉,你以为他就可以这么执行吗?
你必须通过训练,他才能养成这样的习惯。这种习惯养成,就是内化。
我们训练大模型,本质上,是想要内化出他的能力。
4、示范训练让基础模型学会问答
我们用的deepseek和ChatGPT网页应用,其实都是问答模型,就是你问问题,它回答。
大模型一开始,都是先训练出基础模型,然后再训练成问答模型。
其实就是教会它,怎么和人类对答。
我原以为这很难呢,听大神一讲,其实也并不难,简单训练训练就好了。
这种方法叫SFT(有监督的微调),就是把人类觉得不错的对话样本,仍然以一维token序列的形式送给大模型,并告诉他模型,什么是问题,什么是回答。
慢慢地,大模型就学会了,知道看到一个问题,应该如何回答。
用于SFT的问答对示例来自UltraChat2(翻译后)
是的,SFT送进去的也是一维的token序列,问题是,大模型怎么才能知道哪部分是问题,哪部分是答案?
很简单,加一些特殊的标记就可以,比如加一些“提问开始”、“提问结束”、“回答开始”、“回答结束”这样的标记,而这些标记,最终也是一些token:
SFT也是送token序列进去
上图中两个问答的一维表示就是:
userWhat is2+2?assistant2+2=4userWhat if it was*?assistant2*2=4,same as :2+2!上面这玩意,大模型看多了,自然就知道,user后面跟的就是问题,assistant后面就应该是要做的回答,就是问题或答案的结束标记。
当你在ChatGPT页面上输入“What is2+2?”,系统扔给大模型的,其实是(不考虑系统prompt):
userWhat is2+2?大模型收到后,自然知道,后面回应类似这样的东西就好:
assistant2+2=4网页界面收到这样的回应,把标记去掉,给人类展示:
2+2=4所以,问答模型和和基础模型也没啥大区别,多训练一些东西就可以了。
5、为什么提示词写好了很有用?
大模型预训练出来的,就像是长期记忆,这种记忆,有的东西背的熟,有的不熟。
比如wikipedia上的词条,背的就熟,某个十八线小演员说的话,背的就不熟。
因为著名事物,在互联网可能出现过很多次,但籍籍无名的言论,可能只出现过一次。
你看了那么多东西,那些只出现过一两次的东西,肯定记不住吧。
再有,比如你让大模型写《傲慢与偏见》第一章的总结,他凭着长期记忆,也能写出来,
但如果在提示器中把第一章的文本贴给他,让他总结,他会写得更好,因为这些内容就像是它的工作记忆。
提示词中的这些token,会直接进入大模型的搅拌计算,而不需要从大模型的脑海中提取。
这对人类也一样,直接让你靠记忆写总结,和给你文本让你写总结,当然不一样吧。
6、大模型思考需要多一些token
在讲到什么是好的微调样本时,大神给出一个样例,问,这两个SFT样本,哪个好,哪个差?
用于微调的两个样本,哪个好?
我一看,肯定是左边写的好啊,多么有逻辑啊!
但大神说,如果拿去做微调,左边写的太差,右边才是好的。
为什么呢。
原因是左边太早给出答案了,大模型还没来得及展开思考,答案就出来了,这就不利于它思考了。
而右边的好处是,多给了些信息,也就是多给了点token,让大模型可以有更多的token去计算,去思考,然后再给出答案,就是思考之后的答案。
就好比教小孩,你让他做题,不应该先给答案,要让他多想一会,给他较多的提示和启发,他就会动脑子,就会做得好。
这也说明了,为什么在提示词中,多给出样例,多给出指点,大模型就会做的好。
像deepseek这样的思考模型,也是这个思路,你看deepseek思考的时候,说了多少话呀,这些话全都是token啊。
这些token都是它思考所需要的,正是因为有了这么多token,deepseek才可以比较deep地think。
7、大模型做算术主要靠心算
大模型不善于计算,尤其是比较大的数,因为他基本是靠心算。
比如,“9.11和9.9哪个大”,很多大模型都会答错。但现在的大模型要好很多了,可能专门针对这个做了SFT。
再如,网友以前总是测试问strawberry里面有几个r,大模型通常总是答不对,大神说,主要是因为它只能看到token,看不见单词。
大模型容易答错的题由于现在的大模型比较聪明了,我找了个小模型示例
大神说,这就是大模型的瑞士奶酪问题,一个复杂系统就像一块奶酪,奶酪上的洞则代表了系统的弱点、漏洞或潜在失效点。
瑞士奶酪模型:复杂系统总有出错的时候这就好比每个人都有他的怪癖
大神说,对待AI应该是这样的态度,“将它们当作工具箱中的工具来使用,检查它们的工作成果,并对自己的工作成果负责。可以将它们用作灵感来源或初稿的起点,向它们提问,但始终要检查和验证。如果你这样做,你的工作将会非常成功。”
关于草莓这道题,我用deepseek试了一下,在它思考的过程中,一开始也做错了,说是有2个r,但是多想一会,就知道是3个了。
deppseek思考strawberry里有几个r
8、幻觉的解决之道:学会“自知”
大模型有幻觉,比如你随便问他一个人名(不上网查),他可能就会胡说一通。
正确的方法是让它联网去查,但他知道什么时候去查吗?
大神说,meta曾经发论文介绍了一种方法,能够让大模型知道自己是否知道答案,也就是说,能训练出大模型的自知之明。
这种方法是通过微调搞定的:
首先从训练集中随机抽取段落,构建相关事实问题及答案,随后将问题输入目标模型,对比目标模型输出答案与正确答案是否一致,如果一致,说明模型知道答案,如果不一致,则说明模型并不知道答案,只是在胡说,此时,针对它回答错误的问题,创建训练数据,将答案设为 “抱歉,我不知道” 或 “我不记得了”之类,如此反复,大模型就学会了在它比较含糊时,应该拒绝回答,而不是胡说八道。
这个过程隐含的奥秘是,对于那些模型不知道答案的问题,它应该有一个“我不知道”神经元点亮,我们并不知道这个神经元在哪,也不知道怎么点亮它,但我们可以通过训练,使得大模型知道,这个神经元点亮的时候,就拒绝回答。
这就好比一个孩子爱说信口胡说,但他不自知,不知道这样不对。解决方法就是每次他胡说的时候,就告诉他应该怎么说,慢慢地,孩子就知道自己不确信的时候不能胡说,问题就会解决。
9、强化学习,走向超级AI
AI发展成为超级AI,难点在于:我们不知道大模型是怎么思考的,也不知道怎么教他,那怎么让他变得更聪明呢。
我们可以让他做各种发散,并告诉它某些响应是很好的,慢慢地,他就知道什么是好的思考方法,这就是强化学习(RL)的思路。
强化学习(RL)鼓励AI不断尝试和探索,并给它反馈。想象一下,一个AI置身于游戏世界,目标是找到隐藏的宝藏。它可以选择向左走、向右走、向上跳等各种动作。如果它朝正确的方向前进,靠近了宝藏,就会收到奖励信号,告诉它这个行为是正确的;而如果偏离了目标,离宝藏越来越远,它可能会收到惩罚信号。通过这些奖励和惩罚,AI会逐渐调整自己的行动策略。
这很有点启发式教育的意思,教育孩子,并不是说手把手灌输,而是启发他,让他自己去尝试,凡是做的好的,就鼓励他,这样他就会很有创造性,而且他自己也会很享受创造性思考的乐趣。
比如deepseek大模型,在某次思考的过程中,就感受到了顿悟时刻的惊喜:
deepseek大模型的顿悟时刻
这是DeepSeek-R1-Zero中间版本在思考问题时,所冒出来的一个有趣现象,当时,它自言自语道:“等等,等等,等一下,这就是一个我可以标记出来的顿悟时刻”。
deepseek团队在论文3中举了这个例子,并说,“这对我们来说也是一个顿悟时刻,让我们见证了强化学习的力量与美妙。”
大神说,AlphaGo就是用强化学习的方法,超过了人类最高水平选手李世石。
当年,在和李世石对弈的时候,AlphaGo下出了人类不会下出的第37步(人类选手只有万分之一的概率下这步),人们当时以为AlphaGo走错了,事后才发现,这是绝妙的一步。
这说明AlphaGo通过强化学习,发现了人类所不知道的下棋策略。
但AlphaGo只是在围棋领域探索,如果在通用领域,AI也可以通过RL不断优化自己,那么,AI就可以在通用领域超越人类,这就是超级AI的发展之路。
10、后记
去年,辛顿和杨立昆经常争论,辛顿说大模型有智能,杨立昆说没有。
杨立昆的论据是,大模型只是下意识地吐出一个一个词,并没有思考。
但现在,可以看出,大模型明显可以有思考能力。
另一个争论点在与,辛顿说大模型发展下去,有统治人类的风险,杨立昆说没有。
现在看,通过一些训练,AI能发展出“自知”能力。
那么,AI能发展出“自知”能力,就能发展出“自我”意识,能发展出“自我”意识,就能发展出“权利”意识。
也就是说,只要训练和启发他,AI就可能以自我为中心。
这就是很多人担心AI的原因。
来源:人工智能学家