- 源于飞桨生态的搜索推荐模型一站式开箱即用工具
- 适合初学者,开发者,研究者从调研,训练到预测部署的全流程解决方案
- 包含语义理解、召回、粗排、精排、多任务学习、融合等多个任务的推荐搜索算法库
- 配置yaml自定义选项,即可快速上手使用单机训练、大规模分布式训练、离线预测、在线部署
-
Python 2.7/ 3.5 / 3.6 / 3.7
-
PaddlePaddle >= 1.7.2
-
操作系统: Windows/Mac/Linux
Windows下目前仅提供单机训练,建议使用Linux
-
安装方法一<PIP源直接安装>:
python -m pip install paddle-rec
-
安装方法二
源码编译安装
- 安装飞桨 注:需要用户安装版本 >1.7.2 的飞桨
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
- 源码安装PaddleRec
git clone https://github.com/PaddlePaddle/PaddleRec/ cd PaddleRec python setup.py install
目前框架内置了多个模型,一行命令即可使用内置模型开始单机训练和本地模拟分布式训练。
本地模拟分布式(
local_cluster
)为1个server + 1个trainer
的参数服务器模式
我们以排序模型中的dnn
模型为例介绍PaddleRec的简单使用。训练数据来源为Criteo数据集,我们从中截取了100条方便您快速上手体验完整的PaddleRec流程。
# 使用CPU进行单机训练
python -m paddlerec.run -m paddlerec.models.rank.dnn
若您复用内置模型,对yaml配置文件进行了修改,如更改超参,重新配置数据后,可以直接使用paddlerec运行该yaml文件。
我们以dnn模型为例,在paddlerec代码目录下:
cd paddlerec
修改dnn模型的超参配置,例如将迭代训练轮数从10轮修改为5轮:
train:
# epochs: 10
epochs: 5
在Linux环境下,可以使用vim
等文本编辑工具修改yaml文件:
vim ./models/rank/dnn/config.yaml
# 键入 i, 进入编辑模式
# 修改yaml文件配置
# 完成修改后,点击esc,退出编辑模式
# 键入 :wq 保存文件并退出
完成dnn模型models/rank/dnn/config.yaml
的配置修改后,运行dnn
模型:
# 使用自定配置进行训练
python -m paddlerec.run -m ./models/rank/dnn/config.yaml
分布式训练需要配置config.yaml
,加入或修改engine
选项为cluster
或local_cluster
,以进行分布式训练,或本地模拟分布式训练。
我们以dnn模型为例,在paddlerec代码目录下,修改dnn模型的config.yaml
文件:
train:
#engine: single
engine: local_cluster
然后启动paddlerec训练:
# 进行本地模拟分布式训练
python -m paddlerec.run -m ./models/rank/dnn/config.yaml
我们以dnn模型为例,在paddlerec代码目录下,首先修改dnn模型config.yaml
文件:
train:
#engine: single
engine: cluster
再添加分布式启动配置文件backend.yaml
,具体配置规则在分布式训练教程中介绍。最后启动paddlerec训练:
# 配置好 mpi/k8s/paddlecloud集群环境后
python -m paddlerec.run -m ./models/rank/dnn/config.yaml -b backend.yaml
方向 | 模型 | 单机CPU训练 | 单机GPU训练 | 分布式CPU训练 |
---|---|---|---|---|
内容理解 | Text-Classifcation | ✓ | x | ✓ |
内容理解 | TagSpace | ✓ | x | ✓ |
召回 | DSSM | ✓ | x | ✓ |
召回 | MultiView-Simnet | ✓ | x | ✓ |
召回 | TDM | ✓ | x | ✓ |
召回 | Word2Vec | ✓ | x | ✓ |
召回 | SSR | ✓ | ✓ | ✓ |
召回 | Gru4Rec | ✓ | ✓ | ✓ |
召回 | Youtube_dnn | ✓ | ✓ | ✓ |
召回 | NCF | ✓ | ✓ | ✓ |
排序 | Dnn | ✓ | x | ✓ |
排序 | DeepFM | ✓ | x | ✓ |
排序 | xDeepFM | ✓ | x | ✓ |
排序 | DIN | ✓ | x | ✓ |
排序 | Wide&Deep | ✓ | x | ✓ |
多任务 | ESMM | ✓ | ✓ | ✓ |
多任务 | MMOE | ✓ | ✓ | ✓ |
多任务 | ShareBottom | ✓ | ✓ | ✓ |
如有意见、建议及使用中的BUG,欢迎在GitHub Issue
提交
- 2020.5.14 - PaddleRec v0.1
本项目的发布受Apache 2.0 license许可认证。