英伟达技术助力在线大模型推理

2021-10-28 16:14 来源:电子说

随着腾讯微信的发展,微信搜索已经成为越来越重要的功能。这个功能可以用来搜索微信里的账号和信息,也可以用来搜索网上的内容。微信搜索月活跃用户数已超过5亿。在搜索业务中,使用了大量的神经网络模型,包括自然语言理解、匹配和排序等。这些模型的训练和推理严重依赖NVIDIA GPU,尤其是在推理方面,NVIDIA GPU和相应的解决方案满足了业务的延迟和吞吐量需求。

微信搜索业务需要更高效的平台。

微信搜索服务由几个子模块组成,包括查询理解、匹配、搜索排序等。由于搜索的业务特性,这些任务对在线服务的延迟和吞吐量非常敏感。然而,近年来,随着计算能力的提高和算法的创新,许多大型复杂的神经网络模型被应用于这些任务,如BERT/Transformer。

这些大模型所需的计算资源和业务需求对推理端的硬件和软件提出了巨大的挑战,必须针对具体的硬件进行优化。此外,对于大型模型的推理,为了加速性能和节省资源,在这些场景中探索和应用了许多技术,如模型压缩、剪枝、低精度计算等。这些技术可能带来精度下降等负面影响,限制了这些技术的广泛应用。因此,如何在保证服务吞吐量的准确性和时延的同时,高效地推理这些模型,成为一个巨大的业务挑战。英伟达GPU和英伟达TensorRT为这种场景提供了解决方案。

NVIDIA技术助力在线大模型推理。

为了满足线上服务的需求,尽可能节约成本,微信搜索选择NVIDIA T4 GPU和TensorRT推理引擎对线上大型机型进行推理。

在线服务对吞吐量和延迟有很高的要求。对于微信搜索,选择NVIDIA T4 GPU和TensorRT推理引擎做在线推理服务,使用基于TensorRT开源的NVIDIA BERT实现在线推理功能,可以满足FP16精度下的需求。该方案在网上取得了良好的效果。

在此基础上,微信搜索希望进一步加快推理速度,节省计算资源,从而更好地服务用户,节约成本。低精度推理成了不错的选择。NVIDIA GPU自图灵架构以来就拥有INT8 Tensor Core,计算吞吐量可以达到FP16的两倍精度。同时,低精度推理与其他优化方法正交,可以使用剪枝、蒸馏等其他技术进一步改进。微信搜索线上广泛使用NVIDIA T4 GPU,非常适合使用INT8推理。TensorRT对INT8推理也有很好的支持。借助TensorRT的“校准”功能,方便将Float精度模型转化为INT8低精度模型,实现低精度推理。通过低精度推理,大大缩短了模型的单一推理时间。

通过“校准”进行模型转换在许多计算机视觉模型上被证明是非常有效的,并且它的准确性和推理性能都非常出色。然而,对于像BERT这样的模型,“校准”不能使精度和性能完全令人满意。因此,腾讯搜索使用了NVIDIA开发的基于PyTorch/TensorFlow的量化工具,进行基于知识蒸馏的量化感知训练,以克服精度下降的问题。TensorRT很好的支持了导入一个经过量化感知训练的模型进行INT8的低精度推理。导入此模型不仅可以获得最佳性能,而且不会损失准确性。在线服务只需要替换TensorRT构建的引擎,大大简化了部署过程。

通过该方案,微信搜索中的一些关键任务,如查询理解等自然语言理解任务,在不损失准确率的情况下,可以达到2-10倍的加速效果,平均单句推理时间达到0.1 ms,任务对应的计算资源节省约70%。该方案大大优化了微信搜索服务的性能,降低了部署成本。

使用NVIDIA T4 GPU和TensorRT推理引擎进行INT8低精度推理,大大提高了微信搜索的速度,进一步提升了用户体验,节省了公司成本。

微信搜索的、刘浣熊、Dick Zhu表示,“我们实现了基于TensorRT和INT8 QAT的模型推理加速,加速了微信搜索的核心任务,包括查询理解和查询结果排名。我们的GPU TensorRT解决方案突破了NLP模型复杂度的限制,BERT/Transformer可以完全集成到我们的解决方案中。此外,通过使用出色的性能优化方法,我们节省了70%的计算资源。”

延伸 · 阅读