最近一段时间在进行科研训练,因此需要经常部署一些模型,近几天原本在超算中心正常运行的依托vllm部署的模型出现未知的卡顿异常。
因为不知道究竟是超算问题还是vllm更新出现的新问题,所以我们打算采用新的部署方案进行测试。

在选择新的部署方案的时候发现不同的部署方案具备不同的特点,可能适配不同的需求,在此博客中进行记录。参考了一个deepseek部署文档,链接如下:https://www.chatstream.org/cn/blog/deepseek-deploy-guide

一、直接demo启动模型

这是最基础的部署方式,基本上适配大部分模型,就是将模型文件下载在本地,然后基于模型的说明文档,将最基础运行模型所需要的环境配置好后,直接进行运行,这种部署方式一般是基于模型本身最基础的能力,可能不能提供某些框架所带来的额外的能力例如量化,多服务器运行等,可能在性能方面或者资源的利用方面没有办法做太多的调整。

不过这种方式很适合快速的测试和实验

二、SGLang部署

特点与优势

  • MLA 优化:支持 MLA (Matrix Layout Aware) 优化,可以更高效地利用 GPU 硬件,加快矩阵运算速度,尤其适用于深度学习模型的训练与推理。
  • FP8(W8A8) 支持:支持 FP8 精度(W8A8 表示权重和激活都是 8 位浮点数),能显著减少内存占用,并提高计算效率,尤其是在大模型推理时效果显著。
  • FP8 KV 缓存:对 Transformer 类模型的 KV 缓存进行 FP8 优化,进一步加速自注意力机制的推理过程。
  • Torch Compile 支持:与 PyTorch 编译功能兼容,使得模型的编译和加速更为方便,且无需改动现有代码逻辑。
  • NVIDIA 和 AMD GPU 支持:兼容性强,适用于多种硬件环境,既能利用 NVIDIA 的 CUDA 优化,又能在 AMD ROCm 平台上高效运行。

适用场景

SGLang适合对性能要求很高以及对显存占用敏感的推理任务,如LLM的实时推理,因为它提供MLA优化高效利用GPU硬件的同时,显著减少内存占用,提升计算效率,因此很适合高性能需求场景。

同时其能够支持NVIDIA 和 AMD GPU异构环境,方便统一部署。

三、LMDeploy部署

特点与优势

  • 企业级部署方案:提供完善的企业级部署支持,包括安全性、稳定性和可维护性,适用于商业化生产环境。
  • 离线管道处理:支持批量数据的离线处理,适用于需要预处理或大批量推理的场景,如离线推荐、内容审核等。
  • 在线服务部署:支持实时在线推理服务,包括高并发和低延迟的请求处理,适用于对响应速度要求高的应用。
  • 与 PyTorch 集成:无缝集成 PyTorch 工作流,可以快速迁移现有的 PyTorch 模型,降低开发成本。
  • 优化的推理性能:对推理过程进行深度优化,提供更快的响应速度和更高的资源利用率。

适用场景

LMDeploy部署适用于企业级应用这种对稳定性、可扩展性和安全性要去较高的应用。同时其也适合需要离场批量处理又需要在线实时推理的场景,因为它支持实时在线的推理服务,包括高并发和低延迟的请求处理。

同时其无缝集成PyTorch工作流,适用于基于Pytorch开发的模型,方便进行部署和优化。

四、TRT-LLM部署(TensorRT-LLM)

特点与优势

  • BF16 和 INT4/INT8 权重支持:支持 BF16 和 INT4/INT8 权重量化,有效降低内存占用和计算成本,并保持较高的推理精度。
  • 即将支持 FP8:未来将支持 FP8 精度,以进一步提高性能和降低内存开销。
  • 优化的推理速度:基于 NVIDIA TensorRT 库,针对 NVIDIA GPU 进行了极致优化,提供最快的推理速度。

适用场景

特别适合基于NVIDIA GPU部署的场景,例如数据中心、AI推理服务器等,因为这个部署方式针对NVIDIA GPU进行了优化,同时也支持BF16和INT4/INT8权重量化,有效降低内存占用和计算成本,可以应用于对延迟和吞吐量要求很高的任务以及对推理成本和显存占用敏感的场景。

五、vLLM部署

特点与优势

  • FP8 和 BF16 模式:支持 FP8 和 BF16 两种精度模式,在推理性能和精度之间提供灵活的平衡选择。
  • NVIDIA 和 AMD GPU 支持:兼容 NVIDIA 和 AMD GPU,支持多种硬件配置,便于在多平台上部署和迁移。
  • 流水线并行能力:支持流水线并行,提高 GPU 利用率和推理吞吐量,适用于长序列文本处理和大模型推理。
  • 多机器分布式部署:支持多机分布式部署,方便进行大规模模型的集群化部署和计算任务的分布式处理。

适用场景

vLLM适用于多GPU分布式计算以及异构式GPU环境,同时其适用于长序列文本处理,因为它可以将长序列输入拆分成多个子任务,并行分配给不同的GPU进行计算,所以可以进一步提升长序列任务的推理速度,同时其还有高效的内存管理,低精度计算支持,使其在长序列推理任务重具备极高的性能和效率。