[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
- 进入到