從零開始構建一個語言模型就要設計一個模型框架,其中要配置很多參數。在自然語言處理任務中,vocab_size(詞匯表大小) 的設定是模型設計的關鍵參數之一,它直接影響模型的輸入輸出結構、計算效率和內存消耗。
本文是在我前文的基礎上講解的:從零開始構建一個小型字符級語言模型的詳細教程(基于Transformer架構)之一數據準備-CSDN博客
一、詞匯表大小vocab_size
vocab_size指的是詞匯表的大小,也就是原始文本數據集中所有唯一字符的數量。如果是字符級別的模型,所以詞匯表里的每個元素都是一個字符,比如字母、標點符號、空格等等。如下圖1所示。
圖1 字符映射表的示意圖
為什么一個參數要單獨拿出來講,應該它關系重大。以下是詳細理由:
(1)vocab_size決定了嵌入層的輸入維度,也就是有多少個不同的字符需要被映射。例如,如果vocab_size是50,這表示數據集中共有50種不同的字符,這可能包括26個英文字母(大小寫)、標點符號、空格、換行符等。嵌入層就需要處理50個不同的字符,每個字符對應一個向量。
(2)vocab_size決定了模型輸出層神經元數量,模型的最后一層通常是一個線性層,將隱藏層的輸出映射到詞匯表的大小,以便生成每個字符的概率分布。因此,vocab_size也決定了輸出層的神經元數量,確保每個字符都有一個對應的概率值。