For the complete documentation index, see llms.txt. This page is also available as Markdown.

PowerInfer

利用激活局部性的 CPU/GPU 混合 LLM 推理 —— 通过智能地在 CPU 和 GPU 之间分配计算,在单块消费级 GPU 上运行 70B 参数模型。

🌟 8,000+ GitHub 星标 | 由 SJTU IPADS 开发 | MIT 许可证


什么是 PowerInfer?

PowerInfer 是一款面向大语言模型的高性能推理引擎,它利用了一个关键洞见: LLM 具有很强的激活局部性 —— 一小部分神经元(“热点神经元”)会在大多数推理步骤中持续被激活,而其余大多数保持不活跃。

PowerInfer 利用这一特性来:

  1. 将热点神经元保留在 GPU 上 以便快速计算

  2. 将冷门神经元卸载到 CPU/RAM 而不会显著损失质量

  3. 动态路由 根据激活模式在 CPU 和 GPU 之间分配计算

结果是:你只需 16GB VRAM 就能运行一个 70B 模型,而不需要 140GB+ 全部放在 GPU 上。

核心能力

  • 支持消费级 GPU —— RTX 3090/4090 可以运行 70B 模型

  • 神经元感知调度 —— 预测器为每次推理决定 CPU 与 GPU 的路由

  • 极小的质量损失 —— 保持超过 95% 的全精度质量

  • 兼容 llama.cpp —— 支持 GGUF 格式

  • NUMA 感知的 CPU 卸载 —— 针对高核心数 CPU 进行了优化

为什么要在 Clore.ai 上使用 PowerInfer?

Clore.ai 的 GPU 租用成本远低于云厂商替代方案。使用 PowerInfer:

  • 运行 Llama 2 70B单块 RTX 4090 (24GB VRAM)

  • 相比多 GPU 方案,大幅降低 GPU 租用成本

  • 使用 CPU RAM 作为溢出空间处理长上下文窗口

  • 运行此前需要昂贵 A100/H100 实例的模型


硬件要求

模型大小
最低显存
推荐内存
性能

7B

4GB

16GB

优秀

13B

6GB

32GB

非常好

34B

12GB

64GB

70B

16GB

128GB

中等

CPU 很重要: PowerInfer 会将冷门神经元卸载到 CPU。具备高核心数(AMD EPYC、Intel Xeon)且内存带宽较快的 CPU 会显著提升大模型吞吐量。


在 Clore.ai 上快速开始

步骤 1:选择你的服务器

clore.ai 市场中,筛选以下条件:

  • NVIDIA GPU 具备 16GB+ VRAM(RTX 3090、RTX 4090、A100)

  • 高 CPU 核心数 (16 核以上更理想)

  • 64GB+ RAM 70B 模型建议 64GB,13B 模型建议 32GB

步骤 2:创建自定义 Docker 镜像

PowerInfer 需要自定义的 Docker 配置。使用这个 Dockerfile:

构建并推送到 Docker Hub,或在 Clore.ai 中内联使用:

步骤 3:在 Clore.ai 上部署

在你的 Clore.ai 订单中,设置:

  • Docker 镜像: yourname/powerinfer:latest

  • 端口: 22 (SSH)

  • 环境变量: NVIDIA_VISIBLE_DEVICES=all


从源码构建 PowerInfer

如果你更愿意在容器内构建:

验证构建


获取模型

下载 GGUF 模型

PowerInfer 使用 GGUF 格式(与 llama.cpp 相同):

生成神经元预测器(PowerInfer 必需)

PowerInfer 需要为每个模型生成神经元激活预测器。这是与 llama.cpp 的关键区别:


运行推理

基础推理(无预测器)

用于在不生成预测器的情况下测试(标准 GPU/CPU 切分):

PowerInfer 模式(带预测器)

带神经元感知路由的完整 PowerInfer 模式:

交互式聊天模式

服务器模式(兼容 OpenAI API)


优化 GPU 层切分

--gpu-layers 参数决定要在 GPU 上保留多少个 Transformer 层。请根据你的 VRAM 进行调优:

层分配指南:

GPU 显存
7B 模型
13B 模型
34B 模型
70B 模型

8GB

全部(32)

20 层

10 层

4 层

16GB

全部(32)

全部(40)

25 层

10 层

24GB

全部(32)

全部(40)

全部(60)

20 层

48GB

全部(32)

全部(40)

全部(60)

全部(80)


性能基准

吞吐量对比(Llama 2 70B,RTX 3090)

引擎
GPU 层数
每秒 Token 数

llama.cpp(仅 GPU)

20/80

约 4 t/s

llama.cpp(仅 CPU)

0/80

约 1 t/s

PowerInfer

20/80 + 预测器

约 12 t/s


作为服务运行

创建一个 systemd 服务以持续提供 API:


API 使用

服务器运行后,使用任何兼容 OpenAI 的客户端:


故障排查

CUDA 显存不足

CPU 推理速度慢

构建失败


Clore.ai GPU 推荐

PowerInfer 的 CPU/GPU 混合设计改变了运行大模型的经济性。具有高 VRAM GPU 且 CPU 速度快的 Clore.ai 服务器是理想选择。

GPU
显存
Clore.ai 价格
最大模型(Q4)
吞吐量(Llama 2 70B Q4)

RTX 3090

24 GB

$0.07–0.21/小时

70B(64GB+ RAM)

约 8–12 tok/s

RTX 4090

24 GB

$0.14–0.42/小时

70B(更快的 CPU 卸载)

约 12–18 tok/s

A100 40GB

40 GB

70B(最小卸载)

约 35–45 tok/s

A100 80GB

80 GB

70B 全精度

约 50–60 tok/s

PowerInfer 的最佳场景: 以 0.07–0.21 美元/小时的价格租用 RTX 3090 来运行 Llama 2 70B Q4,对预算有限的用户来说是一次突破。你能以比 A100 租用成本低 10–12 倍的价格获得一个 70B 模型。吞吐量较低(约 10 tok/s),但对于研究或低流量推理而言,其价值无可匹敌。

CPU 和 GPU 一样重要: PowerInfer 会将“冷”神经元卸载到 CPU。配备 AMD EPYC 或 Intel Xeon CPU(多核心、高内存带宽)的 Clore.ai 服务器会显著优于单路消费级 CPU。租用大模型工作负载前,请检查服务器规格。

内存带宽瓶颈: 对于 70B 模型,在冷神经元计算期间,CPU RAM 带宽是限制因素。配备 DDR5 ECC RAM 或接近 HBM 架构的服务器会获得更好的吞吐量。


资源

最后更新于

这有帮助吗?