从零开始构建一个语言模型中vocab_size(词汇表大小)的设定规则
从零开始构建一个语言模型就要设计一个模型框架,其中要配置很多参数。在自然语言处理任务中,vocab_size(词汇表大小) 的设定是模型设计的关键参数之一,它直接影响模型的输入输出结构、计算效率和内存消耗。
本文是在我前文的基础上讲解的:从零开始构建一个小型字符级语言模型的详细教程(基于Transformer架构)之一数据准备-CSDN博客
一、词汇表大小vocab_size
vocab_size指的是词汇表的大小,也就是原始文本数据集中所有唯一字符的数量。如果是字符级别的模型,所以词汇表里的每个元素都是一个字符,比如字母、标点符号、空格等等。如下图1所示。
图1 字符映射表的示意图
为什么一个参数要单独拿出来讲,应该它关系重大。以下是详细理由:
(1)vocab_size决定了嵌入层的输入维度,也就是有多少个不同的字符需要被映射。例如,如果vocab_size是50,这表示数据集中共有50种不同的字符,这可能包括26个英文字母(大小写)、标点符号、空格、换行符等。嵌入层就需要处理50个不同的字符,每个字符对应一个向量。
(2)vocab_size决定了模型输出层神经元数量,模型的最后一层通常是一个线性层,将隐藏层的输出映射到词汇表的大小,以便生成每个字符的概率分布。因此,vocab_size也决定了输出层的神经元数量,确保每个字符都有一个对应的概率值。