基于 Andrej Karpathy 2023 年 11 月的演讲
PAOLO PERAZZO
2023 年 12 月 5 日
这篇博客的灵感完全来自 Andrej Karpathy 在 YouTube 上的视频“忙碌人士的大语言模型速览”。在我看来,这是对大语言模型的最精彩解释。对于更喜欢阅读而不是观看的朋友,这篇文章是你的理想之选。
这不仅仅是个摘要。在编撰这篇博客时,我首先完整转录了演讲内容,接着我引导 ChatGPT 尽量保留原始演讲的精髓。Andrej 的讲述方式极具吸引力,我觉得保持他的原始解释风格至关重要。他将复杂概念简化为浅显易懂的观点的能力非常令人敬佩,我也力求在这篇文字作品中保持这种风格。
完成这项工作并非易事,需要大量的人工介入。在与 ChatGPT 合作时,我遇到了一些挑战,比如处理长篇文本、分析演讲记录,以及在持续的对话中遵循指令——但这也许可以作为对 OpenAI 的一些反馈。
我相信您会发现,这篇博客像 Andrej 的演讲一样充满了信息和洞察。它的目的是将他的知识传递给更广泛的读者,让大家更加深入了解大语言模型这个迷人的领域。
大语言模型是什么?
大语言模型其实比大家想的还要简单,它本质上就是计算机里的两个文件。
举个例子,来看看 Meta AI 的 Llama2-70b 模型。这是 Llama 系列中的一款大语言模型。Llama2-70b 是该系列的第二代产品,它有着高达 700 亿 (70 billion) 个参数。Llama 系列包括多款不同参数量的模型,有 70 亿 (7 billion),130 亿 (13 billion),340 亿 (34 billion) 以及 700 亿 (70 billion) 参数的。
Llama2-70b 如此受欢迎,主要是因为它可能是目前公开可用的最强大的模型。Meta AI 不只是发布了这个模型,他们还把模型的权重、架构乃至相关论文都公开了。这种做法与其他一些语言模型(比如 OpenAI 的 ChatGPT)大相径庭。虽然你可以通过网页界面使用 ChatGPT,但你并不能真正接触到模型本身。
核心组件:参数和运行文件
就像我们所知的,Llama2-70b 模型其实只由两个文件组成,存在于你的电脑文件系统中:参数文件和运行文件。参数文件可以说是包含了模型的“大脑”——也就是构成语言模型的神经网络的权重或参数。而 run.c 文件则是一种代码,负责让这些参数发挥作用。
大语言模型的核心组成部分
这个模型的每个参数都是用两个字节来储存的,所以整个参数文件的大小高达 140 GB。之所以用两个字节,是因为它们是 16 位浮点数(float16)。除了这些参数外,你还需要一些代码来运行这个神经网络,这就是运行文件的用处。这个文件可以是 C 语言文件、Python 文件或者任何其他编程语言的文件,但简单起见,我们假设它是用 C 语言编写的。你大概只需要大约 500 行的 C 语言代码,不依赖于其他任何东西,就能利用这些参数来实现神经网络的架构。
所以,要启动和运行 Llama2-70b 模型,你的 MacBook 上只需要这两个文件——这就是你需要的全部配置,一个完整独立的套件。你不需要连接互联网或其他任何设备。只需编译你的 C 语言代码,生成一个二进制文件,你就可以开始与这个语言模型进行交互了。例如,如果你想测试它的创造力,你可以让它围绕一个特定主题写一首诗。模型会根据你的指示开始生成文本,很快,一首诗就呈现在你面前了。
模型推理,也就是运行 run.c 文件里所描述的 Llama2-70b 模型,看起来可能很复杂,但其实意外地简单。run.c 文件包含操作神经网络的代码,涵盖了架构的实施和神经网络的前向传播,这些都是可以通过算法来理解并且开放获取的。但模型的神奇之处真正蕴藏在它的参数里。这些参数赋予了模型理解和生成语言的能力,而获取这些参数才是真正的挑战和复杂之所在。这些参数是通过一种广泛而复杂的过程得到的,那就是模型训练。
正是在这个阶段,模型才真正展现出生命力,与模型推理形成鲜明对比。
训练一个大语言模型
训练像 Llama2-70b 这种大语言模型是一项艰巨的任务,就像是在压缩互联网的一个重要部分。多亏了 Meta AI 对 Llama2-70b 的开放性,我们可以通过他们发布的信息,清楚地了解到训练过程的全貌。
训练的首阶段:预训练
想象一下,训练过程从大约 10 TB(TB = 10 亿 GB)的文本开始,这些文本大多来自于对互联网的全面抓取。想象一下,这就像从无数网站搜集了一座巨大的文本山。
接着,这些数据会被输入到一个 GPU 集群中,这是一组专门用于处理如神经网络训练等高强度计算任务的电脑。以 Llama2-70b 为例,需要约 6000 个 GPU 持续运转约 12 天,耗资约 200 万美元。通过这一过程,我们将这庞大的互联网数据压缩成一个 140 GB 的参数文件,有点像互联网的“zip 文件”,尽管它是有损压缩的。这种压缩的比例大约是 100 倍,但它并非真正的 zip 文件,因为 zip 是无损的。与 zip 文件不同,它不是完美的复制品,这些参数更多地是捕捉我们训练文本的精髓,而不是精确复制。
为计算大语言模型的参数而对互联网进行压缩
值得一提的是,尽管这些数字听起来很惊人,但按照当今的标准,它们实际上还算是中等水平。当我们看到 ChatGPT、Claude 或 Bard 这样的前沿神经网络时,它们的参数规模、计算资源和成本通常要高得多,有时甚至是原来的十倍或更多。现代的训练过程可能耗资数千万甚至数亿美元,涉及更大的数据集和计算集群。但一旦拥有了这些参数,运行这些神经网络在计算上就相对便宜了。
神经网络的预测魔力
神经网络到底有何神奇之处呢?它的核心功能是预测文本序列中的下一个词。想象一下,把一串词,比如“cat sat on a(猫坐在一个)”,输入这个网络。这个网络包含了众多参数,由不同方式连接的神经元组成,对输入的词汇进行响应。最终,它会预测出下一个词。例如,在我们的例子中,神经网络可能会以 97% 的概率预测下一个词是“mat(垫子)”。
神经网络中的下一词预测过程
从数学角度来看,这种预测任务与数据压缩有着密切的关联。这就是为什么我们说训练神经网络就像是在压缩互联网的大量信息。如果你能精准预测下一个词,就可以用这个能力来压缩数据集。换句话说,这就是一个下一个词预测的神经网络:输入一些词,它就会告诉你接下来的词。
这个训练过程带来的成果非常惊人。表面上简单的下一个词预测任务,实则拥有巨大的能力。它促使神经网络吸收大量关于世界的知识,并存储在其参数中。例如,考虑一下关于 Ruth Handler 的网页。为了预测下一个词,神经网络需要理解 Ruth Handler 的各种信息,包括她的生卒年月、身份、成就等等。
通过预测下一个词的方式,神经网络深入学习了关于世界的信息,并将这些知识密集地储存在其参数里。
神经网络的生成魔法
当我们训练完这些神经网络后,使用它们就像揭开了一个神秘的面纱。模型的推理过程,也就是我们通常说的应用模型,操作起来相当直观。我们首先从模型的预测中生成下一个词汇,像是从一连串的想法中抽取灵感。你选一个词,再把它输入模型,接着得到下一个词。这样一连串的过程,仿佛让网络在编织一个个互联网的故事。
设想一下运行这样一个神经网络,进行推理的场景。结果往往令人着迷,好像网络在构建一个个网页的梦境。之所以会这样,是因为网络在网页数据上进行了训练。一旦释放它的潜能,它就开始模仿这些文档。比如在下面这个例子中,你可能会看到它在左侧生成一些类似 Java 代码的内容;中间部分可能呈现出类似 Amazon 产品列表的文字;而右侧,则可能是类似维基百科的文章。
神经网络创造的例证
以图中间的例子为例:从标题到作者,再到 ISBN 号码,这一切都是网络自己创造的。它根据所学习的数据分布来创作文本,就像是在虚拟出这些文档。比如,它创造出的 ISBN 号码,在现实中可能是不存在的。网络知道在“ISBN”和冒号之后应该跟着一串数字,并且它会生成一个看起来合理的数字序列。
这种网络处理事实的方式颇为有趣。例如,在右侧关于一种叫做“黑鼻鲑”的鱼的文章中,所提供的信息并非直接从训练材料中抄录而来。相反,网络通过学习掌握了关于这种鱼的知识,并能够生成大致准确的描述,虽然这并非直接从它的训练资料中复制而来。这正是互联网信息的“有损压缩”现象。网络抓住了信息的核心要义,并将这些知识巧妙地融入所生成的文本中。
重要的是要理解,我们不能总是确定这些模型的输出是否完全准确,还是带有一些幻想成分。它们的一部分输出可能是从训练数据中学来的,而另一些则可能不是。这种不确定性正是与这些模型互动如此吸引人的原因之一。在很多情况下,它们基于庞大的数据分布在网络上“编织梦想”,创造出既有学习知识又有创新想象的内容。
深入了解神经网络如何运作
本段内容着重于探讨神经网络的工作机制,尤其是在进行下一个词预测时的复杂过程。为了便于理解,我们可以参考一个简化的神经网络内部结构图。这里重点介绍的是 Transformer 神经网络架构,这是当前复杂模型的基础。
Transformer 神经网络架构
神经网络的吸引人之处在于,我们对它们的架构有全面的了解。我们清楚知道在每一个步骤中都会进行哪些精确的数学运算。然而,真正的挑战在于网络中庞大的参数数量——我们谈论的是高达数百亿个的参数。这些参数是网络的核心,尽管我们了解如何逐步调整这些参数来提升网络在下一个词预测上的表现,但它们在整个过程中的具体作用和相互协作仍旧带有一定的神秘色彩。
我们知道如何优化这些参数,并随着时间的推移调整它们以更准确地预测下一个词,但这些参数如何协同作用以达到这一目标,目前仍不十分明了。我们有模型和理论推测,这些参数可能在构建和维护某种类型的知识数据库,但这一点也不是那么直观。这些网络里的知识可能表现得很奇特,且往往是单一维度的。
一个广为人知的例子就是 ChatGPT 和 GPT-4 互动中的“逆转现象”。比如,当询问汤姆·克鲁斯的母亲是谁时,系统能正确回答是玛丽琳·李·普菲弗。但当问题反过来问玛丽琳·李·普菲弗的儿子是谁时,系统却无法给出答案。这种单一维度的知识展现出了这些模型的独特性。
逆转现象示例(值得一提的是,这个问题已经通过大语言模型的浏览功能得到了解决)
大语言模型(LLMs)在本质上是一种深不可测的工具,与传统工程领域的其他产物迥然不同。它们并不像汽车那样,每个部件都清楚明了、有序排列。相反,大语言模型是通过长时间的优化过程形成的,我们对它们的内部机制的理解还在不断进化中。有一个专门的领域,被称为可解释性或机械式可解释性,致力于解析神经网络的每一部分是如何工作的。虽然我们能够获得一些洞见,但要完全理解它们,还有很长的路要走。
目前,我们把这些神经网络当作是基于经验的工具来对待。我们向其输入数据,观察其输出,并根据它们在不同情境下生成的文本来评估它们的表现。因此,与这些模型的工作需要进行复杂而细致的评估,这是一个逐步探索和理解的过程。
深入训练,走向实用化的第二阶段
在我们深入了解神经网络的过程中,我们大多关注它们在互联网文档生成方面的作用。但其实,这些模型的能力远不止于此。现在,我们正步入训练的关键第二阶段 —— 精调,这一阶段将把这些网络从简单的内容生成器转变成更具实用性的 AI 助手。
目前为止,我们观察到神经网络能够生成类似互联网上的文本内容,这被称为预训练阶段。但对于许多任务来说,仅仅生成文本是远远不够的。更有价值的是,能够回答问题并基于这些问题提供信息的 AI 助手模型。
开发这类 AI 助手的过程非常有趣。优化过程依然聚焦于下一个单词预测任务,但数据集发生了变化。与其在海量的互联网文档上进行训练,不如转向更为专门且手动收集的数据集。
那么,这些新训练集是如何构建的呢?这需要很多人的参与。通常,公司会组建专门团队来整理这些数据集。这些团队按照详细的标注指引工作,负责提出问题并设计合适的答案。
比如,训练数据可能是这样的:一个用户问,“能否写一段关于经济学中‘垄断性买方市场’重要性的简介?”然后,根据标注指引,有人会编写 AI 助手应给出的理想答案。这些答案的性质和质量都受到了像 OpenAI 或 Anthropic 这样的公司工程师提供的详细指导文件的影响。
~100,000 条由人工编写的对话,用于对模型进行精调
如果说预训练阶段是处理大量互联网上参差不齐的文本,那么精调阶段则更注重质量而非数量。在这里,我们可能只关注少量的文档 — 比如说 100,000 条 — 但每一条都是精心制作的高质量对话,严格遵循标注指引。这一阶段对于将神经网络从泛泛的文档生成器转化为能够精确理解和回应特定问题的专业 AI 助手来说,至关重要。
从文档生成器到 AI 助手的转变
在神经网络向 AI 助手演变的过程中,微调 (fine-tuning) 是一个关键步骤。这个步骤的核心是改变训练数据集的内容。我们不再使用预训练 (pre-training) 阶段的普通互联网文本,而是转向专注于问答 (Q&A) 文档。正是这种训练材料的改变,让我们得以构建所谓的助手模型。
在微调过程中,神经网络学习如何适应这些新的训练文档格式。比如,当你问:“能帮我看看这段代码吗?似乎有个 bug:print(”Hello World)”,微调后的模型会理解它应当以一个助手的身份提供帮助。这种能力非常惊人,尤其是当这个具体问题可能并未出现在其训练集中时。模型能够逐字逐句地生成回答,制造出与问题相匹配的答复。
这些模型如何能够从制造普通互联网内容转变为一个有帮助的助手,这一点仍然充满神奇。它们通过在微调阶段吸收问答文档的风格和结构来实现这种转变。更令人印象深刻的是,它们依然保持并运用了在预训练阶段积累的丰富知识。
简单来说,预训练阶段是在大量互联网数据上进行训练,主要目的是知识积累。而微调阶段则专注于对齐和调整,把模型的输出从普通的互联网文本转变为更具针对性、更像助手的问答格式。
精调机制的原理
总结来说,打造像 ChatGPT 这样的产品,包含了两个关键阶段。首先是预训练阶段,这时网络被大量互联网文本所充斥。此过程需要用到 GPU 集群,这些专业计算机专为并行处理任务而设计。它们远非日常电脑,而是价格高昂的高端设备。在此阶段,互联网文本被压缩进神经网络的参数中,通常耗资上百万美元。这样,我们就得到了基础模型,一个计算成本极高的过程,通常由公司每年甚至更少频率进行,主要因为涉及的成本。
基础模型开发完毕后,接下来是精调阶段,这个阶段的计算需求相对较低。重点转向如何定义 AI 助理的行为。这包括编写具体的标注指令,并雇用人员制作符合这些指令的文档。例如,可能需要收集 10 万条高质量的理想问答,用于对基础模型进行精调。这个过程不仅成本更低,而且速度更快——可能只需一天,而预训练阶段则需几个月。其成果是一款高效的助理模型。
一旦助理模型准备就绪,它就会经历评估、部署和持续监控。针对每一次不当行为,都会采取相应的纠正措施。这一过程包括对助理给出错误回应的对话进行改写,以正确的回应取代。这些改正后的回应随后纳入训练数据,使得下一轮精调时,模型能在这些特定场景下得到改善。由于精调成本较低,它让公司能够更频繁地迭代更新,使 AI 模型相较于预训练阶段能够更加规律地得到优化。
值得一提的是 Meta 在其 Llama 2 系列中采取的策略。Meta 发布此系列时,不仅包含了基础模型,还有可直接用于问答应用的助理模型。尽管基础模型不适合直接回答问题(它们更多生成问题或无关内容,因为本质上是互联网文档采样器),但它们仍具有重要价值。Meta 承担了开发过程中成本高昂、资源密集的第一阶段,为其他人提供了坚实的基础,进一步精调提供了广阔的自由度。此外,Meta 还发布了可立即用于问答应用的助理模型。
这一不断进步的迭代过程以及微调模型的能力,极大地提高了发展 AI 助手的灵活性和效率。公司通过定期更新和精细化这些模型,可以持续提高 AI 的性能,使其在交互中更加迅速、精准。
人类反馈驱动的增强学习:训练的新阶段
在预训练和微调之后,我们可以引入一个可选的新阶段:人类反馈驱动的增强学习(Reinforcement Learning from Human Feedback,简称 RLHF),这是 OpenAI 的一项创新做法。这一阶段采用了一种别具一格的方式 —— 运用比较标签 —— 为 AI 模型的提升增添了新的维度。
具体做法是这样的:对于人类标注者而言,比起从零开始创造答案,比较现有的可能答案通常更为简单。例如,让我们设想这样一个任务:编写关于回形针的俳句。对标注者来说,空手起家写一首俳句可能相当具有挑战性。但如果向他们展示几首由第二阶段的助手模型创作的俳句,他们的任务就简化了许多。他们可以评估这些选项,选择最符合标准的一首。这种比较方法是第三阶段微调的核心,它通过在已生成选项之间进行选择,进一步完善模型。
挑选一首好俳句比自己创作更简单
虽然 RLHF 流程的技术层面颇为复杂,但其核心在于利用这些比较标签来进一步提升语言模型的表现。以 OpenAI 的《指导 GPT》论文为例,该文详述了提供给人类评估者的标注指南。这些指南旨在帮助评估者作出有益、真实和无害的判断,但其完整文档可能长达数十甚至数百页,体现了这一任务的深度与复杂性。
RLHF 标注指南的样本
这一新增的微调阶段,通过比较方法,为训练过程增加了新的维度,使得基于人类的判断和偏好,模型得以进行更细致和精准的调整。
AI 发展的新路径:人机合作与语言模型的竞争
在探索大语言模型 (Large Language Model) 开发的深层过程中,我们发现,人类在构建这些模型中的角色正在逐渐转变。最开始,这看似一个高度依赖人工的过程。但随着语言模型的不断进步,这种情况正向人机合作的方向发展。
生成标签和回答的过程越来越多地结合了人类的监督和机器的智能。比如,我们可以利用语言模型来得出一些答案样本,然后由人工挑选出这些答案中的精华,以形成最佳的回应。或者,人们也可以利用这些模型来校验自己的工作,甚至在其中只扮演一个监督的角色,比较不同的结果。这种不断演变的互动就像调节一个滑块——随着模型能力的提升,我们越来越依赖它们,滑块也逐渐向机器生成的内容倾斜。
AI 语言模型的竞争版图:专有模型对抗开源模型
在探讨 AI 语言模型领域的最新进展时,不得不提的是大语言模型间的竞争格局。以伯克利团队管理的“聊天机器人竞技场”为例,这里的语言模型就像国际象棋选手一样,通过 Elo 评分系统进行排名,该系统基于模型在回答用户问题中的胜率来评估。用户在这个竞技场中提问,收到来自两个不同模型的答复,却不知道是哪个模型回答的。他们选择自己认为更好的答案,进而决定了这些模型的 Elo 分数。分数越高,表明模型的性能越出色。
聊天机器人竞技场中按 Elo 评分排序的大语言模型 (LLM)
这个排行榜不仅有趣,而且能直观地展示各种语言模型的实力对比,并洞察它们在现实场景中日益增强的能力。
深入了解 AI 语言模型的世界,我们可以看到不同模型间的竞争态势。在性能榜单的顶端,是那些专有模型。这些模型属于封闭类型,它们的权重数据对外界保密。通常,这些模型只能通过网络界面来使用。OpenAI 的 GPT 系列和 Anthropic 的 Claude 系列便是这类模型的代表。除此之外,还有许多其他公司推出的顶级模型也不容小觑。
紧随其后的是拥有开放权重的模型,这类模型的特点是透明度高,相关信息和研究论文对公众开放。Meta 的 Llama 2 系列就是这一类别的实例。而在这些模型之下,你可能会发现像法国初创公司推出的 Mistral 系列中的 Zephyr 7b beta 这样的模型。
从当前的 AI 生态系统来看,封闭的专有模型在性能上往往占据上风。但它们的局限在于,你无法直接对这些模型进行微调或下载。用户通常只能通过网络界面来使用这些模型。而开源模型及其生态系统则紧随其后。尽管这些模型的表现通常不及封闭模型,但在特定应用场景下,它们或许已足够满足需求。
当前,开源社区正致力于提高性能,以跟上专有模型的发展速度。这一趋势为 AI 行业带来了一个有趣的现象:开源项目持续进化,力图达到专有模型设定的标准。
在语言模型进步中规模化法则的作用
接下来,我们来探讨语言模型是如何不断进步以及这些进步的发展轨迹。理解大语言模型(大语言模型)发展的关键在于所谓的规模化法则。这些法则表明,这些模型的性能,尤其是在预测下一个词的准确性方面,竟然可以被出奇地准确预测。这种预测基于两个变量:网络中的参数数量(N)和用于训练的文本量(D)。
来源:训练计算 – 优化的大语言模型
通过这两个数据 – N 和 D – 我们能够准确地预测一个语言模型在下一个词预测任务中的表现。最令人震惊的是,这种趋势似乎并没有极限。训练量更大、模型更庞大的语言模型总能带来性能的提升。这说明了,除了算法的进步,我们还可以通过扩大规模来增强模型的能力,比如使用更强大的计算机和更多的数据。
实际上,虽然下一个词的预测准确性可能不是我们的终极目标,但这种准确性与我们所关注的许多其他方面有着密切的联系。例如,在 GPT 系列的发展过程中,从 GPT-3.5 到 GPT-4,我们可以看到在多种测试中的性能提升。这表明,随着我们训练更大、数据量更多的模型,我们可以期望整体性能的自然提升。
来源:通用人工智能的初步迹象:GPT-4 的早期实验,Bubuck 等人,2023 年
这一认识在计算机界引发了一场类似淘金热的热潮,核心目标是获取更大型的 GPU 集群和更全面的数据集。普遍认为,这些投资将带来更优秀的模型。尽管算法上的进步是额外的好处,但真正推动发展的是扩大规模带来的确定性成功。这个方法已成为许多 AI 领域公司的主要战略,他们正投入资源扩展,以打造更强大的语言模型。
用外部工具增强大语言模型 – 一个实例演示
我们通过一个实际案例来探索语言模型的先进能力,跳出理论性的讨论。在这个例子中,我利用 ChatGPT 完成一个特别的任务:搜集关于一家名为 Scale 的公司及其多轮融资的详细信息,包括融资时间、金额和估值,并整理成一张表格。
ChatGPT 在经过微调训练后,明白对于这类问题,它不能仅仅依赖内置的大语言模型(Large Language Model)能力。它知道要借助外部工具来完成任务。在此情境下,一个理想的选择是使用网络浏览器进行搜索。就像我们平时上网查找信息一样,ChatGPT 也会发出特定的指令,来表明需要进行网络搜索。这些指令能被转化成向搜索引擎(如 Bing)发出的查询。
ChatGPT 正在使用外部工具
进行搜索后,就像我们浏览网页搜索结果一样,ChatGPT 会处理搜索回来的文本信息。然后,它会根据这些信息生成回答,仿照人类使用网络浏览器搜索和研究信息的方式。
ChatGPT 使用 Bing 搜索
ChatGPT 的输出结果既有条理又充满信息。它制作了一张表格,列出了 Scale 公司从 A 轮到 E 轮的融资情况,包括每轮的日期、筹资金额和估值。特别的是,它在表格底部提供了引用链接,便于用户核实信息的真实性。此外,ChatGPT 也很透明地标明了某些信息的缺失,例如 A 轮和 B 轮的估值信息未提供,表格中标为“无法获取”。
这个示例展现了 ChatGPT 这类语言模型的非凡之处:它们不只是简单的文字生成器,还能有效运用外部工具和资源来完成更为复杂的研究任务,这标志着它们能力的显著演进。
当我们深入了解像 ChatGPT 这样的大语言模型时,可以发现它们在处理实际问题时如何巧妙地整合了各种工具。为了证明这一点,我向 ChatGPT 提出了一个挑战:利用 Series C、D 和 E 的数据来估算 Scale AI 公司的 Series A 和 B 的市值。
在这个任务中,我们可以看到 ChatGPT 也像我们人类一样,能够认识到自己在面对复杂数学问题时的局限。它明白为了进行精确计算,需要借助计算器。于是,ChatGPT 明确表示了这一需求,并利用手头的数据来计算比率,以此估算那些未知的市值。这个过程很像我们在处理难题时的方式:依赖工具来处理复杂的运算。
ChatGPT 正在使用计算器
随后,我请求 ChatGPT 制作一个展示 Scale AI 市值随时间变化的二维图表。具体要求是:y 轴使用对数刻度,并且图表要有专业的外观,包括网格线。ChatGPT 应用了 Python 解释器和 Matplotlib 库来绘制这张图表。结果是什么?一个精准、符合所有要求的图表,不仅展现了 ChatGPT 对任务的理解,还体现了它运用编程工具实现目标的能力。
ChatGPT 正在使用 Python 解释器
任务并没有就此结束。我接着要求对数据进行更深入的分析:在图表中加入一条线性趋势线,并预测 Scale AI 的估值直到 2025 年底的变化。ChatGPT 顺畅地编写出了所需代码,并根据趋势线分析提供了相应解读。据其计算,Scale AI 当前的市值大约是 1500 亿美元,预期到 2025 年底将增长至 2 万亿美元。
ChatGPT 编写代码
随后,我向 ChatGPT 提出了一个更具创造性的挑战:“根据上述信息,设计一张能够代表 Scale AI 公司的图像。”ChatGPT 利用我们之前交谈中的信息,表现出对 Scale AI 的深刻理解,可能还回忆起了其网络中存储的有关该公司的细节。在这个任务中,它运用了 OpenAI 开发的 DALL·E 工具,这个工具擅长将文字描述转化为图像。DALL·E 创作出的这张图像,不仅展示了 ChatGPT 超越文字处理的能力,还体现了它与其他 AI 工具协作创造视觉内容的能力。
ChatGPT 使用 DALL·E
通过这次展示,我们可以看到大语言模型在解决问题时如何运用各种工具。它们已经不仅仅是简单的文字处理工具,而是在像人类一样,通过整合多种工具和计算资源来处理复杂的任务。这种工具的整合是这些模型能力不断增强的关键,让它们不仅能进行深入的分析和编程,还能创作出具有艺术感的作品。
大语言模型的多模态革新:从视觉到音频的跨越
ChatGPT 现在不仅能够生成图像,还能理解它们,这标志着它在多模态领域的一大飞跃。多模态不只是把文本和其他媒介结合起来,它在丰富我们与大语言模型的互动方面起着关键作用。比如,ChatGPT 不仅能创造出图像,还能解析这些图像。
OpenAI 创始人之一 Greg Brockman 的一个演示就很能说明问题。他给 ChatGPT 展示了一个手画的简单网站布局图,ChatGPT 不仅理解了这张图,还能够根据它编写出功能完整的 HTML 和 JavaScript 代码。在 “My joke” 网站上,有一个点击就能展开笑话结尾的笑话,充分展示了 ChatGPT 如何将一个简单的视觉图案转化为实际的网络界面。
从一个简单的草图到一个运行中的网站
这种进步为我们开辟了一个新天地,在这个天地里,图像能够与语言模型无缝结合。ChatGPT 现在能同时处理视觉信息和文本,这一能力预计会在未来的语言模型中变得越来越常见。
但多模态的意义不止于图像,还包括音频。ChatGPT 最近的进展包括了“听”的和“说”的能力,实现了语音到语音的交流。这一功能已经融入了 ChatGPT 的 iOS 应用,在那里,你可以像在电影《Her》中那样与 ChatGPT 对话。这是一种独特而略带超现实的体验,你无需再输入文字,AI 将直接用语音回应。这一创新使我们与 AI 的互动更加自然和类似人类,值得亲自体验这种奇妙。
仿照科幻电影《Her》中的 AI 语音互动
探索大语言模型未来发展的新方向
关注大语言模型未来的发展,我们需要了解这个领域目前的学术和研究动态。这不是讨论 OpenAI 的具体产品发布或计划,而是基于学术研究和论文,对这些模型的发展趋势进行更广泛的探讨。
目前一个引人注目的概念是来自《快思慢想》的“系统 1”和“系统 2”思维方式。该概念揭示了大脑功能的两种截然不同的模式。“系统 1”是指快速、直觉、自动的思考过程。比如,当被问到“2 加 2 等于多少?”时,我们会几乎不假思索地回答“4”,这个答案像是被预先存储好,随时可以本能地调用。
《快思慢想》中的系统 1 与系统 2 思维对比
相反,“系统 2”则是更加理性、缓慢和有意识的思考模式,通常在面对复杂决策时发挥作用。例如,解决“17 乘以 24 等于多少?”这样的问题时,不像简单的 2 加 2 那样能立即得出答案,而是需要有意识且费力的计算才能求解。
以国际象棋为例,快棋赛中玩家依靠快速、直觉的下棋方式,没有太多时间进行深度思考,这正是系统 1 思维的体现。而在常规比赛中,选手们则有更多时间去思考每一步棋,通过探索不同的可能性和策略来做出决策,这时候就是系统 2 思维发挥作用的时候,它需要选手们有意识地分析和决策。
在国际象棋中系统 1 与系统 2 思维的比较
了解这两种思维模式对于探索大语言模型(大语言模型)的未来发展和进化具有重要意义。随着这些模型的日益进步,将直观(系统一)和分析性(系统二)思维的能力相结合可能成为一个关键的发展方向,这一点在模仿人类大脑复杂的决策过程中表现得尤为明显。
推动大语言模型前进:走向分析性思维和自我提升
现阶段,大语言模型主要运行在类似我们所说的系统一模式。它们依靠本能地工作,处理词语并生成句子中的下一个词汇,缺乏进行深层次分析性推理的能力。这种运作方式就像动画片中的比喻,不同的词汇被迅速地连续处理 —— “咔嚓、咔嚓、咔嚓”,每个词汇处理的时间大致相同。这就是这些模型在系统一模式下的基本工作原理。
然而,让大语言模型拥有系统二的能力是一个让许多专家充满期待的激动人心的构想。设想一下,这些模型能将时间转化为准确度。比如,你可以向 ChatGPT 提出一个问题,并给它 30 分钟的时间来思考,而不是期望它立即回答。目前还没有任何语言模型具备这样的能力,但让模型花时间深思熟虑后再给出答案的想法是许多研究者正在努力追求的目标。
系统一与系统二的大语言模型
我们的目标是创造一种“思维树”,在这个树上,模型能够对问题进行深思、重新考虑和表述,最终以更高的确信度提出答案。理想状态下,当我们在时间(x 轴)与回答准确度(y 轴)之间作图时,我们希望看到一个逐渐上升的函数 —— 这是一种尚未实现但已经引起了广泛关注的能力。
语言模型自我提升:迈向超越人类极限的新征程
这些模型的一个新兴趋势是自我提升的理念,灵感源自 DeepMind 的 AlphaGo 取得的巨大成功。AlphaGo 的开发分为两个关键阶段。在第一阶段,它通过模拟围棋高手的下棋方式来学习,从世界顶尖选手的比赛中吸取战术和策略。这种学习方法虽然造就了一个强大的围棋程序,但其能力被限制在了它所学习的最优秀人类棋手的水平。
利用深度神经网络和奖励机制精通围棋
接着,DeepMind 开发出了一种叫做自我提升的突破性方法,成功使 AlphaGo 在围棋游戏中超越了人类。在这个封闭的“沙盒”环境里,简单的获胜目标成为了直接的奖励机制。这种明确、单一的反馈允许 AlphaGo 进行无数次的对弈,仅根据获胜概率来调整策略,而不是模仿人类的玩法。这种方法最终使得 AlphaGo 的表现超越了人类。
AlphaGo 的自我提升之旅
图表显示了 AlphaGo 如何在短短 40 天内通过自我提升超越了世界顶级的人类围棋选手。这一成就引发了一个深思的问题:“大语言模型 (大语言模型) 要如何实现类似的第二步突破?”
目前,在语言模型的领域,我们主要还停留在模仿人类回答的第一步。人类对数据进行标注,撰写答案,而模型则是学习这些回答。虽然这可以产生高质量的回答,但模型的精准度仍受限于人类水平。那么,关键的问题是,在开放式语言建模的领域,我们的下一步该如何迈进呢?
在将这种技术应用于开放式语言建模中,我们面临的一个主要挑战是如何设定一个明确的评价标准。语言的范围广泛,涉及众多任务类型,但却缺乏一个简单且普遍适用的衡量标准来判断模型输出的质量。这与围棋游戏不同,围棋中的获胜可以立即作为反馈,而语言任务却没有一个直接的标准来判定答案是好是坏。尽管如此,在某些特定的更小范围领域中,或许能够建立这样的评价函数,为语言模型的自我提高铺路。但目前,这仍是语言模型领域一个待探索的新领域。
量身定制语言模型:为特定任务打造专用 AI
在大语言模型的发展中,另一个重要方向是定制化。不同行业中的多样化任务需求表明,这些模型需要变成特定领域的专家。最近,OpenAI 的 Sam Altman 宣布了 ChatGPT 应用商店,这是朝着这个方向迈出的一大步。这一举措意味着为大语言模型增添了一层定制化的选择。
通过 ChatGPT 应用商店,用户可以打造属于他们自己的 GPT 版本。目前的定制选项包括设置特定的指令或通过上传文件来扩展模型的知识库。这些文件启用了“检索增强生成”(RAG)的功能,使得 ChatGPT 能够参考上传的文件中的文本片段来丰富其回答。这就好比 ChatGPT 在浏览这些文件,将它们作为信息获取过程中的参考资料。
定制化 GPT 配置
目前,定制化主要限于以上两种方式。然而,未来可能会有更多个性化的定制选项,比如使用特定的训练数据或其他定制化的修改来微调这些模型。我们的目标是开发出一系列各有专长的语言模型,从而实现从“通用模型”向“专注于特定任务的模型”转变。
大语言模型:新兴操作系统的核心
在汇总我们对大语言模型(大语言模型)的讨论时,把它们视为不仅仅是聊天机器人或文字生成器,而是更广泛、更根本的存在,这一思考方式非常有益。我更愿意把它们想象成一种新型操作系统的核心进程。这样的操作系统能够协调从内存到计算工具等各种资源,以高效的方式解决问题。
大语言模型:新型操作系统的核心
从我们讨论的各个方面来看,未来几年大语言模型可能会展现出怎样的面貌。它不仅能阅读和生成文本,还拥有超越任何个人的广博知识。它能够浏览互联网,或者通过检索增强生成(retrieval augmented generation)来参考本地文件。它还能与现有的软件基础设施(比如计算器和 Python)无缝对接。此外,它还能处理和生成图像与视频,理解和创作音乐,甚至使用“系统二(system two)”方法进行深度思考。在某些专业领域,它甚至可能在有合适的奖励机制的情况下自我改进。
再进一步,我们可以预见这些模型会变得高度定制化,针对特定任务进行微调。想象一下一个虚拟的大语言模型“应用商店”,里面有各种专精不同领域的专家,随时准备共同解决问题。这种想法将大语言模型与当今的操作系统相提并论,它们都是多功能的数字大脑。
在这个比喻中,计算机的内存层次在大语言模型中找到了对应。就像操作系统从硬盘驱动器获取数据一样,大语言模型可以通过浏览互联网或本地磁盘存储来访问信息。对于大语言模型而言,其“随机访问内存(RAM)”的对应物是它们的上下文窗口,也就是在预测文本序列中下一个词时能够考虑的最大词汇量。
虽然我只是简单介绍了基本概念,但理解上下文窗口就像是大语言模型有限而珍贵的工作内存非常关键。你可以把这看作是大语言模型在执行任务时,如何像操作系统中的核心进程那样管理其资源,将相关信息在上下文窗口中进行调度。
我们可以在传统操作系统的特性与大语言模型(LLM)的能力之间找到一些相似之处。例如,多线程、多进程和推测执行等概念,在大语言模型的领域中也有其对应的实现方式。同样,在语言模型的上下文窗口中,我们也能发现与传统操作系统中用户空间和内核空间相似的概念。
我之所以偏爱这种类比,一个重要原因是它与当前操作系统和语言模型发展现状息息相关。就像桌面操作系统中既有 Windows 和 MacOS 这样的专有系统,也有基于 Linux 的开源生态系统一样,语言模型的世界也是如此。例如 GPT 系列、Claude 系列和 Google 的 Bard 系列等专有模型,与由 Llama 系列等模型领头的日益壮大的开源生态系统并存。
从传统的计算堆栈到以大语言模型为核心的新堆栈,我们可以找到许多类似之处。这些模型不仅是数字助手,更是一个潜在的新型操作系统的核心,它们通过自然语言界面协调各种工具来解决问题,像我们今天使用的操作系统那样处理任务和管理资源。
想要帮助推广 AI 知识吗?不妨分享这篇深入解析大语言模型的文章。