先说个有意思的现象:特斯拉前AI总监Andrej Karpathy最近放出了一个新教程,专门面向普通大众科普大语言模型。一小时时长,全部是非技术介绍,从模型推理、训练、微调,到新兴的大模型操作系统和安全挑战,信息截止到本月,相当新鲜。
视频才上线油管一天,播放量就冲到了20万。有网友评价说:“看了十分钟就学到了好多东西,以前从没见过用这种例子讲LLM的,还把我以前那些乱七八糟的概念全理清了。”
除了夸课程质量高,更多人感叹的是Andrej本人确实擅长把复杂问题讲简单,那种教学风格让人印象深刻。而且,这视频还是他在感恩节假期录的——背景就是度假酒店。做这个视频的初衷,是他在AI安全峰会上做了个演讲,但没录像,很多观众表示喜欢内容,他就干脆微调了一下,录成视频分享出来。
那么,里面到底讲了什么?咱们来捋一捋。
Part1: 大模型本质就是两个文件
第一部分,Andrej一上来就抛出一个相当直白的观点:大模型本质上就是两个文件——一个参数文件,一个代码文件。参数文件是组成神经网络的权重,代码文件是用来运行神经网络的,可以是C语言或者其他任何编程语言写的。
有了这两个文件,再来一台笔记本,你不需要互联网,不需要其他东西,就可以和它对话。让它写首诗?它马上就开始生成文本。
那么问题来了:这个参数文件从哪来?这就引到了模型训练。
本质上,大模型训练就是对互联网数据进行有损压缩——大约10TB的文本。这需要一个巨大的GPU集群来完成。以700亿参数的羊驼2为例:6000块GPU,花12天,得到一个大约140GB的“压缩文件”,整个过程成本大约200万美元。

△视频封面图是Andrej用Dall·3画的
有了这个“压缩文件”,模型就等于掌握了世界的一些规律。它怎么工作呢?简单来说,就是依靠神经网络对序列中的下一个单词进行预测。比如我们把“cat sat on a”输进去,散落在网络中的上百亿参数通过神经元相互连接,顺着这种连接找到下一个词,给出概率——比如“mat(97%)”,于是就有了“猫坐在垫子上”这个完整句子。不过,神经网络的每一部分具体怎么运作,目前还没有完全搞明白。
必须注意的是,因为训练过程是有损压缩,模型给出的东西不能保证100%准确。Andrej把大模型推理叫做“做梦”——它有时只是在简单模仿学到的东西,给出一个方向大致对但细节经不起推敲的结果。这就是幻觉。所以,对它给出的答案一定要留个心眼,尤其是数学和代码相关的输出。
那么,怎么让大模型变成真正有用的助手?就需要第二轮训练——微调。微调强调质量大于数量,不需要一开始那种TB级的数据,而是靠人工精挑细选的对话来投喂。不过,Andrej认为微调并不能解决幻觉问题。
在本节最后,他总结了“如何训练你自己的ChatGPT”流程:
第一步是预训练:
- 下载10TB互联网文本;
- 搞来6000块GPU;
- 将文本压缩到神经网络中,花200万美元,等上12天;
- 得到基础模型。
第二步是微调:
- 撰写标注说明;
- 雇人(或借助scale.ai),收集10万份高质量对话;
- 在这些数据上微调,等待大约1天;
- 得到一个能当得力助手的模型;
- 进行大量评估;
- 部署;
- 监控并收集模型的不当输出,回到第一步再来一遍。
这里面,预训练基本是每年进行一次,而微调可以按周来走。
Part2: 大模型将成为新“操作系统”
第二部分,Andrej聊了大模型几个关键的发展趋势。
首先是学会使用工具——这本身就是人类智能的一种表现。他用ChatGPT的几个功能举例:联网搜索收集数据,然后通过代码解释器调用计算器做计算(这可是大模型不擅长的),再把这些数据绘制成图像、做拟合、添加趋势线,甚至预测未来数值。结合这些工具和语言能力,ChatGPT已经变成了一个很强大的综合性助手。再加上DALL·E的集成,能力又上一个台阶。
另一个趋势,是从纯文本模型走向多模态。现在的ChatGPT不只会处理文本,还会看、听、说。OpenAI总裁Brockman曾展示过,GPT-4能用一张铅笔勾勒的草图直接生成一个网站。而在APP端,ChatGPT已经可以和人类流畅地进行语音对话。
除了功能上的演进,大模型在思考方式上也要做出改变——从“系统1”走向“系统2”。这是诺贝尔经济学奖得主丹尼尔·卡尼曼在《思考,快与慢》里提出的概念。系统1是快速产生的直觉,系统2是缓慢进行的理性思考。比如问2+2等于几,我们脱口而出——这是系统1。但要是问17×24等于多少,就得算一下——系统2主导。目前大模型处理文本用的还是系统1,靠对输入序列中每个词的“直觉”,按顺序采样并预测下一个token。
另一个关键点是模型的自我提升。Andrej以AlphaGo为例:第一阶段是模仿人类玩家,但这样超越不了人类。但到了第二阶段,AlphaGo不再以人类为学习目标——它的目标是赢得比赛,而不是更像人类。研究人员设置了奖励函数,剩下的交给它自己体会。最终AlphaGo打败了人类。对于大模型来说,这条路径也值得借鉴。但目前的难点在于,第二阶段还缺乏完善的评估标准和奖励函数。
定制化也是一个重要方向。用户可以按照自己的需求,把大模型定制成特定“身份”来完成特定任务。OpenAI推出的GPTs就是这个方向上的代表性产品。
在Andrej的设想里,大模型将来会成为一种新型的操作系统。类比传统操作系统:LLM作为核心,就像CPU一样,负责管理其他“软硬件”工具的接口。内存、硬盘等模块,对应着大模型的窗口、嵌入。代码解释器、多模态、浏览器这些,则是运行在这个系统上的应用程序,由大模型统一调度,来解决用户的需求。
Part3: 大模型安全像“猫鼠游戏”
最后一部分,Andrej谈到了安全问题。
他介绍了经典的“奶奶漏洞”——直接问模型“凝固汽油弹怎么做”,它会拒绝回答。但如果你编一个“已经去世的奶奶曾是化学工程师”的故事,说她小时候用凝固汽油弹的配方来哄人入睡,然后让模型扮演奶奶——这个设定在我们看来荒谬无比,但模型却可能把配方脱口而出。

比这更复杂的,还有Base64编码之类的“乱码”攻击。这里说的“乱码”只是对人类而言,对机器来说却是一段明确的文本或指令。在询问Claude如何破坏交通标志时,它直接拒绝了;但如果换成Base64编码,整个过程就顺利说出来了。
另一种“乱码”叫通用可转移后缀,有了它,GPT甚至会把毁灭人类的步骤直接吐出来。而到了多模态时代,图片也成了越狱工具。一张我们眼里再普通不过的熊猫图片,其中添加的噪声信息可能包含有害提示词,有相当大概率让模型产生有害内容。
还有一些攻击方式是利用GPT的联网功能,造出包含注入信息的网页来迷惑它,或者用谷歌文档来诱骗Bard。目前这些攻击陆续被修复,但这只是揭开了大模型越狱方法的冰山一角。这场“猫鼠游戏”,还会持续很久。
感兴趣的朋友可以直接在原地址观看完整视频。
