PowerInfer-2:在智能手机上实现快速大语言模型推理

随着人工智能领域的迅速发展,大语言模型(LLMs)已经成为了不可或缺的工具,提供了前所未有的理解和生成类人文本的能力。传统上,这些模型被部署在配备强大GPU的数据中心,但现在有一个日益增长的趋势是在更广泛的设备如智能手机上实现这些能力。这一转变旨在利用丰富的个人数据,同时通过在本地进行计算来维护隐私。然而,由于智能手机的处理能力和内存有限,在这些设备上部署LLMs面临着巨大的挑战。本文将介绍来自上海交通大学并行与分布式系统研究所(IPADS)的PowerInfer-2,这一框架旨在迎接这些挑战。

PowerInfer-2介绍

PowerInfer-2 是一个专门为智能手机设计的创新框架,旨在实现LLMs的高速度推理,即使对于那些模型大小超过设备内存容量的情况也是如此。PowerInfer-2成功的关键在于其能够利用现代智能手机中异构的计算、内存和I/O资源。通过将传统的矩阵计算分解为细粒度的神经元簇计算,PowerInfer-2显著提高了推理速度和效率。

PowerInfer-2的关键特性

  1. 多态神经元引擎:为LLM推理的不同阶段调整计算策略。
  2. 分段神经元缓存:最小化并隐藏I/O开销。
  3. 细粒度神经元簇级流水线:减少I/O操作导致的计算延迟。
  4. 支持大模型:能够运行参数量高达470亿的模型。

技术洞察

异构计算利用

PowerInfer-2 利用智能手机中存在的异构硬件,如非对称big.LITTLE CPU核心、GPU和NPU。这种方法使得框架能够在LLM推理的不同阶段动态适应每个组件的优势。

预填阶段

在预填阶段,处理所有输入序列中的令牌,PowerInfer-2 使用NPU处理大矩阵计算。这个阶段受益于NPU在处理密集计算方面的效率,显著加快了第一个令牌的生成速度。

解码阶段

在解码阶段,令牌逐个顺序生成,PowerInfer-2利用小神经元簇和CPU核心处理稀疏计算。这种方法利用了CPU核心的灵活性,这些核心非常适合处理稀疏激活相关的较轻计算任务。

神经元缓存和流水线

PowerInfer-2 引入了一个在神经元粒度级别操作的分段缓存。这个缓存设计用于提高缓存命中率并减少I/O开销对推理性能的影响。通过将I/O操作与神经元簇计算重叠,框架最大限度地减少了等待时间并最大化了吞吐量。

离线规划器

在智能手机上首次运行新模型之前,PowerInfer-2执行一个离线规划阶段。这个阶段分析模型和硬件规格,生成一个执行计划,优化配置计算、内存和I/O资源。该计划确保即使在模型不能完全适应内存的情况下,也能高效执行推理。

实现与评估

PowerInfer-2在原始PowerInfer框架的基础上增加了12,000行代码。研究人员将其部署在两部智能手机上:OnePlus 12和Ace 2,分别配备了24GB和16GB的DRAM,并采用了高通XPUs。

支持的模型

PowerInfer-2支持多种LLMs,包括:

  • Llama-2(7B,13B)
  • TurboSparse-Mistral(7B)
  • TurboSparse-Mixtral(47B)

性能

PowerInfer-2的评估结果显示:

  • 速度:相比最先进的框架速度提升高达29.2倍。
  • 内存效率:在较小模型上内存使用减少约40%,同时保持与llama.cpp和MLC-LLM相当的推理速度。

值得注意的是,PowerInfer-2是第一个在移动平台上支持TurboSparse-Mixtral-47B模型的系统,生成速度达到了每秒11.68个令牌。

实际应用

为了展示其实际效用,PowerInfer-2在各种实际任务上进行了测试,如多轮对话、代码生成、数学问题解决和角色扮演。该框架在这些不同任务中一致提供了高性能,展示了其鲁棒性和多功能性。

结论

PowerInfer-2代表了LLMs在智能手机上部署的重大进步。通过利用现代智能手机的异构资源并优化计算、内存和I/O操作,PowerInfer-2使得即使是最大模型的推理也能快速高效地进行。这一创新为隐私保护、智能个人助手和其他需要强大语言理解和生成能力的移动设备应用开辟了新的可能性。

更多详情和演示视频,请访问PowerInfer-2项目网站

0 0 投票数
Article Rating
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x