项目背景
以BERT为代表的Transformer神经网络是近年来NLP领域最重要的模型创新,很多NLP任务,如阅读理解、文章摘要、语义分类、同义改写等,都通过采用BERT获得了显著的效果提升。但是,如下图所示,Transformer带来更高的模型精度的同时也引入了更多的计算量,使用Transformer的线上NLP服务的高效部署面临着巨大挑战。鉴于BERT在各大互联网公司的广泛应用,非常必要实现一个能发挥充分CPU/GPU硬件计算能力的Transformer推理方法。
TurboTransformers的诞生源于腾讯内部对开源协同的推动。2019年初,腾讯技术委员会成立,下设开源协同、自研上云两个项目组和对外开源管理办公室,以此来促进内部代码的开放共享和协同共建。TurboTransformers来自于深度学习自然语言处理基础平台TencentNLP Oteam,作为基础性技术版块,率先进行了开源协同的实践,旨在搭建统一的深度学习 NLP (Natural Language Processing,自然语言处理)基础平台、提升研发效能。在内部对技术反复打磨的基础上,该项目进一步对外开源。

在业界,Transformers模型的训练部分通常采用tensorflow或者pytorch这种训练框架完成。由于深度学习的训练和推理任务存在差异,训练框架直接应用于线上推理并不能得到极致的性能。众多算法工程师经常遇到模型效果很好,但是无法上线的问题。很多工作尝试弥合推理和训练之间实现差异的鸿沟,如onnxruntime、tensorRT、torchlib、XLA等,这些工作大多需要根据输入尺寸预先对计算图进行预处理和优化,以获得更好的推理时性能。和图像处理任务的输入常常没有变化不同,NLP推理任务输入尺寸多个维度会存在变化。实际推理时通过补零或者截断成整理成固定的输入尺寸,这样引入了额外补零计算开销,预处理优化的方案对NLP任务并不适用。
项目介绍</

腾讯开源了TurboTransformers,这是一个针对Transformer模型的推理加速工具,旨在提供高速、实用且简单的NLP推理服务。TurboTransformers在CPU和GPU上展现了优越性能,并支持变长输入序列,已在腾讯内部多个线上服务中实现显著加速。项目通过算子优化、框架优化和接口部署方式简化,实现了对Intel MKL、cuBLAS的调优,以及对LayerNorm和Softmax算子的创新并行算法,从而降低延迟。
最低0.47元/天 解锁文章
553

被折叠的 条评论
为什么被折叠?



