2.2 GPT、LLaMA 与 MOE自回归模型与混合专家架构演进基于《大规模语言模型从理论到实践第2版》第2章 大语言模型基础爆款小标题从 GPT 到 LLaMA 到 MOE主流架构差异与选型一张表搞定为什么这一节重要大模型产品与开源生态里最常见的就是「GPT 类」「LLaMA 类」和「MOE 类」模型。若不搞清楚它们在训练目标自回归 vs 掩码、架构细节归一化、激活、位置编码和使用场景上的差异很容易出现「用 BERT 做长文本生成」或「用纯 GPT 做句向量」这类错配。本节基于原书第 2 章系统讲清自回归解码器与掩码编码器的区别、LLaMA 的典型设计选择以及混合专家MOE的「路由 专家」思想与效率取舍并给出选型与部署时的实用要点。学习目标学完本节你将能够区分自回归与掩码模型说明自回归语言模型如 GPT、LLaMA与掩码语言模型如 BERT在训练目标与「训练时看到的上下文」上的本质不同以及各自更适合的下游任务类型。掌握 LLaMA 的典型设计说出 LLaMA 在归一化RMSNorm、激活函数SwiGLU、位置编码RoPE等方面的选择以及这些选择对训练稳定性与长上下文的影响。理解 MOE 的取舍解释混合专家模型中「路由 专家」的工作方式、在参数量与激活量上的特点以及部署时对显存与带宽的影响。一、自回归语言模型 vs 掩码语言模型原书第 2 章自回归语言模型Autoregressive LM训练目标在给定上文的前提下预测下一个 token或下一个词。损失通常是对整个序列的下一 token 交叉熵求和或平均。因此训练时每个位置「只能看到」它左侧的 token不能看到右侧通过因果掩码保证。典型架构解码器-onlyDecoder-only即只使用 Transformer 的解码器层带因果掩码的自注意力 前馈网络无「编码器」部分。使用方式天然适合生成——自左向右逐 token 生成直到结束符或达到最大长度。也可用于填空、续写、对话把历史与当前问题拼成序列让模型生成回复。代表GPT 系列、LLaMA、Qwen、DeepSeek 等。掩码语言模型Masked LM训练目标随机遮盖输入中的部分 token让模型根据**上下文含左右两侧**预测被遮盖的内容。每个位置在训练时可以看到整句除被 mask 的位置。典型架构编码器Encoder-only即双向自注意力无因果掩码 前馈网络。代表BERT、RoBERTa 等。使用方式适合理解与表示——取 [CLS] 或整句的池化表示做分类、相似度、检索等。也可做「填空」式生成但按 token 自回归长文本生成不是其设计重心且通常没有因果掩码直接用于生成会存在「看到未来」的泄露问题。本质区别小结训练时看到的上下文自回归只看左侧掩码看两侧除被 mask 处。更适合的任务自回归适合生成、对话、续写掩码适合分类、抽取、句表示、检索。若要做「长文本生成」或「对话生成」应选解码器架构若要做「句向量」或「文本分类」可考虑编码器或专门训练的嵌入模型而不是把纯生成模型最后一层隐状态直接当向量用。二、GPT 类与 LLaMA 的架构要点原书第 2 章GPT 类解码器-only、自回归原书第 2 章将 GPT 作为自回归解码器代表堆叠 Transformer 解码器块每块含因果自注意力 前馈训练目标为下一 token 预测。适合生成与对话也是当前 ChatGPT、开源对话模型的主流基座形态。LLaMA 的典型设计原书第 2 章LLaMA 在「用什么 Norm、什么激活、什么位置编码」上做了明确选择被后续很多开源模型沿用RMSNorm在 LayerNorm 基础上去掉均值项只做缩放计算更省、效果相当训练更稳定。SwiGLUFFN 的激活函数采用 SwiGLU及相应权重形状相比原始 ReLU FFN 表达力更强被多数新架构采用。RoPE位置编码采用旋转位置编码RoPE便于长上下文与长度外推与绝对位置编码相比更利于扩展。这些细节在阅读 LLaMA、Qwen、DeepSeek 等代码或配置时会反复出现选型与微调时保持与基座一致例如不要随意把 RMSNorm 换成 LayerNorm可减少训练不稳定或效果异常。工程上的对应纯生成/对话优先选解码器架构若需要「句向量」或「检索用嵌入」应选编码器或专门训练的嵌入模型而不是用生成模型的最后一层隐状态直接做相似度未经对比学习的隐状态通常不适合做检索。三、混合专家模型MOE思想与取舍原书第 2 章基本思想在部分层中不使用「一个大的前馈层」而是引入多份专家Expert子网络如多份 FFN并增加一个路由Router对每个 token路由决定它「走哪几个专家」例如选 top-1 或 top-2只对选中的专家做前向计算最后按路由权重合并输出。这样总参数量可以很大很多专家但单次前向激活的参数量只涉及被选中的少数专家从而在相近效果下降低计算与显存。典型数量关系原书第 2 章例如某 MOE 层有 8 个专家每个 token 选 2 个专家则前向时该层「参与计算」的参数量约为「一个全连接 FFN」的 2/8 1/4 的专家参数量若每个专家与原来单 FFN 同规模则约为原来的 2 倍 FFN 参数量但总参数是 8 倍。因此显存与计算更受「激活路径」影响而总参数会明显增大模型文件与加载时间会上升推理时还要考虑路由负载均衡避免总选同一两个专家与通信/带宽多卡时专家可能分布在不同设备。选型与部署注意点MOE 模型如 Mixtral在相同激活预算下可容纳更大总参数适合「要大能力又要控单次推理成本」的场景。部署时需关注路由是否均衡、多卡下专家通信、以及框架对 MOE 的优化如专家并行、通信重叠等。不要仅凭「参数量大」就认为一定更慢——要看激活量与实现。四、工程实战要点1. 按任务选架构纯生成/对话优先解码器架构GPT/LLaMA 类。需要句向量、检索、分类用编码器或专用嵌入模型不要用纯生成模型的隐状态直接当向量。既要生成又要理解可考虑 Encoder-Decoder 或「生成模型 单独嵌入模型」的组合。2. MOE 部署时关注路由与带宽对 Mixtral 等 MOE 模型要关注路由负载、显存占用与带宽可结合官方或社区文档做 batch size、并行方式的调优。五、常见误区与避坑指南误区一用 BERT 做长文本生成或用纯 GPT 做句向量架构与训练目标不匹配会导致效果差或行为异常。避坑生成用解码器、表示用编码器或专用嵌入模型。误区二认为 MOE 参数量大就一定更慢MOE 通过「稀疏激活」控制实际计算量推理时更吃带宽与路由实现。避坑以实测延迟与吞吐为准并关注框架对 MOE 的优化程度。误区三微调时随意改 Norm 或激活与基座不一致的 Norm/激活可能带来训练不稳定或效果下降。避坑与基座保持一致除非有明确实验支撑。六、小结与衔接本节区分了自回归与掩码语言模型、梳理了 GPT 类与 LLaMA 的架构要点RMSNorm、SwiGLU、RoPE并介绍了 MOE 的「路由 专家」思想及在参数量与激活量上的取舍。下一节将进入解码器结构的实现细节因果掩码、Pre-Norm 与 RMSNorm 在块中的位置便于读源码与做修改。课后思考题自回归语言模型和掩码语言模型在「训练时看到的上下文」上有什么本质不同各更适合什么类型的下游任务若某 MOE 层有 8 个专家、每 token 选 2 个专家该层前向时参与计算的参数大约是全连接时的多少这对显存和速度有什么影响