目录

Q6:传统的静态词嵌入(如 word2vec)与大模型产生的上下文相关的嵌入相比,有什么区别?有了与上下文相关的嵌入,静态词嵌入还有什么价值?

Q7:在 word2vec 等词嵌入空间中,存在 king – man + woman ≈ queen 的现象,这是为什么?大模型的词元嵌入空间是否也有类似的属性?

Q8:注意力机制是如何计算上下文各个词元之间的相关性的?每个注意力头只关注一个词元吗?

Q9:如果需要通过修改尽可能少的参数值,让模型忘记某一特定知识,应该修改注意力层还是前馈神经网络层的参数?

Q10:为什么注意力机制需要多个头?跟简单地减少注意力头的数量相比,多查询注意力和分组查询注意力优化有什么不同?它们优化的是训练阶段还是推理阶段?



Q6:传统的静态词嵌入(如 word2vec)与大模型产生的上下文相关的嵌入相比,有什么区别?有了与上下文相关的嵌入,静态词嵌入还有什么价值?

1、传统的静态词嵌入 与 上下文相关嵌入区别

记忆:上结多表

2、静态词嵌入的价值:

(记忆:轻量、解释、快训练
▲轻量、计算快:适合资源受限场景,不需要大型模型推理;

▲可解释性强:向量空间更易可视化,便于分析词语相似性;

▲预训练简单不依赖上下文,可以用大规模语料快速训练;

【深入解析】

为什么说静态词嵌入

▲可解释性强:向量空间更易可视化,便于分析词语相似性;

▲预训练简单不依赖上下文,可以用大规模语料快速训练;


一、可解释性强:向量空间更易可视化,便于分析词语相似性

✅ 含义

静态词嵌入为每个词分配一个固定的向量,无论它出现在什么上下文中,其向量都一样。
比如:

  • “bank”(银行) → 向量A

  • “river”(河) → 向量B

这些向量都是低维稠密数值表示(如300维),但在数学空间中保持了语义关系

  • “king – man + woman ≈ queen”

  • “Paris – France + Italy ≈ Rome”

✅ 为什么“可解释性强”

因为这些词的向量分布是固定的,可以:

  • PCA 或 t-SNE 可视化词的语义空间;

  • 计算 余弦相似度 来定量分析词义相近程度;

  • 找出“同义词”“类比关系”等。

换句话说,它们的语义关系在空间中是稳定、全局可解释的,不像BERT那样随上下文变化而难以直接可视化。

二、预训练简单、不依赖上下文,可用大规模语料快速训练

✅ 含义

静态词嵌入的训练目标只依赖词与词的共现关系,不需要复杂的Transformer结构,也不考虑句子级的上下文动态变化。

例如:

  • Word2Vec 的 Skip-gram 模型只学“给定中心词预测上下文词”;

  • GloVe 学习“全局共现矩阵的统计规律”。

✅ 为什么“简单且高效”

  • 无需上下文敏感建模 → 模型结构简单;

  • 只需一次训练 → 所有词向量固定;

  • 可在海量语料上快速训练(甚至单机完成);

  • 结果稳定可复用(一个预训练模型可直接用于下游任务)。

相比之下,像 BERT 这类上下文模型:

  • 每个词的表示依赖句子整体;

  • 模型参数量大;

  • 训练成本高;

  • 输出向量可解释性弱(难以直接分析语义空间)。

🧠 总结对比表

特性

静态词嵌入(Word2Vec/GloVe)

上下文词嵌入(BERT/GPT)

向量是否固定

✅ 每个词固定一个向量

❌ 每次根据上下文生成不同向量

可解释性

✅ 强,可可视化语义空间

❌ 弱,难以直接理解

训练复杂度

✅ 简单快速

❌ 复杂且计算量大

上下文信息

❌ 无上下文

✅ 强上下文建模

适用场景

相似词分析、词聚类等

下游任务(分类、生成等)

@


Q7: word2vec 等词嵌入空间中,存在 king – man + woman queen 的现象,这是为什么?大模型的词元嵌入空间是否也有类似的属性?

1、为什么出现king – man + woman ≈ queen 的现象?

Word2Vec 学到的词向量 不仅捕捉了语义相似性 ,还在向量空间中学到了一些 语义关系的方向性
2、大模型的词元嵌入空间是否也有类似的属性?
在大模型(如 GPT BERT )中,词元嵌入层 也会保留类似的结构关系 尤其在 embedding 层和初始的表示空间中 ,可以观测到一些类似的加减逻辑。
但因为大模型后续加入了上下文建模, 经过多层 Transformer 的非线性变换后,最终的 token 表示是上下文相关的 ,不一定再保持简单的线性结构。

Q8:注意力机制是如何计算上下文各个词元之间的相关性的?每个注意力头只关注一个词元吗?

1、注意力机制是如何计算上下文各个词元之间的相关性的?

注意力机制的核心原理是通过动态权重分配,让模型在处理输入数据时能够聚焦于关键信息。
其计算过程分为三步:
相似度计算:用查询向量(Query )与键向量( Key )计算点积,衡量词元间的关联强度,并通过缩放避免数值过大
权重归一化:对相似度分数应用 Softmax ,转化为概率分布,突出重要词元
上下文生成:用归一化权重对值向量( Value )加权求和,得到融合全局信息的表示

2、每个注意力头只关注一个词元吗?
每个注意力头并不只关注一个词元,而是从不同子空间学习多样化的关联模式,一个头可能捕捉语法结构(如主谓一致),另一个头关注关键词匹配, 多头并行计算后拼接结果,综合多视角信息

深入解析

1、注意力机制计算核心过程

背景:我们要解决什么?

一句话中,每个词都应该“注意”句子里哪些词与它相关。

例如句子:

“The cat sat on the mat.”

当模型处理词 “cat” 时:

  • 它应该关注 “the” 和 “sat”;

  • 对 “mat” 的注意力较少。

注意力机制就是:
👉 让每个词根据“相关性”自动决定该看谁、看多少。

Step 1:相似度计算(Query · Key)

每个词会生成 3 个向量:

  • Query(查询向量):代表“我想找什么样的信息”

  • Key(键向量):代表“我能提供什么信息”

  • Value(值向量):代表“我的实际内容”

以 “cat” 为例:

QueryKeyValue
theQ₁K₁V₁
catQ₂K₂V₂
satQ₃K₃V₃
onQ₄K₄V₄
theQ₅K₅V₅
matQ₆K₆V₆

当处理 “cat” 时,模型要知道它与其他词的关系。

于是它拿 Q₂(cat的Query) 和每个词的 Key 做点积:

得到一串“相似度分数”:

  • score(cat, the)

  • score(cat, cat)

  • score(cat, sat)

  • score(cat, mat)
    ...

🎯 含义:

点积越大 → 两个词越相关
比如 “cat” 对 “sat” 的分数可能比 “mat” 高。

类比:Q像“问题”,K像“档案关键字”,点积表示“问题与档案匹配度”。

Step 2:权重归一化(Softmax)

得到的相似度分数可以是任意实数,
为了变成“注意力权重”(即每个词被关注的程度),要做两步:

  1. 缩放(scale)
    防止维度过高导致点积数值太大:

    (其中 dkd_kdk​ 是 Key 的维度)

  2. Softmax 归一化
    把这些分数变成概率分布:

    所以所有权重之和为 1。
    例如:

    [the: 0.1, cat: 0.2, sat: 0.5, mat: 0.2]

🎯 含义:

Softmax让模型自动突出关键词(高权重)
同时弱化无关词(低权重)。

Step 3:上下文生成(Value 加权求和)

有了每个词对当前词的权重
就可以用这些权重对各词的 Value 向量加权求和:

这得到一个新的向量 —— 融合了全局上下文的信息表示


例如,“cat”的上下文表示:

于是它现在不仅代表“猫”这个词本身,
还“知道”它与“sat”“the”等词的关系。
这就是 自注意力的“上下文建模能力”

📊 总结一图搞定

步骤计算目的类比
1️⃣ 相似度计算Query · Key计算词之间的相关性“我和谁最相关?”
2️⃣ 权重归一化Softmax(Score/√d)得到关注比例“我重点看谁?”
3️⃣ 上下文生成Σ(权重 × Value)聚合全局信息“综合信息后我怎么理解当前词?”


Q9:如果需要通过修改尽可能少的参数值,让模型忘记某一特定知识,应该修改注意力层还是前馈神经网络层的参数?

要让模型快速忘记某个特定知识, 优先修改注意力层的参数(尤其是 Q/K 矩阵) ,因为 注意力层直接控制词元间的关联性,调整少量参数即可切断目标知识的上下文联系
理由如下:
精准性:注意力层直接控制词元关联性,调整 Q/K 矩阵可快速切断目标知识的上下文联系;
高效性:仅需修改 0.1%-1% 参数(如冻结特定注意力头或 LoRA 微调),远少于 FFN 层;
安全性:对模型其他功能干扰更小,避免 FFN 层修改引发的连带遗忘;

Q10:为什么注意力机制需要多个头?跟简单地减少注意力头的数量相比,多查询注意力和分组查询注意力优化有什么不同?它们优化的是训练阶段还是推理阶段?

1.为什么注意力机制需要多个头?
多头设计( MHA )通过并行计算多个注意力头, 使模型能同时捕捉序列中不同维度的依赖关系(如语法、语义、长距离关联等),显著提升模型表达能力
2.跟简单地减少注意力头的数量相比,多查询注意力和分组查询注意力优化有什么不同?
它们优化的是训练阶段还是推理阶段?
多查询注意力( MQA )与分组查询注意力( GQA )的优化差异:

深入解析

跟简单地减少注意力头的数量相比,多查询注意力和分组查询注意力优化有什么不同?

它们优化的是训练阶段还是推理阶段?

多查询注意力(MQA)分组查询注意力(GQA) 与单纯减少注意力头(Heads)的做法虽然都能“降计算量”,
但它们优化的思路完全不同,针对的阶段(训练 vs 推理) 也不同。

一、回顾多头注意力(MHA)

在标准的 Multi-Head Attention (MHA) 中:

  • 每个注意力头都要单独计算一套 Q, K, V 向量

  • 如果有 16 个头(H=16),那就有 16 组 Key/Value。

优点:表达力强,每个头学到不同的语义关系。
缺点:推理(inference)阶段显存和算力开销大

二、优化的两种思路

🟣 1. 多查询注意力(MQA, Multi-Query Attention)

📖 机制:

  • 所有注意力头 共享同一组 Key 和 Value

  • 只有 Query 不共享。

项目

说明

Q(查询)

每个头独立计算(保留多样性)

K、V(键和值)

所有头共享(减少内存和计算)

💡 效果:

  • 极大降低推理时的计算量与内存带宽消耗

  • 因为在推理时,每一步都要缓存 K/V,如果每个头都要独立缓存,就非常占显存。共享后显存骤降。

📉 代价:由于所有头共享同一K/V,会损失部分表达力,略影响精度。

⚙️ 应用场景:

  • 主要优化推理阶段(inference)

  • 常见于如 LLaMA-2、MPT、PaLM 等大模型的推理优化。

🟢 2. 分组查询注意力(GQA, Grouped-Query Attention)

📖 机制:

  • 把注意力头分成若干组(比如 16 个头分 4 组);

  • 每组头共享同一组 K/V,但不同组之间的 K/V 不共享。

项目

说明

Q

每个头独立

K/V

每组共享(而不是所有头都共享)

💡 效果:

  • 在推理性能与模型精度之间取得平衡

    • 比 MQA 精度高(因为不是所有头都强制共享 K/V);

    • 比 MHA 计算快、显存省。

📈 GQA 是 MHA 与 MQA 之间的中间方案。

⚙️ 应用场景:

  • 兼顾训练和推理

  • 常见于如 LLaMA-3、Gemma、Mistral 等新模型中。

三、与“减少注意力头数量”有何不同?

方法

原理

优点

缺点

减少头数量

直接减少头的个数

简单直接,降低参数量

会降低模型容量与表达能力(每个头变“更忙”)

MQA

所有头共享 K/V,仅保留多 Q

大幅加速推理、显存占用最低

精度下降明显,训练阶段不适合

GQA

每组共享 K/V(分组折中)

平衡速度与精度

稍复杂,仍有少量精度损失

四、总结一句话

类型

核心优化

针对阶段

特点

MHA

每头独立 Q/K/V

训练+推理

精度最高,计算最重

MQA

共享 K/V,仅 Q 独立

✅ 推理优化

最快但精度损失较大

GQA

分组共享 K/V

✅ 训练与推理兼顾

精度与效率折中

更多推荐