趋近智
Transformer架构中的最终解码器层对序列进行处理,它会整合来自输入序列的信息(通过交叉注意力)和之前生成的输出标记 (token)(通过遮蔽自注意力 (self-attention))。这个过程会产生一系列高维表示向量 (vector)。对于输出序列中的每个位置,解码器堆栈会生成一个维度为 的向量。尽管这些向量编码了丰富的上下文 (context)信息,但它们不能直接解读为目标词汇表 (vocabulary)上的概率分布。这种分布对于机器翻译或文本生成等任务是必不可少的。
Transformer解码器架构的最后一步涉及将这些输出向量转换为可用的概率。这通常通过两个连续操作来实现:一个最终线性变换,然后是一个softmax激活函数 (activation function)。
顶部解码器层的输出是一个形状为 (batch_size, target_sequence_length, ) 的张量。最终线性层的作用是将每个位置上的这个 维表示向量 (vector)投影到一个维度与目标词汇表 (vocabulary)大小相等的向量上,我们将这个大小记作 。
这是一个标准的、不带激活函数 (activation function)(或有时视为具有恒等激活函数)的全连接线性层。如果我们将最终解码器层的输出表示为 ,将线性层的权重 (weight)矩阵表示为 ,将其偏置 (bias)表示为 ,则该操作可以描述为:
在这里,矩阵乘法独立地应用于 target_sequence_length 维度上每个位置的 维向量。得到的 Logits 张量形状为 (batch_size, target_sequence_length, )。序列中特定位置 t 处大小为 的每个向量都包含目标词汇表中每个可能标记 (token)的原始、未归一化 (normalization)分数(logits)。分数越高,表示该位置上该标记的可能性越大。
实现备注: 一种常见的方法,尤其是在源和目标词汇表共享(或紧密关联)的模型中,是在输入嵌入 (embedding)层和这个最终线性层之间共享权重。输入嵌入层将词汇表索引(实际上是独热向量)投影到 维度,而最终线性层将 维度投影回词汇表分数。与输入嵌入矩阵(可能转置)共享权重矩阵 可以大幅减少模型参数 (parameter)的数量,特别是对于大型词汇表,并且已被经验证实效果良好。
线性层生成的 logits 是实值分数,不构成概率分布。为了将这些分数转换为概率,softmax 函数独立地应用于目标序列中每个位置的 logit 向量 (vector)。
对于序列中的特定位置 ,令 为 logit 向量。softmax 函数计算词汇表 (vocabulary)中第 个标记 (token)的概率 (其中 的范围从 1 到 ),如下所示:
此操作为每个位置 产生一个概率向量 ,其中:
因此,整个Transformer解码器堆栈的输出是一个形状为 (batch_size, target_sequence_length, ) 的张量,其中沿最后一个维度的每个向量都表示目标词汇表上的概率分布。
这个最终线性层和softmax函数连接了Transformer学习到的复杂内部表示与语言生成任务的离散、概率性质。它们提供了所需的机制,将模型的理解转换为词汇表 (vocabulary)上的明确预测。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•