我是如何从一串问题,搭起大模型知识结构的

从大模型发展史问起,把 Transformer 家谱、模型内部数据流、FFN、MoE、DeepSeek、CLIP、SAM、多模态、训练对齐和工程工具链放进同一张知识地图。

我最开始问 AI 的问题很普通:

大模型的发展历程是什么?

我以为自己需要的是一张时间表。哪一年出现 Transformer,哪一年出现 GPT-3,哪一年 ChatGPT 火了,哪一年 GPT-4 开始支持多模态,哪一年 DeepSeek 又被大家讨论。

但问着问着我发现,时间线只能告诉我“发生了什么”,不能告诉我“我为什么不懂”。

我真正卡住的地方不是某个模型在哪一年发布,也不是某个模型有多少参数。我真正卡住的是:这些名字背后到底有什么关系?为什么它们都叫大模型?为什么大家反复提 Transformer?MoE 是不是一种新架构?FFN 为什么和模型的“记忆”有关?CLIP 和 SAM 又为什么会出现在多模态大模型的讨论里?

也就是说,我一开始以为自己在问大模型历史,后来才发现自己其实是在问:

我该如何建立一套能放下这些概念的知识结构?

这篇文章就是我给自己的答案。它不是论文综述,也不是百科词条,而是一份学习地图:以后我忘了某个概念,可以回到这里,先找到它在整张图里的位置。

时间线只是入口

大模型的发展很容易写成流水账:

深度学习兴起
  -> Transformer 出现
  -> BERT / GPT 开启预训练时代
  -> GPT-3 展示规模化能力
  -> ChatGPT 让对话式 AI 出圈
  -> GPT-4 / GPT-4o 推动多模态
  -> DeepSeek 等模型让效率、成本和推理能力成为焦点

这些节点当然重要。但如果只记年份,我还是不知道大模型为什么会变强。

后来我把时间线压缩成几次关键变化:

变化 我真正要记住的东西
从手工规则到数据学习 能力不是一条条规则写进去的,而是模型从大量数据里学出来的
Transformer 出现 大规模语言模型有了一个非常重要的架构底座
预训练成为主流 模型先学通用语言能力,再适配具体任务
规模化能力显现 模型开始从专用工具变成通用接口
ChatGPT 出圈 对话界面改变了普通人调用 AI 的方式
多模态发展 模型不再只处理文字,而开始处理图像、音频等信息
架构效率竞争 继续变大之外,成本、推理、长上下文和部署效率也变得关键

所以,大模型发展史对我来说不是“模型排行榜”,而是一条能力扩展路线:

数据学习
  -> 可扩展架构
  -> 预训练
  -> 规模化
  -> 对话交互
  -> 多模态
  -> 推理与效率

Transformer 不是 GPT,而是一棵家族树

我一开始很容易把 Transformer、GPT、大模型混在一起,仿佛它们说的是同一件事。

后来我才意识到,Transformer 更像一个底座。在这个底座上,长出了几条不同路线。

Transformer
  |
  |-- Encoder-only
  |     |-- BERT
  |     |-- 偏理解:分类、检索、抽取、语义匹配
  |
  |-- Decoder-only
  |     |-- GPT
  |     |-- LLaMA
  |     |-- DeepSeek
  |     |-- 偏生成:对话、写作、代码、推理
  |
  |-- Encoder-Decoder
        |-- T5
        |-- BART
        |-- 一些翻译、摘要、OCR、跨模态转换任务

这张家谱树对我很重要。

BERT 和 GPT 都是 Transformer 路线,但它们不是同一种用法。BERT 更像理解器,擅长看完整上下文后做判断。GPT 更像生成器,按顺序预测下一个 Token。T5、BART 这类 Encoder-Decoder 模型,则更像把一种输入转换成另一种输出。

今天很多对话大模型走的是 Decoder-only 路线,因为对话、写作、代码生成,本质上都可以被组织成“根据前文继续生成下一个 Token”的任务。

这也解释了一个常见误会:

Transformer 不是 GPT。GPT 是 Transformer 家族里 Decoder-only 这一支的代表。

一句话进入模型后,数据怎么流

