Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleRec
提交
2abd8d8a
P
PaddleRec
项目概览
PaddlePaddle
/
PaddleRec
通知
68
Star
12
Fork
5
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
27
列表
看板
标记
里程碑
合并请求
10
Wiki
1
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleRec
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
27
Issue
27
列表
看板
标记
里程碑
合并请求
10
合并请求
10
Pages
分析
分析
仓库分析
DevOps
Wiki
1
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
2abd8d8a
编写于
7月 20, 2020
作者:
M
MrChengmo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix some bug
上级
5d4c7196
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
51 addition
and
8 deletion
+51
-8
core/engine/cluster/cloud/cluster.sh
core/engine/cluster/cloud/cluster.sh
+2
-0
core/engine/cluster/cloud/k8s_config.ini.template
core/engine/cluster/cloud/k8s_config.ini.template
+1
-0
core/engine/cluster/cloud/mpi_config.ini.template
core/engine/cluster/cloud/mpi_config.ini.template
+1
-0
core/engine/cluster/cluster.py
core/engine/cluster/cluster.py
+8
-3
doc/distributed_train.md
doc/distributed_train.md
+21
-4
doc/yaml.md
doc/yaml.md
+18
-1
未找到文件。
core/engine/cluster/cloud/cluster.sh
浏览文件 @
2abd8d8a
...
...
@@ -59,6 +59,7 @@ function _gen_mpi_config() {
-e
"s#<
$
OUTPUT_PATH
$>
#
$OUTPUT_PATH
#g"
\
-e
"s#<
$
THIRDPARTY_PATH
$>
#
$THIRDPARTY_PATH
#g"
\
-e
"s#<
$
CPU_NUM
$>
#
$max_thread_num
#g"
\
-e
"s#<
$
USE_PYTHON3
$>
#
$USE_PYTHON3
#g"
\
-e
"s#<
$
FLAGS_communicator_is_sgd_optimizer
$>
#
$FLAGS_communicator_is_sgd_optimizer
#g"
\
-e
"s#<
$
FLAGS_communicator_send_queue_size
$>
#
$FLAGS_communicator_send_queue_size
#g"
\
-e
"s#<
$
FLAGS_communicator_thread_pool_size
$>
#
$FLAGS_communicator_thread_pool_size
#g"
\
...
...
@@ -76,6 +77,7 @@ function _gen_k8s_config() {
-e
"s#<
$
AFS_REMOTE_MOUNT_POINT
$>
#
$AFS_REMOTE_MOUNT_POINT
#g"
\
-e
"s#<
$
OUTPUT_PATH
$>
#
$OUTPUT_PATH
#g"
\
-e
"s#<
$
CPU_NUM
$>
#
$max_thread_num
#g"
\
-e
"s#<
$
USE_PYTHON3
$>
#
$USE_PYTHON3
#g"
\
-e
"s#<
$
FLAGS_communicator_is_sgd_optimizer
$>
#
$FLAGS_communicator_is_sgd_optimizer
#g"
\
-e
"s#<
$
FLAGS_communicator_send_queue_size
$>
#
$FLAGS_communicator_send_queue_size
#g"
\
-e
"s#<
$
FLAGS_communicator_thread_pool_size
$>
#
$FLAGS_communicator_thread_pool_size
#g"
\
...
...
core/engine/cluster/cloud/k8s_config.ini.template
浏览文件 @
2abd8d8a
...
...
@@ -19,6 +19,7 @@ afs_local_mount_point="/root/paddlejob/workspace/env_run/afs/"
# 新k8s afs挂载帮助文档: http://wiki.baidu.com/pages/viewpage.action?pageId=906443193
PADDLE_PADDLEREC_ROLE=WORKER
use_python3=<$ USE_PYTHON3 $>
CPU_NUM=<$ CPU_NUM $>
GLOG_v=0
...
...
core/engine/cluster/cloud/mpi_config.ini.template
浏览文件 @
2abd8d8a
...
...
@@ -17,6 +17,7 @@ output_path=<$ OUTPUT_PATH $>
thirdparty_path=<$ THIRDPARTY_PATH $>
PADDLE_PADDLEREC_ROLE=WORKER
use_python3=<$ USE_PYTHON3 $>
CPU_NUM=<$ CPU_NUM $>
GLOG_v=0
...
...
core/engine/cluster/cluster.py
浏览文件 @
2abd8d8a
...
...
@@ -159,23 +159,28 @@ class ClusterEnvBase(object):
self
.
cluster_env
[
"PADDLE_VERSION"
]
=
self
.
backend_env
.
get
(
"config.paddle_version"
,
"1.7.2"
)
# python_version
self
.
cluster_env
[
"USE_PYTHON3"
]
=
self
.
backend_env
.
get
(
"config.use_python3"
,
"0"
)
# communicator
max_thread_num
=
int
(
envs
.
get_runtime_environ
(
"max_thread_num"
))
self
.
cluster_env
[
"FLAGS_communicator_is_sgd_optimizer"
]
=
self
.
backend_env
.
get
(
"config.communicator.FLAGS_communicator_is_sgd_optimizer"
,
0
)
self
.
cluster_env
[
"FLAGS_communicator_send_queue_size"
]
=
self
.
backend_env
.
get
(
"config.communicator.FLAGS_communicator_send_queue_size"
,
5
)
"config.communicator.FLAGS_communicator_send_queue_size"
,
max_thread_num
)
self
.
cluster_env
[
"FLAGS_communicator_thread_pool_size"
]
=
self
.
backend_env
.
get
(
"config.communicator.FLAGS_communicator_thread_pool_size"
,
32
)
self
.
cluster_env
[
"FLAGS_communicator_max_merge_var_num"
]
=
self
.
backend_env
.
get
(
"config.communicator.FLAGS_communicator_max_merge_var_num"
,
5
)
"config.communicator.FLAGS_communicator_max_merge_var_num"
,
max_thread_num
)
self
.
cluster_env
[
"FLAGS_communicator_max_send_grad_num_before_recv"
]
=
self
.
backend_env
.
get
(
"config.communicator.FLAGS_communicator_max_send_grad_num_before_recv"
,
5
)
max_thread_num
)
self
.
cluster_env
[
"FLAGS_communicator_fake_rpc"
]
=
self
.
backend_env
.
get
(
"config.communicator.FLAGS_communicator_fake_rpc"
,
0
)
self
.
cluster_env
[
"FLAGS_rpc_retry_times"
]
=
self
.
backend_env
.
get
(
...
...
doc/distributed_train.md
浏览文件 @
2abd8d8a
...
...
@@ -69,6 +69,12 @@ dataset:
data_path
:
"
{workspace}/data/sample_data/train"
sparse_slots
:
"
click
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26"
dense_slots
:
"
dense_var:13"
phase
:
-
name
:
phase1
model
:
"
{workspace}/model.py"
dataset_name
:
dataloader_train
thread_num
:
1
```
分布式的训练配置可以改为:
...
...
@@ -101,6 +107,13 @@ dataset:
data_path
:
"
{workspace}/train_data"
sparse_slots
:
"
click
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26"
dense_slots
:
"
dense_var:13"
phase
:
-
name
:
phase1
model
:
"
{workspace}/model.py"
dataset_name
:
dataloader_train
# 分布式训练节点的CPU_NUM环境变量与thread_num相等,多个phase时,取最大的thread_num
thread_num
:
1
```
除此之外,还需关注数据及模型加载的路径,一般而言:
...
...
@@ -120,6 +133,8 @@ cluster_type: mpi # k8s 可选
config
:
# 填写任务运行的paddle官方版本号 >= 1.7.2, 默认1.7.2
paddle_version
:
"
1.7.2"
# 是否使用PaddleCloud运行环境下的Python3,默认使用python2
use_python3
:
1
# hdfs/afs的配置信息填写
fs_name
:
"
afs://xxx.com"
...
...
@@ -140,11 +155,13 @@ config:
# paddle参数服务器分布式底层超参,无特殊需求不理不改
communicator
:
# 使用SGD优化器时,建议设置为1
FLAGS_communicator_is_sgd_optimizer
:
0
# 以下三个变量默认都等于训练时的线程数:CPU_NUM
FLAGS_communicator_send_queue_size
:
5
FLAGS_communicator_thread_pool_size
:
32
FLAGS_communicator_max_merge_var_num
:
5
FLAGS_communicator_max_send_grad_num_before_recv
:
5
FLAGS_communicator_thread_pool_size
:
32
FLAGS_communicator_fake_rpc
:
0
FLAGS_rpc_retry_times
:
3
...
...
@@ -232,7 +249,7 @@ phase:
再新增
`backend.yaml`
```
yaml
backend
:
"
PaddleCloud"
cluster_type
:
mpi
cluster_type
:
mpi
# k8s可选
config
:
paddle_version
:
"
1.7.2"
...
...
@@ -317,7 +334,7 @@ phase:
```
yaml
backend
:
"
PaddleCloud"
cluster_type
:
k8s
#
k8s
可选
cluster_type
:
k8s
#
mpi
可选
config
:
# 填写任务运行的paddle官方版本号 >= 1.7.2, 默认1.7.2
...
...
@@ -399,7 +416,7 @@ phase:
再新增
`backend.yaml`
```
yaml
backend
:
"
PaddleCloud"
cluster_type
:
k8s
#
k8s
可选
cluster_type
:
k8s
#
mpi
可选
config
:
# 填写任务运行的paddle官方版本号 >= 1.7.2, 默认1.7.2
...
...
doc/yaml.md
浏览文件 @
2abd8d8a
# PaddleRec yaml配置说明
# PaddleRec
config.
yaml配置说明
## 全局变量
...
...
@@ -70,3 +70,20 @@
| optimizer.learning_rate | float | > 0 | 否 | 指定学习率 |
| reg | float | > 0 | 否 | L2正则化参数,只在SGD下生效 |
| others | / | / | / | 由各个模型组网独立指定 |
# PaddleRec backend.yaml配置说明
## 全局变量
| 名称 | 类型 | 取值 | 是否必须 | 作用描述 |
| :-------: | :-------------------: | :---------------------------------------------------: | :------: | :------------------------------------------------: |
| backend | string | paddlecloud/k8s | 是 | 使用PaddleCloud平台提交,还是在公有云K8S集群提交 |
| cluster_type | string | mpi/k8s | 是 | 指定运行的计算集群: mpi 还是 k8s |
## config
| 名称 | 类型 | 取值 | 是否必须 | 作用描述 |
| :---------------------------: | :----------: | :-------------------------------------------: | :------: | :------------------------------------------------------------------: |
| paddle_version | string | paddle官方版本号,如1.7.2/1.8.0/1.8.3等 | 否 | 指定运行训练使用的Paddle版本,默认1.7.2 |
| use_python3 | int | 0(默认)/1 | 否 | 指定是否使用python3进行训练 |
| fs_name | string | "afs://xxx.com" | 是 | hadoop集群名称所需配置 |
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录