Pytorch
TensorFlow

# 章末小測試

###
1. 語言建模 Pipeline 的順序是什麼？

首先是模型它處理文本並返回原始預測。然後，分詞器會對這些預測進行解釋，並在需要時將它們轉換回文本 首先是 標記器(Tokenizer)，它處理文本並返回id。模型根據這些 id 並輸出預測，可以是一些文本。 標記器(Tokenizer) 處理文本並返回 id。模型處理這些 id 並輸出一個預測。然後可以再次使用 標記器(Tokenizer) 將這些預測轉換回某些文本。

###
2. Transformer模型的輸出有多少個維度，每個維度分別是什麼？

兩個維度，分別是: 序列長度(Sequence Length)和批次大小(Batch Size) 兩個維度，分別是: 序列長度(Sequence Length)和隱藏層大小(Hidden Size) 三個維度，分別是: 序列長度(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)對其進行平移和截斷來改善這段代碼。