0

0

不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手

PHPz

PHPz

发布时间:2023-09-19 13:05:01

|

967人浏览过

|

来源于51CTO.COM

转载

开源社区的一位开发者Georgi Gerganov发现,自己可以在M2 Ultra上运行全F16精度的34B Code Llama模型,而且推理速度超过了20 token/s。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手

M2 Ultra的带宽达到了800GB/s,这在其他人通常需要使用4个高端GPU才能实现的情况下

而这背后真正的答案是:投机采样(Speculative Sampling)。

乔治的发现立刻引发了人工智能界大佬们的讨论

Karpathy转发评论道,「LLM的投机执行是一种出色的推理时间优化」。

不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手

「投机采样」加速推理

在这个例子中,Georgi借助Q4 7B quantum草稿模型(也就是Code Llama 7B)进行了投机解码,然后在M2 Ultra上使用Code Llama34B进行生成。

简单讲,就是用一个「小模型」做草稿,然后用「大模型」来检查修正,以此加速整个过程。

不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手

github地址:https://twitter.com/ggerganov/status/1697262700165013689

根据Georgi的介绍,这些模型的速度分别如下:

F16 34B:每秒约10个令牌

需要进行改写的内容是:Q4 7B:每秒约80个令牌

以下是一个没有使用投机采样的标准F16采样示例:

在加入投机采样策略之后,速度可以达到每秒约20个标记

根据Georgi的说法,生成内容的速度可能会有所不同。然而,这种方法在代码生成方面似乎非常有效,因为大多数词库都能被草稿模型正确猜测

使用「语法采样」的用例也有可能从中受益匪浅

不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手

投机采样是如何实现快速推理的?

Karpathy根据此前谷歌大脑、UC伯克利、DeepMind的三项研究,做出了解释。

不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手

请点击以下链接查看论文:https://arxiv.org/pdf/2211.17192.pdf

不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手

论文地址:https://arxiv.org/pdf/1811.03115.pdf

不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手

论文地址:https://arxiv.org/pdf/2302.01318.pdf

SlidesAI
SlidesAI

使用SlidesAI的AI在几秒钟内创建演示文稿幻灯片

下载

这取决于以下不直观的观察结果:

在单个输入token上转发LLM所需的时间,与在K个输入token上批量转发LLM所需的时间相同(K比你想象的要大)。

这个不直观的事实是因为采样受到内存的严重限制,大部分「工作」不计算,而是将Transformer的权重从VRAM读取到芯片上缓存中进行处理。

不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手


为了完成读取所有权重的任务,最好将它们应用于整个批量的输入向量

我们之所以不能天真地利用这一事实,来一次采样K个token,是因为每N个token都取决于,我们在第N-1步时采样的token。这是一种串行依赖关系,因此基线实现只是从左到右逐个进行。

现在,一个巧妙的想法是使用一个小而廉价的草稿模型,首先生成一个由K个标记组成的候选序列——「草稿」。然后,我们将所有这些信息一起批量送入大模型

根据上述方法,这与只输入一个token的速度几乎一样快。

然后,我们从左到右检查模型,以及样本token预测的logits。任何与草稿一致的样本都允许我们立即跳转到下一个token。

如果存在分歧,我们将放弃草稿模型,并承担进行一些一次性工作的成本(对草稿模型进行采样,并对后续的标记进行前向传递)

这在实践中行之有效的原因是,大多数情况下,draft token都会被接受,因为是简单的token,所以即使是更小的草稿模型也能接受它们。

当这些简单的token被接受时,我们就会跳过这些部分。大模型不同意的困难token会「回落」到原始速度,但实际上因为有额外的工作会慢一些。

所以,总而言之:这一怪招之所以管用,是因为LLM在推理时是受内存限制。在「批大小为1」的情况下,对感兴趣的单个序列进行采样,而大部分「本地 LLM」用例都属于这种情况。而且,大多数token都很「简单」。

不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手

HuggingFace的联合创始人表示,340亿参数的模型在一年半以前的数据中心之外,看起来非常庞大和难以管理。现在只需使用笔记本电脑就可以轻松处理了

不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手

现在的LLM并不是单点突破,而是需要多个重要组件有效协同工作的系统。投机解码就是一个很好的例子,可以帮助我们从系统的角度进行思考。

不用4个H100!340亿参数Code Llama在Mac可跑,每秒20个token,代码生成最拿手

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6144

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

816

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1065

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1342

2024.03.01

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

765

2026.01.21

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2073

2024.08.16

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

109

2026.01.26

edge浏览器怎样设置主页 edge浏览器自定义设置教程
edge浏览器怎样设置主页 edge浏览器自定义设置教程

在Edge浏览器中设置主页,请依次点击右上角“...”图标 > 设置 > 开始、主页和新建标签页。在“Microsoft Edge 启动时”选择“打开以下页面”,点击“添加新页面”并输入网址。若要使用主页按钮,需在“外观”设置中开启“显示主页按钮”并设定网址。

16

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 3.6万人学习

Go 教程
Go 教程

共32课时 | 4.3万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号