您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

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

时间:2021-04-06 11:07:51  来源:凹非寺  作者:鱼羊

鱼羊 发自 凹非寺
量子位 报道 | 公众号 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及其衍生项目的落地。

说起来,鹅厂近年来在开源方面确实没少下功夫。

根据腾讯2020年度《腾讯研发大数据报告》,腾讯目前深度参与了数十个国际知名开源项目的贡献,并在OpenJDKKVM等开源社区的贡献榜上,攀至国内第一。

辣么,你可曾用过鹅厂的开源项目?欢迎在评论区分享经验~

传送门

项目地址:
https://github.com/Tencent/deepx_core

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态



Tags:深度学习框架   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
微信正用着的深度学习框架,现在你也可以上手试一试了。 就在最近,腾讯把这个名叫deepx_core的深度学习基础库正式对外开源。 相比于PyTorch、TensorFlow等流行深度学习框架,这位选手不仅具有通用性,还针对高维稀疏数据...【详细内容】
2021-04-06  Tags: 深度学习框架  点击:(205)  评论:(0)  加入收藏
一代深度学习框架研究于璠华为技术有限公司摘要:从人工智能的历史出发,简述深度学习发展历程以及目前的挑战,通过介绍新一代深度学习框架的特点,分析总体框架,阐述自动并行、自动...【详细内容】
2020-11-10  Tags: 深度学习框架  点击:(94)  评论:(0)  加入收藏
我翻阅了CatBoost的文档之后,我被这个强大的框架震惊了。CatBoost不仅在你提供给它的任何数据集上构建了一个最精确的模型,其中只需要最少的数据准备。它还提供了迄今为止最好...【详细内容】
2020-09-18  Tags: 深度学习框架  点击:(235)  评论:(0)  加入收藏
介绍深度学习是机器学习的一个分支。深度学习的独特之处在于它带来的准确性和效率。经过大量数据训练后,深度学习系统可以匹配甚至超过人脑的认知能力。PyTorch和TensorFlow...【详细内容】
2020-08-07  Tags: 深度学习框架  点击:(126)  评论:(0)  加入收藏
虽然我们大多数人都惊叹为什么DL这么好? 在使用大量数据进行训练时,它在准确性方面非常出色。近几年随着深度学习算法的发展,出现了很多深度学习的框架,这些框架各有所长,各具特...【详细内容】
2019-09-02  Tags: 深度学习框架  点击:(174)  评论:(0)  加入收藏
▌简易百科推荐
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Python阿杰    Tags:FastAPI   点击:(6)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  java老人头    Tags:框架   点击:(11)  评论:(0)  加入收藏
今天来梳理下 Spring 的整体脉络啦,为后面的文章做个铺垫~后面几篇文章应该会讲讲这些内容啦 Spring AOP 插件 (了好久都忘了 ) 分享下 4ye 在项目中利用 AOP + MybatisPlus 对...【详细内容】
2021-12-07  Java4ye    Tags:Spring   点击:(14)  评论:(0)  加入收藏
&emsp;前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用...【详细内容】
2021-12-06  波哥带你学Java    Tags:SpringSecurity   点击:(18)  评论:(0)  加入收藏
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  清闲的帆船先生    Tags:框架   点击:(19)  评论:(0)  加入收藏
流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术。本文主要介绍了诞生于云原生时代的流水线框架 Argo。 什么是流水线?在计算机...【详细内容】
2021-11-30  叼着猫的鱼    Tags:框架   点击:(21)  评论:(0)  加入收藏
TKinterThinter 是标准的python包,你可以在linx,macos,windows上使用它,你不需要安装它,因为它是python自带的扩展包。 它采用TCL的控制接口,你可以非常方便地写出图形界面,如...【详细内容】
2021-11-30    梦回故里归来  Tags:框架   点击:(26)  评论:(0)  加入收藏
前言项目中的配置文件会有密码的存在,例如数据库的密码、邮箱的密码、FTP的密码等。配置的密码以明文的方式暴露,并不是一种安全的方式,特别是大型项目的生产环境中,因为配置文...【详细内容】
2021-11-17  充满元气的java爱好者  博客园  Tags:SpringBoot   点击:(25)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  AT小白在线中  搜狐号  Tags:开发框架   点击:(29)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  小程序建站    Tags:SpringBoot   点击:(55)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条