项目介绍:DeepSparse
DeepSparse 是一个专为加速神经网络推理而设计的CPU推理运行时。它利用稀疏性技术,大幅提高在CPU硬件上的推理性能。通过与优化库SparseML结合使用,DeepSparse可以对模型进行剪枝和量化,显着提升性能。
深度稀疏模型支持
Neural Magic 最近推出了DeepSparse的LLM(大型语言模型)推理支持功能。新功能包括:
- 稀疏内核加速可实现的非结构化稀疏权重,提供更快速度和内存节省。
- 支持8位的权重与激活量化。
- 高效使用缓存的注意力键和值,最大限度减少内存移动。
如何使用DeepSparse
-
安装(需要Linux环境):
pip install -U deepsparse-nightly[llm]
-
运行推理示例:
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: """ print(pipeline(prompt, max_new_tokens=75).generations[0].text) # Sparsity is the property of a matrix or other data structure in which a large number of elements are zero and a smaller number of elements are non-zero. In the context of machine learning, sparsity can be used to improve the efficiency of training and prediction.
稀疏性与性能
借助IST Austria的合作,Neural Magic开发了一项名为“稀疏微调”的技术,可在MPT-7B微调过程中实现60%的稀疏性而不损失准确性。通过新的LLM支持,DeepSparse可以在稀疏量化模型上提高7倍的推理速度。
深度稀疏技术路线
DeepSparse计划快速扩展LLM支持,包括:
- 产品化稀疏微调:使外部用户能够使用SparseML在其数据集上应用稀疏微调。
- 扩大模型支持:将我们的稀疏微调结果应用于Llama 2和Mistral模型。
- 达到更高稀疏性:改进我们的剪枝算法以实现更高的稀疏性。
安装
可以通过PyPI安装DeepSparse:
pip install deepsparse
部署API
DeepSparse 提供三种部署API:
- Engine:最低层级API,编译一个ONNX模型,并传入张量作为输入获取输出。
- Pipeline:包装Engine的预处理与后处理步骤。传入原始数据并获取预测。
- Server:使用FastAPI将Pipeline封装成REST API,通过HTTP发送原始数据并接收预测。
计算机视觉与自然语言处理模型
除了大型语言模型外,DeepSparse还支持多种CNN和Transformer模型,如BERT, ViT, ResNet, EfficientNet, YOLOv5/8等。在SparseZoo中,用户可以找到更多优化过的模型。
反馈与社区
Neural Magic 鼓励用户通过社区Slack参与问题讨论和反馈。用户还可以选择加入我们的新闻通讯以获取最新动态。
DeepSparse致力于提供一个高效和易用的机器学习推理平台,帮助开发者在CPU环境中实现高效的深度学习推理。