
DeepSpeed-MII是微软DeepSpeed团队开源的低延迟高吞吐推理库,Apache-2.0许可。核心技术包括Blocked KV Caching、Continuous Batching、Dynamic SplitFuse、张量并行与高性能CUDA kernels,宣称有效吞吐最高达vLLM的2.5倍,支持Llama/Mistral/Mixtral/Qwen等8大架构超2万模型,提供持久化部署与RESTful API。
项目概述
DeepSpeed-MII(Model Implementations for Inference)由微软DeepSpeed团队于2022年首次发布,是DeepSpeed生态中专司推理加速的Python库 。其设计目标是”让强大的模型推理民主化”,聚焦于高吞吐、低延迟、高成本效益 。
核心架构:
MII底层由DeepSpeed-Inference驱动,根据模型架构、模型大小、批大小与可用硬件资源,自动应用适当的系统优化组合以最小化延迟、最大化吞吐 。v0.2版本引入了DeepSpeed-FastGen优化,使有效吞吐最高达到vLLM等领先系统的2.5倍 。
四项关键技术(DeepSpeed-FastGen核心) :
- Blocked KV Caching:分块KV缓存管理
- Continuous Batching:连续批处理
- Dynamic SplitFuse:动态拆分与融合,将提示的不同部分与生成token组合成最优批次
- High Performance CUDA Kernels:高性能CUDA内核
模型支持:
MII当前支持8大主流架构超2万模型 :
| 模型家族 | 参数范围 | 模型数量 |
|---|---|---|
| Llama | 7B-65B | 19,000 |
| Llama-2 | 7B-70B | 900 |
| Mistral | 7B | 6,000 |
| Mixtral (MoE) | 8x7B | 1,100 |
| Falcon | 7B-180B | 300 |
| Qwen | 7B-72B | 200 |
| Phi-2 | 2.7B | 200 |
| OPT | 0.1B-66B | 1,300 |
Legacy API还支持BERT、RoBERTa、Stable Diffusion、BLOOM、GPT-J等超5万模型 。
双部署模式 :
- 非持久化流水线(
mii.pipeline()):适用于脚本内的快速实验,流水线随Python脚本生命周期存在 - 持久化部署(
mii.serve()):生产环境使用,启动常驻gRPC服务,多客户端并发访问
RESTful API:
通过设置enable_restful_api=True,MII可启动RESTful API网关进程,接收HTTP请求 :
POST http://{HOST}:{PORT}/mii/{DEPLOYMENT_NAME}
许可策略:Apache-2.0许可 (注:部分第三方镜像站点标注MIT,以官方GitHub仓库LICENSE文件为准)。
💡 DeepSpeed-MII的独特定位:它是DeepSpeed生态的推理加速库,而非独立的通用推理服务器。与vLLM、SGLang、LMDeploy、TensorRT-LLM等”独立推理引擎”形成差异化:MII是DeepSpeed训练框架的自然延伸,让已在用DeepSpeed做训练的团队可以无缝切换到DeepSpeed-MII做推理,技术栈保持一致。其Dynamic SplitFuse技术在MII内部被称为”ragged batching”(不规则批处理),是相对于vLLM continuous batching的差异化创新 。MII严格属于”推理引擎”子分类——它实际执行模型推理计算(非纯API封装),但通过
enable_restful_api=True也提供RESTful接口能力,这与Ollama的定位类似(推理运行时+API服务)。需要注意的是,MII的RESTful API是”部分兼容”,并非完整OpenAI API兼容。
核心能力
- Blocked KV Caching:分块KV缓存,高效显存管理
- Continuous Batching:连续批处理,动态请求批处理
- Dynamic SplitFuse:动态拆分与融合,MII独有的ragged batching技术
- 高性能CUDA Kernels:DeepSpeed-Kernels库提供预编译wheel,避免冗长编译
- 张量并行:
tensor_parallel参数控制模型跨多GPU切分 - 模型副本与负载均衡:
replica_num参数启动多副本,gRPC拦截器轮询分发请求 - gRPC通信:客户端与服务端高性能双向流式通信
- RESTful API网关:
enable_restful_api=True启动HTTP接口 - 持久化部署:
mii.serve()常驻服务,mii.client()多进程连接 - 非持久化流水线:
mii.pipeline()脚本内快速实验 - 8大架构2万+模型:Llama/Llama-2/Mistral/Mixtral/Falcon/Qwen/Phi-2/OPT全覆盖
- HuggingFace无缝集成:模型权重与tokenizer通过HF生态加载
- DeepSpeed-Inference底层:自动根据模型架构/大小/硬件选择最优优化组合
- MoE模型支持:Mixtral 8x7B等MoE架构
- 文本生成与文本到图像:LLM推理 + Stable Diffusion加速
- ZeRO-Inference:资源受限系统的推理优化
优势亮点
- 2.5倍有效吞吐:v0.2起DeepSpeed-FastGen优化,宣称有效吞吐最高达vLLM的2.5倍
- Apache-2.0许可:商用友好(以官方仓库LICENSE为准)
- Dynamic SplitFuse独家:不规则批处理技术,是MII相对vLLM continuous batching的差异化创新
- DeepSpeed生态无缝衔接:训练用DeepSpeed、推理用MII,技术栈统一
- 微软官方维护:DeepSpeed团队持续开发,企业级可持续性
- 预编译wheel:通过deepspeed-kernels库分发预编译CUDA kernel,避免冗长编译
- 双部署模式灵活:实验用pipeline、生产用serve,覆盖全生命周期
- gRPC+RESTful双协议:内部gRPC高性能通信,外部RESTful HTTP接入
- 模型覆盖广:8大架构2万+模型,LLaMA-2-70B、Mixtral 8x7B、Phi-2等均支持
- 负载均衡内置:多副本场景下round-robin自动分发
局限
- NVIDIA GPU强绑定:要求compute capability 8.0+(Ampere+)、CUDA 11.6+,其他硬件适配有限
- 项目活跃度下降:第三方监测显示近4周无commit、1年+低活跃 ,生产采用需评估长期维护性
- RESTful API非完整OpenAI兼容:MII的RESTful接口是自有格式,不像vLLM/SGLang提供完整OpenAI API兼容
- 模型广度不及vLLM:vLLM支持200+ HuggingFace架构且新模型Day-1适配,MII仅支持8大架构(虽模型数量达2万+)
- 生产规模验证不及vLLM/SGLang:vLLM全球百万GPU部署,MII的生产规模案例相对较少
- Dynamic SplitFuse优势场景有限:2.5倍吞吐提升是针对特定场景(有效吞吐),通用场景可能与vLLM/SGLang相当
- 文档与示例相对有限:相比vLLM/SGLang的丰富文档,MII的使用示例较为精简
- DeepSpeed依赖:需安装完整DeepSpeed栈,依赖较重
适用人群
- DeepSpeed训练生态用户:已在用DeepSpeed做训练,推理阶段自然延伸使用MII
- 微软Azure云用户:与Azure ML深度集成,云端部署首选
- NVIDIA Ampere+ GPU集群:A100/H100/B200等硬件环境
- 高吞吐生产部署:需要2.5倍有效吞吐提升的固定模型场景
- MoE模型推理:Mixtral 8x7B等MoE架构的一站式服务
- gRPC内部服务:企业内部高性能gRPC通信场景
- 需要RESTful接口的传统应用:通过
enable_restful_api=True快速暴露HTTP接口 - Stable Diffusion推理加速:文本到图像模型的推理优化
安装与部署
1. 环境要求
- Linux操作系统(推荐Ubuntu 20+)
- Python 3.10+
- NVIDIA GPU compute capability 8.0+(Ampere+)
- CUDA 11.6+
- PyTorch 2.x
2. 安装
# pip安装(含deepspeed-kernels预编译wheel) pip install deepspeed-mii # 源码安装 git clone https://github.com/deepspeedai/DeepSpeed-MII.git cd DeepSpeed-MII pip install -e .
3. 非持久化流水线(快速实验)
import mii
# 创建非持久化流水线
pipe = mii.pipeline("mistralai/Mistral-7B-v0.1")
# 生成
result = pipe(["DeepSpeed is", "Seattle is"], max_length=128)
for r in result:
print(r.generated_text)
4. 持久化部署(生产环境)
import mii
# 启动持久化服务,2路张量并行
client = mii.serve(
"mistralai/Mistral-7B-v0.1",
tensor_parallel=2,
replica_num=2,
deployment_name="mistral-deployment"
)
# 客户端调用
result = client.generate(["DeepSpeed is"], max_length=128)
print(result[0].generated_text)
# 关闭服务
client.terminate_server()
5. RESTful API网关
import mii
# 启用RESTful API
client = mii.serve(
"mistralai/Mistral-7B-v0.1",
deployment_name="mistral-deployment",
enable_restful_api=True,
restful_api_port=28080,
)
# curl调用
curl --header "Content-Type: application/json" \
--request POST \
-d '{"prompts": ["DeepSpeed is", "Seattle is"], "max_length": 128}' \
http://localhost:28080/mii/mistral-deployment
# Python客户端调用RESTful API
import json
import requests
url = "http://localhost:28080/mii/mistral-deployment"
params = {"prompts": ["DeepSpeed is", "Seattle is"], "max_length": 128}
output = requests.post(url, data=json.dumps(params),
headers={"Content-Type": "application/json"})
print(output.json())
6. 多客户端连接已有部署
import mii
# 连接到已有持久化部署
client = mii.client("mistral-deployment")
# 生成
result = client.generate(["Hello, my name is"], max_length=128)
print(result[0].generated_text)
7. 张量并行+多副本组合
# 4张GPU:2路张量并行 × 2副本
client = mii.serve(
"meta-llama/Llama-2-70B-hf",
tensor_parallel=2,
replica_num=2, # 总计4 GPU
deployment_name="llama-70b-deployment"
)
8. 部署前必检清单
- 确认仓库位于
github.com/deepspeedai/DeepSpeed-MII(官方) - 许可:Apache-2.0(以官方仓库LICENSE文件为准;第三方镜像标注MIT不准确)
- 最新版本以GitHub Release/PyPI为准,建议跟进最新版本以获得DeepSpeed-FastGen优化
- NVIDIA GPU强绑定:要求compute capability 8.0+(Ampere+)、CUDA 11.6+
- 项目活跃度近期偏低(第三方监测显示近4周无commit) ,生产采用需评估长期维护性
- RESTful API为MII自有格式,非完整OpenAI API兼容——如需OpenAI兼容,建议选择vLLM/SGLang
- 模型支持8大架构(Llama/Llama-2/Mistral/Mixtral/Falcon/Qwen/Phi-2/OPT),如需要其他架构请用vLLM
- 严格属于”推理引擎”子分类,实际执行推理计算,非纯API封装
- 与DeepSpeed训练框架生态无缝衔接,技术栈统一
相关导航


Ollama

SGLang

MLC LLM
CTranslate2

GPT4All

