Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于 PLATO-2 和 PLATO 的模型区别 #144

Open
kiseliu opened this issue Jun 9, 2022 · 1 comment
Open

关于 PLATO-2 和 PLATO 的模型区别 #144

kiseliu opened this issue Jun 9, 2022 · 1 comment

Comments

@kiseliu
Copy link

kiseliu commented Jun 9, 2022

除了论文中提到的 pre-norm 和 post-norm 的区别,以及 tokenizer 的区别,

我对比了下 plato 的网络结构 和 plato-2 (stage 2.1 PLATO模型) 的网络结构,发现也有细微区别:

1、在预测 latent variable 的时候,plato 1 中的实现的是 mask token 的 final hidden state 经过 post_network;而plato-2 中,我理解 recognition_fc 这一层 是为了 取出 mask token 的 final hidden state,然后 post_network 用 (latent_embedding, recognition_bias) 给替代了;

2、plato 1 中,计算 NLL loss 的时候(generation network),response 中所有 token 的 final hidden states,上面没有接分类器,而是和 word embedding 共享参数;而 plato 2 中,response 中所有 token 的 final hidden states,还要经过 一层 mask_lm_trans_fc 和 一层 layer norm,然后 和 word embedding 共享参数时,还多了个偏置 mask_lm_out_fc.b_0;

3、计算 bow loss 的时候,和 计算 NLL loss 的改动一样,多了 一层 bow_trans_fc 和 一层 layer norm,以及偏置 bow_out_fc.b_0;

我不知道上述理解是否正确,以及这种改动上的设计是为了?

@sserdoubleh
Copy link
Collaborator

网络的变动,对模型的效果差异不大,主要是为了对齐 BERT 的模型结构 / 更多地共享参数

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants