苹果芯跑大模型不用降计算精度,投机采样杀疯了,GPT-4也在用
来源:51CTO.COM
时间:2023-09-02 08:26:32 206浏览 收藏
本篇文章向大家介绍《苹果芯跑大模型不用降计算精度,投机采样杀疯了,GPT-4也在用》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。
Code Llama一出,大家都期待有人能继续进行量化瘦身,幸好它可以在本地运行
果然是llama.cpp作者Georgi Gerganov出手了,但他这回不按套路出牌:
在不进行量化的情况下,即使使用FP16精度,Code LLama的34B代码也能在苹果电脑上运行,并且推理速度超过每秒20个token
图片
现在只需使用具有800GB/s带宽的M2 Ultra,就可以完成原本需要4个高端GPU才能完成的任务,而且编写代码的速度也非常快
老哥随后揭示了秘诀,答案非常简单,就是进行投机采样(speculative sampling/decoding)
图片
触发了许多行业大咖的关注
OpenAI创始成员Andrej Karpathy评价这是一种非常出色的推理时优化,并给出了更多技术解读。
范麟熙,一位英伟达科学家,也认为这是每个从事大模型工作的人都应该熟悉的技巧
图片
GPT-4也在用的方法
在使用投机采样的人不仅限于本地运行大型模型的人,谷歌和OpenAI等超级巨头也在使用该技术
根据之前泄露的资料,GPT-4就用了这个方法来降低推理成本,不然根本承受不起这么烧钱。
图片
而最新爆料表示谷歌DeepMind联手开发的下一代大模型Gemini很可能也会用。
尽管OpenAI的具体方法保密,但谷歌团队已经发布了相关论文,并且该论文入选了ICML 2023口头报告
图片
方法很简单,先训练一个与大模型近似、更便宜的小模型,让小模型先生成K个token,然后让大模型去做评判。
大模型可以直接使用已接受的部分,并由大模型修改不接受的部分
在原始的研究中,使用了T5-XXL模型进行演示,并且在保持生成结果不变的情况下,获得了2-3倍的推理加速
图片
Andjrey Karpathy把这个方法比喻成“先让小模型打草稿”。
他解释了这个方法有效的关键之处在于,将大型模型分别输入一个token和一批token,预测下一个token所需的时间几乎相同
每个token都依赖于前一个token,因此在正常情况下无法同时对多个token进行采样
小模型虽然能力较差,但实际生成一个句子时有很多部分是非常简单的,小模型也能胜任,只有遇到困难的部分再让大模型上就好了。
原论文指出,可以直接加速现有的成熟模型,而无需改变其结构或重新进行训练
对于不会降低精度这一点,在论文附录部分也给出了数学论证。
图片
了解了原理,再来看Georgi Gerganov这次的具体设置。
他使用4bit量化的7B模型作为“草稿”模型,每秒约能生成80个token。
FP16精度的34B模型单独使用时,每秒只能生成10个token
在使用投机采样方法之后,我们获得了2倍的加速效果,这与原论文中的数据相一致
图片
他额外表示,速度可能会根据生成的内容而有所不同,但在代码生成上非常有效,草稿模型能猜对大多数token。
图片
最后,他还建议Meta以后在发布模型时直接把小的草稿模型附带上吧,受到大伙好评。
图片
作者已创业
Georgi Gerganov是作者,他在今年三月将LlaMA的第一代移植到了C++上。他的开源项目llama.cpp已经获得了接近4万颗星星
图片
他最初只是把这个当作一个业余兴趣,但由于反响热烈,他在6月份宣布创业
新公司ggml.ai致力于在边缘设备上运行AI。该公司的主打产品是llama.cpp背后的C语言机器学习框架
图片
在创业初期,我们成功获得了来自GitHub前首席执行官Nat Friedman和Y Combinator合伙人Daniel Gross的种子前投资
LlaMA2发布后他也很活跃,最狠的一次直接把大模型塞进了浏览器里。
图片
请查看谷歌的投机采样论文:https://arxiv.org/abs/2211.17192
参考链接:[1]https://x.com/ggerganov/status/1697262700165013689 [2]https://x.com/karpathy/status/1697318534555336961
以上就是《苹果芯跑大模型不用降计算精度,投机采样杀疯了,GPT-4也在用》的详细内容,更多关于GPT-4,代码,苹果的资料请关注golang学习网公众号!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
352 收藏
-
212 收藏
-
285 收藏
-
364 收藏
-
292 收藏
-
501 收藏
-
169 收藏
-
333 收藏
-
443 收藏
-
196 收藏
-
347 收藏
-
265 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习