背景

Tensorflow是目前使用最广泛的深度学习解决方案,但是在面对高维稀疏数据的场景(如广告,推荐,搜索等)下,有些力不从心,有以下几点缺点:

  • 参数必须以固定维度的矩阵形式提前分配(训练开始前),不支持参数的实时(训练过程中)分配与淘汰
  • 不支持参数的增量形式的导出

为了克服这些缺点,目前支持高维稀疏场景的深度学习解决方案可以分为三类:

  1. 自主研发:完全替代Tensroflow。以百度PaddlePaddle为代表,PaddlePaddle目前处于半开源的状态,参数服务器部分的源码并没有开源。
  2. 使用Tensorflow作为第三方后端深度学习库:以XDL为代表,XDL还支持Tensorflow之外的其他深度学习库;笔者之前对XDL的源码有过详细的分析,可以参考笔者之前的博文:深入浅出XDL
  3. 扩展Tensorflow:字节跳动的BytePS采用这种方式,但是BytePS并非针对高维稀疏场景的解决方案,它的改进点是分布式深度学习场景下通信效率问题。

TensorflowExtendFramework(以下简称TEF)是笔者开源的针对高维稀疏数据场景(如广告,推荐,搜索等)的深度学习解决方案,Github地址:TensorflowExtendFramework,采用的方式是第三种,扩展Tensorflow。

简介

基本的介绍见项目文档:TEF

源码结构

目录 功能 备注
docker 开发与部署环境的Dockerfile
examples tef使用样例
tef/core tef c++代码
tef/python tef python代码
third_party 第三方依赖库

实现分析

TEF通过Operation扩展的机制,将Tensorflow的参数分配与更新任务交给自定义的参数服务器来承担,从而克服了以上的几点不足,结构图如下:

Tensorflow Extend Framework

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
猜你喜欢
  • 2021-07-15
  • 2021-10-01
  • 2021-07-12
  • 2021-06-05
  • 2021-07-27
相关资源
相似解决方案