Transformer 总链路:从输入表示到循环生成

Transformer 基于自注意力、舍弃循环结构;Attention 本质是 Q(新来的)点积 K(历史),得到权重后加权求和 V。

Transformer 做什么

编码器、解码器堆叠,完成文本等序列转换。相关细节见:自注意力机制第一个词如何产生解码策略

自注意力(简述)

序列里每一个单词可并行与句内全部单词计算关联度,相关性越高权重越大。例如「猫坐在垫子上,它很舒服」——处理「它」时重点聚焦「猫」,完成指代理解。

嵌入完整逻辑(极简)

文本分词 → 向量 + 位置编码 → 编码器自注意力挖掘上下文 → 全局记忆供给解码器;解码器掩码自注意力避免偷看未来,再经交叉注意力参考原文,循环预测下一 token。

先进在哪

  1. 自注意力全局并行,训练远快于 RNN 串行
  2. 直接捕捉远距离依赖
  3. 成为大模型 / 多模态的标准底座

总链路四阶段

阶段一:输入表示(词如何被数字化)

  1. 分词(Tokenization):切成 token,映射唯一 id
  2. 词嵌入(Word Embedding):查表成高维向量(如 768 维)
  3. 位置编码(Positional Encoding):无顺序机制,用正弦等模式注入词序
  4. 送入堆叠多层 Encoder

单层 Encoder 内部(循环 N 层):

  1. 多头自注意力(无掩码,可见全文)
  2. 残差 + LayerNorm
  3. FFN
  4. 残差 + LayerNorm

产出:与输入 token 数量相等、融合全局上下文的向量序列(Memory / 上下文表征)。

阶段二:解码器输入(自回归)

一开始只有 <Start>。已生成文本分词、嵌入 + 位置编码后进入多层 Decoder。

单层 Decoder 固定顺序:

  1. 掩码多头自注意力:只能看当前及之前已生成 token
  2. 残差 + Norm
  3. 交叉注意力:Q = 解码器侧;K、V = Encoder Memory
  4. 残差 + Norm
  5. FFN
  6. 残差 + Norm

输出是等长隐藏特征序列(还不是单词)。预测时通常只用最后一个向量——代表下一位置要预测的语义。

阶段三:预测下一个词

Decoder 末层向量 → 线性层映射词表维度 → Softmax → 选 token。

阶段四:循环生成

新词追加到目标序列,再进 Decoder,直到 <End>

整条链路串联

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
阶段 1(Encoder,只执行一次)
源文本 → Embedding + 位置编码 → 多层 Encoder → Memory
阶段 2(Decoder 前向,循环)
当前目标序列 → Decoder → 隐藏特征序列
阶段 3(词预测)
最后位置向量 → 线性 + Softmax → 下一 Token
阶段 4(循环控制)
是否 <End>?是则结束;否则追加新词回到阶段 2

风格控制:解码策略要点

详见 大模型文本生成解码策略

对比结论:

  1. Top-k:固定数量选词;Top-p:固定累积概率选词,候选数量动态变化
  2. Top-p 普遍优于 Top-k,主流模型默认 Top-p
  3. Top-k / Top-p 只是筛选候选;温度 T 在筛选前重塑概率分布——T 越小越确定,T 越大越随机

从理论到实践

一、提示词优化

原则:清晰、具体、提供上下文。进阶:few-shot 示例、允许「不知道」、链式思维、设定角色。

二、合理管控上下文

  1. 裁剪:保留最近几轮与目标 / 约束 / 身份;勿删工具结果与错误反馈
  2. 滑动窗口:仅保留最近 N 轮
  3. 摘要压缩:高召回后再去冗余,作记忆锚点
  4. 关键信息提取:NER / 小模型抽实体与偏好,注入系统提示
  5. 分层记忆:短期进 prompt;长期用向量库 / 文件;按需检索(渐进披露)