关于 Bert 嵌入 (input_ids, input_mask)

About Bert embedding (input_ids, input_mask)

据我了解,在Bert的操作逻辑中,他改变了50%的句子作为输入。它不会触及其余部分。

1-) 变更的部分是tokenizer.encoder的交易吗?这是否等于 input_ids?

然后填充完成。根据指定的 Max_len 创建矩阵。空的部分用0填充。

在这些之后,每句话放置 cls 标记。 Sep 标记放在句子的末尾。

2-) input_mask是否发生在这个过程中?

3 -)另外,我们在什么地方使用input_segment?

  1. 通过对句子进行编码得到的input_mask没有显示[MASK]标记的存在。相反,当这批句子被标记化、前缀为 [CLS] 并附加了 [SEP] 个标记时,它获得了任意长度。

为了使批次中的所有句子都有固定数量的标记,执行零填充。 input_ids 变量显示给定的令牌位置是否包含实际令牌或者它是否为零填充位置。

  1. 使用 [MASK] 令牌仅在您想在掩码语言模型 (MLM) 上训练时使用 objective.

  2. BERT 在两个 objective 上训练,MLM 和下一句预测 (NSP)。在 NSP 中,你传递两个句子并尝试预测第二个句子是否是第一个句子的后续句子。 segment_id 包含特定标记属于哪个句子的信息。