Pytorch
TensorFlow

#
章末小测试

###
1. 自然语言处理流程的顺序是什么？

首先是模型它处理文本并返回原始预测。然后 tokenizer 会对这些预测进行解释，并在将它们转换回文本 首先 Tokenizer 处理文本并返回 id。模型根据这些 id 并输出预测，可以是一些文本。 Tokenizer 处理文本并返回 id。模型处理这些 id 并输出一个预测。然后可以再次使用 tokenizer 将这些预测转换回某些文本。

###
2. Transformer 模型的输出有的张量多少个维度，每个维度分别是什么？

2 个维度，分别是：序列长度(Sequence Length)和批次大小(Batch Size) 2 个维度，分别是：序列长度(Sequence Length)和隐藏层大小(Hidden Size) 3 个维度，分别是：序列长度(Sequence Length)、批次大小(Batch Size)和隐藏层大小(Hidden Size)

###
3．下列哪一个是子词分词的例子（从分词的颗粒度来划分）？

WordPiece 基于单个字符的分词 基于空格和标点符号的分割 BPE(Byte Pair Encoding) Unigram 以上都不是

###
4．什么是模型头（Haed 层）？

原始 Transformer 网络的一种组件，直接将张量(Tensors)输入到到正确的层 也称为自注意力(self-attention)机制，它会根据序列的其他 tokens 调整一个 token 的表示 一个附加组件，通常由一个或几个层组成，用于将 Transformer 的预测转换为特定于任务的输出

###
5．什么是 AutoModel？

根据你的数据自动进行训练的模型 一个根据 checkpoint(检查点)返回模型体系结构的对象 一种可以自动检测输入语言来加载正确权重的模型

###
6．当将不同长度的句子序列在一起批处理时，需要进行哪些处理？

截短 直接将 Tensors 返回 填充 注意力掩码(Attention masking)

###
7．使用 SoftMax 激活函数对序列分类(Sequence Classification)模型的 logits 输出进行处理有什么意义？

它软化了 logits 输出，使结果更可靠。 它限定了上下界，使模型的输出结果可以被解释。 输出的和是 1，从而产生一个可能的概率解释。

###
8.Tokenizer API 的核心方法是哪一个？

`encode` 因为它可以将文本编码为 ID，将预测的 ID 解码为文本 直接调用 Tokenizer 对象。 `pad`(填充) `tokenize`

###
9．这个代码示例中的 result 变量包含什么？

    from transformers import AutoTokenizer

    tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
    result = tokenizer.tokenize("Hello!")

字符串列表，每个字符串都是一个 token 一个 ID 的列表 包含所有分词后的的字符串

###
10．下面的代码有什么错误吗？

    from transformers import AutoTokenizer, AutoModel

    tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
    model = AutoModel.from_pretrained("gpt2")

    encoded = tokenizer("Hey!", return_tensors="pt")
    result = model(**encoded)

不，看起来是对的。 Tokenizer 和模型应该来自相同的 checkpoint。 由于模型输入需要是一个 Batch，因此可以使用 tokenizer 对其进行截断或填充来改进这段代码。
< > Update on GitHub