随着AI的高速发展,从去年开始,挂在服务器的云端AI模型已经不能满足技术发烧友的胃口了,AI PC应运而生。
AI PC就是内嵌个人大模型的电脑,具备更强的算力、更大的存储空间和更顺畅的自然语言交互功能,其核心特征包括CPU、GPU和NPU的本地混合计算架构,能够支持个人终端和家庭主机/企业主机协同运算。
一直以来,受到硬件条件的限制,AI PC的AI表现一直不是很出色。没办法,自己电脑就那点东西,怎么能和一车一车显卡堆起来的云端大模型比呢?
但是这并不妨碍各大厂家对未来的美好畅想。近期,AMD就对未来的AI PC进行了预测:
未来的AI PC将以每秒100个token的速度运行30B参数模型!
30B和100token/s,意味着什么?
AMD预测未来的AI PC将以每秒100个token的速度运行300亿参数模型,首个token的延迟达到100毫秒,而现在的技术只能做到70亿参数、每秒20个token,首个token的延迟为1至4秒。
▲现有AI PC(Ryzen AI 300)和AMD对AI PC的展望对比
- 300亿参数的模型相比当前的70亿参数模型,意味着能够学习更复杂、更丰富的特征,从而提供更准确、更细致的预测或生成结果——就像一个学富五亿车的人一样。虽然300亿参数和目前流行的云端大模型来说确实有些少了(Meta的Llama 3据称有4050亿,GPT-4非官方估计约达1.8万亿个),但这些参数都本地化在一台计算机上,而不是依赖诸多云服务器,也是一个非常大的数字。
- 每秒处理100个token的能力相比当前的每秒20个token,显著提高了处理速度——这听起来可能不是很快,但考虑到每个token背后复杂的计算,这实际上是非常快的。这种速度的提升将使得AI PC能够更快地完成任务,提高整体工作效率。
- 首个token的延迟从1至4秒降低到100毫秒,这一巨大进步对于需要即时响应的应用如自动驾驶、实时对话系统等至关重要。
硬件别拖后腿
要实现这一目标——同时也要求首个token的延迟达到100毫秒——可并不像听起来那么简单。这需要在软件和硬件两方面都进行优化。AMD在上个月ComputeX展会上发布的Ryzen AI 300系列Strix Point处理器能够以4位精度运行规模达到约70亿参数的大语言模型,但速度仅为每秒20个token,且首个token的延迟为1至4秒。
▲AMD发布了Ryzen AI 300系列Strix Point处理器。图源:电脑报[2]
AMD的目标是将AI PC的参数模型从目前的70亿和每秒20个token提升到300亿参数和每秒100个token。要达到这个性能目标,并不仅仅是往电脑里塞进一个更大的NPU那么简单。虽然更高的TOPS或FLOPS确实会有所帮助(尤其是在首个token的延迟方面),但在本地运行大型语言模型时,内存容量和带宽则显得更为重要。
在这方面,Strix Point上的LLM性能在很大程度上受限于其128位内存总线。当与LPDDR5x配对时,根据内存速度的不同,其带宽大约在120-135 GBps之间。
粗略估计,一个真正的300亿参数模型,量化到4位,将消耗约15GB的内存,并需要超过1.5 TBps的带宽才能达到每秒100个token的目标。作为参考,这大约与配备HBM2的40GB Nvidia A100 PCIe卡的带宽相当,但功耗却要高出许多。
这意味着,如果不进行优化以降低模型的需求,AMD未来的系统级芯片(SoC)将需要更快、更高容量的LPDDR才能达到芯片设计师的目标。这就像是给一辆赛车换上了更强大的引擎,但同时也得确保轮胎和刹车系统能跟上节奏,才能在赛道上驰骋无阻!
内存和带宽的“破局之道”
要解决内存带宽的挑战,有几种方法可以尝试。比如,可以考虑用高带宽内存来替换LPDDR5。但是这样不但太贵,还影响了SoC的功耗。
“如果我们无法达到300亿参数的模型,那我们就需要找到一种能提供相同精度的方法。这意味着在训练过程中需要做出改进,首先尝试让这些模型变得更小。”Subramony解释道。
先别着急叹气。好消息是,确实有一些方法可以实现这一目标,具体取决于你是优先考虑内存带宽还是容量。
一种潜在的方法是使用类似Mistral AI的Mixtral那样的MoE模型。 这些MoE本质上是一组较小的模型,它们相互协作。通常,完整的MoE会被加载到内存中,但由于只有一个子模型处于活动状态,所以与同等规模的单体模型架构相比,内存带宽需求会大幅减少。
一个由六个50亿参数模型组成的MoE,在4位精度下,只需要略超过250 GBps的带宽就能达到每秒100个token的目标。
另一种方法是使用推测性解码,这是一个由小型轻量级模型生成草稿,然后交给更大模型来纠正任何不准确之处的过程。 AMD告诉我们,这种方法可以显著提高性能,但它并没有解决大型语言模型需要大量内存的事实。
目前,大多数模型都是使用brain float 16或FP16数据类型进行训练的,这意味着它们每个参数消耗两个字节。这意味着一个300亿参数的模型需要以原生精度运行,就需要60GB的内存。
60GB的内存对于绝大多数人来说还是过于超前了,所以模型通常会被量化到8位或4位精度。这样做会牺牲一些精度,并增加产生幻觉的可能性——但可以将内存占用减少到最多四分之一!据我们所知,AMD就是这样让一个70亿参数的模型以大约每秒20个token的速度运行的。这就像是给一辆大卡车换上了更轻的车斗,虽然可能跑得不如赛车快,但至少能更省油地前进!
一种折中方案
作为一种折中方案, 从Strix Point开始,XDNA 2 NPU将支持Block FP16数据类型。 尽管名字听起来很“高大上”,但它每个参数仅需9位——这是因为它能取八个浮点数值并使用一个共享的指数。据AMD称,这种格式能达到与原生FP16几乎无法区分的精度,同时占用的空间只比Int8稍多一点。
更重要的是,这种格式并不需要模型重新训练就能利用,现有的BF16和FP16模型无需量化步骤就能直接运行。
但除非普通笔记本开始配备48GB或更多的内存——在短期内这是不太现实的,否则AMD仍然需要找到更好的方法来缩小模型的占用空间。
我们不难想象,未来AMD的NPU和集成图形处理器可能会增加对更小块的浮点格式(如MXFP6或MXFP4)的支持——AMD的CDNA GPU支持FP8,而CDNA 4将支持FP4。
无论如何,随着AI从云端“逃脱”并在你的设备上“安家落户”,未来几年PC硬件似乎将发生巨大变化。看来,我们的电脑不仅要变得更聪明,还得变得更“苗条”才行啊!
未来已来
前不久AMD举行的Tech Day,AMD向世界分享了更多的技术细节和阶段成果。Ryzen AI 300内置第三代Ryzen AI引擎,NPU算力高达50TOPS,总算力高达80TOPS,可以完美支持微软Recall AI功能、视频特效与实时翻译、Co-Creator合作设计等。
在会上AMD还发布了AMUSE 2.0 Beta,一款和Ryzen AI 300处理器搭配使用的AI图片生成工具,不但支持常规的文生图、图生图,还支持“画生图”。目前它已经宣称支持搭载了Ryzen AI 300的ASUS Zenbook S16的触控笔。
▲AMD在AI领域的近期成果
此外在过去的一年里,AMD已经花费超过1.25亿美刀连续投资了十几家AI公司,还收购了Silo AI、Mipsology和Nod.ai。我们完全可以相信,获得了更好技术加持的AMD,将会为我们带来更好的AI体验。不知道屏幕前的你,是否已经准备攒钱换电脑了?
参考资料
[1]https://www.theregister.com/2024/07/15/amd_ai_pc_goal/
[2]https://mp.weixin.qq.com/s/S6waDmgI-nnvy9jKZy9ImQ