Qihoo360 / tensornet

Apache License 2.0
315 stars 72 forks source link

合并sparse table #12

Closed zhangys-lucky closed 3 years ago

zhangys-lucky commented 3 years ago

目前每个tn.layers.EmbeddingFeatures会创建一张sparse table,将所有sparse table合并后可减少网络请求次数

zhangys-lucky commented 3 years ago

训练速度的主要瓶颈来自下面几个步骤:

  1. 将特征排序去重
  2. 从parameter server pull参数。
  3. 回填pull成功参数到tensor当中。

未合并SparseTable之前第1步不是性能瓶颈,性能瓶颈主要在第2步,当tn.layers.EmbeddingFeatures调用次数较多的时候,同一个batch会有多次pull动作,网络开销较大。

将SparseTable合并之后第1步会变为瓶颈,由于需要将所有的特征汇聚起来使用一次请求pull,当batch size较大时,这种方式会非常慢。