LLM 相关面试问题及详解
1. 请简述 Transformer 模型的基本结构和工作原理。
- 编码器-解码器架构(Encoder-Decoder Architecture):
- 编码器(Encoder):处理输入序列
- 解码器(Decoder):生成输出序列
- 自注意力机制(Self-Attention Mechanism):允许模型关注输入序列的不同部分
- 多头注意力(Multi-Head Attention):并行计算多个注意力头
- 前馈神经网络(Feed-Forward Neural Network):在注意力层之后应用
- 残差连接(Residual Connections)和层归一化(Layer Normalization):促进梯度流动,稳定训练
- 位置编码(Positional Encoding):为模型提供序列中元素位置信息
2. 什么是自注意力机制(Self-Attention Mechanism),它在大模型中起到了什么作用?
- 定义:允许模型在处理序列数据时,考虑序列中所有位置之间关系的机制
- 核心组成:
- 查询(Query)、键(Key)和值(Value)向量
- 作用:
- 捕捉长距离依赖(Long-range Dependencies)
- 并行计算(Parallel Computation)
- 动态关注(Dynamic Attention)
- 增强表示能力(Enhanced Representation)
3. 自注意力机制为什么能提升并行化计算?
- 独立计算:每个位置的注意力分数可以同时计算
- 矩阵运算:可以利用 GPU 进行高效的并行矩阵乘法
- 无序列依赖:不像 RNN,不需要等待前一个时间步的计算结果
- 批处理友好:可以同时处理多个序列
4. 编码器-解码器注意力层(Encoder-Decoder Attention)工作原理与作用是什么?
- 工作原理:
- 解码器的查询(Query)与编码器的键(Key)和值(Value)交互
- 允许解码器访问输入序列的完整信息
- 作用:
- 建立输入和输出之间的联系
- 使解码器能够根据输入信息生成相关输出
- 在翻译等任务中尤为重要,允许模型对齐源语言和目标语言
5. 在 Encoder-Decoder 注意力层中,如何确保 Decoder 准确捕捉输入的关键信息?
- 多头注意力机制(Multi-Head Attention):从不同角度关注输入信息
- 注意力权重学习:通过训练学习最相关的输入部分
- 残差连接(Residual Connections):保留原始信息,防止信息丢失
- 层归一化(Layer Normalization):稳定注意力层的输出
- 掩码(Masking):在解码过程中防止看到未来信息
6. 多头自注意力机制(MHSA)的优势是什么?多头的数量如何影响模型性能?
- 优势:
- 捕捉多种类型的依赖关系
- 增强模型的表示能力
- 提高模型的鲁棒性
- 多头数量的影响:
- 增加头数可以提升性能,但存在diminishing returns
- 过多的头数可能导致过拟合和计算开销增加
- 最佳头数通常通过实验确定,常见值为 8 或 16
7. BERT 和 GPT 的主要区别及预训练模型的挑战与选择是什么?
- 主要区别:
- BERT:双向编码器,使用掩码语言模型(Masked Language Model)
- GPT:单向自回归模型,使用自回归语言建模
- 预训练模型的挑战:
- 计算资源需求大
- 需要大量高质量数据
- 模型大小与效率平衡
- 领域适应性问题
- 选择考虑因素:
- 任务类型(理解vs生成)
- 可用计算资源
- 数据相似性
- 微调难度
- 推理速度要求
8. 为什么 Transformer 比 RNN 更适合处理长距离依赖?
- 并行计算:Transformer 可以并行处理整个序列
- 直接连接:自注意力机制允许直接计算任意两个位置之间的关系
- 无梯度消失/爆炸:不存在 RNN 中的长期依赖问题
- 多头注意力:可以同时关注多个方面的信息
- 位置编码:明确编码位置信息,不依赖序列顺序传递
9. 微调(Fine-Tuning)和迁移学习(Transfer Learning)的区别及应用场景是什么?
- 微调(Fine-Tuning):
- 在预训练模型基础上进行进一步训练
- 适用于数据量较大的任务
- 可以调整所有层的权重
- 迁移学习(Transfer Learning):
- 将预训练模型的知识应用到新任务
- 适用于数据量较少的任务
- 通常只训练最后几层或添加新层
- 应用场景:
- 微调:领域特定任务,如情感分析、命名实体识别
- 迁移学习:跨领域任务,资源受限场景