腾讯拥抱开源:首次公布开源路线图,技术研发向共享、复用和开源迈进
整理 | 夕颜
出品 | AI科技大本营(ID:rgznai100)
导读:去年,知乎上一篇讨论腾讯技术的帖子异常火爆,讨论的主题是当下(2018 年)腾讯的技术建设是否处于落后同体量公司的状态,这篇帖子得到腾讯内部以及其他互联网公司「码农」的“激情”回复。
当然,也有人反驳,包括腾讯被 diss 的开源情况也有人出来“打抱不平”,表示腾讯已经变得越来越开放,开源已在路上,请给它一点时间。
问题是,这些吐槽现在还是真实情况吗?为找到这个问题的答案,本文将从腾讯的技术建设、开源,以及 AI 实力这几个方面进行分析,来一探究竟。
技术建设落后是真实的吗?
总结下来,知乎上关于腾讯技术建设落后的吐槽,其中很重要的一点集中在「重复造轮子」相关的问题上,比如:
1、技术债务重,文档查找和共享难,出了技术问题不知道问谁等问题;
2、技术氛围差,各个团队敝帚自珍,重复造轮子;
3、内部赛马机制导致“没有收益”的事情没人愿意做;
当然,对于这些吐槽,知乎上也有不少用户站出来反驳,比如有腾讯内部人员匿名表示,腾讯技术团队的总体水平其实并不差,很多独立的模块设计和抽象都比较出色,技术含量也不低,只是总体上感觉还有很大优化空间。而且,腾讯在不断发生变化和改进,这从微信和 QQ 产品的体验中可以感受得到。
注:上述为知乎部分用户看法,仅做参考,不一定代表真实情况。
全面拥抱开源
在腾讯被吐槽的众多技术问题中,「重复造轮子」、分享难等状况是广受诟病的问题。针对这些问题,腾讯通过开源将成果在内部分享来改善,并追赶 BAT 中其他两家公司的步伐。那么,它做出了哪些努力呢?
▌发布开源路线图
实际上,2010 年腾讯已经全面拥抱“开放”战略,2012 年发布了第一个对外开源项目。从 2016 年开始,腾讯不断将内部开源项目在 GitHub 上发布。
近日,腾讯在开源上有了一次大动作,首次全面公开了其整体的开源路线图。据了解,基于代码开放和社区运营,腾讯的开源路线是通过“三步走”的开源计划,不断深化腾讯已有的技术能力,推动从封闭孤立向协同开放向社区开放治理的纵深方向发展。
具体来说,第一步是内部开源协同。首先拉通内部项目和组织,通过部门小团队作战或跨部门大团队作战的方式协同推进,以优化资源配置的方式集中优势寻求技术突破。随后,腾讯建立起筛选机制将代码开放出来。
第二步是外部代码开放。优化设计与代码结构,不断拓展落地场景,有效利用外部贡献者资源实现资源整合,构建技术影响力。
第三步是社区开放治理,在这一阶段,注重大规模技术推广与应用、开发者生态体系构建、社区领袖与领导力培养、全社会研发资源的优化配置四个方面。
据腾讯开源联盟主席、腾讯开源管理办公室委员、Apache Member 堵俊平透露,腾讯开源将重点关注 IaaS、容器与云原生、数据库、大数据与 AI、中间件、IoT/边缘计算、小程序生态等。
▌成立腾讯开源管理办公室
此外,为更好地服务开源,腾讯特别对内成立了开源管理办公室,下设项目管理委员会、腾讯开源联盟和开源合规组三大组织,自上而下地传递腾讯开源策略,自下而上地落地开源技术生态。同时,通过开放的开源评审平台,孵化和培育优秀的自主开源项目。
▌内部机制
同时,腾讯内部其实有一套自己的开源机制,经腾讯技术管理委员会授权,由腾讯研发管理职责部门牵头腾讯法务、合规、专利、安全等相关部门,整合为腾讯开源合规小组,在开源流程、安全、风险、建议方面对腾讯业务提供专业服务。合规小组会帮助开源项目整理第三方组件的引用,通过第三方扫描工具(如 blackduck、fossid等)识别和确认第三方代码有效性,同时会进行人工筛查,确保第三方使用腾讯代码时安全可控。
在协议选取上,合规小组会对项目的开源许可证进行合规化的建议,并向业务推荐开放性的许可协议。
在文化方面,由研发管理部 CODE 平台中心负责组织建设腾讯代码文化和内部开源,鼓励腾讯项目首先在腾讯内部流动,并对有价值的项目引导和帮助对外开源。
同时,在腾讯技术管理委员会的授权下牵头设立了“腾讯开源联盟”,由不同业务的技术专家、负责人、技术领袖组成开源联盟组委会和专家团,在开源文化、开源经验、开源活动等方面对开源项目施以指导和帮助。
在这套机制下,截至 2019 年 6 月,腾讯已在 Github 上发布 75 个开源项目,包含微信、腾讯云、腾讯游戏、腾讯 AI、腾讯安全等相关领域,累计在 Github 获得了 22W+ Star 数。
目前,腾讯自主开源的项目包括:
Tinker:微信前端团队 Android 热补丁方案
Angel:灵活而强大的参数服务器型分布式机器学习平台
WeUI:轻量而优雅的微信 UI 样式库
Wepy:小程序组件化开发框架
Tars:整套微服务治理和开发运营一体化解决方案
官网及项目详情地址:
https://opensource.tencent.com/
官方 GitHub 详情地址:
https://github.com/Tencent/
关注腾讯的人应该了解,腾讯还参与贡献了 Openstack、 KVM、docker、NVDIMM、ceph、HBase、Hadoop、linux、Spark、kubernetes、torrent、dht、goprocinfo、flannel、netlink 等开源社区和项目,主导发布了 Hadoop 2.8.4、2.8.5 和 Spark 2.3.2,并将开源项目 Tars、TSeer 和 Angel 分别捐赠 Linux基金会和Linux 深度学习基金会,并将长期于基金会运作。同时,腾讯还是 Linux 基金会、Apache 基金会、Openstack 基金会、MariaDB 基金会及 LF 深度学习基金会的白金会员。
堵俊平表示,腾讯之所以重视开源,原因在于:从外部环境来看,随着主流的开发平台Linux、Android 等逐渐开源化,IT 产业想要取得更大的市场份额,拥抱开源是当务之急;从腾F讯内部的技术积累来看,腾讯内部已经累积了超过 8000 个经过用户验证的开源项目,可以向开源社区输出优质开源项目;从生态机遇来看,开源能够很好地服务于腾讯重点战略方向,例如作为腾讯云的 Paas、Saas 服务封装,推动机器学习和人工智能的广泛应用。
AI 实力哪家强?
如今,AI 已经成为一家公司综合实力不可忽略的一部分,尤其是对于 BAT 来说,AI 在战略层面的定位很大程度上决定了公司的发展方向。
在 AI 方面,数据显示,腾讯与百度与阿里相比似乎并不占优势,但仍在有重点地奋力追赶,在一些领域已占有优势。
2018年,CB Insights 的报告挖掘了 BAT 在AI 方面的相关专利记录、投资和收益等,全方位描绘了 BAT 的 AI 策略。报告显示,百度在 AI 领域处于领先地位。BAT 分别着重自动驾驶、智慧城市和医疗 AI,在政府的大力支持下,BAT 正在向全世界扩张。
首先,在战略上,百度就早于阿里和腾讯意识到 AI 的重要性,在 2010 年就已经在电话会议上讨论 AI,时间甚至早于谷歌,而阿里和腾讯都是在近年才提出 AI 战略。
百度财报显示,自 2011 年以来,百度就大规模投入人工智能技术的研发,最近几年研发投入占总收入保持在 15% 左右。
相比之下,腾讯财报显示,腾讯 2019 年第一季度营收 854.7 亿元,同比增长 16%,但收入构成中未包含 AI 带来收入的信息,主要收入来源是增值服务和金融科技及企业服务,占比分别为 57% 和 25%,网络广告占比 16 %,其他收入占比 2%。
但在学术研究上,腾讯正在成长为一支“生力军”,在国际顶级会议上的表现可圈可点,如在今年的 CVPR 会议上,今年腾讯公司共有 58 篇论文入选,其中腾讯 AI Lab 33 篇(含 8 篇oral),腾讯优图实验室 25 篇,腾讯 AI Lab 入选论文涉及视频理解、人脸识别、对抗攻击、视觉-语言描述、模型压缩和多任务学习等几大重点研究方向。2018 年,腾讯 AI Lab 在 NIPS(现已更名NeurIPS) 上共有 20 篇论文入选,其中 2 篇被选为亮点论文(Spotlight),其他成绩还包括计算机视觉领域顶会 CVPR (21篇)和 ECCV(19篇)、机器学习领域顶会 ICML(16篇)、NLP 领域顶会 EMNLP(16篇),以及语音领域顶会 Interspeech(8篇)等。可见,腾讯的 AI 学术研究能力并不落后。
在应用层面,腾讯的成果也很瞩目,如发布了基于多模态研究的首个“电竞虚拟人”,策略协作型 AI“绝悟”首次亮相KPL决赛,与人类战队(超过99%玩家)进行 5V5 水平测试并取得胜利。
在 AI 投资上,BAT 三家都向全球扩扩张,约 44% 的资金流向美国的初创公司,其中腾讯在美国的投资交易最多,参与了 12 项交易。
(来源:CB Insights )
CB Insights 数据显示,在 AI 专利上,百度和阿里在语音领域领先,而腾讯专利则更多与计算机视觉研究相关。9月6日,腾讯宣布优图实验室升级为腾讯计算机视觉研发中心,将加大研发投入,且不设 KPI,可见其对 CV 开发的重视程度。几日后,腾讯 AI Lab 开源了“Tencent ML-Images”数据集,作为腾讯开源第58个项目(https://github.com/Tencent),这是腾讯在计算机视觉领域所累积的基础能力的一次释放。
当然,三家公司在 AI 应用方面的重心不一,百度在自动驾驶领域领先,如在最近的百度 AI 开发者大会上公布了开放平台 Apollo 迭代到 5.0 最新版本,并宣布与吉利在智能网联、智能驾驶、智能家居、电子商务等领域达成战略合作,以及多项落地项目,如在百度大厦和百度科技园试运营的自主泊车,与红旗携手打造的中国首条 L4 乘用车前装产线在长春投产下线,无人驾驶出租车(Robotaxi)项目“Apollo Go”亮相等。这些都是实实在在的进步。
而阿里巴巴的一大优势在于其人工智能云平台“ET 城市大脑”。据官网介绍,“ET 城市大脑”背后的团队为阿里达摩院城市大脑实验室,华先胜为负责人,张磊为高级研究员,研究方向包括多模态数据感知、城市交通预测与干预、城市大规模并行异构计算、城市复杂环境感知与理解、城市视觉搜索引擎和城市市政规划和公共资源分析。阿里使用城市大脑来处理来自相机、传感器、社交媒体和政府数据等方面的数据,并使用人工智能算法来预测医疗保健、城市规划、交通管理等方面的结果,科研实力不容小觑。
相比之下,腾讯则将重点放在 AI 医疗保健领域。除了大力投资 AI 医疗企业,腾讯还重点研发医疗智能平台,2017 年 8 月,腾讯发布了其首个 AI+医疗影像产品:“腾讯觅影”,可辅助医生对肺结节、乳腺癌、糖尿病视网膜病变、早期食管癌等疾病进行筛查。截至 2018 年 7 月,腾讯觅影已累计辅助医生阅读医学影像超 1 亿张,服务超百万患者,提示高风险病变 15 万例。同年 11 月,“腾讯觅影”进入了首批国家新一代人工智能开放创新平台名单,负责建设医疗影像国家新一代人工智能开放创新平台。随后,腾讯又相继发布了首款医疗AI引擎“腾讯瑞智”和“腾讯超级大脑”,后者将人工智能技术融入到医药研发、基因组数据分析、导诊、疾病筛查、辅助诊疗、医疗管理等环节。
另一方面,在 AI 开源上,腾讯也在加紧步伐:
(红框部分为腾讯 AI 相关开源项目,不完全统计)
围棋 AI 技术PhoenixGo,这是腾讯微信翻译团队开发的人工智能围棋程序,曾在 2018 年以 BensonDarr(昵称“金毛”)的名义在腾讯野狐围棋平台上和全球顶尖职业棋手、围棋爱好者及各路围棋AI 对弈,在 4 月底取得了 200 多连胜,并在福州 2018 人工智能围棋大赛上夺冠,引起了行业内广泛关注。
Tencent ML-Images:2018 年 9 月 底腾讯 AI Lab 开源,由多标签图像数据集 ML-Images,以及业内目前同类深度学习模型中精度最高的深度残差网络 ResNet-101 构成。
Angel:基于参数服务器理念开发的高性能分布式机器学习平台。
behaviac:游戏 AI 的开发框架组建,也是游戏源性的快速设计工具。
FeatherCNN:高性能神经网络前向计算库等。
NeuralClassifier:NeuralNLP的一个子项目,是一款基于PyTorch开发的深度学习文本分类工具。
看到这里,我们会发现仅从上述资料中无法找出文章开始提出问题的答案,但还是可以从中得出一些较为客观的结果:
市面上存在着对腾讯技术建设的质疑,但从用户体验来讲,腾讯的主流产品和技术研发并没有让用户失望;
腾讯的开源状况不如 BAT 其他两家,因为腾讯在开源上起步晚,但这家公司已经在保持开放的态度,且在奋力追赶之下已经有不少项目对业界产生不小的影响;
腾讯的AI 实力究竟如何也需要从多角度考量,虽然整体上百度的 AI 实力最强,但腾讯在 AI 研发上是认真的,比如在医疗影像 AI 领域,腾讯的技术积累已经助力不少优质项目落地,且背靠充足资金的支持,这是其他 AI 创业公司无法企及的优势。
本文仅作为全面了解腾讯这家公司的参考,如有不当之处,欢迎指正,务必请轻拍砖。
(*本文为 AI科技大本营整理文章,转载请联系1092722531)
◆
精彩推荐
◆
推荐阅读
干货 | 20个教程,掌握时间序列的特征分析(附代码)
从发展滞后到不断突破,NLP已成为AI又一燃爆点?
长点心吧年轻人,利率不是这么算的!我用Python告诉你亏了多少!
一文看懂数据清洗:缺失值、异常值和重复值的处理
Libra 骗局来了! 受害者会是你吗?
那个裸辞的程序员,后来怎么样了?
FreeWheel是一家怎样的公司?| 人物志
Mac 被曝存在恶意漏洞:黑客可随意调动摄像头,波及四百万用户!
文末送书啦!| Device Mapper,那些你不知道的Docker核心技术

相关文章:

Babylon.js 3.3发布:更强大的粒子系统和WebVR支持
Babylon.js 3.3版本利用微软混合现实工具包(MRTK)的功能来改进WebVR开发,并改进了其粒子系统控件。 MRTK提供了一系列脚本和组件来加速混合现实应用程序的开发。为了简化GUI VR构建,Bablyon.js利用3D体积网格来布局VR场景的界面&a…

基于Erlang语言的视频相似推荐系统 | 深度
作者丨gongyouliu来源 | 转载自大数据与人工智能(ID:ai-big-data)【导语】:作者在上一篇文章《基于内容的推荐算法》中介绍了基于内容的推荐算法的实现原理。在本篇文章中作者会介绍一个具体的基于内容的推荐算法的实现案例。该案例是作者在2…

MinGW简介
转自:http://baike.baidu.com/view/98554.htm MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。这里的“纯粹”是指使用msvcrt.dll的应用程序。无法使用MFC (Microsoft Foundation Classes微软基础类…

Confluence 6 创建小组的公众空间
2019独角兽企业重金招聘Python工程师标准>>> 现在是我们可以开始创建公众空间的时候了,全世界都希望知道这个项目和勇敢的探险活动。 在这个步骤中,我们将会创建一个项目小组的空间,并且将这个空间公布给全世界。这个表示的是你将…

windows 7 可以清除的文件
缓解系统磁盘空间不足的情况1、系统盘根目录下的MSOCache是office的安装备份文件,可以删除。2、c:\user\用户名\appdate\local\temp是软件安装时留下的临时文件。3、c:\windows\SoftwareDistribution中存放的是系统补丁更新包及旧的系统文件。4、c:\windows\winsxs\…

阿里最新论文解读:考虑时空域影响的点击率预估模型DSTN
作者 | 石晓文转载自小小挖掘机(ID: wAIsjwj)【导语】:在本文中,阿里的算法人员同时考虑空间域信息和时间域信息,来进行广告的点击率预估。什么是时空域?我们可以分解为空间域(spatial domain)和时间域(tem…

windows7 64位机上配置MinGW+Codeblocks+ wxWidgets
在Windows7 64位机子上安装配置MinGWCodeblockswxWidgets步骤如下: 1、 下载mingw-get-inst-20111118:http://sourceforge.net/projects/mingw/; 2、 双击mingw-get-inst-20111118.exe,一般按默认即可,选择自己需要…

jQuery带动画的弹出对话框
在线演示 本地下载

陶哲轩实分析 习题 13.4.6
设 $(X,d)$ 是度量空间,并设 $(E_{\alpha})_{\alpha\in I}$ 是 $X$ 中的一族连通集合.还设 $\bigcap_{\alpha\in I}E_{\alpha}$ 不空.证明 $\bigcup_{\alpha\in I}E_{\alpha}$ 是连通的.证明:由于 $\bigcap_{\alpha\in I}E_{\alpha}$ 是不空的,因此存在 $p\in \bigcap_{\alpha\…

一年参加一次就够,全新升级的AI开发者大会议程出炉!
“只讲技术,拒绝空谈”的AI开发者大会再次来临!2018 年的AI开发者大会,作为年度人工智能领域面向专业开发者的一次高规格技术盛会,上千名开发者与上百名技术专家齐聚一堂,大会以“AI技术与应用”为核心,就人…

Windows7下配置MinGW+CodeBlocks+OpenCV2.3.1
1、下载mingw-get-inst-20111118:http://sourceforge.net/projects/mingw/; 2、双击mingw-get-inst-20111118.exe,一般按默认即可,选择自己需要的组件; 3、添加MinGW环境变量:选择计算机-->点击右键--…

Spark SQL基本操作以及函数的使用
2019独角兽企业重金招聘Python工程师标准>>> 引语: 本篇博客主要介绍了Spark SQL中的filter过滤数据、去重、集合等基本操作,以及一些常用日期函数,随机函数,字符串操作等函数的使用,并列编写了示例代码&am…

OpenCV提取轮廓(去掉面积小的轮廓)
转自:http://www.kaixuela.net/?p23 #include <stdio.h> #include "cv.h" #include "cxcore.h" #include "highgui.h" #include <iostream> using namespace std; #pragma comment(lib,"cv.lib") #pra…

软工作业 5:词频统计——增强功能
一、基本信息 1.1 编译环境、项目名称、作者 1 #编译环境:python3.6 2 #项目名称:软工作业5-词频统计—增强功能 3 #作者:1613072055 潘博 4 # 1613072056 侯磊 1.2项目地址 本次作业地址: https://www.cnblogs.com/panboo/项目git地址: https://g…

Linux之文件权限管理
chmod ux转载于:https://www.cnblogs.com/chaoren399/archive/2013/03/11/2953727.html

如果三十年前有这些AI技术,可可西里的悲剧不会发生
作者 | 神经小姐姐来源 | HyperAI超神经(ID:HyperAI)而被盗猎者大量的非法捕杀。多种野生动物都处于濒临灭绝的局面,人工智能等技术,能够在帮助保护野生动物上,发挥比较大的作用,让我们能够生存…

Percona-Server-5.5.30安装
1、安装系统环境 yum install -y gcc gcc-c autoconf automake zlib* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* cmake bison 2、下载源码包 1 http://www.percona.com/downloads/ 2 3 wget -c http://www.percona.com/redir/downloads/Percona-Server-5.5/Perc…

OpenCV中SVM的使用
转自:http://download.csdn.net/download/gaogaogao124/3125857 略有改动: #include"stdafx.h" #include<opencv2/opencv.hpp> #include<cmath> #include<ctime> using namespace std; int _tmain(int argc,_TCHAR…

数据不够,用GAN来凑!
作者 | CV君来源 | 我爱计算机视觉(ID:aicvml)在计算机视觉领域,深度学习方法已全方位在各个方向获得突破,这从近几年CVPR 的论文即可看出。但这往往需要大量的标注数据,比如最著明的ImageNet数据集&#x…

MySQL的登陆错误:ERROR 1049 (42000): Unknown database 'root'
刚刚装上数据库的时候,直接按照这个格式就登陆上去了,突然莫名其妙登陆不上去了 但是现在突然死活登陆不上去了 于是拿着这个报错信息在网上找啊找,终于找了了错误的原因 -p和密码是连在一起的,赶紧一试,果然可以登陆&…

分布式缓存系统Memcached简介与实践
缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵活。此时Memcached或许是你想要的。Memca…

Windows7 libsvm库中grid.py的使用步骤
1、从http://www.csie.ntu.edu.tw/~cjlin/libsvm/下载最新的libsvm-3.12库(libsvm-3.12.tar.gz或libsvm-3.12.zip),将其放到F:\libsvm文件夹下解压缩,生成一个libsvm-3.12文件夹; 2、从http://www.gnuplot.info/下载最新的gnuplot即gp460-wi…

基于GEMM实现的CNN底层算法被改?Google提出全新间接卷积算法
作者 | Marat Dukhan from Google Research译者 | 凯隐责编 | Jane出品 | AI科技大本营(ID: rgznai100)【导读】本文介绍的内容主要聚焦Google 的一项最新工作:改变基于 GEMM 实现的 CNN底层算法提出的新方法。通用矩阵乘法(Gener…

共享内存跨进程通信
通过共享内存通信是最快的,不过既然是共享资源,那么就必须要有同步机制。 创建共享内存有两种方式shm和mmap的方式。 mmap是在磁盘上建立一个文件,每个进程地址空间中开辟出一块空间进行映射。而对于shm而言,shm每个进程最终会映射…

扶稳!四大步“上手”超参数调优教程,就等你出马了 | 附完整代码
作者 | Matthew Stewart译者 | Monanfei责编 | Jane出品 | AI科技大本营(ID: rgznai100)【导读】在本文中,我们将为大家介绍如何对神经网络的超参数进行优化调整,以便在 Beale 函数上获得更高性能,Beale 函数是评价优化…

读好书,写好程序
本人是做.NET开发的,以企业应用为主,以互联网为爱好,这里给大家推荐一些适合.NET程序员的书: 软件设计《企业应用架构模式》 Martin Fowler 的大作之一,总结了多种常见的企业应用架构模式,这些模式是脱离具…

SIFT特征点匹配中KD-tree与Ransac算法的使用
转自:http://blog.csdn.net/ijuliet/article/details/4471311 Step1:BBF算法,在KD-tree上找KNN。第一步做匹配咯~ 1.什么是KD-tree(fromwiki) K-Dimension tree,实际上是一棵平衡二叉树。 一般的KD-tree构造过程&a…

jQuery带缩略图的宽屏焦点图插件
在线演示 本地下载

追溯XLNet的前世今生:从Transformer到XLNet
作者丨李格映来源 | 转载自CSDN博客导读:2019 年 6 月,CMU 与谷歌大脑提出全新 XLNet,基于 BERT 的优缺点,XLNet 提出一种泛化自回归预训练方法,在 20 个任务上超过了 BERT 的表现,并在 18 个任务上取得了当…

微软MCITP系列课程
http://liushuo890.blog.51cto.com/5167996/d-1转载于:https://blog.51cto.com/showcart/1156172