案例简介
腾讯公司利用NVIDIA TensorRT推理引擎的INT8推理能力和基于知识蒸馏的QAT训练,大大加速了微信中的搜索动能,节省了约70%的计算资源。本案例主要应用到NVIDIA T4 GPU和TensorRT。
Case Introduction
With the help from INT8 inference capability of NVIDIA TensorRT inference engine and knowledge-distillation-based QAT training, Tencent WeChat search is speeded up greatly. About 70% computing resources are saved. The major products utilized in the case is NVIDIA T4 GPU and TensorRT SDK.
客户简介及应用背景
随着腾讯微信的发展,微信搜索也成为其越来越重要的功能,这个功能可以用来搜索微信内部的账号、信息,以及搜索互联网上的内容。微信搜索月活跃用户数量达到五亿以上。搜索业务当中使用了大量的神经网络模型,包括自然语言理解、匹配排序等等,这些模型的训练和推理都大量依赖于NVIDIA GPU,尤其在推理方面,NVIDIA GPU及相应的解决方案都满足了业务所需的延迟和吞吐要求。
客户挑战
微信搜索业务由多个子模块构成,包括查询理解、匹配、搜索排序等等。由于搜索的业务特点,这些任务对线上服务的延迟和吞吐都十分敏感。然而在最近几年,随着算力的提升以及算法的创新,很多大型复杂的神经网络模型开始应用在这些任务上,比如BERT/Transformer等模型。
这些大模型需要的计算资源和业务上的高要求对推理端的软硬件都是很大的挑战,必须针对具体的硬件做极致的优化。而且对于大模型的推理,很多技术被探索、应用在这些场景上以便实现性能加速、节约资源,比如模型压缩、剪枝、低精度计算等。这些技术可能会带来精度下降等负面影响,限制了这些技术的广泛应用。因此,如何在保证精度效果以及服务吞吐延迟需求的情况下,高效地对这些模型进行推理成为了业务上的巨大挑战。NVIDIA GPU以及NVIDIA TensorRT给这一场景提供了解决方案。
应用方案
为了满足线上服务的需求,并且尽可能地节约成本,微信搜索选择使用NVIDIA T4 GPU以及TensorRT推理引擎来进行线上大模型的推理。
- 线上服务对于吞吐和延迟有很高的要求,微信搜索选择使用NVIDIA T4 GPU以及TensorRT推理引擎来做线上推理服务,利用NVIDIA基于TensorRT开源的BERT实现,可以很方便地在FP16精度下实现满足需求的线上推理功能。这个方案在线上取得了很好的效果。
- 在此基础上,微信搜索希望进一步加快推理速度,节约计算资源,以便更好地服务用户,节约成本。低精度推理成为了很好的选择。NVIDIA GPU从图灵(Turing)架构开始就有了INT8 Tensor Core,其计算吞吐量最高可达FP16精度的2倍。同时低精度推理跟其他的优化方法也是正交的,可以同时使用其他技术比如剪枝、蒸馏等做进一步提升。微信搜索线上大量使用NVIDIA T4 GPU,非常适合使用INT8推理。而且TensorRT对INT8推理也有良好的支持。利用TensorRT的“校准”(Calibration)功能,能够方便地将Float精度模型转换为INT8低精度模型,实现低精度推理。通过低精度推理,模型的单次推理时间大大缩短。
- 通过“校准”来做模型转换已经在很多计算机视觉模型上被验证是十分有效的,并且其精度和推理性能都十分优秀。然而对于像BERT一类的模型, “校准” 无法使得精度和性能都完全令人满意。因此,腾讯搜索使用了NVIDIA开发的基于PyTorch/TensorFlow的量化工具进行基于知识蒸馏的量化感知训练(Quantization Aware Training)克服精度下降的问题。TensorRT对于导入量化感知训练好的模型进行INT8低精度推理有着很好的支持。导入这样的模型,不仅得到了最佳性能,而且精度没有损失,线上服务只需更换TensorRT构建好的引擎即可,极大地简化了部署的流程。
通过这样的方案,微信搜索中的一些关键任务,比如查询理解等自然语言理解任务,可以在精度没有损失的情况下,达到2-10倍的加速效果,平均单句推理时间达到了0.1ms。任务相应的计算资源节省了约70%。这个方案大大优化了微信搜索业务的性能,降低了部署成本。
使用效果及影响
使用NVIDIA T4 GPU以及TensorRT推理引擎进行INT8低精度推理,极大提升了微信搜索的速度,进一步提升了用户体验,节约了公司成本。
微信搜索的Hui Liu、Raccoon Liu和Dick Zhu表示:”我们已经实现了基于TensorRT和INT8 QAT的模型推理加速,以加速微信搜索的核心任务,包括Query理解和查询结果排序等。我们用GPU+TensorRT的解决方案突破了NLP模型复杂性的限制,BERT/Transformer可以完全集成到我们的解决方案中。此外,我们利用卓越的性能优化方法,节省了70%的计算资源。”