1.什么是位置编码(Positional Encodings),为什么使用它们?
Transformer 的核心机制是 自注意力机制(self-attention),它能对输入序列中所有位置的信息进行加权计算。这种机制虽然强大,但有一个天然缺陷:
自注意力机制不包含序列顺序的先验信息,也就是说它对输入的 token 是“无序”的。
这与 RNN 或 CNN 不同,后者是通过网络结构天然体现顺序或局部依赖的。而 Transformer 每个 token 是同时处理的,不知道谁先谁后。
举例说明:
-
“The king wore a crown.”
-
“A crown wore the king.”
如果没有位置编码,这两个句子会被 Transformer 看作同一组词的无序组合,意义就无法区分。
位置编码就是将位置信息转换成向量,并加到每个 token 的词向量上,使得模型在处理这些词时能感知其在句中的顺序。引入位置编码后,Transformer模型可以正确处理语序敏感任务(如机器翻译、文本生成)、表达句法结构(例如主谓宾关系)、建立相对或绝对的位置信息联系。
2.什么是多头注意力(multi-headattention),它如何增强大语言模型?
多头注意力是将注意力机制并行复制多份(即多个“头”),让每一份关注输入的不同特征子空间。
多头的“好处”是
-
捕捉不同类型的信息,每个“头”使用不同的线性变换,意味着它关注输入的不同方面:一个头可能学习到语法依赖(如主谓一致)、另一个可能聚焦语义关系(如词义相近)、还有的头可能专注于位置信息或长距离依赖。
-
提升模型表达能力:单一注意力机制受限于其向量空间,而多头注意力允许模型在多个子空间中学习,从而能捕捉更复杂的关系。
-
并行计算高效:相比于RNN串行处理序列,多头注意力可以高度并行化,适合现代硬件加速训练和推理。
3.Softmax函数在注意力机制中是如何应用的?
Softmax函数在注意力机制中的作用是:将每个查询(Query)对所有键(Key)的相似度得分转化为一组归一化的注意力权重,使得它们之和为1,从而形成一个概率分布,用于加权值(Value)。
Softmax函数可以确保权重是非负且总和为1,适合做加权平均。Softmax具有放大差异的特性,得分更高的键会获得显著更大的权重,从而引导模型关注最相关的信息。
4.点积(dot product)在自注意力(self-attention)机制中起什么作用?
在自注意力中,模型希望知道一个词(token)应该关注句子中哪些其他词。这就需要计算当前词的表示(Query,)与其他词的表示(Key,)的“相似程度”。点积就是用来衡量这种相似度的方式。每个 token 都会生成一个 Query 向量,去“查询”所有 Key 向量(包括它自己的),通过点积形成相似度得分。
举个例子:
句子:“The cat sat on the mat.”
token “cat”的Q向量与其他token的K向量做点积后:
-
与“cat”的K点积高(自相关);
-
也可能与“sat”的K有高点积(句法关联);
-
与“the”或“on”的K点积低。
5.为什么在语言建模中使用交叉熵损失(Cross-Entropy Loss)?
交叉熵损失衡量了预测的token概率与真实概率之间的差异。它会惩罚不正确的预测,鼓励模型进行准确的token选择。在语言建模中,它确保模型为正确的下一个token分配高概率,从而优化性能。
6.在大语言模型中,嵌入(embeddings)的梯度是如何计算的?
嵌入的梯度是在反向传播过程中使用链式法则计算的。这些梯度会调整嵌入向量以最小化损失,从而优化它们的语义表示,以获得更好的任务性能。
7.雅可比矩阵(Jacobian Matrix)在Transformer的反向传播中扮演什么角色?
雅可比矩阵捕捉了输出相对于输入的偏导数。在Transformer中,它帮助计算多维输出的梯度,确保在反向传播过程中对权重和嵌入进行准确更新,这对于优化复杂模型至关重要。可以把雅可比矩阵想象成一个复杂装置的“灵敏度传感器网格”,它记录了输入上的微小调整,如何“连锁反应”影响整个模型输出。若没有准确计算 Jacobian,误差方向会错;对 Transformer 这种高维张量结构,Jacobian 是保证训练稳定和有效的底层机制。
8.特征值(Eigenvalues)和特征向量(Eigenvectors)与降维有什么关系?
特征向量定义了数据中的主要方向,而特征值则表示这些方向上的方差大小。在像主成分分析(PCA)这样的技术中,选择具有高特征值的特征向量可以在保留大部分方差的同时降低维度,从而为大语言模型的输入处理实现高效的数据表示。
9.什么是KL散度(Kullback–Leibler Divergence),它在大语言模型中如何使用?
KL散度量化了两个概率分布之间的差异。在大语言模型中,它评估模型预测与真实分布的匹配程度,指导微调以提高输出质量和与目标数据的一致性。
10.ReLU函数的导数是什么,为什么它很重要?
ReLU函数的导数是:当x>0时为1,否则为0。它的稀疏性和非线性可以防止梯度消失问题,使得ReLU在计算上非常高效,并被广泛用于大语言模型中以实现稳健的训练。
ReLU 在大语言模型中的作用:
-
Transformer的前馈网络层FFN:每个token的向量经过两个线性变换之间,插入ReLU激活(或GELU)
-
ReLU/GELU对比:ReLU更快更稀疏,GELU更平滑,很多LLM使用GELU,但ReLU仍作为可选高效替代
-
梯度传播中的稳定性:支撑深层Transformer模块保持高效训练
-
轻量模型/边缘设备部署:ReLU计算更快,便于低算力部署
资料下载方式