7月15日消息,AMD近日在美国洛杉矶举行的技术日活动中公布了“North Star”(北极星)计划,未来推出的 Ryzen AI PC芯片将可支持以每秒100个Token的速度在本地运行300亿个参数的大型语言模型(LLM),实现 3000 的语义长度,并且首个Token生成的延迟要低于100毫秒。
但是,要实现AMD提出的这个目标并不容易,这需要硬件和软件性能上的巨大提升。要知道AMD最新推出的代号为“Strix Point ”的AI PC芯片Ryzen AI 300系列在以 4bit 精度运行70亿参数的大语言模型,每秒只能生成20个Token,并且首个Token的生成延迟高达1-4秒。
如果要本地支持以每秒生成100个Token的速度运行 300 亿参数的大模型,“North Star”不仅需要逻辑面积更大、性能更强的 NPU ,这对于提升 TOPS 或 FLOPS 肯定会有所帮助——尤其是在首次令牌延迟方面,但是在本地运行大型语言模型时,所需要的内存容量和带宽也极为重要。
在这方面,AMD的Strix Point 的大语言模型性能在很大程度上受到其 128 位内存总线的限制——当选择采用 LPDDR5x 配对时,其带宽在一般 120-135 GBps 左右,具体取决于内存的速度。
理论上来说,一个真正的 300 亿参数模型,量化为4bit,将消耗大约 15GB 的内存,并且需要超过 1.5 TBps 的带宽才能达到每秒 100 个令牌的目标。作为参考,这与配备 HBM2 的 40GB Nvidia A100 PCIe 卡的带宽大致相同,但功率要大得多。
这意味着,如果不进行优化以降低模型的要求(比如采用内存压缩技术),AMD未来的SoC将需要更快、更高容量的LPDDR来达到芯片设计者的目标。
人工智能的发展速度快于芯片
AMD 从事 SoC 开发的高级研究员和芯片设计工程师Mahesh Subramony对于这些挑战表示,“我们知道如何到达那里,虽然有可能设计出能够实现AMD今天目标的部件,但如果没有人能负担得起使用它,或者没有任何东西可以利用它,那就没有多大意义了。”
“如果一开始就说每个人都必须拥有一辆法拉利,那么汽车就不会激增。你必须首先说每个人都有一台很棒的机器,然后你首先展示你可以负责任地用它做什么,“他解释道。
“我们必须建立一个满足 95% 人需求的 SKU,”他继续说道。“我宁愿拥有一台价值 1,300 美元的笔记本电脑,然后通过云端来运行我的 300 亿参数模型。今天这还是便宜的。”
在展示 AI PC 的价值方面,AMD 非常依赖其软件合作伙伴。对于像 Strix Point 这样的产品,这在很大程度上意味着需要微软的支持。“当 Strix Point 最初开始时,我们与微软的这种深度合作在某种程度上真正推动了我们的边界,”他回忆道。
但是,虽然软件可以帮助指导新硬件的发展方向,但开发和提升新芯片可能需要数年时间,Subramony解释说。“Gen AI 和 AI 用例的发展速度远快。”
自 ChatGPT 首次亮相以来,已经有两年的时间来持续演变,Subramony 表示 AMD 现在对计算需求的发展方向有了更好的了解——这无疑是 AMD 制定这一目标的部分原因。
克服瓶颈
有几种方法可以解决内存带宽挑战。例如,LPDDR5 可以换成高带宽内存——但正如 Subramony 所指出的那样,这样做并不完全有利,因为它会大大增加成本并降低 SoC 的功耗。
“如果我们无法获得 300 亿个参数的模型,我们需要能够获得提供相同保真度的东西。这意味着在训练中需要进行改进,以尝试首先使这些更小的模型,“Subramony解释说。
好消息是,有很多方法可以做到这一点——这取决于你是想优先考虑内存带宽还是容量。
一种可能的方法是按照 Mistral AI 的 Mixtral 使用混合专家 (MoE) 模型。这些 MoE 本质上是一组相互协同工作的较小模型。通常,完整的 MoE 会被加载到内存中,但由于只有一个子模型处于活动状态,因此与同等大小的单片模型架构相比,内存带宽需求大大降低。
由六个 50 亿参数模型组成的 MoE 只需要略高于 250 GBps 的带宽即可实现每秒 100 个Token的目标——至少精度为4bit。
另一种方法是使用推测解码——一个小型轻量级模型生成草稿的过程,然后将其传递给更大的模型以纠正任何不准确之处。AMD表示,这种方法在性能上有相当大的改进,但它并不一定能解决大语言模型需要大量内存的事实。
如今,大多数模型都是在 Float 16 或 FP16 数据类型中训练的,它们每个参数消耗两个字节。这意味着一个 300 亿参数的模型需要 60GB 的内存才能以原始精度运行。
但是,由于这对绝大多数用户来说可能并不实用,因此将模型量化为 8bit 或 4bit 精度的情况并不少见。这牺牲了准确性并增加了AI幻觉的可能性,但将您的内存需求减少到四分之一。这也是AMD现有AI PC芯片如何以每秒20个Token的速度运行70亿个参数模型的关键。
新形式的加速可以提供帮助
作为一种折衷方案,从 Strix Point 开始,AMD的XDNA 2 NPU 将支持新的Block FP16 数据类型。因为传统的 INT8 应对目前的需求似乎已经有点力不从心,但是使用 FP32 又太过于浪费浪费,相对而言,采用 FP16 可以实现更高的算力,并且精度也足够使用,但是依然会占据不小的带宽。于是, AMD 选择将 FP16 以及 INT8 融合打造成为 Block FP16 数据类型,结合了16bit数据的高精度和 8bit位数据的高性能,它只需要每个参数9bit——它能够通过取 8 个浮点值并使用一个共享指数来做到这一点。根据 AMD 的说法,Block FP16 能够达到与原生 FP16 几乎无法区分的精度,同时仅比 Int8 占用略多的空间。
更重要的是,AMD称该Block FP16 数据类型不需要重新训练模型来利用它们——现有的 BF16 和 FP16 模型无需量化步骤即可工作。
但是,除非普通笔记本电脑开始配备48GB或更多的内存,否则AMD仍然需要找到更好的方法来缩小模型的占用空间。
虽然没有明确提及,但不难想象 AMD 未来的 NPU 和/或集成显卡会增加对 MXFP6 或 MXFP4 等较小的浮点格式的支持。目前AMD 的 CDNA 数据中心 GPU 也将支持 FP8,而 CDNA 4 将支持 FP4。
无论如何,随着大语言模型开始向边缘部署,PC 硬件似乎将在未来几年发生巨大变化。
编辑:芯智讯-浪客剑 部分资料来源:The register