Explain different types of LLM architecture and which type of architecture is best for which task
1️⃣ 考察意图
面试官想考察你是否真正理解LLM架构设计的核心差异,而非死记硬背“BERT做理解,GPT做生成”。刁钻点在于:能否从信息流方向(单向/双向/编码-解码)和注意力机制(全连接/因果/交叉注意力)两个底层维度解释架构选择,并给出工程取舍(如推理速度与任务适配性的权衡)。答好了能展示你对Transformer变体的系统认知,以及为具体任务选型时的决策逻辑,这是大模型应用落地最硬核的能力。
2️⃣ 标准答
LLM架构按信息流方向分为三类:仅编码器(Encoder-only)、仅解码器(Decoder-only)、编码器-解码器(Encoder-Decoder)。核心差异在于注意力掩码模式。
1. 仅编码器架构(如BERT、RoBERTa)
- 原理:使用双向自注意力(全连接掩码),每个token能看到序列所有位置。预训练任务通常是MLM(Masked Language Model)。
- 适用任务:自然语言理解(NLU),如文本分类、命名实体识别(NER)、情感分析、语义相似度(STS)。因为这些任务需要全局上下文理解,双向信息至关重要。
- 工程取舍:推理时无法自回归生成,只能输出固定长度的分类标签或序列标注。坑:直接用于生成任务(如写文章)会因缺乏因果掩码导致信息泄露,输出质量极差。
2. 仅解码器架构(如GPT系列、LLaMA、Mistral)
- 原理:使用因果自注意力(上三角掩码),每个token只能看到自己和之前的token。预训练任务是自回归语言建模(预测下一个token)。
- 适用任务:文本生成,如对话系统、故事创作、代码生成、开放式问答。因为生成天然是从左到右的序列过程。
- 工程取舍:推理时需KV Cache加速,但内存占用随序列长度线性增长。实际落地的坑:长文本生成时,因果注意力会导致“遗忘”早期内容,需配合RoPE(旋转位置编码)或ALiBi(线性偏置注意力)缓解位置外推问题。例如,LLaMA-2用RoPE支持4K上下文,但实测超过2K时困惑度(PPL)会飙升,需做位置插值(PI)或NTK-aware缩放。
3. 编码器-解码器架构(如T5、BART)
- 原理:编码器用双向注意力编码输入,解码器用因果注意力生成输出,中间通过交叉注意力连接。预训练任务多样(如T5的Span Corruption)。
- 适用任务:序列到序列(Seq2Seq)任务,如机器翻译、文本摘要、表格到文本生成。因为输入和输出长度、结构可能不同,需要编码理解+解码生成的分离。
- 工程取舍:参数量翻倍(编码器+解码器),推理速度比仅解码器慢(需两次前向传播)。实际落地的坑:在摘要任务中,T5的编码器对长文档(>512 tokens)处理吃力,需配合Longformer或稀疏注意力(如BigBird)扩展上下文窗口。例如,用T5-3B做金融报告摘要时,直接截断前512 tokens会丢失关键数据,需用滑动窗口或分块策略。
4. 混合/统一架构(如UniLM、GLM)
- 原理:通过动态调整注意力掩码,在同一模型中支持双向、因果或编码-解码模式。例如,UniLM在预训练时随机选择掩码类型。
- 适用任务:多任务学习或需要灵活切换的任务(如对话状态跟踪+回复生成)。但实际部署较少,因为单一架构的优化效率更高。
选型决策树:
- 纯理解任务(分类、NER)→ 仅编码器(BERT变体),参数量小,推理快。
- 纯生成任务(对话、故事)→ 仅解码器(GPT/LLaMA),自回归生成质量高。
- 输入输出结构不同(翻译、摘要)→ 编码器-解码器(T5/BART),但需权衡推理速度。
- 资源受限(移动端、低延迟)→ 优先仅解码器(如DistilGPT-2),或量化+剪枝的BERT。
总结:没有“最好”的架构,只有“最合适”的。面试官期待你从信息流方向和任务需求两个维度给出选择逻辑,而非简单罗列。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从三个架构层面回答:第一,仅编码器架构(如BERT)用双向注意力,适合理解任务,因为需要全局上下文;第二,仅解码器架构(如GPT)用因果注意力,适合生成任务,因为生成是自回归的;第三,编码器-解码器架构(如T5)用交叉注意力连接编码和解码,适合翻译、摘要等序列到序列任务。选型时,核心看任务是否需要理解+生成分离,以及推理速度的容忍度。总结一句:理解用BERT,生成用GPT,翻译摘要用T5。”
4️⃣ 高频追问 & 应对
追问 1:为什么现在主流大模型(如GPT-4、LLaMA)都只用解码器架构,而不是编码器-解码器?
核心原因是扩展性和效率。仅解码器架构在预训练时只需预测下一个token,数据利用率高(所有token都参与损失计算),而编码器-解码器需要配对数据(如翻译对),数据获取成本高。此外,仅解码器推理时可用KV Cache实现流式生成,延迟更低;编码器-解码器需先编码完整输入,再解码,无法流式。但代价是:仅解码器在需要“理解+生成”分离的任务(如摘要)中,可能因缺乏显式编码而丢失输入结构信息。实际中,GPT-4通过海量数据和指令微调弥补了这一缺陷。
追问 2:在文本摘要任务中,T5(编码器-解码器)和GPT(仅解码器)哪个更好?为什么?
从ROUGE分数看,T5通常更高,因为编码器能双向理解原文,解码器专注生成。但GPT在生成流畅性和多样性上更优。工程取舍:T5需要固定输入长度(如512 tokens),长文档需截断或分块;GPT可通过滑动窗口处理任意长度,但因果注意力可能导致摘要遗漏早期内容。实际落地中,如果对ROUGE要求高(如新闻摘要),选T5;如果对流畅性要求高(如创意写作),选GPT。一个坑:用GPT做摘要时,需在prompt中明确“只输出摘要,不要额外内容”,否则会生成对话式回复。
追问 3:BERT和GPT的参数量相同时,为什么BERT在GLUE上表现更好,而GPT在生成任务上更好?
根本原因是信息流方向。BERT的双向注意力让每个token能利用上下文信息,在理解任务(如分类、NER)中能提取更丰富的特征。GPT的因果注意力限制了信息流,但强制模型学习序列依赖,这对生成任务至关重要。此外,预训练任务不同:BERT的MLM是“完形填空”,适合理解;GPT的LM是“预测下一个词”,适合生成。一个工程事实:BERT参数量利用率更高(所有token参与损失),但GPT的因果结构更利于自回归推理。所以,如果任务需要双向理解,BERT更优;如果需要单向生成,GPT更优。
5️⃣ 避坑 · 常见错误答法
- ❌ 说“GPT是最好的架构,因为它能生成任何东西” → ✅ 正确切入:GPT在生成任务上强,但在理解任务(如NER)上不如BERT,因为因果注意力丢失了后文信息。选型要看任务需求。
- ❌ 说“编码器-解码器架构过时了,现在都用解码器” → ✅ 正确切入:编码器-解码器在翻译、摘要等Seq2Seq任务上仍有优势,因为编码器能双向理解输入。只是在大规模预训练中,解码器更易扩展。
- ❌ 说“BERT和GPT的区别只是层数不同” → ✅ 正确切入:核心区别是注意力掩码(双向 vs 因果),这决定了信息流方向和适用任务。层数只是工程细节。
6️⃣ 简历呼应
- 如果你有RAG项目:从“检索-生成”架构切入,说明为什么RAG常用解码器(如GPT)做生成,因为检索结果作为上下文,解码器能自回归生成答案;而编码器-解码器(如T5)在需要压缩检索结果时更优。
- 如果你只做过传统NLP:用“序列标注 vs 序列生成”类比:BERT像CRF(全局依赖),GPT像LSTM(单向依赖),T5像Seq2Seq(编码-解码)。强调架构选择本质是任务需求。
- 如果你是校招无项目:聚焦BERT和GPT的论文复现demo,比如用HuggingFace分别微调BERT做情感分类、GPT做文本生成,对比ROUGE/准确率,展示你对架构差异的理解。
- 《Attention Is All You Need》(原始Transformer论文,理解编码器-解码器基础)
- 《BERT: Pre-training of Deep Bidirectional Transformers》(仅编码器架构)
- 《Language Models are Unsupervised Multitask Learners》(GPT-2论文,仅解码器架构)
- 《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》(T5论文,编码器-解码器架构)
- 《Efficient Transformers: A Survey》(稀疏注意力、Longformer等扩展技术)