图解大模型_生成式AI原理与实战学习笔记前四张问答(7题)


问题 1:为什么 Self-Attention 比 RNN 更适合处理长距离依赖?

Self-Attention 在三个方面比 RNN 更强:


① 计算方式:直接建立任意词之间的联系

Self-Attention 通过:

  • Query(Q)
  • Key(K)
  • Value(V)

计算每个词与所有词的相似度:

\\text{Attention}(Q,K,V)=\\text{softmax}(QK\^T)V

➡ 不需要像 RNN 一样逐层传递信息,也不会因为距离变长而梯度消失。


② 并行能力:一次性处理整段序列

RNN 必须按顺序处理 t=1 → t=2 → t=3

Attention 不需要顺序依赖,可全部词元并行计算。

➡ GPU 矩阵计算可完全利用。


③ 上下文捕获:可以看全局,长距离依赖不衰减

Self-Attention 本质是:

"对整个序列的所有词做相关性计算"

因此:

  • 即使两个词距离很远
  • 也能通过一次 Q·K 建立直接联系

问题 2:为什么 LLM 使用子词分词(BPE),而不是按字或按词?

① 词表大小与计算成本最优平衡

  • 按"字":词表太小,表达能力弱
  • 按"词":词表太大(十万级),embedding 和 softmax 太贵
  • 子词分词:词表约 30k〜60k,最有效率

② 处理 OOV(未见词)能力强

"抗磷脂综合征" 不在词表中也能拆为:

  • 抗|磷|脂|综合|征

➡ 所有新词都能被编码。


③ 泛化能力强(学习构词规律)

子词能让模型学习:

  • 前缀、后缀(re-, pre-, -tion)
  • 不同变形之间的关系(walk, walking)
  • 词根语义(predict, prediction, predictable)

➡ 远比按字或按词更具泛化力。


问题 3:为什么 Transformer 需要多头注意力(Multi-Head Attention)?

① 不同头在不同子空间中工作

每个头有独立的:

  • Wᵠ
  • Wᵏ
  • Wᵛ

所以会看到不同维度的特征。


② 能同时学习不同的语言关系

不同注意力头会自动学习:

  • 句法关系(主谓)
  • 指代关系(他 → 指的是谁)
  • 实体关系
  • 长距离依赖

➡ 单头无法同时学习这么多语言结构。


③ 稳定训练(避免注意力塌缩)

多头分散学习任务,减少梯度爆炸,训练更平滑、收敛更快。


问题 4:KV Cache 如何加速自回归生成?

① 减少重复计算

生成 token 时:

  • 历史的 K/V 向量一次算好并缓存
  • 后续每步只计算新的 Q、K、V
  • 历史 K/V 直接从 cache 读取

➡ 避免重复计算整个序列的 attention。


② 每步复杂度从 O(n²) 降到 O(n)

无缓存:

  • 每步计算 Q × Kᵀ(K 会越来越长)
  • 代价 O(n²)

有缓存:

  • 只对新增 token 做一次 attention
  • 每步约 O(n)

③ 整体推理速度提升 3~20 倍

尤其对长 context 的生成效果明显。


问题 5:为什么"嵌入向量 + 逻辑回归"在有标注数据时比零样本分类更准确?

① 有监督学习能建立任务特化的分类边界

逻辑回归根据标签学习哪些向量属于同一类。

零样本是"推理",不是"训练",无法形成精确边界。


② 嵌入空间天然具有语义结构

例如:

  • 积极评论向量聚在一起
  • 消极评论聚在另一侧

逻辑回归只需要画一条线(决策边界),准确度更高。


③ 零样本分类依赖语言理解,不够稳定

由于没有监督信号:

  • 它靠提示词理解类别含义
  • 容易受 prompt、语义歧义、模型偏差影响

➡ 性能普遍弱于简单的监督分类器。


问题 6:为什么生成模型(GPT/T5)也能用于分类?

① 分类可以被表达成"生成一个标签词语"

例如:

"这个评论的情感是 positive 还是 negative?"

模型只需生成一个词:

  • "positive"
  • "negative"

➡ 分类 = 生成。


② 生成模型擅长自然语言理解与生成

它知道:

  • positive 的含义
  • negative 的语义
  • 文本的潜在情绪

所以能"读懂 → 生成标签"。


③ Prompt(提示词)让模型自动适应新任务

不用训练,只需告诉它:

  • 分类标准
  • 输出格式
  • 示例(few-shot)

即可完成分类。


问题 7:请描述 LLM 的前向传播完整流程(从输入到输出)。

① 文本输入

用户输入一句话。


② 分词(Tokenizer)

文本 → 子词 → token IDs。


③ 词嵌入 + 位置编码

token IDs → Embedding → token 向量

再加入 Position Embedding / RoPE。


④ Transformer 多层处理

每层包括:

  1. 多头自注意力(Self-Attention)
    学上下文关系
  2. 残差 + LayerNorm
  3. 前馈神经网络(FFN)
    增强特征表达
  4. 残差 + LayerNorm

堆叠 N 层。


⑤ LM Head(语言建模头)

把最后的隐藏状态映射到词表维度 → logits → softmax。


⑥ 解码策略(生成下一个 token)

如:

  • greedy
  • top-k
  • top-p
  • temperature

选出概率最高或采样得到的 token。


⑦ 自回归生成 + KV Cache 加速

  • 把新 token 拼到序列末尾
  • 再次前向
  • K/V 缓存复用历史,避免重复计算
  • 直到生成结束

相关推荐
Love Song残响4 小时前
VSCode高效AI开发全攻略
ide·人工智能·vscode
码农小白猿4 小时前
IACheck提升锅炉安装验收报告审核效率:智能化审核为安全合规保驾护航
运维·人工智能·ai·iacheck
hello我是小菜鸡4 小时前
马尔可夫跳变系统镇定
人工智能·机器学习
QT 小鲜肉4 小时前
【Linux命令大全】001.文件管理之slocate命令(实操篇)
linux·运维·服务器·数据库·笔记
阿正的梦工坊4 小时前
Rubicon论文数据部分详解:从Rubric设计到RL Pipeline的全流程
人工智能·深度学习·机器学习·语言模型·自然语言处理
上天_去_做颗惺星 EVE_BLUE4 小时前
C++学习:学生成绩管理系统
c语言·开发语言·数据结构·c++·学习
njsgcs4 小时前
cuas 电脑操作ai 相关
人工智能
AI视觉网奇5 小时前
ue安装插件方法笔记
笔记·ue5
独自归家的兔5 小时前
基于 cosyvoice-v3-plus 的 个人音色复刻 (华为OBS)
人工智能·华为·语音识别
Legend NO245 小时前
如何构建自己高质量语料库?
人工智能·非结构化数据