DeepSeek革新:AI训练与推理的颠覆性转折,西方如何应对
- Rifx.Online
- Technology , Programming , Data Science
- 10 Feb, 2025
你应该从中得到什么?
你可能在过去一周看到太多关于DeepSeek的帖子:“中国说GPU被过度消费”,“西方如此浪费”,等等。如果你读过我的通讯,你已经知道我认为市场完全搞错了,而DeepSeek的结果只会推动更多的计算和需求。
有趣的是,已经有证据表明,自DeepSeek发布以来,H100的价格一直在上涨,而且该应用已经占据了ChatGPT每日活跃用户的25%。
所以,不,DeepSeek并没有击垮OpenAI,这对Meta也不是死刑;这些耸人听闻的说法都不是真的。但关于此的恐慌,硅谷高管确实惊慌失措,但原因完全不同。
因此,让我问你:你想知道是什么让西方感到恐惧吗? 如果是的话,以下是你的答案。
这是我最近发送给我的通讯读者的一整期通讯,内容很长,包含了从DeepSeek戏剧中必须掌握的所有关键信息。
如果你想阅读关于AI的未来(更短的)内容,真正切中要点的,点击下面,今天就可以免费开始。
AI的最棘手问题
DeepSeek(以下简称DS)挑战了西方对AI训练和推理理解的根本。虽然AI模型在理论层面上相对简单,但在实践中却非常复杂,而DS大大简化了这两个过程**。**
因此,为了理解DeepSeek所引入的关键创新,有必要在不使用复杂术语的情况下回顾前沿AI模型的本质——仅仅是任何人都能理解的基础知识。
Transformers,万物之根,10秒钟了解
所有模型,无论是 DeepSeek 还是 ChatGPT,都是由 Transformer 块串联而成,这些块处理输入的文本序列并预测下一个应该出现的单词,方式“类似于”人类的处理方式。
但“像人类一样处理”是什么意思呢?
如果我拿序列 “The Green Forest” 和 “The Blue Forest”,单词 ‘forest’ 有一个内在的含义(树木的集合),但它的上下文含义取决于序列中的其他单词;一个森林是绿色的,另一个是蓝色的。
因此,对于人类来说,单词的含义是其内在含义和上下文含义的总和。此外,要预测下一个单词,人类会加入他们在遇到序列之前所学到的知识。例如,对于序列 “Babe Ruth played…”,人类预测下一个单词“baseball”的唯一方法是知道 Babe Ruth 是谁。
因此,当人类交谈时,通过一个接一个地预测序列中的下一个单词,他们同时做了两件事;根据序列中其他单词的上下文对每个单词进行上下文化,并添加必要的知识。
我为什么告诉你这些? 好吧,因为如果你在想人类是如何创造出像我们一样说话的机器的,那是因为 Transformers 通过执行两个操作来复制完全相同的过程:
一个 Transformer 块。所有前沿模型都是这个图示的串联。
- 混合操作(Attention): 模型使用 注意力机制 让序列中的单词彼此交流。回到句子 “The green forest”,通过注意力机制,‘forest’ 可以用 ‘green’ 来更新其含义,吸收属性 green 并将其添加到内在含义中。这是通过注意力层完成的。
- 知识操作(MLP): 模型添加在训练过程中学到的知识。以句子 “Michael Jordan played…” 为例,要预测 ‘basketball’,模型需要添加序列中不存在的信息。这是在 MLP 层中完成的,因为 MLP 满足普遍逼近定理。
如前所述,我们的 AI 模型是由 Transformer 块串联而成,这些块利用这两个操作,如上图所示。
因此,每个块都是模型对序列理解的细化(就像逐步构建意义),通过根据序列中其他单词更新序列中每个单词的含义,并添加模型认为必要的额外信息,直到它发展出对序列的整体理解。今天的每一个前沿模型都是如此运作的。
但我们如何训练/运行这个? 让我们先关注训练。
训练流程
不深入低级细节,每当你看到有人谈论训练AI模型时,归根结底只有一件事:反复试验。
那么我们所说的反复试验是什么意思? 所有AI训练程序都是一个四步过程:
- 我们强迫模型进行预测,
- 我们衡量预测与真实值的匹配程度,
- 我们测量偏差(损失)
- 并且利用这个预测是模型参数(称为权重)的函数这一事实,将误差作为学习信号,即我们更新模型的参数,以便损失随着时间的推移而降低。
我们将从现在开始在整个文章中使用的类比:
想象一个AI模型就像一个DJ唱盘,有很多旋钮可以移动和旋转,以获得最佳音效。这个想法是你强迫发出一个声音,看看它听起来是否好,如果不好,DJ就调整旋钮以调音,直到最终听起来不错。
在AI模型训练中,模型就是唱盘,DJ是人类模型训练者,每个参数都是一个旋钮,声音的质量就是误差信号,告诉我们声音的好坏(模型的预测)。
唯一的区别在于,前沿模型是通用的,就像一个非常特定且巨大的“唱盘”,每个旋钮都处于特定位置,使得这个唱盘几乎可以让每一首歌听起来都很好,而无需DJ再进行干预。将这个拥有数十亿旋钮的巨大唱盘带到那个状态称为基础模型训练。
此外,我们有两种类型的反复试验训练:模仿学习和强化学习(RL);一种通过模仿先前的例子来训练模型(DJ模仿特定旋钮位置以生成我们知道听起来不错的特定声音),而另一种则意味着DJ和唱盘尝试不同的声音,进行探索,并利用这种探索寻找新声音。
这一切都很有趣,但问题是如何在实践中应用它。
理论转化为实践
之前看到的四个步骤在应用于像GPU这样的硬件时,转化为两条计算路径:
- 前向传播: 一系列导致预测的计算,类似于DJ按下播放键并聆听唱盘产生的声音,
- 反向传播: 被称为反向传播,指的是计算每个变量相对于损失和优化器状态的梯度,一系列替代计算告诉我们应该如何根据该预测更新每个权重。用DJ的比喻来说,这是DJ聆听生成的声音,评估其质量,并调整旋钮以查看声音质量是否改善的过程。
为了知道DJ需要移动旋钮多少,我们使用导数,它告诉我们每次旋钮旋转对声音质量的“变化率”或“梯度”。
此外,我们使用一种称为“优化器状态”的东西,帮助我们对每个旋钮进行更“稳定”和量身定制的调整。
现在我们知道了导致模型学习的两种计算类型,我们准备好训练我们的第一个模型。当然,我们将使用DeepSeek V3进行这个练习,以及DeepSeek声称使用的NVIDIA H800作为硬件。
DeepSeek v3 (DSv3) 是一个6710亿参数的模型(6710亿个我们之前讨论的权重,或者如果比喻有帮助的话是旋钮),具有370亿个活跃参数,使其成为一个专家混合模型,或MoE模型,其中模型被“分解”为专家。
重要的是要注意,专家混合模型并不意味着将模型拆分为不同的模型,这是错误的,并且是一个广泛的误解(这个错误最近被David Friedberg在All-in播客中犯下)。MoE模型打破了MLP层;注意力层保持不变。用DJ的比喻来说,这意味着为了生成声音,唱盘只激活370亿个旋钮,而不是6710亿个可用的旋钮。
今天的目的,不用担心MoE。你只需要知道MLP层是极其计算密集型的。因此,MoE的整个意义在于通过将它们分解为部分,我们有效地将模型的计算需求按激活的专家数量的因子进行分割。在这种情况下,我们将预测工作量减少了95%。
现在,让我们学习如何绘制GPU集群。
构建你的集群
DS使用了一个由2,048个NVIDIA H800组成的集群, 每个最高可达FP16时的1,516 TFLOPs。 这意味着每个GPU每秒可以执行1500万亿次浮点运算(带小数),比NVIDIA最先进的H100(1,979 TFLOPs)少24%,当每个参数的精度为2字节(FP16)时。
暂时不用担心这些数字。但在GPU上训练模型到底意味着什么呢?
可以把GPU想象成计算器。要进行计算,它们需要两个东西:计算核心(计算发生的地方)和用于读取输入和写入结果的内存。
因此,在GPU上运行的任何工作负载都涉及GPU核心(超级计算器)和内存之间的相互作用,核心读取数据以进行计算并将结果写回。在今天的讨论中,你只需要知道,读取和写入内存是需要时间的,如果没有优化,这段时间就是“计算器”没有计算的时间。
因此,AI实验室的目标是最小化空闲时间,确保计算器在每一个可能的秒数内都在工作。
虽然GPU有相当复杂的内存层次结构(寄存器、L1和L2缓存、共享内存和全局内存),但为了简单起见,我们将其统称为一块“内存”,因为今天讨论的大多数DS创新更多是关于最小化总的读/写次数,而不是优化数据从何处读取/写入。
但等等,这里有一个问题,单个H800只有80GB的RAM,所以671 GB的模型无法放入一个GPU中! 我们需要很多。天真地说,我们至少需要九个。可悲的是,我们需要更多。
那么需要多少? 为了回答这个问题,让我们看看整体步骤,看看在哪里需要内存:
- 我们开始前向传播。计算核心读取第一层(第一个Transformer块),生成每层的输出(下一层的输入,如前所述)。结果被写入内存,并加载下一个Transformer块,直到整个模型被处理完毕。这意味着模型需要存储在内存中。
- 每个Transformer块的结果存储在内存中,不仅因为它们是下一个块的输入,还因为它们在反向传播中是必需的。这意味着这些结果(称为激活)也需要存储在内存中。
- 一旦模型输出预测,我们使用它来衡量我们的损失(即预测的好坏)。
- 这开始了反向传播,简而言之,这意味着引入两个新计算:梯度(模型中每个权重(每个旋钮)相对于损失的变化率,指示每个权重的值如何影响该损失)和优化器状态,它将告诉我们如何调整每个权重(信号指示我们需要旋转每个旋钮的多少)。再一次,这意味着我们还需要存储梯度和优化器状态。
长话短说,我们实际上需要数千个GigaBytes。在DS的情况下,这个数字最终达到了5120 GB,或者说64个完整的GPU。
所以,问题是,我们如何在这么多GPU之间“划分”训练,更重要的是,我们如何将64个GPU扩展到2,048个?
并行化方法
如您所猜测的,如果我们在64个GPU上训练一个模型实例,我们需要将其拆分(不仅是模型,其他所有内容也一样)。
为此,有很多方法:
- 管道并行(PP),按层划分模型(沿着其长度,即两个Transformer块到GPU1,两个到GPU2……)
- 张量并行(TP),按激活维度划分模型(按其宽度而不是长度,即GPU1获取模型中所有层的一部分)
- 数据并行(DP) 将集群划分为GPU组,每个组接收不同的数据部分。这不是拆分模型,而是训练数据。
- 序列并行(SP) 涉及将数据序列拆分为文本块,并将其发送到每组GPU。这与DP的方式相同,但我们不仅将100万个序列的数据集划分为25万个的组,还拆分每个序列。
- 专家并行(EP)。通过对MLP层进行分区,我们可以在多个GPU之间分配专家(GPU1获取四个专家,GPU2获取另外四个……)。
- 通过像ZeRO-1并行这样的框架,优化器状态并不是存储在每个GPU上,而是分布在多个GPU之间。
那么,DeepSeek-V3的情况如何呢?
根据论文,他们使用一个2048 GPU的集群,包含256个8-GPU节点。他们使用了上述四种并行化方法:PP(16-way),EP(64-way),DP(DS未提及,因为显然是32-way),和64-way ZeRO-1。
换句话说,DSv3是在32个如下面所示的集群上训练的。但这在实践中意味着什么?
- 通过PP,每个模型实例被拆分到16个GPU上。因此,每个GPU获得模型层的1/16。
- 通过EP,每个模型实例的专家在64个GPU之间分配。因此,每个GPU获得每个MLP层的1/64的专家(EP)。
- 与EP类似,每个GPU获得模型优化器状态的1/64(ZeRO-1)。
- 再次,与前两者类似,每个GPU获得模型梯度的1/64。然而,由于这是一个MoE,只有5%的权重被激活,因此需要计算的梯度减少了95%。通俗地说,如果只有5%的参数参与预测,学习信号仅适用于这些,而不是其他,从而节省了大量内存。
- 由于PP,每个GPU必须存储其层的激活,以便将其发送到负责下一层的GPU,因此它们存储1/64的实例激活。
然而,他们不是在使用一个2048 GPU的集群吗?如果我们“只”需要64个GPU来训练一个模型实例,为什么还要使用2048个?
关键在于并行化。如果我有一个64-GPU的集群,我理论上可以训练DSv3。但这需要多长时间? 答案是几年,确切地说是33年。因此,如果希望在合理的时间内训练模型,我们需要并行化并训练多个实例,而不是一个。
但是等等,如果我们有32个64-GPU的集群,都在训练同一个模型的不同实例,这难道不意味着我们在训练32个不同的模型吗?
是的……也不是,因为我们同步学习*。这引入了另一个关键因素:通信。
通信
在我们讨论通信之前的一些数字。
DS报告了NVLink和Infiniband (IB)的速度分别为160和50GB/s,用于节点和跨节点通信。换句话说,节点内的GPU以160GB/s的速度共享数据,而不同节点中的GPU的速度降至50GB/s。
随着我们将模型和数据分开,GPU必须持续进行通信,这是一个可改善但不可避免的问题(但在此方面DS显著提高了结果)。
例如,对于一个正在被GPU处理的token,该token可能会因为专家并行化而被分配给另一个集群中远离的GPU,这意味着该token必须通过IB电缆传输。当token“传输”时,后者的GPU必须“等待”直到该token到达才能执行计算。
这基本上意味着存在两种类型的通信路径:
- 节点内通信,当来自同一节点的GPU进行通信时。这种通信是通过速度更快的NVLink电缆完成的。
- 跨节点通信,当来自不同节点的GPU进行通信时。这种通信通过IB电缆进行。
在DSv3的情况下,由于广泛的并行化努力,许多通信路径正在进行。
但我们仍然没有解释之前提出的问题:当然,64-GPU集群中的不同节点中的GPU会相互通信但我们不是仍在训练32个不同的模型实例吗?(回想一下我们有2,048个GPU)。
答案是否定的,这要归功于数据并行化和全局训练更新。
扩展到 2,048 个 GPU
一旦给定集群的训练步骤完成,DS 会在所有 32 个集群之间执行一个通信步骤,以便它们共享所学的内容。这个过程称为全到全通信,并分为四个步骤:
内部 64 个 GPU 集群:
- 全量调度: 由于我们使用的是 ZeRO-1 并行性,集群中的每个 64 个 GPU 拥有 1/64 的优化器状态。简单来说,每个 GPU 可以更新模型权重的一小部分。因此,在该 GPU 中存储的权重更新后,新值会广播到集群中的其他 GPU。
- 归约: 当每个 GPU 接收到来自其他 GPU 的新权重时,它们会更新自己尚未更新的权重。在这个过程结束时,64 个 GPU 集群中的所有 GPU 都已更新。
注意:如果我们没有专家并行化,这一步就不必要,因为 GPU 不需要知道它们自己不存储的层的权重状态。
3. 全量调度: 一旦每个 64 个 GPU 的集群更新了所有权重,我们现在有 32 个相同模型的版本,因为它们使用不同的训练数据进行训练。我们希望所有 32 个集群拥有相同的模型并继续进行下一轮,因此它们需要与其他集群共享其权重。
4. 归约: 当 32 个集群中的每个集群接收到来自其他 31 个集群的数据时,它们通过某种聚合方法进行归约,通常是平均值。换句话说,它们计算每个集群新权重的平均值。
此时,每个 DP 组都有一个与其他 31 个集群相同的模型实例。
值得注意的是,这个过程大多是同步的,这意味着整个训练会暂停,以便在更大的 DP 组之间进行通信。这本身就是一个巨大的问题,DS 在其研究中并未涉及,通常通过低通信方法来解决,例如 Google 的 Diloco。
现在,我们终于准备好看看 DeepSeek 在这一切中提出了什么,从 DualPipe 开始。
DeepSeek的贡献
DualPipe
正如我们之前提到的,训练涉及两个计算路径:前向和后向。从理论上讲,前向传递首先进行,以计算预测,然后执行后向传递,以便利用误差信号更新模型。
相反,DeepSeek 提出的方案是“重叠”这两个路径;使它们同时发生。
假设我有两组独立的数据要发送到模型中。第一组数据的后向传递依赖于先进行前向传递(为了从损失信号中学习,我必须进行预测并测量误差),但它与第二组数据的两个路径是独立的。
因此,一旦我开始第一组数据的后向传递,我可以立即开始第二组数据的前向传递。而在我开始第二组数据的后向传递时,我可以开始执行其他计算,比如通信。
长话短说,DualPipe 的目的是尽可能并行化许多独立计算,以最小化 GPU 空闲时间。如下图所示,您可以看到 GPU 如何同时处理计算和通信指令。
DS 的贡献 nº1:通过在整个 DP 组中重叠前向、后向和通信任务,实现接近零的 GPU 空闲时间。
简单来说,DS 的训练比传统模型训练快得多且更高效,这意味着他们需要使用更少的 GPU(作为参考,Llama 3.1 405B 在一个大 8 倍的集群上训练)并且使用性能更差的 GPU(性能比 Meta 使用的低 24%)。
而且,不,这并不意味着您需要更少的 GPU。相反,您可以用更少的资源做更多的事情,扩展您的集群的动力依然存在。
但是,尽管 DualPipe 对他们来说确实是一个成功的故事,我们仍然面临一个问题:专家并行性。
扩展 MoEs 是困难的。
正如我们所回顾的,DS 将 MoE 层(MLP 层)分配到 64 个组中,将每个层的 1/64 部分发送到每个 GPU。然而,MoE 模型总是面临专家平衡的问题。
如果某个专家获得了知识优势,它开始比其他专家被选择得更频繁。这可能导致专家崩溃,即一些专家几乎不被选择,甚至根本不被选择。
从理论上讲,这在纸面上是无关紧要的(实际上并不是,但理论上并不是悲剧),但如果你试图最大化平均 GPU FLOP 使用,这绝对是悲剧。如果 GPU1 中的专家被频繁选择,而 GPU56 中的专家却没有,那么一个 GPU 就是在“加班”,而另一个则处于闲置状态。这非常糟糕,因为你可能会过载某些 GPU,从而导致整体延迟(而且你也可能会烧坏它们)。
因此,理想情况下,你希望所有专家平均被选择,以便尽可能多地使用所有 GPU。
在 DS 出现之前,大多数人通过辅助损失公式来解决这个问题,如果模型尝试过于频繁地选择某个专家,就会对模型进行惩罚。这自然导致了更平衡的专家选择分布。然而,这并不理想,因为如果某个专家更优秀,它应该被更频繁地选择,对吧? 不出所料,这种方法会降低性能。
相反,DS 通过在模型进行预测时动态添加偏置项来实现高效的专家平衡。如果某个专家在当前数据中被频繁选择,这个项会惩罚被选择过多的专家,并激励模型选择其他专家(反之亦然)。
使用 DJ 的类比,这个“偏置项”就像是第二个 DJ,仔细计算主 DJ 使用的旋钮,建议使用主 DJ 忽略的其他旋钮,以激励所有旋钮均匀使用。
DS 的贡献 nº2:实现了被认为不可能的事情。通过一种不降低性能的专家平衡方法扩展小专家的 MoE,为 MoE 成为默认并广泛改进 AI 推理打开了大门。
DS 还取得了另一个非常重要的里程碑,正如前面提到的,他们成功地以 FP8 精度训练了其模型。
原生 FP-8
DeepSeek 最显著的胜利可能是成为第一个在 FP8 精度上训练的模型,这意味着每个权重包含 1 字节的信息。最大的后果是模型每个参数仅重 1 字节。
因此,如果我们有 6710 亿个参数,我们需要 671 GB 的内存(如果是 FP16,我们需要 1342 GB)。此外,这还意味着理论计算吞吐量翻倍至 3,032 FLOPs,这变得更加加速,因为每次预测仅激活模型的 5%。
这就是为什么 DeepSeek 运行如此快速且便宜的原因。
但他们是如何实现这一点的? 这可能是整个研究中最迷人的部分;这简直是一件艺术作品。简而言之,DeepSeek 前向和后向传递的计算图是在不同精度、量化和反量化之间优雅执行的舞蹈。
选择你的精度非常重要。如果选择 FP8,模型的参数可以取更小范围的数字。然而,精度越高,能够处理的数字就越多(可以将其视为权重能够处理更多小数,以便更准确地修改/运行)。另一方面,精度越高,计算和内存的成本也越高。
因此,尽管逻辑上的激励是尽可能追求更高的精度,但这在实际应用中并不可行。因此,DS 的目标是让大多数计算在 FP8 中进行,但在必要时增加/减少精度。
DS 贡献 nº3:成功首次训练原生 FP8 模型,在必要时平衡不同精度,同时仍允许模型以 FP8 存储,并保证大多数计算在较小精度下进行。通过这一点,DS 向世界展示了原生 FP8 训练的道路。
现在,我们继续讨论推理改进。
推理
一旦模型训练完成并且我们想要运行它,我们就不需要再更新权重;相反,我们只需进行预测。
这意味着只有一条路径:从输入到预测。模型接收一个输入序列并预测下一个词,将这个词附加到序列中,然后重复这个过程。
然而,这个过程有一个转折。
缓存的必要性
我们提到的混合操作,注意力,是确定性的。这意味着在一个序列中两个单词之间的注意力在每次预测序列中的新单词时都有相同的结果。因此,为了避免冗余,推理中的注意力机制不是全到全的计算,而是单到全的计算。
那么这是什么意思呢?
本质上,已经处理过的单词之间的先前注意力被缓存,对于每个新的预测,我们只需从最后预测的单词对之前的单词进行注意力计算,并提取其他单词的结果。
如下所示,在非缓存注意力中,我们对每个单词与其所有前面的单词进行注意力计算(这意味着单词不能“关注”未来的单词,当然,它们也不能关注自己)。
例如,‘dog’对‘big’的注意力计算将在每次新的单词预测中重复,因此一旦完成,我们就将其缓存,并在需要时从内存中提取结果。
这就是我们所称的KV缓存。
从代数的角度来看,这意味着对于每个新的预测,注意力变成了矩阵-向量乘法,而不是矩阵-矩阵乘法,这就是为什么在理论上,GPU并不是推理的最佳选择(它们在后者上表现出色)。
那么这对底层硬件意味着什么呢?
处理两个内存问题
虽然训练是一个复杂得多的过程(你现在肯定能体会到这一点),但推理并不免于其复杂性。这里的主要问题是,如前所述,我们必须缓存一些注意力计算。
尽管我在 Notion 文章中提供了所有必要的细节 {💾 KV 缓存},KV 缓存是一个相当大的问题,因为 它在标准形式下随序列长度呈二次增长。
如果要处理的文本序列大小翻倍,KV 缓存将增加四倍;如果增加三倍,缓存将增加九倍。在某些情况下,KV 缓存的内存需求可能会超过模型本身,达到数百甚至数千 GB,进入了 TB 级别的区域!
为了解决这个问题,DS 引入了一种技术,可以压缩这个缓存,并仅在计算时扩展它。它不是以“原样”存储缓存,而是首先计算并存储一个压缩形式。然后,每当需要缓存的激活时,它们以压缩形式提取,扩展回原始形式,并作为前向传播的一部分使用。
关键在于,虽然 KV 缓存仍然像往常一样使用,但它以压缩形式存储,据来源称,大小约减少了 95%。因此,缓存的内存大小几乎减少了 95%。
DS 的贡献 nº4:在没有明显性能损失的情况下,实现 95% 的 KV 缓存内存需求减少。
他们引入的另一个变化是多令牌预测。
同时采样多个令牌
我不会过多地深入细节,因为这很容易理解。这个想法是模型可以在每次预测中预测多个单词,而不是标准的一个。
在某种程度上,你可以将多令牌预测器视为多头怪兽,每个头部就像希腊神话中的九头蛇一样,预测其独立的单词。
值得一提的是,DeepSeek 引入了这种多令牌预测机制作为一种训练改进,而不是推理改进。虽然这听起来像是提升推理效率的显而易见的技术,但令人惊讶的是,这也改善了训练。
他们认为模型的多个头意味着预测先前令牌的头会考虑未来令牌的预测,反之亦然。因此,模型在“展望未来”,进行的预测不仅考虑已经预测的内容,还考虑接下来将要预测的内容。
可以把这看作是一个人根据接下来要说的话更加小心地选择所说的词。然而,我不认为这是一项巨大的贡献,因为这种技术已经以类似的方式多次应用,并且得到了类似的结果。
最后,我们达到了目的地:你为什么会在意这些,SV又为什么对此感到恐慌?
这是智能效率之年!
如果从DeepSeek的研究中得出一个结论,那就是仍然有很多改进技术的空间,使训练和推理能够更高效地执行。
如果从上周市场的表现中得出一个结论,除了它们毫无头绪,那就是以完全不考虑成本或效率的方式提升智能的做法将不再被容忍。
虽然代价主要是由NVIDIA承担的,可能是因为大多数AI投资者都在那一边,而不是其他公司,但实际上,DeepSeek的结果对他们来说比其他任何事情都更为有利,这对Hyperscaler及其前沿实验室发出了强烈警告,即“无论代价”地推动前沿已不再被接受。
简单来说,如果DeepSeek的模型便宜100倍,人们真的不在乎OpenAI是否领先10%。
DeepSeek对西方AI实验室来说是一个噩梦,并不是因为它们揭露了什么特别的东西,而是确认了它们盈利的道路现在变得比以往任何时候都更加艰难。
这些实验室已经意识到,如果中国继续引领AI的帕累托前沿(尽管美国拥有最好的全方位模型,但这些模型都无法与DeepSeek实施的成本效率竞争,也许只有Google可以),人们将继续涌向中国模型;这真的不算难。
DeepSeek并不是对NVIDIA或其他任何人的死刑;这是一个警告,他们最好开始在智能部署上变得更具竞争力和效率。否则,他们将很快看到所有用户逃离。
至于你和我,这里有一些考虑:
- 上周的事件也发出了一个明确的信号,即AI中的技术护城河并不存在,如果存在的话,也只是短暂的。
- 计算的角色比以往任何时候都重要;那些拥有超大计算资源的AI实验室将具有显著优势,因为它们将能够在大规模上运行推理模型,持续的时间会更长(无论是在训练还是推理方面)。
- 反过来,这意味着,除非中国对此采取措施,否则我们很快可能会看到只有那些资金雄厚的人才能访问的昂贵产品。这就像AI实验室之间的情况一样,可能会在消费者之间造成不平等,一些人可以支付费用访问这些更长思考的模型,而其他人只能使用便宜的模型。如果这个规模法则是有效的,便宜 = 愚蠢,而那些能够访问o3的人将会在生产力上拥有巨大的优势,远超那些以每月20美元的价格运行GPT-4o的人。
- 对于禁止中国模型的压力将会非常巨大,一些参议员已经在准备攻击你权利的法案,并不是因为‘中共盗取你的数据’(他们根本不在乎你的隐私),而是因为担心中国模型让AI初创公司及其Hyperscaler支持者没有机会盈利。
- DS的提炼(今天没有提到 但在我之前对R1的报道中提到过)证明了在消费端硬件上运行极其强大的模型是非常可能的。很可能在今年,你甚至可能考虑购买高性能的笔记本电脑或台式电脑,并开始在自己个人设备的舒适和安全中运行像DeepSeek这样的强大推理模型。很有趣的是,推理模型确实给OpenAI带来了一些喘息的机会,但它们也可能使整个商业模式变得毫无价值,除非他们真正提供一个无法在其他地方访问的模型。在某种程度上,他们可能在自己身上打开了潘多拉的盒子,因为推理模型可以小得多,并且与中国的效率相结合,可以在家中运行。
- 只要开源能够生存,我们将看到公司在努力保持控制的同时,加快AI产品的发布速度;毫无疑问,DS迫使OpenAI发布了o3-mini。没有系统卡,没有安全评估,只是为了继续证明每月200美元的高价是合理的绝望之举。
- 反过来,如果你相信AI的风险,你会不高兴地听到实验室可能会比以前更削减许多环节,迅速将产品推向市场。无论你是否相信AI存在生存风险,毫无疑问AI是强大的,而笨拙的交付永远不是一个好主意。
我只能感谢你
如果你是那些勇敢的灵魂之一,已经读到了这篇实话实说的无尽论文,你现在完全掌握了人工智能的前沿动态。
你已经学习了:
- 人工智能训练和推理的关键方面
- 学习了集群是如何构建和起草的
- DeepSeek 对世界无可否认的重要贡献
- 以及这一切对你我意味着什么的考虑。