Created by: MrChengmo
PR types
Bug fixes
PR changes
OPs
Describe
cherry-pick : https://github.com/PaddlePaddle/Paddle/pull/25174
问题
用户使用1.7版本后推荐使用的
fluid.embedding
,在单机下可以正常运行,但分布式运行不符合预期
-
fluid.embedding 更改了
op_type
为lookup_table_v2
,致使distributed_transpiler
无法识别该op为分布式查表op,不替换为distributed_lookup_table
-
导致后果一:每次查表通信时,会发送完整的emb大表,速度极慢
-
导致后果二:当遇到emb极大时,会触发gRPC的负载策略报错,提示
unbalanced
,error code 2
修复
-
给
distributed_lookup_table
加入了一个新的attr:lookup_table_version
,用于区分fluid.embedding
与fluid.layers.embedding
-
取消了
distributed_lookup_table
对于输入最后一维必须为1的限制 -
parameter_prefetch
会手动将输入ids reshape 为[ids_nums , 1]
, 与之前行为一致 -
distributed_lookup_table
会在prefetch后手动reshape outputs,使fluid.embedding
的输出与单机维度一致