Pytorch
TensorFlow

#
章末小测验

让我们测试一下你在这章学到了什么！

###
1．以下哪些任务可以看作为 token 分类问题？

找出句子中的不同词的词性。 判断一个句子的语法是否正确。 找出句子中提到的人或物。 找出句子中回答问题的段落。

###
2． token 分类的预处理部分与其他预处理流程有什么不同？

不需要进行预处理；文本已经被分词了。 输入的文本就是单词序列，所以我们只需要进行子词分词。 我们使用 `-100` 来标记特殊 token 。 在进行截断/填充时，我们需要确保将待预测的标签截断或填充到与输入相同的大小

###
3．在 token 分类问题中，当我们分词并想要子词分词时，会出现什么问题？

Tokenizer 添加了特殊的 token ，我们没有这些 token 的标签。 每个词可能产生多个 token ，因此我们最终会得到比我们拥有的标签更多的 token 。 添加的 token 没有标签，所以没有问题。

###
4.“领域适应”是什么意思？

我们在一个数据集上运行模型，并获取该数据集中每个样本的预测结果。 当我们在数据集上训练模型时。 我们在一个新的数据集上微调一个预训练的模型，并在测试集上有一定的适应性。 我们将被模型分类错误的样本添加到数据集中，使得我们的模型更加健壮。

###
5．掩码语言建模问题中的标签是什么？

输入句子中的一些标记是随机屏蔽的，标签就是原始输入 token 。 输入句子中的一些 token 是随机屏蔽的，标签是原始的输入 token 向左移动形成的。 输入句子中的一些 token 是随机屏蔽的，标签是这个句子是积极的还是消极的。 两个句子中的一些 token 是随机屏蔽的，标签是两个句子是否相似。

###
6．哪些任务可以被看作是序列到序列的问题？

撰写长文档的简短评论 回答关于一个文档的问题。 将一段中文文本翻译成英文。 修正我侄子/朋友发来的信息，纠正他们的语法错误

###
7．对于序列到序列的问题，预处理数据的正确方法是什么？

输入和目标必须一起发送到 tokenizer ，使用 `input = ...` 和 `target = ...` 。 输入和目标都必须在 tokenizer 的两次独立调用中进行预处理。 像往常一样，我们只需要对输入进行 tokenize 输入序列和目标序列都需要通过特殊的上下文管理器分别发送给 tokenizer 进行预处理。

###
8．为什么需要有一个特定的 Trainer 子类来解决序列到序列问题？

因为序列到序列问题使用自定义的损失计算方法，忽略 `-100` 的标签 因为序列到序列问题需要特殊的评估循环 因为该问题中的预测目标是序列到序列中问题部分的文本 因为我们在序列到序列问题中使用了两个模型

###
10．你应该在什么时候预先训练一个新的模型？

当你的特定语言没有预训练模型可用时 当你有大量可用的数据时，即使有一个经过训练的模型可以处理这些数据 当你担心你所使用的预先训练过的模型有较大偏差时 当可用的预先训练好的模型还不够好的时候

###
11．为什么在大量的文本上预先训练一个语言模型是很容易的呢？

当你担心你所使用的预先训练的模型的偏差时 因为预训练不需要人工标记数据 因为🤗 Transformers 库只需要几行代码就可以开始训练

###
12．问答任务预处理数据时，主要的挑战是什么？

你需要对输入进行 tokenize。 你需要处理非常长的上下文，这些非常长的上下文提供了一些训练特性，这些特性可能有也可能没有答案。 你需要将问题的答案以及输入进行 tokenize。 你需要从文本中找到答案部分在 tokenize 后的输入中对应的起始和结束位置。。

###
13．问答任务中的后处理通常是怎样进行的？

模型给出了答案的开始位置和结束位置，你只需要根据这些位置解码对应的 tokens。 该模型为每个示例创建的每个特征提供了答案的起始和结束位置，你只需在得分最高的那个特征中解码相应的 tokens。 模型会为每个样本创建的每个特征给出了答案的起始和结束位置，你只需要将它们与上下文中的片段匹配，找到得分最高的那个。 模型生成一个答案，你只需要解码它。
Update on GitHub