腾讯第100个开源项目:微信开源推理加速工具TurboTransformers
出品 | AI科技大本营(ID:rgznai100)
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)也接连开源,向全球开放科技能力。
推荐阅读
那个分分钟处理 10 亿节点图计算的 Plato,现在怎么样了?
看似毫不相干,哲学与机器学习竟有如此大的交集
黑客用上机器学习你慌不慌?这 7 种窃取数据的新手段快来认识一下
“谷歌杀手”发明者,科学天才 Wolfram
数据库激荡 40 年,深入解析 PostgreSQL、NewSQL 演进历程
5分钟!就能学会以太坊 JSON API 基础知识
你点的每个“在看”,我都认真当成了AI
相关文章:

程序员:提高编程效率的技巧
本文写给那些认为在项目上所花时间和效率成正比的程序员。我要说的是,事实并非如此。虽然你需要在电脑前敲键盘输入东西,但这只和编程沾上一点边。那么,程序员该如何利用时间呢? 俗话说,磨刀不误砍柴工,拿出…

Qunee for HTML5 V2.5新版本发布
为什么80%的码农都做不了架构师?>>> Qunee for HTMl5 V2.5 beta2版本正式发布,此次版本内核改动较大,采用了新的2D渲染引擎,增加了延迟绘制功能,大幅改善画布的浏览体验,此外重构了鼠标键盘以及触控交互监听处理,增加右键框选功能,改善了多点触控交互,增…
泛型推断类型不符合上限
程序报错推断类型不符合上限 springsecurity需要自定义用户服务 代码 Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.userDetailsService(new CustomUserDetailsService());}public class CustomUserDetailsService implemen…
如何通过深度学习,完成计算机视觉中的所有工作?
Mask-RCNN做对象检测和实例分割作者 | George Seif译者 | 天道酬勤,责编 | Carol出品 | AI科技大本营(ID:rgznai100)Mask-RCNN做对象检测和实例分割:https://miro.medium.com/max/1200/1*s9raSe9mLeSSuxE3API-ZA.gif你想做计算机视…

Windows PowerShell 2.0语言之字面类型系统
PowerShell语言允许通过一个字面类型(type Literals)来访问类型,它是用括号抬起的类型名,返回.NET底层的System.Type对象实例,如: PS C:\> [System.Int32]IsPublic IsSerial Name …

建立名称server
一、实验的目的:实现DNSserver功能,提供正向、反向解析二、实验环境装有Linux的Windows系统IP为192.168.6.3的虚拟机三、实验目的建立gr.org域的主名称server。解析:名称 IP 用途ns.gr.org 192.168.…

Java的JSON操作存储List到Redis
使用jackson和json-lib都可以 <dependency> <groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9.13</version></dependency><dependency><groupId>net.sf.json-li…

关注基于云的下一代应用开发
接受经济和信息化的视频专访专访的主页地址为:http://www.enicn.com/article/2010-08-20/0R064b52010.shtml我的其他视频,请参考土豆空间,地址为http://www.tudou.com/home/larryvmw。
确认了!MySQL 狠甩 Oracle 稳居 Top1!
01几乎所有程序员都会用到的 MySQL稳居 Top 1科技长河,顺之者昌,错失者亡。在2019年,CSDN面向具备超强计算力的数字化世界,我们进行了「大数据技术应用现状分析」,并发布了《2019-2020 年中国开发者调查报告》。发现&a…

[AWK]使用AWK进行分割字符串以及截取字符串
如何split当前的字符串,用$0,例如: cat num.2012032911 | awk {print $2} | awk {split($0,b,".");print b[2]} | cut -c 3- 获取第二列,例如第二列是com.sb3456.you那么在split当前的这个字符串获得sb3456,最后截取sb3…
SpringMVC集成Tiles布局引擎框架
Tiles布局框架, http://tiles.apache.org/ Spring已经对Tiles进行了集成。页头页尾公共模板页要靠这个,不然重复代码太多。 <dependency><groupId>org.apache.tiles</groupId><artifactId>tiles-servlet</artifactId><…

VC 文件操作(文件查找,打开/保存,读/写,复制/删除/重命名)
右击项目->属性->字符集:使用多字节字符集。这样可以使用char到CString的转化。char sRead[20] ""; CString strtest sRead; 大气象 //文件查找/*CString strFileTitle;CFileFind finder;BOOL bWorking finder.FindFile(_T("C:\*.sys"…
程序员会懂的冷笑话:各大编程语言的内心独白
作者 | Anupam Chugh译者 | 弯月,责编 | 夕颜出品 | CSDN(ID:CSDNnews)软件工程领域鱼龙混杂。有些人乐不思蜀,而有些人则饱受打击。然而,构建软件的工作让每个人倍感压力,这点毋庸置疑。在本文…

