从 MoE 到 MCP:一篇讲清楚大模型内部机制与工程现实
这几年,大模型的能力像是突然“会思考”了一样。
但如果你拆开看,它们的底层并不神秘:
- 参数矩阵
- Attention 机制
- 前馈网络(FFN)
- 自回归生成
真正复杂的,是这些结构在工程层面如何扩展、优化,以及在现实系统中如何运行。
这篇文章把整个链条讲清楚:
MoE → Transformer 层结构 → token 生命周期 → 上下文窗口与 KV Cache → 预训练与微调 → 思维链 → RAG → MCP → 向量数据库 → Attention Is All You Need。
一、MoE:参数为什么能变得那么大?
MoE(Mixture of Experts,混合专家模型)的核心思想很简单:
不让模型的所有参数同时参与计算,而是动态选择一部分“专家”参与。
在普通 Transformer 中,每一层的 FFN 只有一组权重矩阵。
而在 MoE 中,这一组 FFN 被复制成多份——每一份叫一个专家。
当一个 token 经过这一层时:
- 先通过一个路由器(Router)
- 计算它与各专家的匹配分数
- 选出 top-k 个专家
- 只让这些专家参与计算
这样:
- 总参数可以非常大(比如 600B+)
- 但每个 token 实际激活的参数远小于总量
这就是“参数大但计算相对省”的本质。
MoE 动的是 FFN,不动 Attention。
二、Transformer 每一层到底在做什么?
一层 Transformer 做两件事:
1️⃣ Attention —— 让 token 之间交流
每个 token 生成:
- Q(Query)
- K(Key)
- V(Value)
然后计算:
softmax(QK^T) V
本质是:
每个 token 决定该从其他 token 那里获取多少信息。
2️⃣ FFN —— 让每个 token 独立加工
Attention 后,每个 token 已融合上下文。
接着通过两层线性变换(带激活函数):
x → W1 → 激活 → W2
Attention 负责“信息在哪里”。 FFN 负责“信息意味着什么”。
三、从 Prompt 到输出:完整生命周期
模型推理分两阶段:
1️⃣ Tokenize
文本 → token IDs。
2️⃣ Prefill
整段输入一次性跑完整个模型:
- 建立隐藏表示
- 建立 KV cache
3️⃣ Decode
逐 token 生成输出:
- 每生成一个 token
- 追加到序列末尾
- 再做一次前向传播
自回归循环,直到 EOS 或 max_tokens。
四、上下文窗口与 KV Cache 的工程现实
上下文长度决定:
一次推理时模型能“看到”的 token 总量上限。
KV Cache 是什么?
在 decode 阶段,模型不会重算历史。
而是缓存每个 token 的:
- Key
- Value
这就是 KV cache。
于是:
- 上下文越长
- KV cache 越大
- 显存占用越高
长上下文不只是“能读更多”, 也是“要缓存更多”。
为什么 128k 很贵?
1️⃣ Prefill 成本更高
第一次喂入长文本,需要完整 Attention 计算。
2️⃣ KV cache 更大
序列越长,缓存线性增长。
3️⃣ 远距离依赖变弱
即使没超窗,也不代表利用效果稳定。
要区分:
- 可容纳长度
- 有效利用长度
支持 128k ≠ 每个位置都同样容易被引用。
五、预训练、微调与 LoRA
预训练
目标非常简单:
预测下一个 token。
几万亿 token 反复训练,权重矩阵逐渐编码语言与知识。
微调
在预训练模型基础上,用较小数据继续训练。
LoRA
不直接改原权重,而是添加低秩矩阵补丁。
W = W_original + A × B
优点:
- 参数少
- 训练快
- 可随时加载卸载
六、思维链:为什么模型看起来“会思考”?
思维链(Chain of Thought)的本质:
用生成的 token 作为外部草稿纸。
每生成一个 token,模型就获得一次完整前向传播。
写出中间步骤,相当于增加推理轮次。
更长的推理 = 更多计算 = 更高成本。
七、RAG:模型不再只靠权重
RAG = Retrieval-Augmented Generation。
流程:
- 把问题转为向量
- 在向量数据库中找最相关文档
- 把文档塞进 prompt
- 模型基于这些生成回答
本质:
让模型开卷考试。
八、MCP 与工具调用
模型仍然只做一件事:
预测下一个 token。
当它输出结构化工具调用文本时:
- 引擎拦截
- 执行工具
- 返回结果
- 再继续生成
模型没有变聪明, 只是被赋予了“手”。
Claude Code 本质也是同一机制:
- read_file
- write_file
- bash
模型输出文本,系统负责执行。
九、向量数据库的意义
Embedding 把文本变成向量。
语义相近 → 向量距离近。
向量数据库的作用:
在高维空间中快速找到“最相似”的文本。
它是 RAG 的基础设施。
十、Attention Is All You Need
2017 年论文提出:
不需要 RNN,只用 Attention。
优势:
- 完全并行
- 任意距离 token 可直接交互
这为大模型规模扩张铺平了道路。
最后一句话
上下文长度回答的是:
能装多少。
不直接回答:
能看多好。
模型的“智能”,不是魔法。
是:
- 大规模矩阵
- Attention 机制
- 工程优化
- 外部工具协作
组合后的结果。
理解结构,比迷信神秘更重要。