Pytorch
TensorFlow

# 章末小测试

###
1. 语言建模 Pipeline 的顺序是什么？

首先是模型它处理文本并返回原始预测。然后，分词器会对这些预测进行解释，并在需要时将它们转换回文本 首先是 标记器(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.下列哪一个是Subword标记(Tokenization)的例子（从分词的颗粒度来划分）？

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

###
4.什么是模型的Head层？

原始Transformer网络的一种组件，将张量(Tensors)重定向到它们的正确层 也称为自注意力(self-attention)机制，它根据序列中的其他标记(Token)来调整一个标记(Token) 一个附加组件，通常由一个或几个层组成，用于将Transformer的预测转换为特定于任务的输出

###
5.什么是AutoModel？

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

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

截短 返回Tensors 填充 注意力遮蔽(Attention masking)

###
7.将 SoftMax激活函数应用于序列分类(Sequence Classification)模型的 logits 输出有什么意义？

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

###
8.大多数标记器(Tokenizer)的API以什么方法为核心？

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

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

    from transformers import AutoTokenizer

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

字符串列表，每个字符串都是一个标记(Token) 一个ID的列表 包含所有标记(Token)的字符串

###
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)对其进行平移和截断来改善这段代码。