transformer如何成为今天AI的地基?

transformer是怎么工作的:

大模型-image-4.png

大模型-image-3.png

编码器:

左边乘以N的标记。这代表我们输入的“I am Wang”经过方块中的运算,产生的结果并不直接就是含义矩阵,而是又进行了一次相同结构的运算。这样的运算一共进行了N次,最后才得出最终的含义矩阵

解码器:

把人类无法理解的含义矩阵转换回了可以理解的语言

解码器和编码器的工作过程不太一样。编码时,我们把“I am Wang”这句话整个传到编码器里,然后模型一下就生成了整句话的含义矩阵。但是解码时,解码器却是一个词一个词地生成翻译的。

解码器有两个输入:

  1. 来自编码器的含义矩阵。

  2. 解码器当前已经翻译好的文本。

最开始翻译时,我们没有已经翻译好的文本,所以我们传入一个代表“句子开始”的标记。于是,这个“开始标记”配合含义矩阵,经过整个解码器的运算,最后生成的内容是翻译后的第一个词的概率分布。

比如,“I am Wang”的含义矩阵 + “开始标记”之后,解码器的输出就可能是 “我” 10%, “你” 4%, “他” 5%, “苹果” 0.5% 等等。模型认识的每一个词(更准确地说是Token),都会有这样一个概率。GPT-2一共认识50257个token,所以这里就有50257个概率,这5万多个概率加起来正好是100%。

这时,我们一般会选择概率最高的token“我”当作输出,这——就是翻译出来的第一个token了。

注意,在这个过程中,解码器也有一个乘以N的标记,说明这段运算结构也是重复了多次的,和编码器相同。这里每次重复时,含义矩阵的输入是一直不变的。

于是现在我们有了“开始标记”和“我”这两个token。这时我们再把这两个token同时传入解码-器,解码器就会生成下一个token的概率,比如 “是” 80%, “苹果” 0.01% 等等。于是我们就选择出了第二个token “是”。同理再把 “开始标记”、“我”、“是” 传入解码器就会生成 “王”。最后,“开始标记”“我是王” 再传入解码器,解码器就会生成“结束标记”,这样程序就知道翻译已经完成了。

最终“我是王”就是”I am Wang”的最终翻译了。

不难看出,输出时每生成一个token就会完整地跑一遍decoder,所以生成“我是王”这三个token的工作量,要远比生成“I am Wang”含义矩阵的encoder的工作量多得多。而且翻译后的句子越长,二者的工作量差距也就越明显。这也是为什么,大模型API在收费时输出往往比输入贵得多。

Transformer的变种

经过之前的分析,我们不难看出Transformer模型的设计思路:

左边的encoder负责理解文字,右边的decoder负责生成文字。

Decoder-Only架构(GPT系列)

说到生成文字,是不是感觉和现在的大语言模型有点像?

没错,OpenAI很快就发现,右边的解码器其实是可以独立工作的。但如果没有左半边的编码器,那从编码器传过来的“含义矩阵”这个输入,要怎么处理呢?OpenAI直接把和它相关的部分删掉了。

于是,这个模型就只剩下decoder部分了,所以它被叫做decoder-only transformer。而这——就是GPT-2的模型结构。

大模型-image-2.png

其实不仅是GPT模型,像Claude、Gemini、DeepSeek、Kimi等等,现在绝大多数大语言模型都是这种decoder-only结构的变种

这种结构的模型训练起来也是非常方便的。我们可以用任何现成的文本进行训练,比如 “我是老王”。

  • 输入“我”,训练模型输出“是”;

  • 然后输入“我是”,训练模型输出“老”;

  • 输入“我是老”,训练模型输出“王”。

不像训练翻译模型那样的监督学习,人们需要同时提供成对的输入和输出,这里我们只需要提供任意一个有意义的字符串,输入和输出就可以根据规则自动生成。这种训练方式叫做自监督学习

LLM 训练

1. 规模巨大(“大”在哪?)

表格

组件

说明

参数量

通常 数十亿 ~ 数万亿(如 GPT-3 有 1750 亿参数)
→ 参数越多,记忆和泛化能力越强

训练数据

