最新大模型技术的深度面试题与详解,涵盖Transformer架构、语言模型演进、RLHF优化、对比学习及多模态模型等核心考点,并附代码实现。
一、Transformer 基础
1. 编码器 vs 解码器注意力机制区别
组件 | 注意力类型 | 掩码机制 | 核心作用 |
---|---|---|---|
编码器 | 双向自注意力 | 无 | 全序列上下文编码 |
解码器 | 掩码自注意力 + 交叉注意力 | 未来位置掩码 | 自回归生成 + 融合编码器输出 |
关键区别:
- 掩码目的:解码器通过掩码确保当前位置仅依赖历史信息(防止信息泄露)。
- 计算复杂度:解码器因掩码和交叉注意力,计算量更高。
√d_k
的作用:
缩放点积结果,防止方差过大导致Softmax梯度消失。公式:
\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
当 ( d_k ) 较大时,点积结果方差增大,Softmax梯度饱和,缩放保持梯度稳定。
二、语言模型演进与Qwen改进
1. 经典Transformer语言模型
类型 | 代表模型 | 核心特点 |
---|---|---|
仅编码器 | BERT, RoBERTa | 掩码语言建模,擅长分类任务 |
仅解码器 | GPT系列, LLaMA | 自回归生成,支持零样本推理 |
编码器-解码器 | T5, BART | 适合翻译、摘要等序列生成任务 |
2. Qwen vs 原始Transformer的改进
结构改动:
- 位置编码:用RoPE(旋转位置编码)替代Sinusoidal,支持长度外推。
- 激活函数:SwiGLU替代ReLU,增强非线性表达能力:
def swiglu(x, W, V, W2): return (torch.silu(x @ W) * (x @ V)) @ W2 # SiLU = Swish
- 注意力机制:引入分组查询注意力(GQA),平衡MQA效率与MHA质量。
Qwen2的升级:
- 上下文长度:预训练32K → 通过YARN外推至128K。
- 训练优化:在线DPO对齐、拒绝采样提升数学/代码能力。
- 量化支持:GGUF/AWQ/GPTQ量化,72B模型可部署在消费级显卡。
三、RLHF优化:PPO vs DPO
1. PPO流程与损失函数
PPO损失函数:
\mathcal{L}^{PPO} = \mathbb{E} \left[ \min\left( \frac{\pi_\theta}{\pi_{\text{old}}} A_t, \text{clip}\left(\frac{\pi_\theta}{\pi_{\text{old}}}, 1-\epsilon, 1+\epsilon\right) A_t \right) \right]
优点:稳定性高,适合环境奖励明确的任务(如游戏控制)。
2. DPO原理与损失函数
核心思想:直接优化偏好数据,跳过奖励建模:
\mathcal{L}^{DPO} = -\log \sigma\left( \beta \left( \log \frac{\pi_\theta(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \log \frac{\pi_\theta(y_l|x)}{\pi_{\text{ref}}(y_l|x)} \right) \right)
优缺点:
- ✅ 数据需求少,训练快(无RM模型)
- ❌ 对分布偏移敏感,易过拟合偏好数据。
适用场景:
- PPO:高精度奖励任务(自动驾驶)
- DPO:对话生成、推荐系统(偏好数据易获取)。
四、对比学习与多模态模型
1. CLIP核心原理
双塔架构:
- 图像编码器:ViT/ResNet提取特征
- 文本编码器:Transformer编码描述
损失函数(对比损失):
\mathcal{L} = -\log \frac{\exp(\text{sim}(I,T)/\tau)}{\sum_{j=1}^N \exp(\text{sim}(I,T_j)/\tau}
优势:零样本分类能力强,跨模态检索效果显著。
其他对比学习方法:
- MoCo:动量编码器构建动态字典
- SimCLR:加大批尺寸+非线性投影头
- OFF-CLIP:医疗领域改进,增强正常样本聚类。
2. 多模态模型示例
模型 | 核心技术 | 亮点 |
---|---|---|
BLIP-2 | Q-Former桥接ViT与LLM | 轻量适配器,零样本VQA提升8.7% |
Qwen-VL | 三阶段训练+位置感知适配器 | 支持多图推理、文档解析 |
LLaVA | 简单MLP连接视觉与LLM | 训练高效,适合轻量化部署 |
3. 多模态模型的核心挑战
- 模态对齐瓶颈:文本描述与视觉细粒度特征难以精确匹配(如医疗影像中的病灶定位)。
- 推理效率:视频/3D数据处理计算成本高(Qwen-VL需动态帧率压缩)。
- 幻觉问题:生成结果与视觉内容不一致(需RLHF强化约束)。
五、代码题:最长公共子序列(LCS)
题目:LeetCode 1143. 最长公共子序列
解法:动态规划(时间复杂度 (O(mn)))
def longestCommonSubsequence(text1: str, text2: str) -> int:
m, n = len(text1), len(text2)
dp = [[0] * (n+1) for _ in range(m+1)]
for i in range(1, m+1):
for j in range(1, n+1):
if text1[i-1] == text2[j-1]:
dp[i][j] = dp[i-1][j-1] + 1 # 字符匹配,长度+1
else:
dp[i][j] = max(dp[i-1][j], dp[i][j-1]) # 取左侧或上方最大值
return dp[m][n]
关键点:
dp[i][j]
表示text1[0:i]
和text2[0:j]
的LCS长度。- 空间可优化至 (O(n))(滚动数组)。
本答案整合自大厂真题及技术文档,建议重点掌握:
- 结构对比(如Qwen的RoPE vs Transformer的Sinusoidal)
- 损失函数推导(PPO/DPO的数学本质)
- 多模态痛点(对齐效率与幻觉问题)