当前位置: 首页 > news >正文

[Andrej Karpathy] 大型语言模型作为新型操作系统

链接:https://www.youtube.com/watch?v=LCEmiRjPEtQ


很高兴今天能在这里和大家探讨人工智能时代的软件。我了解到在座的许多人是学生,包括本科生、硕士生、博士生等,即将步入职场。

我认为现在是一个非常独特且有趣的时期,进入这个行业。

根本原因在于,软件正在再次发生变化。软件在过去70年里没有发生如此根本性的变化,但在最近几年里,它已经快速地改变了两次。因此,有大量的工作需要完成,大量的软件需要编写和重写。

Github地图发现的软件变化

如果我们把这看作是软件的地图,这是一个非常酷的工具,叫做 GitHub 地图,它展示了所有已编写的软件,这些都是计算机执行数字任务的指令。

如果我们放大来看,这里是各种不同的代码库,所有这些都是已编写的代码。

几年前,我观察到软件正在发生变化,出现了一种新型软件,我将其称为“软件2.0”。


软件演进:从1.0到3.0

软件1.0

传统的编程方式,您为计算机编写的代码。这是我们熟悉的GitHub上的代码库

所有这些都是已编写的计算机执行数字任务的指令。

软件2.0

基本上是神经网络,特别是神经网络的权重。

您不是直接编写这些代码,更多的是调整数据集,然后运行优化器来创建神经网络的参数。Hugging Face基本上就是软件2.0领域的GitHub。

软件3.0

神经网络通过大型语言模型变得可编程。

您的提示现在是编程大型语言模型的程序,这些提示是用英语编写的,这是一种非常有趣的编程语言。

3 种编程范式的对比

如果您要进行情感分类,可以编写一些Python代码来实现,或者训练一个神经网络,再或者直接提示大型语言模型。

这里有一个少样本提示的例子,您可以想象通过改变它来以稍微不同的方式编程计算机。

我们现在有软件1.0和软件2.0。

我想我们正在看到,GitHub上的代码不仅仅是代码了,其中还夹杂着大量的英文。

因此,我认为一种新型代码的类别正在不断增长。

这不仅是一种新的编程范式,更令我惊讶的是,它是用我们的母语——英语编写的。几年前,当我意识到这一点时,我发了一条推文:"我们现在竟然可以用英语来编程计算机了。"

(所以现在的编程练习,或许更多的练习的是逻辑思维,什么语言不是那么重要了)

软件2.0如何"吞噬"自动驾驶系统

在特斯拉工作时,我们正在开发自动驾驶系统,并试图让汽车实现自动驾驶。

当时自动驾驶系统中存在大量的C++代码(软件1.0),其中还有一些神经网络用于图像识别。

随着时间的推移,当我们改进自动驾驶系统时,神经网络的能力和规模都在增长,此外,所有的C++代码都被删除了,许多最初用软件1.0编写的功能都被迁移到了软件2.0。

举例来说,将来自不同摄像头和不同时间的信息进行拼接的工作都是由神经网络完成的,我们因此能够删除大量的代码。

软件2.0堆栈几乎是字面意义上地"吞噬"了自动驾驶的软件堆栈。

我们有三种完全不同的编程范式,我认为如果您即将进入这个行业,精通所有这些范式是非常好的主意,因为它们各有优缺点。您可能希望用软件1.0、2.0或3.0来编写某些功能,您是要训练神经网络,还是仅仅提示大型语言模型?

大型语言模型作为公用事业、实验室和操作系统

现在我想谈谈大型语言模型(LLM),以及如何理解这种新范式及其生态系统。这种新型计算机是什么样的?它的生态系统又如何?

我被Andrew Ng多年前说过的一句话所震撼:"人工智能是新的电力。"我确实认为这句话捕捉到了一些非常有趣的东西,即大型语言模型现在确实具有公用事业的特性。

公用事业特性

  • 大型语言模型实验室投入大量资本来训练模型,相当于建设电网,然后通过API提供智能服务,按量付费,如按百万token付费。

实验室特性

  • 构建大型语言模型所需的资本支出非常大,技术树正在迅速发展,研发秘密集中在大型语言模型实验室。