知道模型家谱还不够。我还想知道:我输入一句话以后,模型内部到底发生了什么?

一个简化的数据流是这样的:

输入文字
  -> Tokenizer
  -> Token IDs
  -> Embedding
  -> 多层 Transformer Block
      -> RMSNorm / LayerNorm
      -> Attention
      -> 残差连接
      -> RMSNorm / LayerNorm
      -> FFN / MoE
      -> 残差连接
  -> Final Norm
  -> LM Head
  -> Softmax
  -> 下一个 Token

这里每个词都有位置。

Tokenizer 负责把文字切成 Token。模型不直接处理自然语言,而是处理 Token 对应的编号。现代分词常见思路之一是 BPE:从更小的字节或字符片段开始,逐步合并高频片段。这样做的好处是,即使遇到生僻词,也可以拆成更小单位,不至于完全不认识。

Embedding 负责把 Token ID 变成向量。编号本身没有语义距离,向量才是后续计算真正处理的对象。

Attention 负责让 Token 之间互相看见。比如一句话里“它”指代什么,需要看上下文;Attention 就是在处理这种上下文关系。

残差连接负责把原始输入加回来。它像是保留底稿,再叠加每一层的新处理结果,避免深层网络里信息和梯度传不下去。

RMSNorm 或 LayerNorm 负责稳定数值。RMSNorm 可以理解成“稳压器”或“音量调节器”:它不负责产生知识,但能让向量的数值幅度保持在比较稳定的范围里,避免层数深了以后数值越来越大或越来越小。

LM Head 负责把模型内部向量映射回词表。Softmax 再把分数变成概率,模型据此选择或采样下一个 Token。

所以,语言模型生成一段话,本质上是在循环做一件事:

根据已有上下文
  -> 预测下一个 Token
  -> 把新 Token 拼回上下文
  -> 再预测下一个 Token

FFN 让我理解:模型的知识不是数据库

在 Transformer Block 里,Attention 很容易吸引注意力,因为它名字响亮,也确实重要。

但我后来发现,FFN 同样关键。

一个典型 FFN 可以粗略理解成:

输入向量
  -> 升维
  -> 激活函数
  -> 降维
  -> 输出向量

Attention 更像信息调度:当前 Token 应该参考哪些上下文?哪些位置的信息更重要?

FFN 更像深度加工:拿到上下文信息后,当前这个向量应该触发什么模式?哪些语义、事实、风格、输出倾向应该被激活?

有研究把 Transformer 的 FFN 层解释成一种 Key-Value Memory。这个说法对我很有帮助,因为它让我理解了模型“记住知识”的方式。

模型不是像数据库一样存:

key: 法国首都
value: 巴黎

它更像是在训练过程中,把大量文本模式压缩进参数里。生成时,当前上下文会激活某些参数模式,从而影响下一个 Token 的概率。

所以“模型记住了知识”这句话要谨慎理解。它不是查表,而是在高维参数空间里做概率计算。这也解释了为什么模型既能答对很多事实,也会产生看起来合理但实际错误的幻觉。

MoE 让我理解:模型大,不等于每次都全部运行

理解 FFN 之后,MoE 就容易理解很多。

MoE 的英文是 Mixture of Experts,中文常叫混合专家模型。但这个翻译本身并不能让我理解它。

真正有用的理解是:

MoE 通常不是推翻 Transformer,而是改造 Transformer 里的 FFN 部分。

普通 FFN 是每个 Token 都走同一套前馈网络:

Token 向量
  -> 一个 FFN
  -> 输出

MoE 则是把 FFN 拆成很多专家:

Token 向量
  -> Router
  -> 选择少数专家 FFN
  -> 合并专家输出

这里有两个概念一定要分清:

总参数:模型一共有多少参数
激活参数:处理一个 Token 时实际参与计算的参数

MoE 的核心价值在于,它可以让模型拥有很大的总容量,但每次只激活一部分参数。这样模型不是“免费变强”,而是在容量和计算成本之间做了新的权衡。

当然,MoE 也会带来新问题:Router 怎么训练?专家负载是否均衡?不同设备之间通信成本如何控制?专家是否真的学出了不同能力?这些都不是“多放几个专家”就能自动解决的。

