ITPub博客

首页 > IT职业 > > ERNIE2.0背后的神助攻:飞桨高性能分布式训练引擎

ERNIE2.0背后的神助攻:飞桨高性能分布式训练引擎

作者:u_509a2a8fdb46 时间:2019-08-08 09:55:19 0 删除 编辑

最近,百度 ERNIE 再升级,发布持续学习语义理解框架 ERNIE 2.0,该模型在共计 16 个中英文任务上超越了 BERT 和 XLNet,取得了 SOTA 效果。在ERNIE 2.0 预训练模型耀眼光环背后的神助攻,正是源于飞桨(PaddlePaddle)长期产业实践积累的高效率GPU分布式训练能力。

(3)使用 Collective 训练方法

Collective Training 通常在 GPU 多机多卡训练中使用,一般在复杂模型的训练中⽐较常见,我们基于上面的单机模型定义给出使用 Collective 方法进⾏分布式训练的示例如下: import paddle.fluid as fluid

from nets import mlp
from paddle.fluid.incubate.fleet.collective import fleet
from paddle.fluid.incubate.fleet.base import role_maker
from utils import gen_data

input_x = fluid.layers.data(name="x", shape=[32], dtype='float32')
input_y = fluid.layers.data(name="y", shape=[1], dtype='int64')
cost = mlp(input_x, input_y)
optimizer = fluid.optimizer.SGD(learning_rate=0.01)
role = role_maker.PaddleCloudRoleMaker(is_collective=True)
fleet.init(role)
optimizer = fleet.distributed_optimizer(optimizer)
optimizer.minimize(cost)
place = fluid.CUDAPlace(0)
exe = fluid.Executor(place)
exe.run(fluid.default_startup_program())
step = 1001
for i in range(step):
    cost_val = exe.run(program=fluid.default_main_program(), feed=gen_data(), fetch_list=[cost.name])
    print("worker_index: %d, step%d cost = %f"% (fleet.worker_index(), i, cost_val[0]))

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69927062/viewspace-3126955/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-08

  • 博文量
    210
  • 访问量
    38