- # why - 模型在训练前认为设定的一些参数。之所以称之为**超参数(Hyperparameter)**,正是为了与通过训练数据自动学习得到的**模型[[parameters 参数]]** 做明确的区分。 - # what - 是在**训练模型之前人为设定的参数**。 - 在训练过程中不会被模型自动更新。 - 它决定模型的结构、学习方式和复杂程度。 - ### 常见的超参数举例: - [[Embedding]]向量维度(Embedding Dimension) - **含义**: - 每个token经过Embedding后生成向量的长度,也就是向量中元素的数量。 - 如`[0.01, -0.05, …, 0.09]`,维度越高,能捕获的语义细节越丰富,但也更耗费资源。 - **作用**: - 决定模型中每个词语的向量表示的精度。 - **举例**: - GPT-3大型版本的Embedding维度是12288,较小模型常用768、1024或2048。 - [[词汇表]](Vocabulary Size) - **含义**: - 指模型能识别和处理的不同单词或符号的数量。 - 每个token对应一个ID,唯一标识一个特定的词或子词。 - **作用**: - 决定了**Embedding矩阵**的行数。 - 直接影响模型的内存占用和模型表达能力。 - **举例**: - GPT-3词汇表为50257,代表GPT-3最多可识别50257个不同的token。 - 学习率(Learning Rate) - **含义**: - 模型在训练过程中,每次权重更新的步长大小。 - 决定模型参数更新的幅度。 - **作用**: - 学习率太大会导致模型难以收敛,甚至发散。 - 学习率过小则收敛缓慢,耗时更久。 - **举例**: - GPT-3初始学习率约在`1e-4`到`5e-5`之间。 - 批次大小(Batch Size) - **含义**: - 每次训练输入模型的数据样本数量。 - 一次批量输入越多,训练越稳定,但所需计算资源也越多。 - **作用**: - 较大的批量可以提升训练稳定性,但也需要更多的计算资源。 - 较小批次可能更容易收敛,但训练时间可能更长。 - **举例**: - batch size=8,表示一次同时输入8个序列,每个序列2048 token,总共就是`8×2048=16384`个token。因此实际模型每次输入的维度就变为:$(Batch Size, Sequence Length, Embedding Dimension)$ `(8, 2048, 12288)` 可以想象成一个立方体。 - [[context length 上下文长度|上下文长度]](Context length,比如2048) - **含义**: - Transformer模型一次处理输入序列的最大长度(token数量)。 - 模型一次能同时处理的token数量上限。 - **重要性**: - 直接影响模型处理长序列文本的能力。 - 较长的序列长度会带来更高的计算复杂度(注意力机制复杂度为O(n²))。 - **举例**: - GPT-3中最大序列长度为2048个token。 - Transformer的层数(如GPT-3使用了96层或更多层) - **含义**: - Transformer结构由多个Encoder或Decoder层叠组成。 - 层数越多,模型的表达能力通常越强,但计算成本也会越高。 - **作用**: - 每一层的Transformer可以捕获更加抽象、更高层次的语义信息。 - **举例**: - GPT-3的Davinci模型共有96层Transformer Decoder。 - Attention Heads数量 - **含义**: - Transformer模型在Self-Attention机制中,同时并行计算多个“注意力头”,每个头关注序列的不同特征或不同的子空间信息。 - 多头注意力允许模型同时从多个不同维度去关注输入数据的不同方面。 - **作用**: - 增强模型处理多样化信息的能力,每个头可以学习不同的信息模式。 - **举例**: - GPT-3大模型通常使用96个Attention Heads,每个头有独立的权重参数和关注的维度。 - # how - # how good - # Ref.