微信正在用的深度学习框架开源!支持稀疏张量,基于C++开发

鱼羊 发自 凹非寺
量子位 报道 | 公众号 QbitAI
微信正用着的深度学习框架,现在你也可以上手试一试了 。
就在最近,腾讯把这个名叫deepx_core的深度学习基础库正式对外开源 。
相比于PyTorch、TensorFlow等流行深度学习框架,这位选手不仅具有通用性,还针对高维稀疏数据场景进行了深度优化 。
也就是说,对于开发搜索、推荐、广告这样的深度学习应用,会更加友好易用 。
微信正在用的深度学习框架开源!支持稀疏张量,基于C++开发

文章插图
 
具体是怎么一回事,不妨一起来了解一下~
一个张量计算/深度学习基础库根据项目介绍,deepx_core是一个通用的深度学习框架,使用C++11开发 。基于deepx_core,可以快速开发张量计算/机器学习/深度学习/强化学习/图神经网络/无监督学习等应用 。
关于deepx_core的特点,不妨先从张量说起 。
张量是deepx的核心数据结构,有以下几种类型 。
微信正在用的深度学习框架开源!支持稀疏张量,基于C++开发

文章插图
 
其中,float_t是单精度浮点数,int_t是64位无符号整数 。
值得一提的是,稀疏张量一直是开源框架的痛点,但像搜索、推荐等算法应用,其实都是高维稀疏数据场景 。
为此,deepx_core设计并实现了稀疏张量和配套的operation,以原生的方式实现了稀疏模型 。
在分布式训练场景下,稀疏张量均匀分布在多台参数服务器上,模型规模能随着参数服务器数量增加而线性扩展 。
deepx_core的另一个重要模块,是计算图 。
微信正在用的深度学习框架开源!支持稀疏张量,基于C++开发

文章插图
 
具体而言,deepx_core提供了一个支持自动求导的静态图引擎,支持100+ operation,覆盖几乎所有网络类型 。
计算图引擎通常用在各种深度学习任务中 。而一个完整的深度学习应用,主要包括以下模块的开发和使用:
  • 样本解析器
  • 特征抽取
  • 计算图
  • 优化器
在deepx_core中,样本解析器和优化器都是单独的模块 。在内置样本解析器、优化器无法满足需求的情况下,都可以通过继承来增加新的解析器、优化器 。
另外,因为基于C++开发,deepx_core具有高性能和跨平台的特点 。
根据官方实验数据,基于deepx_core解决方案的性能普遍是开源框架的5-10倍 。
安装使用如果你想亲自试试这个新开源框架,那么需要先准备一个支持C++11的编译器来进行编译 。
make -j8
再跑一下单元测试 。
make -j8 test
然后安装即可 。
make -j8 install PREFIX=/where/you/want/to/install
已有落地应用最后,简单介绍一下项目背后的开发团队 。
deepx_core的开发者来自微信看一看算法平台团队 。
据介绍,在正式开源之前,deepx系列机器学习项目已经在腾讯内部经过了3年多的迭代 。
微信看一看、微信搜一搜、微信支付、微信表情、微信视频号、微信小程序、微信读书、QQ音乐、应用宝、腾讯新闻、腾讯课堂、腾讯黑产打击等排序/召回场景中,都已经有deepx_core及其衍生项目的落地 。
【微信正在用的深度学习框架开源!支持稀疏张量,基于C++开发】说起来,鹅厂近年来在开源方面确实没少下功夫 。
根据腾讯2020年度《腾讯研发大数据报告》,腾讯目前深度参与了数十个国际知名开源项目的贡献,并在OpenJDK、KVM等开源社区的贡献榜上,攀至国内第一 。
辣么,你可曾用过鹅厂的开源项目?欢迎在评论区分享经验~
传送门项目地址:
https://github.com/Tencent/deepx_core
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态




    推荐阅读