腾讯开源 TurboTransformers:自然语言处理推理加速工具

来源:腾讯技术工程微信号
作者:腾讯技术工程

4 月 24 日,腾讯正式宣布开源 Transformer 推理加速工具 TurboTransformers。该工具面向自然语言处理领域中 Transformers 相关模型丰富的线上预测场景,在微信、腾讯云、QQ 看点等产品的线上服务中已经广泛应用,这也是腾讯通过 Github 对外开源的第 100 个项目。

据了解,TurboTransformers 的诞生源于腾讯内部对开源协同的推动。2019 年初,腾讯技术委员会成立,下设开源协同、自研上云两个项目组和对外开源管理办公室,以此来促进内部代码的开放共享和协同共建。TurboTransformers 来自于深度学习自然语言处理基础平台 TencentNLP Oteam,作为基础性技术版块,率先进行了开源协同的实践,旨在搭建统一的深度学习 NLP (Natural Language Processing,自然语言处理)基础平台、提升研发效能。在内部对技术反复打磨的基础上,该项目进一步对外开源。

在自然语言处理领域中,以 BERT 为代表的 Transformers 相关神经网络模型是近年来最重要的模型创新。可以为阅读理解、文章摘要、语义分类、同义改写等 NLP 任务提供显著的效果提升。但提高模型精度的同时,Transformes 相关模型也带来了更多的计算量。由于深度学习的训练和推理任务存在差异,训练框架直接应用于线上推理并不能得到极致的性能。众多模型算法工程师都遇到了训练的模型效果很好,但因为响应延迟不满足要求,导致模型无法上线的问题。

图片包含 游戏机, 截图 描述已自动生成

TurboTransformers 是一款小而美的 Transformer 加速工具,就像它的名字所寓意的,Turbo(涡轮)可以增加发动机氧气含量,从而带来更大动力,使用 TurboTransformers 也可以让你的推理引擎更加强劲。具体来说,它具有高速、实用、简单三个特点:

1.优异的 CPU/GPU 性能表现。面向 Intel 多核 CPU 和 NVIDIA GPU 硬件平台,通过核心融合和并行算法优化,TurboTransformers 充发挥硬件的各层级并行计算的能力。在多种 CPU 和 GPU 硬件上获得了超过 PyTorch/TensorFlow 和目前主流优化引擎(如 onnxruntime-mkldnn/onnxruntime-gpu, torch JIT, NVIDIA faster transformers)的性能表现。

2.为 NLP 推理任务特点量身定制。TurboTransformers 可以支持变长输入序列处理,无需序列补零、截断或者分桶带来的无用计算,也无需任何针对计算图在推理前进行预调优的过程。

3.简单的使用方式。TurboTransformers 支持 python 和 C++接口进行调用。TurboTransformers 支持 TensorFlow 和 PyTorch 预训练模型的载入。它可以作为 huggingface/transformers 的推理加速插件,通过加入几行 python 代码获得的 BERT 模型的端对端加速效果。

此前 TurboTransformers 已应用在腾讯内部多个线上 BERT 服务服务场景。其中微信常用问题回复服务获得 1.88x 加速,公有云情感分析服务获得 2.11x 加速,QQ 看点推荐服务获得 13.6x 加速。和其他相关工具对比,TurboTransformers 在性能、使用方式上都具备优势。

据了解,目前 TurboTransformers 的功能还相对有限,未来腾讯还会进一步对其优化,在开源后,TurboTransformers 也期待与社区和开发者一起共建。

随着技术能力的不断累积,以及以开源为代表的腾讯新代码文化的兴起,腾讯在开源领域表现亮眼:在全球最大的代码托管平台 Github 上,腾讯已经累计开源了 100 个项目,覆盖云原生、大数据、AI、安全、硬件等多个热门的技术方向,并累计获得了超过 29 万 Star 数,跻身国际上有影响力的开源企业之一。“腾讯希望在科研领域投入更多力量,把‘科技向善’纳入公司新的使命与愿景。我们将通过内外部开放源代码等方式,积极参与‘全球科技共同体’的共建。”在 2019 年智博会上,腾讯公司董事会主席兼首席执行官马化腾表明了腾讯对开源的重视。

今年年初,腾讯高级执行副总裁、云与智慧产业事业群总裁汤道生也谈及开源对腾讯的重要意义,他表示:“开源不再是开发者的个人热情,它已成为许多技术驱动型产业背后重要的创新推动力。在科技向善的使命与愿景指引下,腾讯将进一步拥抱开源,与广大开发者一起创造正向价值。”

在 2020 年,腾讯陆续推出了针对云的场景研发的 Linux 操作系统 TencentOS Server、视频评估算法 DVQA 等多个开源项目,同时也积极用科技力量助力全球抗击疫情,3 月 27 日,腾讯健康新冠疫情模块国际版(TH\_COVID19\_International)、“新冠肺炎 AI 自查助手”(COVID-19 self-triage assistant)也接连开源,向全球开放科技能力。

推荐阅读:

  • 腾讯优图开源深度学习推理框架 TNN
  • 万字详解:腾讯如何自研大规模知识图谱 Topbase
  • 《蜘蛛侠:平行宇宙》的视觉解析与滤镜实现

更多腾讯AI相关技术干货,请关注专栏腾讯技术工程

发表评论

邮箱地址不会被公开。 必填项已用*标注