PowerInfer 项目简介
PowerInfer 是一款高效的大型语言模型(LLM)推理引擎,专为配备消费级 GPU 的个人电脑设计。其核心设计理念在于利用 激活局部性 来优化性能,从而在有限的硬件条件下实现高效的推理表现。
主要特色
- 局部性优化设计:PowerInfer 通过稀疏激活以及“热点”“冷点”神经元的设计,提高推理效率,并降低资源消耗。
- CPU/GPU 混合利用:将 CPU 与 GPU 的存储和计算能力无缝结合,达到工作负载的平衡和更快的处理速度。
- 易于使用和灵活性:该引擎与常用的 ReLU 稀疏模型兼容,并针对本地部署进行了深度优化,只需一块消费级 GPU 即可实现低延迟的 LLM 推理和服务。
- 向后兼容性:尽管与 llama.cpp 的设计有所不同,PowerInfer 兼容其大部分功能,如服务器及批处理生成,还支持使用 llama.cpp 的模型权重。
最新进展
- 性能提升:2024 年 6 月推出的 PowerInfer-2 极大优化了在智能手机上的推理速度,这一框架使得 TurboSparse-Mixtral-47B 的推理速度达到每秒 11.68 个 tokens,比其他同类框架快 22 倍。
- 新模型支持:加入对 AMD 设备的支持,并支持 Windows 的 GPU 推理。
- 新技术:引入 Turbo Sparse 技术,通过稀疏化处理使模型在性能不减的情况下减少 90% 的参数量。
- 新的工具和支持:上线了 Falcon(ReLU)-40B-FP16 的在线演示,并发布了 Bamboo LLM,提供出色的性能和速度。
模型兼容性
PowerInfer 能够兼容多种模型系列,如 LLaMA(ReLU)、Falcon(ReLU)、ProSparse-LLaMA 和 Bamboo,这使得它在不同处理器和操作系统上都有良好的适应性。
操作指南
安装与设置
- 依赖要求:需要安装 CMake(3.17+)和 Python(3.8+),用于模型权重转换和 FFN(前馈神经网络)离线处理。
获取代码
git clone https://github.com/SJTU-IPADS/PowerInfer
cd PowerInfer
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
模型权重
PowerInfer 模型以特定格式存储,包括 LLM 权重和预测器权重。用户可从 Hugging Face 下载适合的模型权重,并通过 PowerInfer 提供的工具进行转换和使用。
推理执行
在指定配置下运行推理示例:
./build/bin/main -m /PATH/TO/MODEL -n $output_token_count -t $thread_num -p $prompt
评估
PowerInfer 在消费级硬件上的表现与高端服务器级 GPU 相近。与 llama.cpp 相比,PowerInfer 的推理速度提升显著,如在 Falcon 40B 上达到了 11 倍的加速。
FAQ 和其他
项目文档提供了详细的性能调试指南,PowerInfer 特别优化了 INT4 模型的量化支持。用户可以通过项目的 GitHub 页面获取更多帮助和支持。如果遇到问题,用户也可在该页面提交问题报告。
PowerInfer 的发展和优化仍在持续中,后续计划包括支持与更多设备兼容以及提供相应的预测器训练代码。对于技术细节和学术引用,PowerInfer 还提供了相关的学术论文供研究者参考。