操作系统特性

  • 大型语言模型不仅是简单商品,而是日益复杂的软件生态系统,有闭源提供商和开源替代品,类似于Windows/macOS与Linux的关系。

大型语言模型的公用事业特性

大型语言模型实验室,如OpenAI、Gemini、Anthropic等,投入大量资本支出(CAPEX)来训练大型语言模型。这相当于建设电网。

然后,他们通过API向我们所有人提供智能服务,这需要运营支出。

这种服务通过按量付费的方式进行,例如我们按百万token付费。我们对这种API有许多类似公用事业的需求,例如低延迟、高正常运行时间、一致的质量等。

在电力领域,您会有一个转换开关,可以将电力来源从电网切换到太阳能、电池或发电机。在大型语言模型领域,我们可能有OpenRouter,可以轻松地在不同类型的大型语言模型之间切换。

我认为还有一点非常有趣,当最先进的大型语言模型宕机时,这就像是全球范围内的"智能停电",就像电网电压不稳定时一样,整个星球都会变得更"笨"。我们对这些模型的依赖程度越高,这种影响就越显著,而且我认为这种依赖还会继续增长。


大型语言模型的实验室特性

大型语言模型不仅具有公用事业的特性,我认为它们也具有实验室的一些特性。这是因为构建大型语言模型所需的资本支出非常大,不仅仅是建造一些发电站。

您正在投入巨额资金,而且我认为技术树正在迅速发展。

  • 因此,我们生活在一个深度技术树、研发秘密集中在大型语言模型实验室的世界里。但是,我认为这个类比也有点模糊,因为正如我所提到的,这是软件,而软件的防御性较弱,因为它具有很强的可塑性。
  • 您可以进行许多类比,例如4纳米工艺节点可能类似于具有特定最大浮点运算能力的集群。
  • 当您使用英伟达GPU并且只进行软件开发而不进行硬件设计时,这就像是非实验室fabless模式。

但如果您也构建自己的硬件并在TPU上进行训练,如果您是谷歌,那就像是英特尔模式,您拥有自己的实验室。


大型语言模型的操作系统特性

不仅仅是简单商品

大型语言模型不仅仅是电力或水,不是那种从水龙头流出的商品。它们现在是日益复杂的软件生态系统,所以它们不仅仅是像电力这样的简单商品。

类似操作系统生态

  • 这个生态系统正在以非常相似的方式形成:您有少数闭源提供商,如Windows或macOS,然后有一个开源替代品,如Linux。
  • 对于大型语言模型也是如此,我们有少数几个相互竞争的闭源提供商,然后LLaMA生态系统目前可能是一个接近Linux的替代品。

日益复杂的系统

现在还处于早期阶段,因为这些只是简单的大型语言模型,但我们开始看到它们将变得更加复杂。这不仅仅是大型语言模型本身,还包括所有工具的使用和多模态,以及所有这些如何协同工作。


大型语言模型作为新型操作系统

当我之前意识到这一点时,我尝试将其勾勒出来,在我看来,大型语言模型就像是一种新的操作系统。

大型语言模型是一种新型计算机,它就像CPU的等效物,上下文窗口就像内存,然后大型语言模型正在协调内存和计算,利用所有这些能力来解决问题。

因此,从这个角度来看,它确实非常像操作系统。大型语言模型协调各种资源,管理上下文窗口中的信息,并执行复杂的计算任务,就像传统操作系统管理硬件资源一样。

这种新型操作系统的独特之处在于它能够理解和生成自然语言

这使得人类与计算机之间的交互变得更加直观和自然。它不仅仅是执行预定义的指令,还能理解上下文、推理和创造性地解决问题。


大型语言模型与早期计算时代的类比

分时系统类比

  • 我们现在仿佛处于20世纪60年代的计算时代,大型语言模型的计算成本对于这种新型计算机来说仍然非常昂贵。这使得大型语言模型必须集中在云端,而我们都只是通过网络与它交互的瘦客户端。

云端批处理

  • 使用分时系统是合理的,我们都在云端运行计算机时,只是批处理的一个维度。这与当时计算机的形态非常相似,操作系统都在云端,所有数据都通过流式传输,并且进行批处理。

个人计算的早期迹象

  • 个人计算革命尚未发生,因为它在经济上不划算。但我认为有些人正在尝试,事实证明,Mac mini等设备非常适合某些大型语言模型,因为如果您进行批量推理,这完全是内存密集型的。


