https://github.com/SJTU-IPADS/PowerInfer
PowerInfer是一个在个人电脑上配备单个消费级GPU的高速大型语言模型(LLM)推断引擎。PowerInfer的设计关键在于利用LLM推断中固有的高局部性 ,其特征是神经元激活呈幂律分布。
这种分布表明,一小部分神经元,称为热神经元,在各种输入中被一致激活,而大多数冷神经元则根据特定输入而变化。PowerInfer利用这一见解设计了一个GPU-CPU混合推断引擎:热激活的神经元预先加载到GPU上以实现快速访问,而冷激活的神经元在CPU上计算,从而显著减少了GPU内存需求和CPU-GPU数据传输。PowerInfer还集成了自适应预测器和神经元感知稀疏运算符,优化了神经元激活和计算稀疏性的效率。
评估显示,PowerInfer在单个NVIDIA RTX 4090 GPU上实现了平均每秒13.20个令牌生成速率,峰值为每秒29.08个令牌,在各种LLMs(包括OPT-175B)上,仅比顶级服务器级A100 GPU实现的速度低18%。这明显优于llama.cpp高达11.69倍,同时保持模型精度。
原理:
- 以本地为中心的设计:利用稀疏激活和“热”/“冷”神经元概念进行高效的LLM推理,确保在较低资源需求下实现高速度。
- 混合CPU/GPU利用:无缝集成CPU和GPU的内存/计算能力,实现负载均衡和更快的处理速度。
特点: 易集成:兼容流行的ReLU稀疏模型,与其密集对应模型一样准确。 本地部署便利:专为在消费级硬件上进行本地部署而设计并深度优化,实现低延迟的LLM推理和在单个GPU上提供服务。
向后兼容:虽然与llama.cpp有所不同,但您可以像使用llama.cpp一样使用。PowerInfer还支持使用llama.cpp的模型权重进行推理,以实现兼容性,但不会有性能增益。