PowerInfer
利用激活局部性的 CPU/GPU 混合 LLM 推理 —— 通过智能地在 CPU 和 GPU 之间分配计算,在单块消费级 GPU 上运行 70B 参数模型。
🌟 8,000+ GitHub 星标 | 由 SJTU IPADS 开发 | MIT 许可证
什么是 PowerInfer?
PowerInfer 是一款面向大语言模型的高性能推理引擎,它利用了一个关键洞见: LLM 具有很强的激活局部性 —— 一小部分神经元(“热点神经元”)会在大多数推理步骤中持续被激活,而其余大多数保持不活跃。
PowerInfer 利用这一特性来:
将热点神经元保留在 GPU 上 以便快速计算
将冷门神经元卸载到 CPU/RAM 而不会显著损失质量
动态路由 根据激活模式在 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
中等
在 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 的关键区别:
预测器生成时间: 创建神经元预测器可能需要 30–60 分钟,具体取决于模型大小。这是一次性操作——预测器会在后续运行中复用。
运行推理
基础推理(无预测器)
用于在不生成预测器的情况下测试(标准 GPU/CPU 切分):
PowerInfer 模式(带预测器)
带神经元感知路由的完整 PowerInfer 模式:
交互式聊天模式
服务器模式(兼容 OpenAI API)
优化 GPU 层切分
该 --gpu-layers 参数决定要在 GPU 上保留多少个 Transformer 层。请根据你的 VRAM 进行调优:
层分配指南:
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)
llama.cpp(仅 GPU)
20/80
约 4 t/s
llama.cpp(仅 CPU)
0/80
约 1 t/s
PowerInfer
20/80 + 预测器
约 12 t/s
3 倍加速 对于在消费级 GPU 上进行大模型推理,借助 PowerInfer 的神经元感知调度,通常可比标准 llama.cpp 快 3 倍。
作为服务运行
创建一个 systemd 服务以持续提供 API:
API 使用
服务器运行后,使用任何兼容 OpenAI 的客户端:
故障排查
CUDA 显存不足
CPU 推理速度慢
构建失败
常见问题: 如果 cmake 找不到 CUDA,请设置 CUDA_HOME 环境变量: export CUDA_HOME=/usr/local/cuda 然后再运行 cmake。
Clore.ai GPU 推荐
PowerInfer 的 CPU/GPU 混合设计改变了运行大模型的经济性。具有高 VRAM GPU 且 CPU 速度快的 Clore.ai 服务器是理想选择。
CPU 和 GPU 一样重要: PowerInfer 会将“冷”神经元卸载到 CPU。配备 AMD EPYC 或 Intel Xeon CPU(多核心、高内存带宽)的 Clore.ai 服务器会显著优于单路消费级 CPU。租用大模型工作负载前,请检查服务器规格。
内存带宽瓶颈: 对于 70B 模型,在冷神经元计算期间,CPU RAM 带宽是限制因素。配备 DDR5 ECC RAM 或接近 HBM 架构的服务器会获得更好的吞吐量。
资源
🐙 GitHub: github.com/SJTU-IPADS/PowerInfer
📄 研究论文: PowerInfer:使用消费级 GPU 实现大语言模型快速服务
🤗 GGUF 模型: huggingface.co/TheBloke
🧩 SJTU IPADS 实验室: ipads.se.sjtu.edu.cn
最后更新于
这有帮助吗?