Ascend-vLLM介绍
Ascend-vLLM概述
vLLM是GPU平台上广受欢迎的大模型推理框架,因其高效的continuous batching和pageAttention功能而备受青睐。此外,vLLM还具备投机推理和自动前缀缓存等关键功能,使其在学术界和工业界都得到了广泛应用。
Ascend-vLLM是华为云针对NPU优化的推理框架,继承了vLLM的优点,并通过特定优化实现了更高的性能和易用性。它使得在NPU卡上运行大模型变得更加高效和便捷,为用户带来了极大的便利和性能提升。Ascend-vLLM可广泛应用于各种大模型推理任务,特别是在需要高性能和高效率的场景中,如自然语言处理、图像生成和语音识别等。
Ascend-vLLM的主要特点
- 易用性:Ascend-vLLM简化了在大模型上的部署和推理过程,使开发者可以更轻松地使用它。
- 易开发性:提供了友好的开发和调试环境,便于模型的调整和优化。
- 高性能:通过自研特性和针对NPU的优化,如PD分离、前后处理、sample等,实现了高效的推理性能。
Ascend-vLLM支持的特性介绍
特性名称 |
特性说明 |
|
---|---|---|
调度 |
Page-attention |
分块管理kvcache,提升吞吐。 |
Continuous batching |
迭代级调度,动态调整batch,降低延迟,提升吞吐。 |
|
Multi-step |
一次调度多次推理,降低调度上的cpu-overhead。 |
|
量化 |
W4A16-AWQ、GPTQ |
权重Int4量化,降低显存消耗和时延。小并发时延提升80%,精度损失2%以内。 |
W8A8-smoothQuant |
权重Int8量化,降低显存消耗,吞吐提升30%;精度损失1.5%以内。 |
|
W8A16-GPTQ |
Int8量化,降低显存消耗,提高吞吐20%。精度损失1%以内。 |
|
Kv8 |
Kv-cache量化,提高吞吐,支持更长序列。 |
|
高效解码 |
Auto-prefix-caching |
前缀缓存,降低首token时延。在system prompt较长或多轮对话场景收益明显 |
Chunked-prefill |
又名split-fuse。全量增量同时推理,提高资源利用率,提升吞吐。 |
|
Speculative Decoding |
支持大小模型投机推理和eager模式投机,提升推理性能。 |
|
图模式 |
Cuda-graph/cann-graph |
记录算子执行的依赖关系构图;消除python host耗时;且支持动态shape。 |
Torch.compile |
Torch.dynamo构图,转ascend-GE后端推理;使用静态分档。 |
|
实例复用 |
Multi-lora |
多lora挂载,多个不同微调模型共用一份权重同时部署。 |
控制输出 |
Guided Decoding |
通过特定模式控制模型输出。 |
Beam search |
通过beamsearch输出多个候选结果。 |
|
分离部署 |
PD分离部署 |
全量、增量分离部署,提高资源利用率,提升体验。 |
剪枝 |
FASP (Fast and Accurate Structured Pruning) 剪枝 |
FASP剪枝是一种结构化稀疏剪枝方法,能有效降低模型显存以及需要部署的资源依赖,减小推理过程中的计算量,降低增量推理时延,提升吞吐。 |