seq2seq嵌入大小对于分布式训练来说太大了

时间:2017-03-31 01:20:44

标签: tensorflow

我已经接受了训练let output = {status: false}; if(execute.permission) { let message: string[] = execute.params; if(message.length >= 2) { // Destructuring follows [output['position'], output['message']] = message; } } 模型和tensorflow。我有3台服务器,每台服务器有32个CPU和8个Titan X gpu。

当我用单个服务器和单个gpu训练这个模型时,它连续使用gpu 50~60%。步进时间也合理(0.2~0.3秒)。

但是,当我使用群集(1个参数服务器,2个具有异步的工作人员)训练相同模​​型时,他们无法使用gpu和步长增加(3秒,比单个版本慢10倍)。

我发现参数服务器的参数大小为220MB,网络使用率为2Gbits / sec。我认为有降低参数更新频率的方法,但我无法找到。

有办法解决这个问题吗?

  • 降低参数更新频率。
  • 减少嵌入参数,不会丢失信息。
  • 其他解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:0)

一种方法可能是使用输入投影图层并将嵌入尺寸降低8倍。这样,模型中的大多数参数都会减少,并有望提高传输速度。

我不知道你的任务是什么,但它也有助于共享嵌入 - 就像在编码器和解码器中共享相同的嵌入一样,它将参数减少了2倍。