Big*_*igD 5 python bert-language-model
我正在寻找有关使用 Bert 和 Bert 的屏蔽语言模型来预测多个标记的建议。
我的数据看起来像:
语境: some very long context paragraph
问题:rainy days lead to @placeholder这个问题的答案@placeholder是wet weather。在模型中,wet environment是要预测的答案。
那么在预处理阶段,我应该将文本更改为rainy days lead to [MASK]或类似的内容rainy days lead to [MASK] [MASK]吗?我知道 masked LM 在单个 token 预测上效果很好,你认为 masked LM 可以在多个 token 预测上很好地工作吗?如果没有,您对如何预处理和训练此类数据有什么建议吗?
非常感谢!
所以有3个问题:
第一的,
那么在预处理阶段,我应该将文本更改为下雨天导致[MASK]还是类似下雨天导致[MASK][MASK]?
总而言之,应该设置[MASK][MASK]。但请记住,在 BERT 中,掩码是从 token 角度设置的。事实上,“潮湿的天气”可能会被标记为:[wet] [weath] [##er],在这种情况下,你应该有 [MASK] [MASK] [MASK]。因此每个代币有一个 [MASK]。
第二,
我知道 masked LM 在单 token 预测上效果很好,你认为 masked LM 在多 token 预测上也能很好地工作吗?
正如您可以在原始论文中看到的那样,他们说:
训练数据生成器随机选择 15% 的 token 位置进行预测。如果选择第 i 个令牌,我们将第 i 个令牌替换为 (1) 80% 的时间为 [MASK] 令牌 (2) 10% 的时间为随机令牌 (3) 未更改的第 i 个令牌10%的时间。
他们注意到每个句子的 MASKED 令牌数量没有限制,在预训练 BERT 期间有多个 MASKED 令牌。根据我自己的经验,我对 BERT 进行了多次预训练,我注意到,如果我的输入中只有一个或多个 MASKED 令牌,则对 MASKED 令牌进行的预测之间几乎没有差异。
第三,
如果没有,您对如何预处理和训练此类数据有什么建议吗?
所以答案是肯定的,但如果你真的想屏蔽你选择的元素(而不是像论文中那样随机),你应该在数据被标记化时调整 MASK,因为 MASKED 标记的数量会更大(或相等)您设置的单词空间中的 MASK 数量(就像我给您的示例:1 个单词不等于 1 个标记,所以基本上,1 个 MASKED 单词将是 1 个或多个 MASK 标记)。但老实说,标签化的过程将会如此巨大,我建议您增加 MASK 令牌的 15% 的概率,或者制定一个过程,为每个 MASKED 令牌屏蔽 1 或 2 个下一个令牌(或类似的东西)。