DeepSpeed-MII 项目介绍
简介
DeepSpeed-MII 是一个开源的 Python 库,由 DeepSpeed 开发设计,旨在普及高效的模型推理。它专注于高通量、低延迟和经济实惠。MII 提供了多项功能和技术,如阻塞的 KV 缓存、连续批处理、动态拆分融合、张量并行以及高性能的 CUDA 内核,支持如 Llama-2-70B、Mixtral(MoE)8x7B 和 Phi-2 等大型语言模型(LLM)的快速推理。
核心技术
用于高通量文本生成的 MII
MII 通过下列关键技术实现加速文本生成推理:
- 阻塞的 KV 缓存:优化模型推理速度。
- 连续批处理:提高处理效率。
- 动态拆分融合:减少处理时间。
- 高性能 CUDA 内核:提高硬件利用率。
MII 传统技术
在过去,MII 在低延迟服务场景中引入了多项关键性能优化,包括:
- Transformer 的深度融合。
- 多 GPU 推理和张量切片。
- 面向资源受限系统的 ZeRO 推理。
- 编译器优化。
MII 的工作原理
MII 利用 DeepSpeed-Inference 技术,根据模型架构、模型大小、批处理大小和可用硬件资源,自动应用适当的系统优化,从而减少延迟并最大化吞吐量。
支持的模型
MII 目前支持超过 37,000 种模型,涵盖八种流行的模型架构:
- Falcon: 7B - 180B
- Llama: 7B - 65B
- Llama-2: 7B - 70B
- Llama-3: 8B - 405B
- Mistral: 7B
- Mixtral (MoE): 8x7B
- OPT: 0.1B - 66B
- Phi-2: 2.7B
- Qwen and Qwen2: 7B - 72B
快速入门
DeepSpeed-MII 允许用户通过简单的代码部署支持的模型:
安装
用户可以通过 PyPI 安装 DeepSpeed-MII:
pip install deepspeed-mii
非持久化管道
这种方式适合快速体验 DeepSpeed-MII,仅需几行代码:
import mii
pipe = mii.pipeline("mistralai/Mistral-7B-v0.1")
response = pipe(["DeepSpeed is", "Seattle is"], max_new_tokens=128)
print(response)
pipe.destroy()
持久化部署
适用于长期运行和生产环境:
import mii
client = mii.serve("mistralai/Mistral-7B-v0.1")
response = client.generate(["Deepspeed is", "Seattle is"], max_new_tokens=128)
print(response)
client.terminate_server()
贡献与商标
DeepSpeed-MII 欢迎社区贡献,并遵循 Microsoft 的开源行为准则。项目中可能包含商标或标识,使用时须遵循相关品牌使用指南。