[TOC]
- 图模型,支持 十亿级别节点,千亿级别边
- 深度排序模型,支持 百亿级别特征,千亿级别样本
- 深度召回模型,支持 百亿级别特征,千亿级别样本
包括 训练脚本、预测脚本 和 demo 数据,以下模型的 demo 都可以直接运行。
分布式训练或者预测时,有三个角色,分别是 graph server、parameter server 和 worker。
graph server负责分布式图存储、查询等功能parameter server负责存储、更新模型参数等功能worker负责拉取远程数据、计算梯度等功能
-
启动
graph_server,从远程拉取数据加载,提供分布式数据存储和查询等功能 -
启动
parameter_server,参数初始化,提供存储、更新模型参数等功能 -
启动
worker,从 HDFS 拉取训练数据,提供计算梯度等功能worker与graph_server通信获取训练数据需要的节点,节点特征等信息worker与parameter_server通信获取训练数据需要的模型参数,计算梯度worker上传梯度到parameter_server,pamameter_server使用梯度更新参数
- 启动
graph_server,从远程拉取数据加载,提供分布式数据存储和查询等功能 - 启动
parameter_server,从远程加载模型信息 - 启动
worker,从 HDFS 拉取训练数据,预测结果
- 参考编译文档编译
-
要求 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
-
以下以 无监督图模型、有监督的图模型、深度排序模型 和 深度召回模型 为例分别介绍如何分布式训练。
-
模型概述
- 无监督图模型包括
deepwalk、eges和unsup_graphsage等模型
- 无监督图模型包括
-
以无监督 graphsage 模型为例,介绍无监督图模型的分布式训练流程
- 进入到
embedx/demo/dist目录,运行run_unsup_graphsage.sh脚本 - 依次生成训练数据
edge、邻居平均特征average_feature、模型model和 节点 embeddingembedding
- 进入到
-
模型概述
- 有监督图模型包括
sup_graphsage - 有监督图模型提供了
多标签和多分类功能
- 有监督图模型包括
-
以
有监督 graphsage 模型多分类为例,介绍有监督图模型的分布式训练流程- 进入到
embedx/demo/dist目录,运行run_sup_graphsage.sh脚本 - 依次生成邻居平均特征
average_feature、模型model和 节点 embeddingembedding
- 进入到
-
模型概述
- 深度排序模型包括
deepfm和din等模型
- 深度排序模型包括
-
以
deepfm 模型为例,介绍深度排序模型的分布式训练流程- 进入到
embedx/demo/dist目录,运行run_deepfm.sh脚本 - 依次生成模型
model和 样本打分结果probs
- 进入到
-
模型概述
- 深度召回模型包括
dssm和youtube_dnn模型
- 深度召回模型包括
-
以
dssm 模型为例,介绍深度召回模型的分布式训练流程- 进入到
embedx/demo/dist目录,运行run_dssm.sh脚本 - 依次生成模型
model、user_embeddinguser_embedding和 item_embeddingitem_embedding
- 进入到
