From 4bda4d716c3afd9be644ad5d2a2d46ef1856ec67 Mon Sep 17 00:00:00 2001 From: Qiao Longfei Date: Tue, 30 Oct 2018 15:49:24 +0800 Subject: [PATCH] add doc for distribute lookup table --- .../howto/training/cluster_howto.rst | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/doc/fluid/user_guides/howto/training/cluster_howto.rst b/doc/fluid/user_guides/howto/training/cluster_howto.rst index 9f9b7b04f..8ab0e0c2f 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) + + 选择参数分布方法 ++++++++++++++++ -- GitLab