终端界面与图形用户界面(GUI)

我还要提到一个类比:每当我直接通过文本与ChatGPT或其他大型语言模型交流时,我感觉就像通过终端与操作系统对话一样,它就是文本,是直接访问操作系统。

我认为目前还没有真正发明出一种通用的图形用户界面(GUI)。

ChatGPT应该有一个GUI吗?除了文本气泡之外,还有什么不同吗?

当然,我们稍后会提到的一些应用程序确实有GUI,但如果我没理解错的话,目前还没有一个适用于所有任务的通用GUI。

在某些方面,大型语言模型与早期的计算和操作系统有所不同,而且方式相当独特。我们可能需要为这种新型计算范式开发全新的交互模式,而不仅仅是套用传统计算机的界面设计。


大型语言模型的总结特性

复杂操作系统

  • 大型语言模型是复杂的操作系统,它们类似于20世纪60年代的计算,我们正在重新进行计算。

分时系统

  • 它们目前通过分时系统提供,并像公用事业一样分发。用户通过云端访问这些强大的计算资源。

普遍可及

  • 新的、前所未有的是,它们不在少数政府和企业手中,而是在我们所有人手中,因为我们每个人都有一台计算机,而且它都是软件。

迅速传播

ChatGPT就像瞬间、一夜之间被传输到我们数十亿人的计算机上,这种传播速度和规模是前所未有

现在是我们进入这个行业并给他们编程的时候了!


大型语言模型的心理特性

在编程大型语言模型之前,我们必须花一些时间思考它们是什么,我特别喜欢谈论它们的心理。

我喜欢将大型语言模型视为一种"类人精神"。它们是人类的随机模拟,而这里的模拟器恰好是一个自回归Transformer。

Transformer是一种神经网络,它以token为单位进行处理,每次处理一个"块",每个"块"的计算量几乎相等。

这个模拟器当然涉及到一些权重,我们将其拟合到互联网上所有可用的文本数据。

最终,您会得到这样一种模拟器,因为它是在人类数据上训练的,所以它具有一种类似人类的涌现心理。


 


大型语言模型的认知特性

1 百科全书般的知识

大型语言模型拥有百科全书般的知识和记忆,它们可以记住比任何单个个体人类多得多的东西,因为它们阅读了如此多的内容。

这让我想起了电影《雨人》,其中达斯汀·霍夫曼饰演一位患有自闭症的学者,他拥有近乎完美的记忆力。

2 认知缺陷

它们会经常产生幻觉,编造一些东西,并且对自我知识没有很好的内部模型。它们表现出不稳定的智能,

在某些问题解决领域它们会表现出超人般的水平,但随后又会犯下基本上任何人类都不会犯的错误。

3 顺行性遗忘症

大型语言模型不会像人类同事那样随着时间的推移学习和巩固知识。

上下文窗口实际上就像工作记忆,您必须直接编程工作记忆,因为它们不会默认变得更聪明。这类似于电影《记忆碎片》和《初恋50次》中的情况。

4 安全限制

大型语言模型很容易上当受骗,它们容易受到提示注入攻击,可能会泄露您的数据等等。因此,还有许多其他与安全相关的考虑因素。


平衡超能力与认知缺陷

所以,长话短说,您必须同时思考这个拥有超能力但又存在许多认知缺陷和问题的事物。

我们如何编程它们,如何克服它们的缺陷并享受它们的超能力呢?

这就像是在与一个既有超凡能力又有明显局限性的合作伙伴一起工作。

我们需要设计系统和工作流程,既能利用大型语言模型的强大能力,又能弥补它们的不足确保最终产出的质量和可靠性。

这种平衡需要深入理解模型的工作原理、限制和能力,以及创造性地设计交互模式和验证机制。

只有这样,我们才能充分发挥大型语言模型的潜力,同时避免其固有的陷阱。


设计具有部分自主性的大型语言模型应用

现在我想谈谈如何使用这些模型的机会,以及一些最大的机会。

我最感兴趣的是我称之为"部分自主性应用"的东西。例如,以编程为例,您当然可以直接使用ChatGPT,然后复制粘贴代码、错误报告等,获取代码并复制粘贴所有内容。

