為了將輸入文本轉換成深度學習模型可以使用的嵌入向量,
我們需要先將「輸入文本 Input Text」轉為「符元化文本 Tokenized Text」。
而實際上「符元化文本 Tokenized Text」與「嵌入向量 Embedding Vector」之間,
還有一個步驟稱為「符元ID Tolen IDs」[1]。
符元ID 本身是將每一個「符元 Token」指定一個「整數表達 Integer Representation」。
也就是說,每一個作為符元的「單字 Word」與「標點符號 Character」,
會有個安排,一個一個對應到特定整數編號上。
而這個安排,就是所謂的「詞彙 Vocabulary」。
也就是說,詞彙是一個將符元打到符元ID的一對一映射。
回想當你在讀外語的時候,
你是不是也會把不會的單字抄成一張表,
每個單字給他編個號碼,
讀完一篇文章,你就知道你有多少個生字可以學習。
語言模型中的「詞彙 Vocabulary」就是相同的概念,
把要讓深度學習模型的符元看成生字,
每個生字的編號就是符元ID,
而你在查生字了解字怎麼用的過程,
就如同語言模型透過深度學習在學符元怎麼在文本中作用一樣。
符元ID本身,就是詞彙的索引 [2],
而這個索引的設置,
又會與語言模型的訓練數據中的語言模式有關,
模型會從中計算符元的頻率,進而指定符元ID,形成詞彙。
符元ID 其實就是一種「向量化 Vectorization」,
而向量化後的編號與向量內容,
就能讓我們活用深度學習中的最優化技術,
開始語言模型的訓練。
Reference
[1] Section 2.3 Tokenizing Text, https://www.manning.com/books/build-a-large-language-model-from-scratch
[2] https://medium.com/the-research-nest/explained-tokens-and-embeddings-in-llms-69a16ba5db33