9n-triton部署bert模型实战经验
内容提要
本文介绍了算法工程师解决Python部署线上服务性能问题的经验,使用Nvidia的triton部署框架将深度学习模型部署至九数中台,性能提升了337%。文章详细介绍了Python部署的性能和复杂性问题,并分享了使用triton部署算法模型的实例,以Bert模型为例介绍了模型保存、转换为.pt文件、配置和注册等步骤。最后,总结了使用triton框架部署torchscript方式的经验。
关键要点
-
算法工程师通常使用Python语言,但直接用Python部署线上服务性能差。
-
使用Nvidia的triton部署框架在九数中台上完成线上部署,性能提升337%。
-
Python后端部署存在性能问题和复杂性问题,包括GIL限制和内存占用过多。
-
决定摒弃传统镜像部署方式,采用triton部署算法模型。
-
通过fine-tune的Bert模型进行文本分类任务,介绍了部署的全流程。
-
模型保存为.pt文件格式,选择torch.jit.trace进行模型保存。
-
模型输入为input_ids和attention_mask,输出为分类结果。
-
模型存放在九数磁盘目录下,目录格式需严格按照要求。
-
模型注册后可进行部署和测试,确保接口通畅后可转生产。
-
基于Bert模型的部署结果显示推理速度增幅超过300%。
延伸问答
为什么直接用Python部署线上服务性能差?
直接用Python部署线上服务性能差主要是因为Python是一种解释语言,执行速度慢,且存在GIL限制和内存占用过多的问题。
Nvidia的triton框架如何提升模型部署性能?
Nvidia的triton框架通过优化模型推理过程,使得在九数中台上部署的模型性能提升了337%。
如何将Bert模型保存为.pt文件?
可以使用torch.jit.trace将训练好的Bert模型保存为.pt文件,输入为input_ids和attention_mask,输出为分类结果。
部署Bert模型时需要注意哪些坑点?
在部署Bert模型时,需要注意torch版本要求、.pt文件的生成环境,以及onnx转换时的额外依赖问题。
triton框架的模型注册步骤是什么?
模型注册步骤包括将模型文件存放在指定目录、填写模型注册表信息,然后在注册好的模型下进行部署和测试。
使用triton框架部署模型的最终测试如何进行?
可以通过post接口在notebook中测试模型的接口通不通,确保测试没有问题后即可转生产。