swift集成alamofire的简单封装
import UIKit import Alamofire enum MethodType{ case GET case POST } class NetworkTool: NSObject { class func request(type : MethodType ,urlString : String , paramters: [String :Any]? nil,finishedCallback : escaping (_ result : Any) -> ()) { //判断是什…
Go后台项目架构思考与重构 | 深度长文
作者 | 腾讯云后台工程师黄雷编辑 | 唐小引来源 | CSDN(ID:CSDNnews)引言本文首先介绍了架构的重要性,随后从一个实际项目的重构过程作为主线,逐步引出主流的架构设计思想以及其所解决的实际问题是什么。通过阅读本文&…

前途到底是网络工程还是程序设计
本人89年年底生的,现在快满21了,大二的时候过的国家网络工程师考试,并不是cisco的网络支持工程师,大三也就是现在,在学校花销太大,想自己赚点钱,于是在学校招聘会上应聘了一家通信公司ÿ…

FAIL - Deployed application at context path / but context failed to start
IDE报错:FAIL - Deployed application at context path / but context failed to start 编译通过,这个错误原因是很多地方被误用,导致Spring运行时不能解析某些Class导致, 例如:ModelAndView用错 public ModelAndView…

项目ITP(五) spring4.0 整合 Quartz 实现任务调度
2014-05-16 22:51 by Jeff Li 前言 系列文章:[传送门] 项目需求: 二维码推送到一体机上,给学生签到扫描用。然后须要的是 上课前20分钟 。幸好在帮带我的学长做 p2p 的时候。接触过。自然 quartz 是首选。所以我就配置了下,搞了个…
Spring security防止跨站请求伪造(CSRF防护)
因为使用了spring security 安全性框架 所以spring security 会自动拦截站点所有状态变化的请求(非GET,HEAD,OPTIONS和TRACE的请求),防止跨站请求伪造(CSRF防护),即防止其他网站或是程序POST等请求本站点。…
从Ops到NoOps,阿里文娱智能运维的关键:自动化应用容量管理
作者| 阿里文娱高级开发工程师 金呈编辑 | 夕颜来源 | CSDN(ID:CSDNnews)概述1. 背景随着业务形态发展,更多的生产力集中到业务创新,这背后要求研发能力的不断升级。阿里文娱持续倾向用更加高效、稳定、低成本的方式支…

JAVA目录树(全功能),Java+ajax实现
我自己要的功能全实现了 一:双击选中项进行编辑 二:右键菜单功能(新增,删除,修改,自定义颜色什么的) 三:选中项进行拖动事件 四:输入项进入搜索(并自动选中结果项) 2011.03.14更新功能 …

SiteMesh介绍
1. SiteMesh简介 SiteMesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权等等。它不仅仅能处理动态的内容,…
商汤提基于贪心超网络的One-Shot NAS,达到最新SOTA | CVPR 2020
出品 | AI科技大本营(ID:rgznai100)导读:在CVPR 2020上,商汤移动智能事业群-3DAR-身份认证与视频感知组提出了基于贪心超网络的One-Shot NAS方法,显著提升了超网络直接在大规模数据集上的搜索训练效率,并在…

多样化实现Windows phone 7本地数据访问5——深入Rapid Repository
上一篇多样化实现Windows Phone 7本地数据访问<4>——Rapid Repository 中初步的介绍Repid Repository作为Windows phone 7数据库存储原理Repid具有特点以及数据CRUD基本操作.Rapid Repository 是一个基于WP7开源的数据库. 上周联系Rapid 数据库的作者Sean McAlinden.有…
调试Tomcat源码
需要调试Tomcat源码其实很简单, 1.保持你的Tomcat安装文件和源码是版本一致 http://tomcat.apache.org/download-80.cgi 下载安装版和源码2个版本 2.建立Java自由格式项目 先在IDE里配置好Tomcat,这个不复杂。 然后新建一个项目,这个需要…

开源 免费 java CMS - FreeCMS1.9 全文检索
项目地址:http://code.google.com/p/freecms/ 全文检索 从FreeCMS 1.7開始支持 仅仅有创建过索引的对象才干被lucene类标签查询到。 信息类数据会在信息更新、审核、删除、还原操作时自己主动进行全文检索处理。1. 创建索引 从左側管理菜单点击创建索引进入。 您能够…

Spring Mock单元测试
针对post和get import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.…

tar、gzip、gunzip、bzip2、zip、unzip
tar [参数] 文件或目录名 •参数: -c: 建立新的备份档文件。 -f: 对普通文件进行操作。这个参数通常是必选的。 -r: 向备份档文件追加文件。 -x: 从备份档文件中解出文件。 -t: …
港科大谢丹阳教授问诊未来,预测长远趋势与转折点
阳春三月,万象更新,2020年注定是不平凡的一年!有激荡就会遇见变革,有挑战就会迎来机遇。今天总会过去,未来将会怎样?香港科大商学院内地办事处重磅推出全新升级的《袁老师访谈录》全新系列【问诊未来院长系…

数字签名与数字证书
先看一下百度百科对数字签名和数字证书的解释: 数字签名: 将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证:只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不…