整个互联网的文本(维基百科、书籍、新闻、代码等)
→ 数据越多,知识越广

计算资源

需要成百上千块 GPU 训练数周甚至数月

💡 “大”不是为了炫技,而是规模带来质变(涌现能力):小模型不会推理,大到一定程度突然会了!


2. 基于 Transformer 架构

  • LLM 的“大脑”是 Transformer(2017 年 Google 提出)。

  • 它的核心是 自注意力机制(Self-Attention):

    • 能同时关注句子中所有词之间的关系;

    • 比如:“他把书给了她,因为她需要。” → 模型知道“她”指谁。

✅ Transformer 让 LLM 能处理长文本、捕捉复杂依赖,是 LLM 成功的技术基石。


3. 训练大模型

预训练→微调→RLHF

先用海量无标注文本预训练(无监督学习),再用少量标注数据微调SFT

(1)预训练(Pre-training) ——让模型 “见多识广”

核心目标:学习通用语言规律、常识、基础语义关联(如 “猫” 是动物,“红色” 是颜色)。

数据格式:无标注的 “纯文本” 或 “图文对”(无需人工打标签,降低成本)。

数据来源

  • 文本:开源语料库(如 WikiText、BookCorpus)、新闻文章、小说、论文摘要。

  • 图文:Flickr30k(3 万张图 + 15 万条描述)、COCO(12 万张图 + 50 万条描述)的子集。

  • 构造示例(500 条图文对)