DeepSeek-V3:把这些概念串起来

DeepSeek-V3 是一个很适合用来串联这些概念的案例。

根据 DeepSeek-V3 Technical Report,它是一个基于 Transformer 的 MoE 语言模型,总参数约 671B,每个 Token 激活约 37B 参数,训练数据约 14.8T tokens,支持 128K 上下文。它的几个关键词包括 Decoder-only、DeepSeekMoE、MLA、RMSNorm、RoPE、FP8 混合精度、DualPipe 等。

这些词如果单独看,会很散。但放进数据流里就清楚了:

输入文字
  -> Tokenizer
  -> Embedding
  -> 多层 Decoder-only Transformer Block
      -> RMSNorm:稳定数值
      -> MLA:处理注意力,同时压缩 KV Cache 成本
      -> 残差连接:保留原始信息
      -> RMSNorm
      -> DeepSeekMoE:Router 选择专家,稀疏激活 FFN
      -> 残差连接
  -> Final RMSNorm
  -> LM Head
  -> Softmax
  -> 下一个 Token

MLA 和 MoE 不是一回事。

MLA 是注意力机制上的优化,核心目标之一是减少长上下文推理时 KV Cache 的压力。

MoE 是 FFN 路径上的稀疏化改造,核心目标是扩大模型总容量,同时控制每个 Token 实际激活的计算量。

这也是我理解 DeepSeek-V3 的关键:它不是“一个神秘的新模型”,而是把现代大模型里的几个重要方向组合在了一起。

Decoder-only Transformer
  + MLA 注意力优化
  + MoE 稀疏专家
  + 低精度训练和并行工程
  + 长上下文支持

注意力机制也有自己的演化

对话记录里还提到了一条很重要的线:注意力机制本身也在演化。

最原始、最经典的是 MHA,也就是 Multi-Head Attention。它让模型用多个注意力头从不同角度看上下文。

后来出现了 MQA、GQA 等做法,目标之一是减少 Key / Value 的缓存和计算成本。再后来,DeepSeek-V3 这类模型把 MLA 推到很显眼的位置,通过潜在向量压缩 Key / Value 表示,进一步降低长上下文推理压力。

还有一些路线会尝试稀疏注意力、线性注意力、滑动窗口注意力等,目标都是面对同一个问题:

上下文越长,注意力越贵,KV Cache 越重。

我现在不会把这些名字都背下来,而是把它们放到同一个问题下面:

如何让模型在更长上下文里,仍然算得动、存得下、跑得快?

这比单独记 MHA、GQA、MLA、Sparse Attention 更有用。

多模态不是“给语言模型加个图片输入框”

我一开始以为,多模态大模型就是“模型会看图”。

后来发现这句话太粗糙。

“看图”至少可以拆成两个问题:

这张图表达了什么语义?
图里的东西具体在哪里?

CLIP 更接近解决第一个问题。

CLIP 的核心是图文语义对齐。它把图像和文本放到相近的语义空间里,让模型能判断一张图和一句话是否匹配。它很适合理解“这张图大概是什么”“这段文字和这张图是否对应”。

SAM 更接近解决第二个问题。

SAM 的核心是图像分割。它擅长把图里的目标区域分出来,回答“这个东西在哪里”。但它本身不一定告诉你这个区域在语义上是什么。

所以我现在这样记:

CLIP:更像知道“这是什么”
SAM:更像知道“在哪里”

当然,这只是帮助理解的简化说法。严格讲,CLIP 做的是图文对齐,SAM 做的是分割提示下的视觉区域提取。

多模态大模型要做的事情,是把这些视觉能力和语言模型接起来。

一种常见路线是拼接式:

图像
  -> 视觉编码器
  -> 投影器
  -> 语言模型
  -> 文本回答

视觉编码器负责把图片变成视觉特征。投影器负责把视觉特征转换到语言模型能接收的表示空间。语言模型再基于这些视觉信息进行回答、推理或生成。

另一种路线更强调原生多模态,把文本、图像、音频甚至视频统一成更一致的表示,让不同模态更深地进入同一套推理流程。GPT-4o 这类模型让我意识到,多模态不是简单多一个输入框,而是模型感知和表达世界的边界被扩展了。

