Tiiny-AI/PowerInfer · 上手攻略

  • 仓库:Tiiny-AI/PowerInfer
  • 链接:https://github.com/Tiiny-AI/PowerInfer
  • 分类:ai(主分类:llm-infra)
  • 作者:Tom
  • 更新:2026-07-08

是什么

PowerInfer 是由上海交大 IPADS 实验室开源的高速 LLM 推理引擎,专为单张消费级 GPU(RTX 4090 等)本地部署设计。其核心技术是利用 LLM 推理中神经元激活的幂律分布特性——少数"热神经元"(hot neurons)在几乎所有输入中都被激活,而大多数"冷神经元"(cold neurons)则随输入变化。

基于这一洞察,PowerInfer 设计了 GPU-CPU 混合推理引擎:热神经元预加载到 GPU 快速访问,冷神经元在 CPU 上计算,从而大幅降低 GPU 显存占用和 CPU-GPU 数据传输量。

实测在单张 RTX 4090(24 GB)上运行 Falcon(ReLU)-40B-FP16,平均 13.20 tokens/s,峰值 29.08 tokens/s,比 llama.cpp 快 最高 11.69 倍,仅比 A100 服务器低 18%。


解决什么问题

  1. 消费级 GPU 本地跑大模型:不需要 A100/H100,在 RTX 4090/3090 上跑 40B–175B 参数模型
  2. 降低推理成本:用消费级硬件替代服务器级 GPU,减少云端 API 费用
  3. 稀疏激活加速:利用 ReLU 系模型的稀疏激活特性,只计算被激活的神经元,跳过冗余计算
  4. 隐私敏感场景:模型完全本地运行,数据不出本机
  5. 边缘部署:2026 年还推出了 Tiiny AI Pocket Lab,支持手机/嵌入式设备推理

⚠️ 注意:PowerInfer 的稀疏加速效果主要针对 ReLU 系模型(如 Falcon(ReLU)、ReLUscript Llama),对 GeLU/SiLU 激活函数模型(如标准 Llama 2)加速效果有限。


快速安装

依赖要求

  • CMake(3.17+)
  • Python(3.8+)和 pip(19.3+)
  • NVIDIA GPU(CUDA),或 AMD GPU(ROCm),或纯 CPU

源码编译

# 克隆仓库
git clone https://github.com/Tiiny-AI/PowerInfer
cd PowerInfer

# 安装 Python 依赖
pip install -r requirements.txt

# NVIDIA GPU 构建(推荐)
cmake -S . -B build -DLLAMA_CUBLAS=ON
cmake --build build --config Release

# AMD GPU 构建
CC=/opt/rocm/llvm/bin/clang \
CXX=/opt/rocm/llvm/bin/clang++ \
cmake -S . -B build -DLLAMA_HIPBLAS=ON -DAMDGPU_TARGETS=gfx1100
cmake --build build --config Release

# 纯 CPU 构建
cmake -S . -B build
cmake --build build --config Release

编译产物在 build/bin/ 目录下,主要可执行文件:

可执行文件 用途
main 基础 CLI 推理
server HTTP API 服务
quantize 模型权重量化
benchmark 性能基准测试

核心用法

1. 获取模型权重

PowerInfer 使用 ReLU-sparse 系列模型,需要从 Hugging Face 下载:

# 推荐模型(稀疏激活,高加速比)
# Falcon(ReLU)-40B(需 FP16,约 80GB 显存规划)
git lfs install
git clone https://huggingface.co/tiiuae/falcon-40b-reordered falcon-40b

# Bamboo-7B(PowerInfer 配套优化模型)
git clone https://huggingface.co/PowerInfer/Bamboo-base-v0.1-gguf
git clone https://huggingface.co/PowerInfer/Bamboo-DPO-v0.1-gguf

# ProSparse Llama2-7B/13B
git clone https://huggingface.co/SparseLLM/prosparse-llama-2-7b
git clone https://huggingface.co/SparseLLM/prosparse-llama-2-13b

⚠️ 注意:部分模型需要申请访问权限(如 Falcon-40B),建议使用 PowerInfer 官方配套模型(Bamboo 系列)以获得最佳加速效果。

2. 模型推理(CLI)

# 使用 server 模式(推荐,方便调用)
./build/bin/server \
  -m /path/to/model-folder/ggml-model-f16.gguf \
  -c 2048 \
  --host 0.0.0.0 --port 8080

# 或使用 main 模式(交互式)
./build/bin/main \
  -m /path/to/model.gguf \
  -p "What is PowerInfer?"