[{"image_path": "pretrain_imgs/001.jpg", "caption": "一只黑色的猫坐在沙发上"},
{"image_path": "pretrain_imgs/002.jpg", "caption": "红色的苹果放在白色盘子里"},
// ... 共500条,图片从Flickr30k截取,描述直接复用数据集自带的caption]
  • 关键要求:数据多样性(覆盖不同场景、物体、语言风格),无需精准标注,数量优先。

(2)微调(Fine-tuning) —— 让模型 “听懂指令”

  • 核心目标:学习 “指令→正确回答” 的映射(如 “指令:图中有几只猫?→ 回答:2 只”)。

  • 数据格式:“指令 + 输入(文本 / 图片路径)+ 正确回答” 的三元组(有监督标注)。

  • 数据来源

    • 手动标注:基于预训练数据集的图片 / 文本,人工写简单指令和回答(500 条仅需 1-2 天)。

    • 工具生成:用 ChatGPT 批量生成(如输入 “给图片描述‘猫坐在沙发上’写 5 条指令”)。

  • 构造示例(500 条)

[{"instruction": "图中的猫是什么颜色?",
    "input": "pretrain_imgs/001.jpg",  // 图片输入(文本任务可直接填文本)
    "response": "黑色"},
 {"instruction": "描述图片中的物体和位置关系",
     "input": "pretrain_imgs/002.jpg",
     "response": "红色的苹果放在白色的盘子里"},
     // ... 共500条,指令覆盖“计数、颜色、位置、描述”等简单任务]
  • 关键要求:指令清晰、回答准确简洁,场景与目标任务一致(如做医疗模型,指令需是 “解读 X 光片”)。

(3) RLHF(人类反馈强化学习)—— 让模型 “知道好坏”

  • 核心目标:让模型区分 “好回答” 和 “坏回答”,学习人类偏好。

  • 数据格式:“指令 + 输入 + 多个回答 + 人工打分” 的四元组(打分 1-3 分,3 分最好)。

  • 数据来源:从微调数据中选 100 条,用微调后的模型生成 2-3 个不同回答(调整temperature参数控制多样性),再人工打分。

  • 构造示例(100 条)

[{"instruction": "图中有几只猫?",
  "input": "pretrain_imgs/001.jpg",
  "responses": [{"text": "2只黑色的猫", "score": 3},  // 准确且完整
  {"text": "几只猫", "score": 2},      // 模糊但正确
  {"text": "3只狗", "score": 1}        // 错误]},
  // ... 共100条,每个样本至少2个回答,覆盖不同质量等级]
  • 关键要求:打分标准一致(如 “准确> 模糊 > 错误”),避免主观偏差(可多人标注取平均)。

LLM 和 Diffusion 模型的关系(呼应你之前的问题)

模型类型

擅长领域

核心机制

LLM

语言(文本)

预测下一个词(Token)

Diffusion

图像/音频

从噪声中逐步去噪生成数据

✅ 现代多模态大模型(如 GPT-4V、Gemini) = LLM(理解语言) + Vision Encoder(理解图) + Diffusion/Decoder(生成图)

核心应用场景:哪里需要 “循序渐进” 的模型?

这套范式几乎适用于所有需要 “理解人类需求、输出高质量结果” 的大模型场景,典型应用包括:

  1. 通用大模型(ChatGPT、Kimi、文心一言)

  • 核心需求:能应对日常对话、知识问答、文本生成等多元任务,既要 “博学” 又要 “好用”。

  • 三阶作用:预训练学海量知识,微调懂人类指令,RLHF 优化回答风格(如简洁、礼貌)。

  1. 垂直领域大模型(医疗、金融、法律)

  • 核心需求:在专业场景中输出准确、合规的结果(如医疗诊断、法律文书)。

  • 三阶作用:预训练学通用语言 + 基础专业知识,微调适配垂直领域指令(如 “解读病历”),RLHF 强化准确性(避免误诊、法律风险)。

  1. 多模态大模型(Seed1.5-VL、GPT-4V)

  • 核心需求:理解图像 / 视频 + 文字,实现跨模态交互(如 “描述图片内容”“根据视频写总结”)。

  • 三阶作用:预训练学图文对齐(图→文对应),微调懂跨模态指令,RLHF 优化多模态回答的连贯性。

  1. 智能代理(AutoGPT、AgentGPT)

  • 核心需求:能自主完成复杂任务(如 “写报告→查资料→排版”),需要逻辑链和执行能力。

  • 三阶作用:预训练学逻辑推理,微调学任务拆解指令,RLHF 优化执行效率(避免无效步骤)。

RLHF

RLHFReinforcement Learning from Human Feedback基于人类反馈的强化学习)是当前大语言模型(LLM)对齐人类意图、提升有用性与安全性的核心技术。它让 AI 从“只会背书”变成“懂你想要什么”。


一、为什么需要 RLHF?——问题背景

❌ 预训练 + 微调(SFT)的局限

  1. 预训练模型:在海量文本上训练,目标是“预测下一个词”,但不知道什么是“好回答”

  2. 监督微调(SFT):用人工写的“指令-回答”对微调,让模型学会格式。

    1. 但 SFT 数据有限,且无法覆盖所有场景

    2. 模型可能生成看似合理但事实错误、有害或冗长的回答。

🎯 核心问题: 如何让模型不仅“语法正确”,还符合人类偏好(真实、简洁、有帮助、无害)?


二、RLHF 的核心思想

让人类当“裁判”,教 AI 什么是好答案;再用强化学习,让 AI 主动优化输出。

它不直接告诉模型“正确答案是什么”,而是告诉它:“这个答案比那个更好”。


三、RLHF 的三大步骤(详细流程)

步骤 1️⃣:收集人类偏好数据(构建奖励信号)

  • 人类标注员对同一个问题的多个模型回答进行排序。

    • 例如:

      • 问题:如何煮鸡蛋?

      • 回答 A:把鸡蛋放水里煮10分钟。

      • 回答 B:先买一只鸡,等它下蛋...(跑题)

      • 标注员选择:A > B

  • 收集大量这样的 (prompt, chosen_response, rejected_response) 三元组。

💡 关键:比较式反馈比打分更可靠(人很难给“7.3分”,但容易判断“A比B好”)。


步骤 2️⃣:训练奖励模型(Reward Model, RM)

  • 用上一步的数据,训练一个独立的神经网络(通常也是 Transformer),叫做 奖励模型(RM)

  • 输入(prompt, response)

  • 输出:一个标量分数(reward),表示这个回答的“好坏程度”。

训练方式:

  • 对每一对 (chosen, rejected),让 RM 满足:

reward(chosen) > reward(rejected)
  • 常用损失函数:Pairwise Ranking Loss(如 Bradley-Terry 模型)

✅ RM 的作用:代替人类,24小时自动给任意回答打分


步骤 3️⃣:用强化学习优化语言模型(Proximal Policy Optimization,ppo)

现在,我们有一个:

  • 待优化的策略模型(Policy):即原始 LLM(比如 SFT 后的模型)

  • 奖励模型(RM):能给回答打分

目标:调整策略模型的参数,让它生成的回答获得更高的 RM 分数

具体做法(以 PPO 算法为例):

  1. 让策略模型对一批 prompts 生成 responses;

  2. 用 RM 给这些 responses 打分 → 得到 reward;

  3. 使用 PPO(Proximal Policy Optimization) 算法更新策略模型:

    1. 鼓励生成高 reward 的回答;

    2. 同时限制更新幅度,避免模型“学歪”(KL 散度约束)。

🔁 这是一个闭环迭代过程:生成 → 打分 → 更新 → 再生成……


四、RLHF 的整体架构图(文字版)

[人类标注员]
     ↓
(问题 + 多个回答) → [排序/选择] → (偏好数据)
     ↓
[奖励模型 RM 训练] ← (偏好数据)
     ↓
[策略模型 π] → 生成回答 → [RM 打分] → [PPO 强化学习] → 更新 π
     ↑_________________________________________|

五、RLHF 的效果 vs 没有 RLHF

能力

仅 SFT 模型

SFT + RLHF 模型

遵循指令

一般

✅ 显著提升

事实准确性

容易幻觉

✅ 更少编造

拒绝不当请求

可能顺从

✅ 学会说“不”

回答简洁性

可能啰嗦

✅ 更精炼

安全性

可能输出有害内容

✅ 更可控

📊 OpenAI 实验表明:1.3B 参数的 InstructGPT(带 RLHF) > 175B 的 GPT-3(无 RLHF) 在人类偏好上!


六、RLHF 的挑战与局限

⚠️ 1. 人类偏好不一致

  • 不同标注员标准不同(文化、背景、情绪);

  • “好答案”本身主观(幽默 vs 严肃)。

⚠️ 2. 奖励模型可能出错

  • RM 只见过有限样本,面对新问题可能打分不准;

  • 可能被策略模型“欺骗”(Reward Hacking)。

⚠️ 3. 成本高昂

  • 需要大量高质量人工标注;

  • 强化学习训练不稳定、计算量大。

⚠️ 4. 过度优化导致“讨好”

  • 模型可能回避争议话题,变得过于保守;

  • 丢失创造性或多样性。


七、RLHF 的演进与替代方案

由于 RLHF 成本高、复杂,社区也在探索更高效的方法:

方法

思路

DPO(Direct Preference Optimization)

绕过 RM 和 RL,直接用偏好数据优化模型(更简单、稳定)

KTO(Kahneman-Tversky Optimization)

利用单个回答的“接受/拒绝”标签,无需成对比较

Self-Instruct + AI Feedback

用强模型(如 GPT-4)代替人类生成偏好数据

💡 趋势:RLHF 是里程碑,但未来可能被更简单的偏好优化方法取代


八、一句话总结 RLHF

RLHF = 人类当裁判 + 训练一个 AI 裁判(RM)+ 用强化学习让 LLM 主动讨好这个裁判,最终生成更符合人类喜好的回答。

它不是让 AI “变聪明”,而是让它 “更懂你”


如果你正在做 LLM 应用,理解 RLHF 能帮你明白:

  • 为什么 ChatGPT 比原始 GPT 更“听话”;

  • 为什么不能只靠 prompt engineering 解决所有问题;

  • 如何设计自己的对齐(Alignment)流程。

大模型解码策略

大模型的解码策略 - 白玉京的文章 - 知乎

https://zhuanlan.zhihu.com/p/1986752240992658717

解码策略 (Decoding Strategy),即大模型的“选词规则”。

虽然“预测下一个词”的原理很简单,但在每一步如何从成千上万个候选词元的概率分布中做出最终选择,却是一门艺术。

一、确定性策略:稳字当头,注意力帮它“不短视”

大模型-image.png

1.贪心搜索:每步只选“最像对的词”

策略原理:最简单粗暴的规则——每一步都直接选注意力机制给出的“概率最高的词”,不考虑其他候选。

注意力的配合逻辑:注意力机制先从上下文里抓核心线索,给相关词打高概率,贪心搜索直接“抄作业”选最高的。

文本例子:输入“小明在图书馆,他______”

第一步,注意力机制先“聚焦”:

关注“小明”(“他”的指代对象)、“图书馆”(场景),给相关候选词打分:“看书”(概率0.6)、“学习”(概率0.25)、“跑步”(概率0.03)、“吃饭”(概率0.02);对“在”“的”这类虚词,注意力权重几乎为0。

第二步,贪心搜索选词:直接选概率最高的“看书”,生成“小明在图书馆,他看书”;

下一步继续重复:注意力关注“看书”“图书馆”,给“认真地”(概率0.5)打分最高,贪心搜索选它,最终生成“小明在图书馆,他看书认真地做笔记”。

优点:速度最快,几乎不耗额外算力;

缺点:短视效应明显——可能每一步选的都是局部最优,但整体序列生硬。比如输入“我喜欢春天,因为______”,贪心可能生成“我喜欢春天,因为春天春天春天很温暖”(每一步“春天”概率都高,导致复读)。

2.束搜索:多开几条路,最后选最优

策略原理:贪心搜索的升级版,核心是“不把鸡蛋放一个篮子”。设定一个“束宽”(比如4),每一步都保留注意力机制给出的“得分最高的4个候选序列”,后续基于这4个序列继续扩展,直到生成结束,再从所有候选里选最优的。

文本例子:输入“晚霞染红了天空,______”,束宽=2

第一步,注意力聚焦“晚霞”“天空”,给出候选词及概率:“云朵”(0.4)、“余晖”(0.3)、“雨水”(0.05)、“马路”(0.04);

束搜索保留前2个序列:①“晚霞染红了天空,云朵”(累计得分0.4)、②“晚霞染红了天空,余晖”(累计得分0.3);

第二步,基于两个序列分别扩展:

对序列①,注意力关注“云朵”“晚霞”,给出候选词:“像棉花糖”(0.35)、“飘向远方”(0.25);累计得分0.4+0.35=0.75;

对序列②,注意力关注“余晖”“晚霞”,给出候选词:“洒在屋顶”(0.3)、“渐渐消散”(0.2);累计得分0.3+0.3=0.6;

束搜索继续保留前2个序列:①“晚霞染红了天空,云朵像棉花糖”(0.75)、②“晚霞染红了天空,余晖洒在屋顶”(0.6);

生成结束后,选得分最高的①作为最终输出。

优点:比贪心搜索更连贯,逻辑更严谨,不会出现明显的复读或跑偏;

缺点:计算量随束宽增大而增加(但远低于穷举);生成内容偏保守,缺乏新意——比如输入“写一句关于旅行的感悟”,永远都是“身体和灵魂,总要有一个在路上”这类套话。

二、随机性策略:灵活多变,注意力帮它“不胡说”

这类策略的核心是“主动引入随机性”,相同输入可能得到不同输出,适合对话、创意写作等需要多样性的场景。注意力机制在这里的作用是“拉缰绳”,避免随机选到无意义的词。各策略的技术原理与预测逻辑如下表:

大模型-image-1.png

MoE 的崛起:架构演进,从“稠密”到“稀疏”

多模态大模型主流架构介绍:从 LLaVA 到 Qwen3-VL,解构多模态大模型的演进之路 - 我要吃鸡腿的文章 - 知乎

https://zhuanlan.zhihu.com/p/1963658684765833212

传统的 LLM 通常是“稠密”的,即在推理时需要激活模型的所有参数。而以 Qwen3-VL 为代表的新一代 MLLM,其语言模型部分已经开始采用更先进的混合专家 (Mixture of Experts, MoE) 架构。

在 MoE 架构中,模型内部包含多个“专家”子网络。对于每一个输入的词元,一个“门控网络”会智能地选择激活一小部分最相关的专家来进行计算,而其他专家则保持“沉默”。这种“稀疏激活”的策略,使得模型可以在大幅增加总参数量的同时,保持推理计算量不变,从而在性能和效率之间取得了更好的平衡。