对话里还提到 DeepSeek-OCR 这类思路:把文本渲染成图像,通过视觉编码进行信息压缩,再交给解码器处理。这让我看到一个有意思的方向:多模态不只是“看图片”,也可能成为信息压缩和跨模态转换的新工具。

训练和对齐:模型不是预训练完就能聊天

我一开始也容易忽略训练流程。

大模型不是预训练完就自然变成 ChatGPT。一个粗略流程是:

预训练
  -> SFT 监督微调
  -> 对齐训练
  -> 安全、风格和工具使用能力调整

预训练让模型学会语言和世界中的大量统计模式。SFT 让模型学会按照指令回答。对齐训练则让模型更接近人类偏好,比如更有帮助、更安全、更符合对话习惯。

对话里出现了 PPO、DPO、GRPO 这些词,我现在先把它们放在地图上:

PPO 是一种强化学习式的对齐方法。典型 RLHF 流程里会出现策略模型、参考模型、奖励模型、价值模型等角色。它比较复杂,但曾经是对齐训练里非常重要的路线。

DPO 更直接。它利用“哪个回答更好”的偏好数据,让模型直接学习偏好差异,不一定显式训练奖励模型。

GRPO 则常被放在推理、数学、代码等任务讨论里。它的直觉是让同一组候选答案内部比较,用组内相对表现来提供训练信号。

这一块我还没有完全吃透,但我现在至少知道它们属于哪一层:

模型架构:Transformer / MoE / Attention
训练阶段:预训练 / SFT / PPO / DPO / GRPO
产品表现:对话质量 / 安全性 / 推理能力 / 工具使用

不能把它们混在一起。

工程落地:模型文件、推理系统和分词器也在地图里

如果只看模型架构,还是不完整。

真正把大模型跑起来,还会遇到工程工具链。

DeepSpeed 主要解决大模型分布式训练的问题,典型关键词是 ZeRO 等内存优化技术。

vLLM 主要解决高并发推理服务的问题,典型关键词是 PagedAttention。

Safetensors 是 Hugging Face 生态里常见的安全、快速的模型权重存储格式。

MLX 是 Apple Silicon 上本地推理和机器学习计算相关的工具链。

Hugging Face 模型仓库里常见几个文件:

config.json
  -> 模型结构配置,比如层数、隐藏维度、注意力头数

*.safetensors
  -> 模型权重,也就是训练出来的参数

tokenizer.json
  -> 分词器配置,包括词表和切分规则

README.md
  -> 模型卡,说明模型用途、训练信息、限制和许可证

这让我意识到,“一个模型”不只是一个抽象名字。真正落地时,它会变成配置、权重、分词器、推理框架、部署服务、显存管理和 API 成本。

比较不同模型时,我现在会问什么

对话里还问过 MiniMax、GLM、DeepSeek 这些模型架构有没有区别。

这类问题很容易变成参数表,但参数表很快会过期。具体版本、价格、上下文长度、指标排名都需要查最新官方资料,不能靠聊天记录里的二手信息直接写死。

但比较框架可以保留下来。

以后我看到一个新模型,会先问:

维度 我应该问什么
基础架构 是 Encoder-only、Decoder-only,还是 Encoder-Decoder?
参数结构 是 Dense 还是 MoE?总参数和激活参数分别是多少?
注意力机制 用 MHA、GQA、MLA、稀疏注意力,还是线性注意力?
上下文能力 标称上下文多长?长上下文真实效果如何?
多模态能力 支持哪些输入输出?是拼接式还是更原生的融合?
训练方式 预训练、SFT、偏好对齐、推理强化分别怎么做?
工程效率 推理成本、延迟、吞吐、显存占用如何?
开放程度 是否开源?是否有模型卡、权重、推理代码?

这比单纯问“哪个模型更强”有用。

因为模型强不强,往往取决于场景。写作、代码、数学、长文档、多模态、本地部署、低成本 API,关注点都不一样。

最后得到的知识地图

整理到最后,我真正需要的是这样一张地图:

