Skip to content

Latest commit

 

History

History
138 lines (84 loc) · 4.6 KB

intro_to_using_dist.md

File metadata and controls

138 lines (84 loc) · 4.6 KB

分布式使用必读

[TOC]

概述

支持的数据规模

  • 图模型,支持 十亿级别节点,千亿级别边
  • 深度排序模型,支持 百亿级别特征,千亿级别样本
  • 深度召回模型,支持 百亿级别特征,千亿级别样本

分布式训练或者预测 demo

包括 训练脚本预测脚本demo 数据,以下模型的 demo 都可以直接运行。


流程简介

分布式架构图

image info

分布式训练或者预测时,有三个角色,分别是 graph serverparameter serverworker

  • graph server 负责分布式图存储、查询等功能
  • parameter server 负责存储、更新模型参数等功能
  • worker 负责拉取远程数据、计算梯度等功能

分布式训练流程简介

  • 启动 graph_server,从远程拉取数据加载,提供分布式数据存储和查询等功能

  • 启动 parameter_server,参数初始化,提供存储、更新模型参数等功能

  • 启动 worker,从 HDFS 拉取训练数据,提供计算梯度等功能

    • workergraph_server 通信获取训练数据需要的节点,节点特征等信息
    • workerparameter_server 通信获取训练数据需要的模型参数,计算梯度
    • worker 上传梯度到 parameter_serverpamameter_server 使用梯度更新参数

分布式预测流程简介

  • 启动 graph_server,从远程拉取数据加载,提供分布式数据存储和查询等功能
  • 启动 parameter_server,从远程加载模型信息
  • 启动 worker,从 HDFS 拉取训练数据,预测结果

运行分布式 demo

编译 embedx

配置运行环境

  • 要求 python3.6 或 python3.7 运行环境, 在 embedx/demo 目录下执行 pip install -r requirements.txt

  • 修改 embedx/demo/env.sh 文件中的变量 BUILD_DIR_ABS

    • BUILD_DIR_ABS 修改为 embedx 编译输出的 bin 文件路径 embedx/build_xxxx用户的编译输出绝对路径, 如

    • BUILD_DIR_ABS=/Users/yuanhangzou/embedx/build_xxxx

以下以 无监督图模型有监督的图模型深度排序模型深度召回模型 为例分别介绍如何分布式训练。

无监督图模型

  • 模型概述

    • 无监督图模型包括deepwalkegesunsup_graphsage 等模型
  • 以无监督 graphsage 模型为例,介绍无监督图模型的分布式训练流程

    • 进入到 embedx/demo/dist 目录,运行 run_unsup_graphsage.sh 脚本
    • 依次生成训练数据 edge、邻居平均特征 average_feature、模型 model 和 节点 embedding embedding

有监督图模型

  • 模型概述

    • 有监督图模型包括 sup_graphsage
    • 有监督图模型提供了 多标签多分类 功能
  • 有监督 graphsage 模型多分类 为例,介绍有监督图模型的分布式训练流程

    • 进入到 embedx/demo/dist 目录,运行 run_sup_graphsage.sh 脚本
    • 依次生成邻居平均特征 average_feature、模型 model 和 节点 embedding embedding

深度排序模型

  • 模型概述

    • 深度排序模型包括 deepfmdin 等模型
  • deepfm 模型为例,介绍深度排序模型的分布式训练流程

    • 进入到 embedx/demo/dist 目录,运行 run_deepfm.sh 脚本
    • 依次生成模型 model 和 样本打分结果 probs

深度召回模型

  • 模型概述

    • 深度召回模型包括 dssmyoutube_dnn 模型
  • dssm 模型为例,介绍深度召回模型的分布式训练流程

    • 进入到 embedx/demo/dist 目录,运行 run_dssm.sh 脚本
    • 依次生成模型 model、user_embedding user_embedding 和 item_embedding item_embedding