Closed hntee closed 4 years ago
@hntee hi, 其实两者的project layer位置不一样的,bright是放在word embedding之后,google的好像是在word_embedding+pos_embedding_seg_embedding之后,另外对于中文的,最好两个版本都试下,哪个好用哪个预训练权重。
@lonePatient 感谢回复,不过我又看了下 google 那边的代码
这里把output加上pos_embedding之后,直接就layer norm了,还是没发现在哪里出现了有这个projection...
另外albert_zh这边,我看代码里面虽然产生了project_variable,但是后面也没有使用,有点奇怪
@hntee 仔细看代码,google部分在transformer模块里面,没用是啥意思?
哦没事,我是说看到 (self.embedding_output, self.embedding_table,self.embedding_table_2)里面后两个变量在后面没用到,但embedding_output已经是经过Factorized的了。
Hi brightmart 你好,
我看到在你的modeling.py中有一个embedding_lookup_factorized,里面在V->E之间生成了一个中间矩阵,但是在google的原版中是没有的
https://github.com/brightmart/albert_zh/blob/c6509e8edfa9b385bba69b37560501cdef7a7868/modeling.py#L448-L504
我比较奇怪的是,google的版本中为何看起来没有实现这个功能呢?
或许是我的理解有偏差,烦请指教一下