0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

特斯拉前AI总监Andrej Karpathy:大模型有内存限制,这个妙招挺好用!

CVer 来源:机器之心 2023-09-04 15:43 次阅读

Andrej Karpathy 用通俗易懂的语言介绍了 speculative execution。

「如今,LLM(大语言模型)并不是单点突破的 —— 而是需要多个重要组件有效协同工作的系统。Speculative decoding 是帮助我们从系统角度思考的一个很好的例子。」爱丁堡大学博士生符尧表示道。

58f1639a-4a73-11ee-97a6-92fbcf53809c.png

符尧上述观点评论的是特斯拉AI 总监、年初重回 OpenAI 的 Andrej Karpathy 刚刚发布的一条推特。

人形机器人公司 1X Technologies 的 AI 副总裁 Eric Jang 评价道:「Karpathy 很好的解释了 LLM 的 speculative execution。其他自回归模型可能会以类似的方式加速。连续(扩散)模型可能从 K 步中获益较少(可能在第 1 步后偏离猜测),但可以将其应用于 VQ-latents 的离散代码。」

590ef96e-4a73-11ee-97a6-92fbcf53809c.png

看完上述评价,我们大概也了解了,Karpathy 说的「Speculative execution」,这是优化技术的一类,采用这个技术的计算机系统会根据现有信息,利用空转时间提前执行一些将来可能用得上,也可能用不上的指令。如果指令执行完成后发现用不上,系统会抛弃计算结果,并回退执行期间造成的副作用(如缓存)。

为了让大家更好的理解 Karpathy 的内容。我们先介绍一下「Speculative decoding」方法,对后续理解更加有益,其主要用于加速大模型的推理。据了解,GPT-4 泄密报告也提到了 OpenAI 线上模型推理使用了它(不确定是否 100%)。

关于「Speculative decoding」,已有几篇重要文献可供参考,这也是 Karpathy 为了写这则推特所参考的论文,包括谷歌今年 1 月发表的论文《Fast Inference from Transformers via Speculative Decoding》、DeepMind 今年 2 月发表的论文《Accelerating Large Language Model Decoding with Speculative Sampling》,以及谷歌等机构 2018 年的论文《Blockwise Parallel Decoding for Deep Autoregressive Models 》 。

简单来说,「Speculative decoding」使用两个模型:一个是原始目标模型称为大模型,另一个是比原始模型小得多的近似模型称为小模型。主要思想是先让小模型提前解码多个 token 进行猜测,并将它们作为单个 batch 输入到一个大模型中进行审核修正,其效果和直接用大模型解码等价。如果小模型猜测的不准确,那么大型模型会放弃小模型预测的 token,继续使用大型模型进行解码。

由于小模型计算量小,从而大大减少了内存访问需求。

介绍完「Speculative decoding」,我们再回到 Karpathy 的推特。Karpathy 是针对下面内容回复的。

59286e94-4a73-11ee-97a6-92fbcf53809c.gif

Karpathy 表示:对于 LLM 来说,「Speculative execution」 是一种极好的推理 — 时间优化方法。

它取决于以下方面:在单个输入 token 上分发 LLM 所花费的时间与在批处理中分发 K 个输入 token 所花费的时间一样多。产生这样的原因是因为采样严重受内存限制:模型运行时的大部分工作不是在做计算,而是从 VRAM 读取 transformer 的权重到片上缓存进行处理。如果你要做的工作是来读取这些权值,你可以把它们应用到一整批输入向量上。

但是我们不能一次性采样一批 K 个 token,因为每 N 个 token 都取决于我们在第 N-1 步采样的 token。由于存在串行依赖性,因此基线实现只是从左到右逐一进行。

现在最聪明的想法是使用一个小而便宜的草稿模型(draft model),先生成 K 个 token 候选序列,即一个「草稿」。然后用大模型批量的将输入组合在一起。速度几乎与仅输入一个 token 一样快。接着从左到右遍历模型和样本 token 预测的 logits。任何与「草稿」一致的样本都允许立即跳到下一个 token。如果存在分歧,那么就丢弃「草稿」并承担一些一次性工作的成本(对「草稿」进行采样并为所有后续 token 进行前向传递)。

这种方法起作用的原因在于,很多「草稿」token 都会被接受,因为它们很容易,所以即使是更小的草稿模型也能得到它们。当这些简单的 token 被接受时,我们会跳过这些部分。大模型不同意的 hard token 会回落到原始速度,但由于一些额外的工作,实际上速度会慢一些。

