大模型分类笔记(MOE,Encoder-only,Decoder-only)
大模型的结构主要分为三种类型,每种类型对应不同的架构设计和应用场景。
一、大模型结构的三种主要类型
-
Encoder-only(纯编码器结构)
- 架构特点:仅使用Transformer的编码器,通过双向注意力机制理解上下文
- 典型模型:BERT、RoBERTa、ALBERT
- 核心优势:
- 擅长文本理解任务(如文本分类、实体识别)
- 支持微调适配下游任务
- 局限性:无法直接生成连贯文本
-
Decoder-only(纯解码器结构)
- 架构特点:仅使用Transformer的解码器,采用自回归生成机制(因果注意力掩码)
- 典型模型:GPT系列、LLaMA、PaLM、Claude
- 核心优势:
- 擅长文本生成(对话、创作、推理)
- 支持zero-shot/prompt learning
- 技术演进:
- 稀疏注意力(如GPT-3的局部注意力窗口)
- 旋转位置编码(RoPE,LLaMA采用)
- 混合专家模型(MoE,如Mixtral 8x7B)
-
Encoder-Decoder(编码器-解码器结构)
- 架构特点:联合使用编码器和解码器,支持序列到序列转换
- 典型模型:T5、BART、Flan-T5、Pegasus
- 核心优势:
- 适合需要理解+生成的任务(翻译、摘要、问答)
- 支持跨模态任务扩展(如文生图)
二、当前主流大模型的结构分布(截至2024年)
模型结构 | 代表模型(最新版本) | 参数量级 | 技术亮点 |
---|---|---|---|
Decoder-only | GPT-4、LLaMA 3、Claude 3、Gemini 1.5 | 百亿~万亿 | 稀疏MoE架构、多模态扩展 |
Mistral-8x22B、Qwen2-72B | 百亿级 | 分组查询注意力(GQA)优化 | |
Encoder-Decoder | Flan-PaLM 540B、UL2 200B | 千亿级 | 统一文本格式处理 |
混合架构 | Gemini Ultra(多模态混合) | 万亿级 | 图像/视频/代码多模态协同 |
三、关键技术趋势
-
结构创新:
- MoE(混合专家)架构:Mixtral 8x7B通过8个专家网络动态选择激活路径,在保持推理速度的同时提升效果
- 长上下文优化:GPT-4 Turbo支持128k tokens上下文,Claude 3可达200k tokens
- 3D并行训练:结合数据并行、流水线并行和张量并行(如Megatron-LM)
-
注意力机制改进:
- 滑动窗口注意力(Mistral 7B)
- FlashAttention-2(推理速度提升30%)
- Multi-Query Attention(降低KV缓存)
-
位置编码演进:
- ALiBi(相对位置编码)
- RoPE(旋转位置编码,LLaMA 2采用)
- 动态NTK扩展(支持上下文长度外推)
四、典型结构对比示例
# Decoder-only结构伪代码(以LLaMA为例)
class LlamaDecoderLayer(nn.Module):
def __init__(self):
self.self_attn = RotaryAttention(dim=4096) # 旋转位置编码
self.mlp = SwiGLU(dim=4096) # 激活函数改进
self.norm = RMSNorm() # 替代LayerNorm
def forward(self, x):
# 残差连接+注意力
x = x + self.self_attn(self.norm(x))
# 残差连接+FFN
x = x + self.mlp(self.norm(x))
return x
五、选择建议
- 生成任务:优先选择Decoder-only结构(GPT-4、Claude 3)
- 理解任务:Encoder-Decoder结构更优(如T5系列)
- 资源受限场景:小型Decoder-only模型(Mistral 7B、Phi-3)
当前超过90%的新发布大模型采用Decoder-only结构,主要因其在生成质量和zero-shot学习上的显著优势。而MoE架构的普及(如DeepSeek-MoE 16B)正在成为降低计算成本的新方向。
MOE模型为什么可以只激活部分参数:
MoE(Mixture of Experts)模型能够只激活部分参数,而其他类型模型(如标准Transformer)需要全部激活参数的核心原因在于条件计算(Conditional Computation)的设计理念和稀疏激活机制。以下是具体分析:
一、MoE的稀疏激活机制
-
专家分治结构
- MoE将网络划分为多个"专家"(Expert),每个专家是独立的子网络(如FFN层)。
- 每个输入样本(如文本token)仅被路由到少数专家(例如1-2个),而非全部专家。
-
门控决策(Gating)
- 门控网络(Gating Network)根据输入动态计算权重,选择最相关的专家。
- 示例:给定输入X,门控输出权重为0.7,0.2,0.1,0.00.7,0.2,0.1,0.0,则仅激活前两个专家。
-
计算过程对比
# 标准Transformer(密集计算) output = all_layers(input) # 所有参数参与计算 # MoE(稀疏计算) gate_weights = gating_network(input) # 计算路由权重 active_experts = select_top_k(gate_weights) # 选择权重最高的k个专家 output = sum([expert(input) * weight for expert, weight in active_experts])
二、与传统模型的本质区别
特征 | MoE模型 | 传统模型(如Transformer) |
---|---|---|
参数激活方式 | 动态稀疏激活(条件计算) | 静态密集激活 |
计算量 | 与激活专家数线性相关 | 与总参数量线性相关 |
扩展性 | 可大幅增加专家数(如千级) | 增加参数会导致计算量剧增 |
典型应用 | 超大规模模型(万亿参数) | 中小规模模型(百亿参数内) |
三、技术实现细节
-
条件计算的硬件优势
- GPU/TPU对稀疏计算的支持:MoE的稀疏激活可映射到硬件层面的并行计算单元,减少实际运算量。
- 示例:Google的TPU v4针对MoE优化,单个芯片可同时运行多个专家子网络。
-
负载均衡约束
- 必须防止某些专家被过度使用或闲置(如负载均衡损失函数)。
- 关键技术:Switch Transformer引入的专家容量因子(Expert Capacity),强制均衡分配。
-
通信优化
- 分布式训练中,专家可能分布在不同的计算节点,需优化跨设备数据传输。
- 方法:专家并行(Expert Parallelism),将专家分组部署到不同GPU,仅传输被激活的专家数据。
四、为什么其他模型无法实现?
-
结构限制
- 传统模型(如Transformer)采用固定路径计算:每个输入必须流经所有层和所有参数。
- 即使某些参数对当前输入无用(如与任务无关的注意力头),仍需执行完整矩阵乘法。
-
动态路由的复杂性
- MoE需要额外维护门控网络和专家分配策略,传统模型缺乏此类机制。
- 若强行在普通FFN层添加路由,会破坏梯度传播稳定性(需专门设计如残差连接+门控)。
-
训练难度
- MoE的门控网络易陷入局部最优(如某些专家被永久关闭),需复杂的正则化手段。
- 传统模型参数更新更均匀,无需处理专家间的竞争关系。
五、实例对比:MoE vs 普通Transformer
假设模型规模为1万亿参数:
-
普通Transformer:
每个输入需计算10121012次浮点运算(FLOPs),无法在合理硬件上运行。 -
MoE(2048个专家,每个输入激活2个):
实际计算量约为22048×1012≈10920482×1012≈109 FLOPs,降低3个数量级。
结论
MoE通过动态路由+稀疏激活实现了条件计算,使超大规模模型在有限算力下可行。而传统模型因静态计算图的限制,必须激活全部参数。这种差异本质上是模型架构设计在扩展性与计算效率之间的权衡——MoE牺牲了部分训练稳定性,换取了参数量的指数级增长空间。