1:词元(Token)是什么?为何需要将文本拆分为词元?
词元是文本经过切分后,供模型处理的最小单元。它可以是一个汉字、一个子词(subword)、英文单词或标点符号等。
将文本拆分为词元的原因包括:
- 模型无法直接理解原始文本,只能处理数字形式的向量
- 词元充当了“文本 → 向量”转换过程中的桥梁
- 采用如BPE等子词算法,使模型能够应对新词、多语言和罕见词汇
- 便于构建embedding查找表(embedding lookup)
- 有助于模型捕捉语义信息与上下文关系
2:嵌入向量(Embedding)的概念及其上下文依赖性
嵌入向量是指将词元映射到高维连续空间中的初始数值表示。
尽管同一个词元在不同语境中具有相同的初始embedding,但其最终表示会有所不同,原因如下:
- 原始embedding本身是静态不变的
- Transformer通过每一层的自注意力机制融合上下文信息
- 隐藏状态(hidden states)会随着上下文动态变化
- 因此最终生成的是“上下文相关”的向量,即contextual embedding
3:前向传播的含义及为何每次生成新词元都需要执行一次
前向传播指的是输入数据依次经过所有Transformer层以及输出层,最终得到下一个词元概率分布的完整计算流程。
在生成每一个新词元时都必须重新进行前向传播,原因在于:
- 自回归模型会把最新生成的词元添加至输入序列末尾
- 输入序列一旦改变,就必须重新计算所有层级的状态
- 整个模型需基于新的上下文重新理解当前语义
4:相关性评分(Relevance Score)及其在注意力机制中的作用
相关性评分通常由Q与K的点积(Q·K)计算得出,用于衡量当前词元应关注其他词元的程度。
它在注意力机制中的功能包括:
- 决定“应该关注哪些部分”
- 经softmax归一化后形成注意力权重
- 这些权重用于对V(值向量)进行加权求和,实现信息融合
5:为何注意力机制需要Q、K、V?它们各自的功能是什么?
Q(Query)代表查询意图:“我正在寻找什么?”
K(Key)表示信息索引:“我拥有哪些可匹配的信息?”
V(Value)承载实际内容:“我的具体内容是什么?”
只有通过Q与K之间的匹配度计算,才能确定从V中提取信息的方式。这种设计本质上是将“匹配关系”与“获取内容”两个过程分离,提升灵活性与表达能力。
6:多头注意力的设计动机与单头的局限性
单头注意力仅能在单一向量子空间中建模词元间的关系,表达能力受限。
而多头注意力的优势体现在:
- 每个注意力头可学习不同类型的关系模式
- 支持多角度理解上下文
- 能同时捕获句法结构、语义关联和远距离依赖
- 最后通过拼接(concat)各头输出,获得更丰富的语义表示
多头机制的核心目标是增强模型表达力,而非加速运算。
7:自注意力与传统注意力的区别
自注意力(Self-Attention)是指在同一序列内部,各个词元之间相互建立联系的机制。其中Q、K、V均来源于同一输入序列。
传统注意力则常见于编码器-解码器架构中:
- Q来自解码器
- K和V来自编码器
主要区别在于:
- 自注意力用于建模句子内部的上下文关系
- 传统注意力用于实现跨序列的信息对齐与传递
8:为何Transformer无需循环结构也能有效处理上下文?
因为自注意力机制具备全局感受野,可以并行地计算序列中任意两个词元之间的关系,无需像RNN那样逐个传递状态。
具体优势包括:
- 注意力机制可以直接访问整个输入序列
- 计算过程可通过矩阵操作完全并行化
- 天然支持长距离依赖建模,避免梯度消失问题
9:若不使用位置编码会发生什么?为何必须引入位置信息?
若缺失位置编码,Transformer将无法识别词序,导致语义混乱。
例如:
- “我爱你”与“你爱我”会被视为相同结构
- 因自注意力具有对称性(交换不变性)
加入位置编码的目的就是为每个词元注入顺序信息,使其成为真正的序列模型,而非类似“词袋模型”的无序集合。
10:为何RoPE位置编码仅应用于Q和K,而不作用于V?
Q和K用于计算注意力权重,必须包含位置关系以判断“关注谁”;而V仅负责存储语义内容,不应被位置干扰。
因此:
- 为Q/K添加位置编码 → 使注意力分配受位置影响
- 不对V添加编码 → 防止原始内容被位置信息污染
11:KV Cache的作用及其对推理速度的提升原理
KV Cache用于缓存此前所有已处理词元的K和V向量,避免重复计算。
在自回归生成过程中:
- 历史词元的K/V保持不变
- 新词元只需计算自身的Q/K/V
这使得推理复杂度从O(N)降低至O(N),显著加快生成速度,提升效率数十倍。
[此处为图片3]12:前馈网络(FFN)的功能及其与注意力模块的协同关系
前馈网络(FFN)负责对每个词元独立进行非线性变换,是模型主要的计算组件之一。
其结构通常为:升维 → 激活函数 → 降维。
与注意力机制的分工如下:
- 注意力模块专注于信息的整合与关联
- FFN模块侧重于语义的深层加工与特征提取
若缺少FFN,模型将缺乏足够的非线性表达能力,限制整体性能。
13:为何仅使用“最后一个词元”的输出来预测下一词元?
由于语言模型采用自回归方式生成文本:
- 给定前面的上下文,预测下一个词元
- 最后一个词元的隐藏状态已聚合了完整的上下文语义
- 前面所有词元的信息已被逐步编码进最终表示
- LM Head仅需基于当前位置的向量进行预测
14:Transformer生成一个词元的完整流程(综合梳理)
从输入到输出的整体链路如下:
- 文本分词为词元(Tokenization)
- 词元转换为嵌入向量(Embedding)
- 加入位置编码(Positional Encoding)
- 依次通过多层Transformer块(每层含Attention + FFN)
- 获得最终的隐藏向量(Final Hidden State)
- 送入语言模型头部(LM Head)
- 通过Softmax输出词表上的概率分布
- 按策略采样生成下一个词元
- 将新词元拼接到输入序列,继续下一轮生成
多层 Transformer 的工作流程如下:
首先,模型通过自注意力机制进行计算,其中输入被映射为查询(Q)、键(K)和值(V),并基于 Q 与 K 的相似度生成注意力权重,随后对 V 进行加权求和。[此处为图片1]
接下来,经过自注意力输出的结果会传入前馈神经网络(FFN),进一步提取非线性特征表达。
在每一子层之后,均采用残差连接与 LayerNorm 相结合的方式,确保训练过程中的梯度稳定,并提升模型收敛性。
完成所有 Transformer 层的处理后,取序列中最后一个词元对应的隐藏状态作为当前上下文的表示。
该隐藏状态被送入语言模型头部(LM Head),经线性变换后通过 Softmax 函数归一化,输出各词汇的概率分布。
根据概率分布采样或选择最可能的 token,并将其添加到已生成的序列末尾。
随后,将更新后的序列重新输入模型,重复执行上述步骤 1 至 7,形成自回归循环,逐步生成完整文本。


雷达卡


京公网安备 11010802022788号







