[torch 参数更多]fairscale.nn.model_parallel.layers.ParallelEmbedding

fairscale.nn.model_parallel.layers.ParallelEmbedding

fairscale.nn.model_parallel.layers.ParallelEmbedding(num_embeddings: int, embedding_dim: int ,padding_idx: Optional[int] = None, max_norm: Optional[float] = None, norm_type: float = 2.0, scale_grad_by_freq: bool = False, sparse: bool = False, init_method: Callable[[torch.Tensor], torch.Tensor] = init.xavier_normal_, keep_master_weight_for_test: bool = False)

paddle.distributed.fleet.meta_parallel.VocabParallelEmbedding

paddle.distributed.fleet.meta_parallel.VocabParallelEmbedding(num_embeddings, embedding_dim, weight_attr=None, mp_group=None, name=None)

两者功能大体一致,但内部实现细节不一样,ParallelEmbedding 的切分方向沿着 embedding 方向,VocabParallelEmbedding 的切分方向沿着 vocab(词汇表)方向,故在多卡训练时,load 参数时需手动修改以匹配参数切分方式的不同。

参数映射

fairscale PaddlePaddle 备注
num_embeddings num_embeddings 词汇表大小。
embedding_dim embedding_dim embedding 的维度大小。
padding_idx - 填充数值,Paddle 无此参数,暂无转写方式。
max_norm - 范数大于 maxnorm 的数值被设置为 maxnorm, Paddle 无此参数,暂无转写方式。
norm_type - 设置 p 范数,Paddle 无此参数,暂无转写方式。
sparse - 是否为稀疏向量,Paddle 无此参数,暂无转写方式。
scale_grad_by_freq - 是否根据 batch 内单词的频数的倒数缩放梯度,Paddle 无此参数,暂无转写方式。
init_method - 参数初始化方法,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。
keep_master_weight_for_test - 返回主参数用于测试,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。
- mp_group 模型并行组,PyTorch 无此参数,Paddle 保持默认即可。
- name 网络层名称,PyTorch 无此参数,Paddle 保持默认即可。
- weight_attr 指定权重参数属性,PyTorch 无此参数,Paddle 设置为 paddle.nn.initializer.Constant(0)。