大型语言模型(LLMs)通过在庞大的数据集上训练,利用数十亿参数,展现出了超越简单模型的复杂理解和生成能力。然而,这些优势是以频繁使用时的高计算需求为代价的。为了应对这些挑战,来看一个重要的技术——专家混合模型(MoE),它在不牺牲模型性能的情况下优化资源使用。还将探索Grok-1架构,以了解这种技术是如何被应用的。
学习目标
理解专家混合模型如何通过选择性激活模型参数子集来优化计算资源。探索MoE中的路由机制,它根据输入特征高效分配资源。比较LLMs中MoE的实现,突出注意力机制和密集块结构的差异。学习如何在Grok-1中执行MoE层以实现高效的模型推理。
专家混合模型
如果还记得机器学习中的集成技术,可以通过取多个模型预测的加权平均值来得到最终预测。专家混合模型的工作原理类似。不是将输入传递给所有模型参数,而是基于输入标记只传递给参数的一个子集。这个参数子集可以被认为是该输入的“专家”。这种选择性的模型参数参与使得计算更加高效和可扩展,而不会降低模型性能。由于只选择少数专家,这也被称为稀疏MoE技术。
LLM架构
让简要看一下典型LLM中的计算。输入被标记化,并添加位置嵌入。输入与Q、K和V权重相乘,得到每个头的Q、K和V矩阵。注意力计算为Attention(Q, K, V) = softmax(QK^T),然后乘以O(输出)权重。结果从所有头连接形成多头注意力输出。MHA输出被放大(通常放大4倍)并使用全连接MLP层进行缩小,通常包含非线性激活函数如ReLU。对于每个解码器层重复步骤2到5。最终输出被处理成MLP,以产生下一个标记的词汇概率。给定标记的hidden_size维度h,参数可以如下所示一个单独的解码器层。
Grok-1架构
Grok-1是基于专家混合模型的最大开源LLM。让看看这是如何在Grok-1中实现的。Grok-1的规格参数:314B参数,8个专家的混合(MoE),每个标记使用2个专家,64层,查询的注意力头数为48,键/值为8,嵌入大小为6144,使用SentencePiece标记器,包含131072个标记。附加功能包括旋转嵌入(RoPE),支持激活分片和8位量化,最大序列长度(上下文)为8192个标记。