Transformer 总链路:从输入表示到循环生成
目录
Transformer 基于自注意力、舍弃循环结构;Attention 本质是 Q(新来的)点积 K(历史),得到权重后加权求和 V。
Transformer 做什么
编码器、解码器堆叠,完成文本等序列转换。相关细节见:自注意力机制、第一个词如何产生、解码策略。
自注意力(简述)
序列里每一个单词可并行与句内全部单词计算关联度,相关性越高权重越大。例如「猫坐在垫子上,它很舒服」——处理「它」时重点聚焦「猫」,完成指代理解。
嵌入完整逻辑(极简)
文本分词 → 向量 + 位置编码 → 编码器自注意力挖掘上下文 → 全局记忆供给解码器;解码器掩码自注意力避免偷看未来,再经交叉注意力参考原文,循环预测下一 token。
先进在哪
- 自注意力全局并行,训练远快于 RNN 串行
- 直接捕捉远距离依赖
- 成为大模型 / 多模态的标准底座
总链路四阶段
阶段一:输入表示(词如何被数字化)
- 分词(Tokenization):切成 token,映射唯一 id
- 词嵌入(Word Embedding):查表成高维向量(如 768 维)
- 位置编码(Positional Encoding):无顺序机制,用正弦等模式注入词序
- 送入堆叠多层 Encoder
单层 Encoder 内部(循环 N 层):
- 多头自注意力(无掩码,可见全文)
- 残差 + LayerNorm
- FFN
- 残差 + LayerNorm
产出:与输入 token 数量相等、融合全局上下文的向量序列(Memory / 上下文表征)。
阶段二:解码器输入(自回归)
一开始只有 <Start>。已生成文本分词、嵌入 + 位置编码后进入多层 Decoder。
单层 Decoder 固定顺序:
- 掩码多头自注意力:只能看当前及之前已生成 token
- 残差 + Norm
- 交叉注意力:Q = 解码器侧;K、V = Encoder Memory
- 残差 + Norm
- FFN
- 残差 + Norm
输出是等长隐藏特征序列(还不是单词)。预测时通常只用最后一个向量——代表下一位置要预测的语义。
阶段三:预测下一个词
Decoder 末层向量 → 线性层映射词表维度 → Softmax → 选 token。
阶段四:循环生成
新词追加到目标序列,再进 Decoder,直到 <End>。
整条链路串联
| |
风格控制:解码策略要点
详见 大模型文本生成解码策略。
对比结论:
- Top-k:固定数量选词;Top-p:固定累积概率选词,候选数量动态变化
- Top-p 普遍优于 Top-k,主流模型默认 Top-p
- Top-k / Top-p 只是筛选候选;温度 T 在筛选前重塑概率分布——T 越小越确定,T 越大越随机
从理论到实践
一、提示词优化
原则:清晰、具体、提供上下文。进阶:few-shot 示例、允许「不知道」、链式思维、设定角色。
二、合理管控上下文
- 裁剪:保留最近几轮与目标 / 约束 / 身份;勿删工具结果与错误反馈
- 滑动窗口:仅保留最近 N 轮
- 摘要压缩:高召回后再去冗余,作记忆锚点
- 关键信息提取:NER / 小模型抽实体与偏好,注入系统提示
- 分层记忆:短期进 prompt;长期用向量库 / 文件;按需检索(渐进披露)