diff --git a/doc/fluid/user_guides/howto/training/cluster_howto.rst b/doc/fluid/user_guides/howto/training/cluster_howto.rst index 9f9b7b04f869bde793934d3bd73fd76d75ade0cd..8ab0e0c2f28595593fb411eeff88f2b1f2c42535 100644 --- a/doc/fluid/user_guides/howto/training/cluster_howto.rst +++ b/doc/fluid/user_guides/howto/training/cluster_howto.rst @@ -107,6 +107,32 @@ Fluid分布式任务可以支持同步训练或异步训练,在同步训练方 t.transpile(trainer_id, pservers=pserver_endpoints, trainers=trainers, sync_mode=False) + +选择是否使用分布式embedding表进行训练 ++++++++++++++++++++++++++++++++++ + +embedding被广泛应用在各种网络结构中,尤其是文本处理相关的模型。在某些场景,例如推荐系统或者搜索引擎中, +embedding的feature id可能会非常多,当feature id达到一定数量时,embedding参数会变得很大,一方面可能 +单机内存无法存放导致无法训练,另一方面普通的训练模式每一轮迭代都需要同步完整的参数,参数太大会让通信变得 +非常慢,进而影响训练速度。 + +Fluid支持千亿量级超大规模稀疏特征embedding的训练,embedding参数只会保存在parameter server上,通过 +参数prefetch和梯度稀疏更新的方法,大大减少通信量,提高通信速度。 + +该功能只对分布式训练有效,单机无法使用。 +需要配合稀疏更新一起使用。 + +使用方法,在配置embedding的时候,加上参数 :code:`is_distributed=True` 以及 :code:`is_sparse=True` 即可。 + +.. code-block:: python + + emb = fluid.layers.embedding( + is_distributed=True, + input=input, + size=[10000000000, 9], + is_sparse=True) + + 选择参数分布方法 ++++++++++++++++