Home
Login

专为CPU设计的稀疏感知深度学习推理运行时

NOASSERTIONPython 3.2kneuralmagicdeepsparse Last Updated: 2025-06-02

DeepSparse - 专为CPU设计的稀疏感知深度学习推理引擎

项目概述

DeepSparse是由Neural Magic开发的一个革命性的CPU推理运行时,专门设计用于利用神经网络的稀疏性来加速深度学习模型的推理过程。该项目通过结合SparseML优化库,在CPU硬件上实现了卓越的推理性能。

重要更新: 2025年1月,Neural Magic被Red Hat收购,DeepSparse社区版本将于2025年6月2日停止维护并弃用。团队将转向基于vLLM的商业和开源解决方案。

核心特性

1. 稀疏性优化

  • 稀疏内核支持:通过非结构化稀疏权重实现加速和内存节省
  • 8位量化:支持权重和激活的8位量化
  • 缓存优化:高效利用缓存的注意力键值对,最小化内存移动

2. 大语言模型(LLM)支持

DeepSparse为大语言模型推理提供初始支持,包括:

  • MPT-7B模型的稀疏微调技术
  • 7倍于密集基线的加速性能(稀疏-量化模型)
  • 支持高达60%稀疏度的模型而不损失精度

3. 广泛的模型支持

  • 计算机视觉:ResNet、EfficientNet、YOLOv5/8、ViT等
  • 自然语言处理:BERT、Transformer变体等
  • 多模态模型:支持各种CNN和Transformer架构

系统要求

硬件支持

  • x86架构:AVX2、AVX-512、AVX-512 VNNI
  • ARM架构:v8.2+

软件环境

  • 操作系统:Linux
  • Python版本:3.8-3.11
  • ONNX支持:版本1.5.0-1.15.0,操作集版本11或更高

注意:Mac和Windows用户建议使用Docker Linux容器

安装方式

稳定版本

pip install deepsparse

夜间构建版(包含最新功能)

pip install deepsparse-nightly

LLM支持版本

pip install -U deepsparse-nightly[llm]

从源码安装

pip install -e path/to/deepsparse

三种部署API

1. Engine API(底层API)

最低级别的API,直接编译ONNX模型并处理张量输入输出。

from deepsparse import Engine

# 下载并编译模型
zoo_stub = "zoo:nlp/sentiment_analysis/obert-base/pytorch/huggingface/sst2/pruned90_quant-none"
compiled_model = Engine(model=zoo_stub, batch_size=1)

# 运行推理
inputs = compiled_model.generate_random_inputs()
output = compiled_model(inputs)

2. Pipeline API(中级API)

包装Engine并添加预处理和后处理功能,可直接处理原始数据。

from deepsparse import Pipeline

# 设置管道
sentiment_analysis_pipeline = Pipeline.create(
    task="sentiment-analysis",
    model_path="zoo:nlp/sentiment_analysis/obert-base/pytorch/huggingface/sst2/pruned90_quant-none"
)

# 运行推理
prediction = sentiment_analysis_pipeline("I love using DeepSparse Pipelines")
print(prediction)
# 输出: labels=['positive'] scores=[0.9954759478569031]

3. Server API(高级API)

基于FastAPI包装Pipeline,提供REST API服务。

# 启动服务器
deepsparse.server \
    --task sentiment-analysis \
    --model_path zoo:nlp/sentiment_analysis/obert-base/pytorch/huggingface/sst2/pruned90_quant-none
# 发送请求
import requests

url = "http://localhost:5543/v2/models/sentiment_analysis/infer"
obj = {"sequences": "Snorlax loves my Tesla!"}
response = requests.post(url, json=obj)
print(response.text)
# 输出: {"labels":["positive"],"scores":[0.9965094327926636]}

大语言模型示例

from deepsparse import TextGeneration

pipeline = TextGeneration(model="zoo:mpt-7b-dolly_mpt_pretrain-pruned50_quantized")
prompt = """
Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction: what is sparsity?
### Response:
"""

result = pipeline(prompt, max_new_tokens=75)
print(result.generations[0].text)

技术优势

1. 稀疏微调技术

  • 与IST Austria合作开发的创新技术
  • 在微调过程中将MPT-7B剪枝至60%稀疏度
  • 无精度损失的情况下实现显著加速

2. 性能优化

  • CPU上实现GPU级别的推理性能
  • 大幅降低内存使用
  • 支持高度优化的稀疏-量化模型

3. 生态系统集成

  • 与SparseML优化库无缝集成
  • SparseZoo模型库提供预优化模型
  • 支持多种部署场景

使用案例

  • 边缘计算:在资源受限的环境中部署高性能AI模型
  • 云端推理:降低云计算成本,提高推理效率
  • 实时应用:需要低延迟的实时AI应用
  • 大规模部署:需要处理高并发推理请求的生产环境

隐私和分析

DeepSparse收集基本使用遥测数据用于产品使用分析。用户可通过设置环境变量禁用:

export NM_DISABLE_ANALYTICS=True

学术引用

该项目基于多篇重要学术论文,包括:

  • Sparse Fine-Tuning for Inference Acceleration of Large Language Models (2023)
  • The Optimal BERT Surgeon: Scalable and Accurate Second-Order Pruning (2022)
  • Inducing and Exploiting Activation Sparsity for Fast Inference (ICML 2020)

总结

DeepSparse代表了CPU推理优化领域的重大突破,通过创新的稀疏性利用技术,在普通CPU硬件上实现了前所未有的深度学习推理性能。尽管社区版本即将停止维护,但其技术创新和理念将在Red Hat的支持下继续发展,为AI推理优化领域做出更大贡献。

Star History Chart