Karpathy 表示,这个奇怪的技巧之所以有效,是因为 LLM 在推理时受到内存限制,在对单个序列进行采样的 batch size=1 设置中,很大一部分本地 LLM 用例都属于这种情况。因为大多数 token 都很「简单」。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    30097

    浏览量

    268370
  • OpenAI
    +关注

    关注

    9

    文章

    1042

    浏览量

    6403
  • 大模型
    +关注

    关注

    2

    文章

    2321

    浏览量

    2466
  • LLM
    LLM
    +关注

    关注

    0

    文章

    272

    浏览量

    304

原文标题:特斯拉前AI总监Andrej Karpathy:大模型有内存限制,这个妙招挺好用!

文章出处:【微信号:CVer,微信公众号:CVer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    抛弃8GB内存,端侧AI模型加速内存升级

    电子发烧友网报道(文/黄晶晶)端侧AI模型的到来在存储市场产生了最直接的反应。年初在我们对旗舰智能手机的存储容量统计中,16GB内存+512GB存储成为几乎所有旗舰机型都提供的选择。毕竟AI
    的头像 发表于 11-03 00:02 3962次阅读
    抛弃8GB<b class='flag-5'>内存</b>,端侧<b class='flag-5'>AI</b>大<b class='flag-5'>模型</b>加速<b class='flag-5'>内存</b>升级

    为什么ai模型训练要用gpu

    GPU凭借其强大的并行处理能力和高效的内存系统,已成为AI模型训练不可或缺的重要工具。
    的头像 发表于 10-24 09:39 191次阅读

    特斯拉将获xAI模型授权

    近日,埃隆·马斯克旗下的创新企业x.AI特斯拉就一项重大合作展开讨论,双方拟就特斯拉获得xAI模型授权达成正式协议。据悉,特斯拉将利用这一
    的头像 发表于 09-09 17:24 409次阅读

    可以用os_malloc() 分配多少内存哪些限制

    我可以用 os_malloc() 分配多少内存哪些限制
    发表于 07-15 06:32

    无任何数学公式理解大模型基本原理

    为什么是一个一个蹦出来的    大模型的本质 特斯拉AI总监Andrej
    的头像 发表于 06-25 14:53 1330次阅读
    无任何数学公式理解大<b class='flag-5'>模型</b>基本原理

    STM CUBE AI错误导入onnx模型报错的原因?

    使用cube-AI分析模型时报错,该模型是pytorch的cnn转化成onnx ``` Neural Network Tools for STM32AI v1.7.0 (STM.
    发表于 05-27 07:15

    为什么Cubeai导入模型的时候报错[AI:persondetection] ModuleNotFoundError: No module named \'_socket\'?

    在使用CubeIde导入ai模型进行模型分析的时候报错[AI:persondetection] ModuleNotFoundError: No module named \'_sock
    发表于 05-21 06:44

    用DMA模式多路AD采集时,后台AD是多久采集一次数据,AD不停采集不停刷新DMA地址里的数据?

    用着DMA挺好用,就是有点小疑问 用DMA模式多路AD采集时,后台AD是多久采集一次数据,AD不停采集不停刷新DMA地址里的数据?还是从DMA指定地址里把数据读取出后就会重新填充新数据进去。 这个采集频率最高大家用过多少的!
    发表于 05-10 07:17

    防止AI模型被黑客病毒入侵控制(原创)聆思大模型AI开发套件评测4

    神经网络的电路实现 // 比如说我们已经一台神奇的AI算力黑科技在默默工作... endmodule // 我们召唤出这个神秘的AI模型
    发表于 03-19 11:18

    使用cube-AI分析模型时报错的原因哪些?

    使用cube-AI分析模型时报错,该模型是pytorch的cnn转化成onnx ``` Neural Network Tools for STM32AI v1.7.0 (STM.
    发表于 03-14 07:09

    谷歌模型软件哪些好用

    谷歌模型软件的好用程度可能因个人需求和技能水平而异,但以下是一些广受欢迎的谷歌模型软件,它们在各自的领域内有着出色的表现。
    的头像 发表于 02-29 18:17 994次阅读

    AI模型可以取代大学教育吗?

    AI模型
    电子发烧友网官方
    发布于 :2024年01月02日 16:27:52

    AI模型怎么解决芯片过剩?

    AI模型
    电子发烧友网官方
    发布于 :2024年01月02日 15:42:05

    AI模型可以设计电路吗?

    AI模型
    电子发烧友网官方
    发布于 :2024年01月02日 15:09:29

    jvm内存模型内存结构

    JVM(Java虚拟机)是Java程序的运行平台,它负责将Java程序转换成机器码并在计算机上执行。在JVM中,内存模型内存结构是两个重要的概念,本文将详细介绍它们。 一、JVM内存
    的头像 发表于 12-05 11:08 889次阅读