大语言模型(LLM)按架构分类
大语言模型(LLM)按架构分类的深度解析
1. 仅编码器架构(Encoder-Only)
原理
- 双向注意力机制:通过Transformer编码器同时捕捉上下文所有位置的依赖关系
# 伪代码示例:BERT的MLM任务 masked_input = "The [MASK] sat on the mat" output = encoder(masked_input) # 预测[MASK]="cat"
- 预训练任务:
- 掩码语言建模(MLM):随机遮盖15%的单词进行预测
- 下一句预测(NSP):判断两个句子是否连续(后续模型如RoBERTa已移除)
使用场景
- 理解型任务:
- 文本分类(如情感分析)
- 命名实体识别(NER)
- 抽取式问答(如SQuAD)
- 典型应用:
- Google搜索的BERT集成
- 金融文档实体抽取
代表模型
- BERT:首个大规模Encoder-Only预训练模型
- RoBERTa:优化训练策略(移除NSP,更大batch size)
- ALBERT:参数共享技术减少内存占用
2. 仅解码器架构(Decoder-Only)
原理
- 自回归生成:从左到右逐token预测,依赖前文上下文
# GPT生成示例(伪代码) input = "The cat sat" for _ in range(max_len):next_token = decoder(input)[-1] # 预测下一个tokeninput += next_token
- 注意力机制:因果掩码(Causal Mask)确保不泄露未来信息
使用场景
- 生成型任务:
- 开放域对话(如ChatGPT)
- 创意写作(故事/诗歌生成)
- 代码补全(如GitHub Copilot)
- 典型应用:
- OpenAI的ChatGPT系列
- Meta的Llama开源模型
代表模型
- GPT系列:从GPT-1到GPT-4的演进
- Llama 2:开源可商用的Decoder-Only模型
- PaLM:Google的大规模纯解码器模型
3. 编码器-解码器架构(Encoder-Decoder)
原理
- 两阶段处理:
- 编码器压缩输入为上下文表示
- 解码器基于该表示自回归生成输出
# T5翻译示例(伪代码) encoder_output = encoder("Hello world") # 编码 translation = decoder(encoder_output, start_token="<translate>") # 生成"你好世界"
- 注意力桥接:交叉注意力(Cross-Attention)连接编码器与解码器
使用场景
- 序列到序列任务:
- 机器翻译(如英译中)
- 文本摘要(如新闻简报生成)
- 语义解析(自然语言转SQL)
- 典型应用:
- Google的T5文本到文本统一框架
- 客服系统的多轮对话管理
代表模型
- T5:将所有任务统一为text-to-text格式
- BART:去噪自编码预训练,擅长生成任务
- Flan-T5:指令微调增强的多任务版本
架构对比图谱
技术指标对比
架构类型 | 参数量典型值 | 训练目标 | 硬件需求(训练) |
---|---|---|---|
Encoder-Only | 110M-340M | MLM | 8-16 GPUs |
Decoder-Only | 7B-70B | 下一个词预测 | 数百-数千GPUs |
Encoder-Decoder | 3B-11B | 去噪自编码 | 32-256 GPUs |
选型建议
-
选择Encoder-Only当:
- 需要高精度文本理解(如法律合同分析)
- 硬件资源有限(可选用ALBERT等轻量版)
-
选择Decoder-Only当:
- 需求开放域生成能力(如营销文案创作)
- 追求零样本/小样本学习(如GPT-3风格应用)
-
选择Encoder-Decoder当:
- 处理输入输出长度差异大的任务(如长文档摘要)
- 需要严格的结构化输出(如自然语言转代码)
注:当前趋势显示Decoder-Only架构(如GPT-4、Llama 2)通过指令微调也能实现部分理解任务能力,但专业场景仍推荐专用架构。