🚀 作为AI世界的一位探险者,我们时常发现一些激动人心的突破,其中最新的一项就是PowerInfer。这项技术能够在个人计算机上利用普通的GPU进行高速的大型语言模型推断,这将为我们的生活带来怎样的改变呢?
背景
Generative large language models (LLMs) 已经成为人们关注的焦点。这些模型在创造性写作、高级代码生成以及复杂的自然语言处理任务中表现出了卓越的能力。然而,传统上这些模型需要在配备高端昂贵的服务器级GPU的数据中心进行部署。与此同时,越来越多的人们希望在更易接触的本地平台上运行LLMs,尤其是配备消费级GPU的个人电脑。这种转变是由对增强数据隐私、模型定制化以及减少推断成本的需求驱动的。
然而,将LLMs部署在消费级GPU上也带来了重大挑战,主要是由于其巨大的内存需求。LLMs通常以自回归 Transformer 的形式顺序生成文本标记,每个标记需要访问包含数千亿参数的整个模型。因此,推断过程受到 GPU 内存容量的限制,特别是在本地部署中,每次处理单个请求时(通常一次只有一个请求)会留下极少的机会进行并行处理。
PowerInfer:改变游戏规则
PowerInfer是一种高速的 LL 微观形态推断系统,经过精心设计,能够利用LL推断中固有的高度局部性。它的关键想法是通过将频繁激活的神经元分配到 GPU,而将不经常激活的神经元分配到 CPU,从而最大程度地减少 GPU 的内存需求,提高推断速度。
快人一步:PowerInfer的内部工作原理
PowerInfer的工作原理基于两个关键见解:一是LL推断中存在的高局部性,二是CPU和GPU的协同执行。它通过离线和在线组件实现神经元分配策略,并结合神经元感知运算符,从而有效地管理GPU和CPU之间的计算负载。
实验结果
PowerInfer在高端PC上的表现令人印象深刻。与传统方法相比,PowerInfer的推断速度提高了7.23倍,具有显著的优势。在低端PC上,PowerInfer的性能提升略有降低,但仍然达到了5.01倍的提速。此外,PowerInfer还支持压缩后的LLMs,如INT4量化模型,其性能提升了2.89倍。此外,PowerInfer还支持不同的批处理大小,当批处理大小小于32时,PowerInfer的性能提升最为显著,达到了6.08倍的提速。
结语
PowerInfer的问世,为AI领域注入了新的活力,让人们看到了在个人计算机上进行高速大型语言模型推断的可能性。这项技术不仅提升了推断速度,还为本地部署提供了更加灵活的选择。我们对于未来这项技术的应用前景充满期待。
🌟 如果您对这篇文章有任何疑问或想了解更多细节,欢迎在评论区留言,我们将会不断分享更多有趣的技术内容。让我们一起期待AI技术带来的更多惊喜吧!
重点1:本文介绍了在LLM推理过程中我们对局部性的见解,并突出了两个显著的特点。LLM推理具有高度的局部性,表明经常激活的一组神经元。尽管输入依赖性是LLM激活稀疏性,但激活神经元之间存在一个功率分布。
重点2:在OPT-30B和LLaMA(ReGLU-70B)的MLP层中,分别有26%和43%的神经元负责80%的总激活,这些神经元被称为热激活神经元。相反,剩余的74%和57%的神经元受到输入依赖,被归类为冷激活神经元。这种高局部性不仅局限于单个层,而是贯穿整个模型。如图5b所示,在OPT-30B和LLaMA(ReGLU-70B)中,大约有17%和26%的神经元负责所有层数的80%的总激活。
重点3:如果激活的神经元位于CPU内存中,在CPU上计算它们会比将它们转移到GPU上快,特别是当激活神经元数量较少和通常部署中的小批量大小时。具有向量扩展的现代CPU可以有效地处理这类较小的矩阵计算。我们比较了在OPT-30B中加载和计算10% 3 MLP层和60%注意层CPU侧神经元的GPU与直接在CPU上使用AVX2向量扩展所需的时间。结果如图6所示,在小于32的批量大小下,将权重转移到GPU(NVIDIA RTX 4090)并计算它们所需的时间超过了直接在CPU上使用AVX2向量扩展所需的时间。
重点1:本文介绍了在LLM推理过程中我们对局部性的见解,并突出了两个显著的特点。LLM推理具有高度的局部性,表明经常激活的一组神经元。尽管输入依赖性是LLM激活稀疏性,但激活神经元之间存在一个功率分布。
重点2:在OPT-30B和LLaMA(ReGLU-70B)的MLP层中,分别有26%和43%的神经元负责80%的总激活,这些神经元被称为热激活神经元。相反,剩余的74%和57%的神经元受到输入依赖,被归类为冷激活神经元。这种高局部性不仅局限于单个层,而是贯穿整个模型。
重点3:如果激活的神经元位于CPU内存中,在CPU上计算它们会比将它们转移到GPU上快,特别是当激活神经元数量较少和通常部署中的小批量大小时。具有向量扩展的现代CPU可以有效地处理这类较小的矩阵计算。我们比较了在OPT-30B中加载和计算10% 3 MLP层和60%注意层CPU侧神经元的GPU与直接在CPU上使用AVX2向量扩展所需的时间。在小于32的批量大小下,将权重转移到GPU(NVIDIA RTX 4090)并计算它们所需的时间超过了直接在CPU上使用AVX2向量扩展所需的时间。
激 活 稀疏 。 最近的研 究表明 ,L LM 推 理在神 经元 激活中 显
示 出显 著 的 稀 疏性[19 ,21 ,50 ]。 例 如 ,我 们 观 察到 OPT-30B
模 型中 大约 80 % 的 神 经元 在 推 理过 程 中 保 持失 活 状 态。 这
种激活 稀疏 现象 在自注 意 和 M LP 块 中都 存在 。在 自我注 意
块中 ,近 一半 的 注意 头(神经 元)做出 的贡 献 最小 ,导 致了 它
们的高 稀疏 性。 在 M LP 块内 观察到 的稀 疏性 主要 归因于 激
活函数的特征。
当 前的 模 型 压 缩技 术 不 足 以 在资 源 有 限 的消 费级 gp u 内
拟合 大型 语 言模 型( llm )。相 比 之下 ,利 用 CPU 额 外的 计算
和内 存资 源 的卸 载技 术 为在 此 类硬 件上 容纳 llm 提 供了 更 可
行的解决方 案 。
Po we rInf e r, 一 个 部署 在 配 备 单个 消 费 级 GP U
的 P C 上的 低 延迟 LL M 推理 系统 。Po we rInf e r 通 过充 分利
用§3 中 描述 的 高局 部性 见 解, 提出 了 神经 元感 知 的卸 载策
略和 推 理引 擎。 它 利 用 GP U 和 C P U 进 行 权重 存 储, 可容
纳各 种尺 寸 的 llm 。 这种 基 于 In sigh t-1 的卸 载方 法 有效 地利
用了 LLM 推理 的 幂律 分 布。
LLa M A (Re G L U) -70 B 分别 占总 激活 量的 26%和 43%。这些
神经 元 被 称为 热 激活 神 经元 。 相 反, 其 余 74%和 57%的神
经元的激活 是输 入依 赖性 的, 将它 们归 类为 冷激 活神 经元 。
如果激 活的神 经元 驻留 在 CP U 内 存中, 在 CP U 上计算 它
们比 将它 们传 输到 GP U 要快 ,特 别 是在 本地 部署 中激 活的
神经元 数量 较少 和批 量大 小较 小的 情况下 。具 有向 量扩 展的
现代 cpu 可以有 效地处 理这 种较小 的矩 阵计算 。
为了减 少推 理延迟 ,推 理引 擎只 计算被 在线 预测 器预测 为
活跃的 神经 元,跳 过大 多数不 活跃 的神 经元。 此外 ,预加 载
策略 使 Po we rI nfe r 能够 将大 量推 理任 务分 配 给 GPU,因 为
已经加 载 在 GPU 上的 热激 活神 经元 构成 了激活 的主 要部 分。
对于不在 GP U 内存中 的冷 激活神 经元 ,Po we rI nfe r 在 CP U
上执行它们的计算,从而消除了向 GPU 传 输 权 重 的 需 要
(Insight-2 )。
LLM Profiler 和 Policy Solver (Offline):该组件包括一个 L LM
Prof ile r, 它使用 来自 一般数 据集 (例如 C4 [32 ])的请 求从 推理
过程中收 集激活 数据。 它监视 所有层 的神经 元激活 (步骤¬ ),
然后是 策略 求解器 将神 经元 分类为 热或 冷。 求解器 旨在 将频
繁激活的神经元 分配给 GP U,而将其 他神经元分配 给 CP U。
它使用 神经 元影响 指标 和硬 件规格 来平 衡工 作负载 ,使 用整
数线性规划来最大 化 GPU 对神经元 的影响指标 (步骤- )。
神 经 元感 知 LLM 推 理引 擎 (Online):在 处理 用户 请求 之前 ,
在 线 引 擎 根 据 离线 解 算 器 的 输 出 , 将 两 种 类 型 的神 经 元 分
配给 各自 的处 理单 元(Step® )。在 运行 时, 引擎 创建 G PU 和
CP U 执 行器 ,它 们是在 CP U 端运 行的 线程 ,以 管理 并发 的
CPU – GPU 计算(步骤¯ )。 该引 擎还 会预 测神 经元 的激 活, 并
跳过未激活 的神 经元 。预 加载 的激 活神 经元