-
Notifications
You must be signed in to change notification settings - Fork 409
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
关于MLM中,中文全词掩盖的预测标签问题 #84
Comments
您好 。 我加载了roberta模型 (通过transformer库的BertForMaskedLM函数 )进行掩码预测,效果很差,这合理么?是一个新人,在自己慢慢摸索这些库。 |
咨询量一下哈工大,他们将masked_lm_labels中文的##(前面分词时手动加上的)去掉了,我改成下面这种了:
|
我看现在master上的finetuning代码已经改成这样了。 |
个人感觉最后中文带“##中”和“中”两个字的embedding会被训练成一样,二者最终可能是差不多的,所以使用训练好的RoBERTa_zh_L12也可以使用。 |
谢谢你的回答。可是我觉得还是有两个问题呀。 |
你好,请问有更新的进展吗。我最近也对这个地方比较好奇,为什么需要手动去掉##呢?这样不是把一些词的位置信息取消了吗(如 bigheary所举的例子 “中国”和“其中”) |
谢谢合作!
|
我注意到在脚本create_pretraining_data.py中564行,
masked_lms.append(MaskedLmInstance(index=index, label=tokens[index]))
这一行制作MLM预测标签时,label采用的是tokens[index],而tokens为了全词掩盖,在预处理阶段对部分字做了"##"处理,按照这一行的逻辑,全词掩盖后MLM的监督标签中,将有很大部分由带有前缀"##"的token组成。这种情况在英文中是可以理解的,因为在fine tune阶段英文词同样会做wordpiece处理,但中文在fine tune阶段却不会做分词处理,这在中文中合理吗?
The text was updated successfully, but these errors were encountered: