首页 Paddle框架 帖子详情
fleet transpiler模式 mpi分布式训练ctr模型 embedding极易出现梯度爆炸
收藏
快速回复
Paddle框架 问答深度学习模型训练 784 2
fleet transpiler模式 mpi分布式训练ctr模型 embedding极易出现梯度爆炸
收藏
快速回复
Paddle框架 问答深度学习模型训练 784 2

   1)PaddlePaddle版本:paddle 1.6.1

  • 训练信息
       1 )多机,cpu
       
  • 问题描述:数据使用criteo challenge 的数据集,mpi训练,使用fleet transpiler分布式训练,使用的data_reader 是paddle官方models里paddleRec的DCN的reader代码。mpi训练报错:
    Pserver log报错日志:Error Message Summary:
    Tue Dec 31 14:58:11 2019[1,0]:----------------------
    Tue Dec 31 14:58:11 2019[1,0]:PaddleCheckError: Operator adam output Tensor C3_C7_moment2_0 contains Inf at [/paddle/paddle/fluid/framework/operator.cc:843]
    Train log报错日志:PaddleCheckError: internal error in RPCClient at [/paddle/paddle/fluid/operators/distributed/parameter_prefetch.cc:129]
    Tue Dec 31 14:58:15 2019[1,2]: [operator < distributed_lookup_table > error]
    任务的mpi链接
    本地训练正常,提到mpi训练几个batch后就报错了。之前使用业务线的数据集训练ctr模型频繁出现embedding梯度爆炸。之前也提过问题,链接
0
收藏
回复
全部评论(2)
时间顺序
AIStudio792111
#2 回复于2020-01

问题已解决,解决方案如下:

  1. paddlecloud 的config.ini里添加:

FLAGS_communicator_send_queue_size=8
FLAGS_communicator_thread_pool_size=8
FLAGS_communicator_max_merge_var_num=8
FLAGS_communicator_is_sgd_optimizer=0

  1. 训练代码中优化器需打开lazy_mode:
    optimizer = fluid.optimizer.Adam(learning_rate=3e-4, lazy_mode=True)

加入以上改动后,模型可以正常训练。

0
回复
AIStudio786085
#3 回复于2020-01

1.7 分布式会加入DistributedStrategy, 自动优化communicator相关配置。

lazy_mode会在后续优化中,作为自动优化。

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户