但为什么要这样做呢?为什么要直接与操作系统交互呢?拥有一个专门的应用程序会更有意义。因此,我认为你们中的许多人都在使用Cursor,我也在使用。Cursor就是您想要的那种工具,您不会想直接使用ChatGPT。

我认为Cursor是一个很好的早期大型语言模型应用的例子,它具有许多我认为在所有大型语言模型应用中都有用的特性。它提供了一个专门为编程任务设计的界面,同时集成了大型语言模型的能力使编程过程更加高效。

(借助 Mcp, 创造智能辅助软件,或许是一个市场)


大型语言模型应用的关键特性

上下文管理

  • 大型语言模型基本上会处理大量的上下文管理,自动维护和更新相关信息,使用户不必手动管理复杂的上下文。

模型协调

  • 它们会协调对大型语言模型的多次调用。以Cursor为例,其底层有用于所有文件的嵌入模型、实际的聊天模型以及用于代码差异的模型,所有这些都为您进行了协调。

专用图形界面

  • 一个非常重要但可能并未完全被重视的特性是应用程序特定的图形用户界面(GUI)及其重要性。
  • 文本很难阅读、解释和理解,而且您也不想直接通过文本执行某些操作。因此,最好是看到一个差异,例如红色和绿色的变化,您可以看到哪些内容被添加,哪些被删除。通过 Command + Y 接受或 Command + N 拒绝会容易得多,我不需要手动输入。因此,GUI 允许人类审计这些易出错系统的工作,并加快速度。

自主性滑块

  • 我想指出的最后一个特性是我称之为"自主性滑块"的东西。例如,在Cursor中,您可以进行Tab补全,您主要负责。您可以选择一段代码,然后按Command+K更改该段代码。您可以按Command+L更改整个文件,或者您可以按Command+I,它会完全自主地在整个仓库中执行任何操作。

这就是完全自主的代理版本。因此,您可以控制自主性滑块,并根据手头任务的复杂性,调整您愿意放弃的自主性程度。这种灵活性使得用户可以在不同情境下选择最适合的自主程度。

自主性滑块的概念可以应用于各种大型语言模型应用,让用户根据任务的复杂性和重要性来决定AI应该有多大的自主权。这种设计既保留了人类的控制权,又充分利用了AI的能力。

http://www.lqws.cn/news/534151.html

相关文章:

  • vue3 json 转 实体
  • 2D 基准情况下贝叶斯优化应用的概率推理
  • Ubuntu下布署mediasoup-demo
  • zabbix监控Centos 服务器
  • 波动方程能量守恒证明
  • dockers virbox 安装
  • COZE API上传文件 直接从前端发送就可以,而通过后端发请求给CozeAPI就不行,为什么?
  • Spring Boot 部署与打包方式详解(Jar vs War)
  • Windows命令连接符的安全风险分析与防御策略
  • SQLMesh:数据建模与版本控制的革新者
  • inverse-design-of-grating-coupler-3d(2)
  • 鸿蒙实时音视频流处理框架开发实战——基于HarmonyOS 4.0与分布式软总线的低延时高可靠架构
  • 从提示工程(Prompt Engineering)到上下文工程(Context Engineering)
  • PyTorch 模型镜像下载与安装指南
  • R 语言简介:数据分析与统计的强大工具
  • DSP学习笔记1
  • 声网对话式AI构建商品场景语义理解能力
  • 基于SpringBoot文件管理系统中的分片上传实现
  • 使用API有效率地管理Dynadot域名,出售账户中的域名
  • OpenCV CUDA模块设备层-----逐通道最小值比较函数min()
  • SpringBoot 中 @Transactional 的使用
  • 【LLM安全】MCP(模型上下文协议)及其关键漏洞、技术细节
  • 力扣网C语言编程题:搜索插入位置
  • mac电脑安装vscode的力扣插件报错解决办法
  • element-plus 按钮 展开/隐藏
  • 百面Bert
  • Ubuntu 搭建Kubernetes 1.28版本集群
  • 代码随想录day16二叉树4
  • 参展回顾 | AI应用创新场景:数据分析助手ChatBI、璞公英教学平台亮相2025四川国际职教大会暨产教融合博览会
  • 装修选木地板还是瓷砖,都有哪些优势?