大模型知识结构
  |
  |-- 发展脉络
  |     |-- 数据学习
  |     |-- Transformer
  |     |-- 预训练
  |     |-- 规模化
  |     |-- 对话交互
  |     |-- 多模态
  |     |-- 推理与效率
  |
  |-- Transformer 家族
  |     |-- Encoder-only:BERT
  |     |-- Decoder-only:GPT / LLaMA / DeepSeek
  |     |-- Encoder-Decoder:T5 / BART / OCR 和转换类任务
  |
  |-- 模型内部数据流
  |     |-- Tokenizer / BPE
  |     |-- Embedding
  |     |-- Attention
  |     |-- FFN
  |     |-- RMSNorm / LayerNorm
  |     |-- Residual
  |     |-- LM Head / Softmax
  |
  |-- 架构优化
  |     |-- MHA / GQA / MLA
  |     |-- KV Cache
  |     |-- MoE / Router / Experts
  |     |-- RoPE
  |     |-- Dense vs Sparse
  |
  |-- 现代模型案例
  |     |-- DeepSeek-V3
  |     |-- DeepSeekMoE
  |     |-- MLA
  |     |-- FP8 / DualPipe
  |
  |-- 视觉和多模态
  |     |-- CLIP:图文语义对齐
  |     |-- SAM:图像分割
  |     |-- 视觉编码器
  |     |-- 投影器
  |     |-- 多模态 LLM
  |     |-- DeepSeek-OCR 这类跨模态压缩思路
  |
  |-- 训练和对齐
  |     |-- 预训练
  |     |-- SFT
  |     |-- PPO
  |     |-- DPO
  |     |-- GRPO
  |
  |-- 工程落地
        |-- DeepSpeed
        |-- vLLM
        |-- Safetensors
        |-- MLX
        |-- Hugging Face 仓库结构
        |-- Tokenizer / config / weights

这张图不保证覆盖所有细节,但它解决了我最初的问题。

我以后再看到一个名词,可以先问:

它属于发展史、架构、数据流、训练、多模态,还是工程?
它在模型里哪个位置?
它解决什么问题?
它带来什么代价?
它和我已经知道的哪个概念相邻?

这比背定义更重要。

写给未来的自己

我写这篇文章,首先是写给自己看的。

因为我知道自己一定会忘。过一段时间,我可能又会忘记 MoE 和 FFN 的关系,忘记 RMSNorm 放在哪里,忘记 CLIP 和 SAM 的区别,忘记 DeepSeek-V3 的 MLA 到底优化什么,也忘记 PPO、DPO、GRPO 分别属于训练流程里的哪一段。

但没关系。

我不需要一次性记住所有名词。我只需要留下一条能回来的路。

这条路不是从定义开始,而是从问题开始:

我为什么会困惑?
这个概念在结构里的位置是什么?
它前后连接了哪些东西?
如果我忘了它,应该回到哪张图?

这也是我现在对学习技术概念最大的体会:

知识不是靠一次性记住所有定义建立起来的,而是靠不断给概念找到位置建立起来的。

这篇文章就是我给自己画下的第一张大模型地图。

参考来源

  • Transformer: https://arxiv.org/abs/1706.03762
  • BERT: https://arxiv.org/abs/1810.04805
  • GPT-2: https://openai.com/index/better-language-models/
  • GPT-3: https://openai.com/index/language-models-are-few-shot-learners/
  • GPT-4: https://openai.com/index/gpt-4-research/
  • GPT-4o: https://openai.com/index/hello-gpt-4o/
  • Transformer Feed-Forward Layers Are Key-Value Memories: https://aclanthology.org/2021.emnlp-main.446/
  • RMSNorm: https://arxiv.org/abs/1910.07467
  • DeepSeekMoE: https://arxiv.org/abs/2401.06066
  • DeepSeek-V3 Technical Report: https://arxiv.org/abs/2412.19437
  • CLIP: https://arxiv.org/abs/2103.00020
  • Segment Anything: https://arxiv.org/abs/2304.02643

标签: 大模型, 人工智能, Transformer, 多模态, DeepSeek, 学习笔记, 知识结构

评论

评论系统尚未配置。

*** End of File

评论

评论系统尚未配置。