名称 | 类型 | 取值 | 是否必须 | 作用描述 |
---|---|---|---|---|
workspace | string | 绝对路径 或 paddlerec.models.{方向}.{模型} | 是 | 指定model/reader/data所在位置 |
mode | string / list[string] | string:单个runner的名称 / list:多个runner名称的列表 | 是 | 指定当次运行使用哪些runner |
debug | bool | True / False | 否 | 当dataset.mode=QueueDataset时,开启op耗时debug功能 |
名称 | 类型 | 取值 | 是否必须 | 作用描述 |
---|---|---|---|---|
name | string | 任意 | 是 | 指定runner名称 |
class | string | train(默认) / infer / local_cluster_train / cluster_train | 是 | 指定运行runner的类别(单机/分布式, 训练/预测) |
device | string | cpu(默认) / gpu | 否 | 程序执行设备 |
fleet_mode | string | ps(默认) / pslib / collective | 否 | 分布式运行模式 |
selected_gpus | string | "0"(默认) | 否 | 程序运行GPU卡号,若以"0,1"的方式指定多卡,则会默认启用collective模式 |
worker_num | int | 1(默认) | 否 | 参数服务器模式下worker的数量 |
server_num | int | 1(默认) | 否 | 参数服务器模式下server的数量 |
distribute_strategy | string | async(默认)/sync/half_async/geo | 否 | 参数服务器模式下训练模式的选择 |
epochs | int | >= 1 | 否 | 模型训练迭代轮数 |
phases | list[string] | 由phase name组成的list | 否 | 当前runner的训练过程列表,顺序执行 |
init_model_path | string | 路径 | 否 | 初始化模型地址 |
save_checkpoint_interval | int | >= 1 | 否 | Save参数的轮数间隔 |
save_checkpoint_path | string | 路径 | 否 | Save参数的地址 |
save_step_interval | int | >= 1 | 否 | Step save参数的batch数间隔 |
save_step_path | string | 路径 | 否 | Step save参数的地址 |
save_inference_interval | int | >= 1 | 否 | Save预测模型的轮数间隔 |
save_inference_path | string | 路径 | 否 | Save预测模型的地址 |
save_inference_feed_varnames | list[string] | 组网中指定Variable的name | 否 | 预测模型的入口变量name |
save_inference_fetch_varnames | list[string] | 组网中指定Variable的name | 否 | 预测模型的出口变量name |
print_interval | int | >= 1 | 否 | 训练指标打印batch间隔 |
instance_class_path | string | 路径 | 否 | 自定义instance流程实现的地址 |
network_class_path | string | 路径 | 否 | 自定义network流程实现的地址 |
startup_class_path | string | 路径 | 否 | 自定义startup流程实现的地址 |
runner_class_path | string | 路径 | 否 | 自定义runner流程实现的地址 |
terminal_class_path | string | 路径 | 否 | 自定义terminal流程实现的地址 |
init_pretraining_model_path | string | 路径 | 否 | 自定义的startup流程中需要传入这个参数,finetune中需要加载的参数的地址 |
runner_result_dump_path | string | 路径 | 否 | 运行中metrics的结果使用json.dump到文件的地址,若是在训练的runner中使用, 会自动加上epoch后缀 |
名称 | 类型 | 取值 | 是否必须 | 作用描述 |
---|---|---|---|---|
name | string | 任意 | 是 | 指定phase名称 |
model | string | model.py路径 | 是 | 指定Model()所在的python文件地址 |
dataset_name | string | dataset名称 | 是 | 指定使用哪个Reader |
thread_num | int | >= 1 | 否 | 模型训练线程数 |
名称 | 类型 | 取值 | 是否必须 | 作用描述 |
---|---|---|---|---|
name | string | 任意 | 是 | 指定dataset名称 |
type | string | DataLoader / QueueDataset | 是 | 指定数据读取方式 |
batch_size | int | >= 1 | 否 | 指定批训练样本数量 |
data_path | string | 路径 | 是 | 指定数据来源地址 |
data_converter | string | reader.py路径 | 是 | 指定Reader()所在python文件地址 |
sparse_slots | string | string | 否 | 指定稀疏参数选项 |
dense_slots | string | string | 否 | 指定稠密参数选项 |
名称 | 类型 | 取值 | 是否必须 | 作用描述 |
---|---|---|---|---|
optimizer.class | string | SGD/Adam/Adagrad | 是 | 指定优化器类型 |
optimizer.learning_rate | float | > 0 | 否 | 指定学习率 |
reg | float | > 0 | 否 | L2正则化参数,只在SGD下生效 |
others | / | / | / | 由各个模型组网独立指定 |
名称 | 类型 | 取值 | 是否必须 | 作用描述 |
---|---|---|---|---|
backend | string | paddlecloud/k8s | 是 | 使用PaddleCloud平台提交,还是在公有云K8S集群提交 |
cluster_type | string | mpi/k8s | 是 | 指定运行的计算集群: mpi 还是 k8s |
名称 | 类型 | 取值 | 是否必须 | 作用描述 |
---|---|---|---|---|
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" | 是 | hdfs/afs集群名称所需配置 |
fs_ugi | string | "usr,pwd" | 是 | hdfs/afs集群密钥所需配置 |
output_path | string | "/user/your/path" | 否 | 任务输出的远程目录 |
train_data_path | string | "/user/your/path" | 是 | mpi集群下指定训练数据路径,paddlecloud会自动将数据分片并下载到工作目录的./train_data 文件夹 |
test_data_path | string | "/user/your/path" | 否 | mpi集群下指定测试数据路径,会自动下载到工作目录的./test_data 文件夹 |
thirdparty_path | string | "/user/your/path" | 否 | mpi集群下指定thirdparty路径,会自动下载到工作目录的./thirdparty 文件夹 |
afs_remote_mount_point | string | "/user/your/path" | 是 | k8s集群下指定远程路径的地址,会挂载到工作目录的./afs/下 |
名称 | 类型 | 取值 | 是否必须 | 作用描述 |
---|---|---|---|---|
FLAGS_communicator_is_sgd_optimizer | int | 0(默认)/1 | 否 | 异步分布式训练时的多线程的梯度融合方式是否使用SGD模式 |
FLAGS_communicator_send_queue_size | int | 线程数(默认) | 否 | 分布式训练时发送队列的大小 |
FLAGS_communicator_max_merge_var_num | int | 线程数(默认) | 否 | 分布式训练多线程梯度融合时,线程数的配置 |
FLAGS_communicator_max_send_grad_num_before_recv | int | 线程数(默认) | 否 | 分布式训练使用独立recv参数线程时,与send的步调配置超参 |
FLAGS_communicator_thread_pool_size | int | 32(默认) | 否 | 分布式训练时,多线程发送参数的线程池大小 |
FLAGS_communicator_fake_rpc | int | 0(默认)/1 | 否 | 分布式训练时,选择不进行通信 |
FLAGS_rpc_retry_times | int | 3(默认) | 否 | 分布式训练时,GRPC的失败重试次数 |
名称 | 类型 | 取值 | 是否必须 | 作用描述 |
---|---|---|---|---|
ak | string | PaddleCloud平台提供的ak密钥 | 是 | paddlecloud用户配置 |
sk | string | PaddleCloud平台提供的sk密钥 | 否 | paddlecloud用户配置 |
priority | string | normal/high/very_high | 否 | 任务优先级 |
job_name | string | 任意 | 是 | 任务名称 |
group | string | 计算资源所在组名称 | 是 | 组名称 |
start_cmd | string | 任意 | 是 | 启动命令,默认python -m paddlerec.run -m ./config.yaml |
files | string | 任意 | 是 | 随任务提交上传的文件,给出相对或绝对路径 |
nodes | int | >=1(默认1) | 否 | mpi集群下的节点数 |
k8s_trainers | int | >=1(默认1) | 否 | k8s集群下worker的节点数 |
k8s_cpu_cores | int | >=1(默认1) | 否 | k8s集群下worker的CPU核数 |
k8s_gpu_card | int | >=1(默认1) | 否 | k8s集群下worker的GPU卡数 |
k8s_ps_num | int | >=1(默认1) | 否 | k8s集群下server的节点数 |
k8s_ps_cores | int | >=1(默认1) | 否 | k8s集群下server的CPU核数 |