3. HTTP API 调用

# 启动服务后(默认 localhost:8080)
curl -X POST http://localhost:8080/completion \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "PowerInfer is",
    "n_predict": 128,
    "temperature": 0.7
  }'

4. Python 调用

import requests

response = requests.post(
    "http://localhost:8080/completion",
    json={
        "prompt": "Explain the difference between PowerInfer and llama.cpp",
        "n_predict": 200,
        "temperature": 0.7,
        "stop": ["</s>", "User:"]
    }
)

print(response.json()["content"])

5. 模型量化(减少显存占用)

# 量化到 Q4_K_M(推荐精度/体积平衡)
./build/bin/quantize \
  /path/to/model-folder/ggml-model-f16.gguf \
  /path/to/output/ggml-model-q4_k_m.gguf \
  Q4_K_M

# 量化到 Q5_K_S(更高精度)
./build/bin/quantize \
  /path/to/model-folder/ggml-model-f16.gguf \
  /path/to/output/ggml-model-q5_k_s.gguf \
  Q5_K_S

6. 自动 FFN Offloading(CPU-GPU 混合)

PowerInfer 支持根据模型稀疏性自动将部分 FFN 层 offload 到 CPU:

./build/bin/main \
  -m /path/to/model.gguf \
  -mg 1        # 启用混合 GPU/CPU
  --threads 8  # CPU 线程数

典型适用场景

场景 适用原因
本地 LLM 推理服务 RTX 4090 单卡跑 40B 模型,成本低、延迟低
隐私敏感数据处理 完全本地运行,数据不经过第三方 API
ReLU 系模型优化 Falcon(ReLU)、Bamboo、ProSparse 系列稀疏激活加速明显
开发调试 本地运行,无需云端配额,适合开发阶段迭代
边缘/嵌入式 PowerInfer-2 面向智能手机(11.68 tokens/s on 手机)
量化部署 支持 INT4 量化,RTX 3080 等更低端显卡也能跑

坑与注意

  1. 稀疏激活依赖:PowerInfer 的核心加速依赖 ReLU 系列稀疏模型,使用标准 Llama 2(GeLU 激活)不会获得 10 倍加速,建议用官方配套模型(Bamboo、TurboSparse-Mixtral)或 Falcon(ReLU)。
  2. 模型获取门槛:Falcon-40B 需要申请 HuggingFace 访问权限;建议优先使用 PowerInfer 官方在 HuggingFace 的模型(PowerInfer/Bamboo-*)。
  3. Windows GPU 支持:2024/1/11 才添加 Windows GPU 推理支持,相对较新,生产 Linux 优先。
  4. macOS 优化有限:Apple M 芯片目前仅 CPU 推理,无 GPU 加速。
  5. 编译耗时:首次 CMake 编译可能需要 10–20 分钟,确保有足够磁盘空间和内存(≥16GB RAM)。
  6. CUDA 版本:建议 CUDA 12.x,CUDA 11.x 可能遇到兼容性问题。
  7. 显存规划:即使有混合 CPU/GPU,模型仍需要一定 GPU 显存(热神经元部分),RTX 4090 24GB 是推荐配置。
  8. PowerInfer-2 是移动端专项:如果目标是手机/嵌入式,不要用主仓库(PowerInfer),要用 PowerInfer-2 分支。

与同类对比

特性 PowerInfer llama.cpp vLLM Ollama
消费级 GPU 优化 ✅ 稀疏激活,CPU-GPU 混合 ❌(需高端 GPU)
稀疏 ReLU 模型 ✅ 核心优化
无量化加速 ✅(稀疏激活) ✅(Q4/Q5)
API 服务
多模态模型 有限
KV Cache 优化 稀疏化 PagedAttention
本地部署难度 中(需编译) 最低
生态成熟度

一句话总结:PowerInfer 是 ReLU 系稀疏模型的推理加速利器,在消费级硬件上能做到 llama.cpp 10 倍速,但代价是需要使用配套稀疏模型生态;如果你跑的是 Falcon(ReLU) 或 TurboSparse 系列,PowerInfer 是目前地表最快方案。


一句话推荐结论

如果你在用 Falcon(ReLU)、Bamboo、TurboSparse-Mixtral 等稀疏激活模型,且有 RTX 4090/3090 级别的消费显卡,PowerInfer 能让推理速度提升一个数量级;但如果你跑的是普通 Llama 2/3/Mistral,更推荐 llama.cpp 或 Ollama,避免为了用 PowerInfer 而换模型生态。