5 模型专题
5 模型专题
Section titled “5 模型专题”BLIP-2
Section titled “BLIP-2”1. 解释 Q-former 机制,其中可学习的 query 有什么意义
Section titled “1. 解释 Q-former 机制,其中可学习的 query 有什么意义”Q-Former 可以看成 BLIP-2 里的“视觉信息提炼器”,放在冻结视觉编码器和冻结 LLM 之间。
核心做法:
- 先用冻结的 ViT 提取大量视觉特征
- 引入一组可学习的 query token
- 让这些 query 通过 cross-attention 去“读取”图像特征
- 得到少量、信息密集的视觉 token,再送进 LLM
可学习 query 的意义:
- 它是一个固定长度的瓶颈,控制送入 LLM 的视觉信息量
- 它会主动学习“该从图像里提什么信息”
- 比直接把所有 patch token 全送给 LLM 更省算力,也更稳
一句话:query 不是在表示某个具体词,而是在充当一组可训练的信息提取槽位。
2. Qformer 原理,他和两层 MLP 的区别是什么?在不同场景下偏好是什么?
Section titled “2. Qformer 原理,他和两层 MLP 的区别是什么?在不同场景下偏好是什么?”两者本质区别在于:是否做了基于内容的选择性读取。
| 方案 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| Q-Former | 通过 attention 从视觉特征中选择信息 | 表达力强,适合复杂视觉理解 | 参数和算力更高 |
| 两层 MLP | 对视觉特征做线性/非线性投影到 LLM 空间 | 简单、高效、训练容易 | 选择性建模较弱 |
偏好场景:
- 图像内容复杂、需要更细粒度视觉抽取时,Q-Former 更合适
- 如果视觉编码器已经很强,任务主要是把特征“接入”LLM,两层 MLP 往往就够
- 在追求部署效率、训练成本低的系统里,MLP 更常见
所以 Q-Former 更像“桥接 + 压缩 + 选择”,MLP 更像“投影 + 对齐”。
3. 现在大多情况下已经使用两层 MLP 来做视觉投影,你认为是为什么?
Section titled “3. 现在大多情况下已经使用两层 MLP 来做视觉投影,你认为是为什么?”主要是工程上更划算。
原因通常有:
- 视觉编码器本身已经很强,很多语义信息不需要再复杂抽取
- 大语言模型的理解能力很强,只要视觉 token 能投到合适空间,LLM 就能继续处理
- 两层 MLP 参数少、延迟低、实现简单
- 训练更稳定,不容易引入额外对齐难题
所以近年的很多 MLLM 更偏:
- 强视觉 backbone
- 轻量 projector
- 大量高质量指令数据
一句话总结:不是 Q-Former 不好,而是很多场景里它的额外复杂度不再值得。
CNN 与目标检测
Section titled “CNN 与目标检测”1. 介绍一下CNN,CNN 的每一层都在做什么
Section titled “1. 介绍一下CNN,CNN 的每一层都在做什么”CNN 是用卷积来提取局部空间模式的神经网络,特别适合图像这类有网格结构的数据。
常见各层作用:
| 层 | 作用 |
|---|---|
| 卷积层 | 用局部卷积核提取边缘、纹理、形状等特征 |
| 激活函数 | 引入非线性,常见是 ReLU |
| 池化层 | 下采样,降低分辨率和计算量,增强一定平移不变性 |
| BN / Norm | 稳定训练,加快收敛 |
| 深层卷积 | 从低级特征逐步组合成高级语义 |
| 全连接层 / 检测头 | 做分类、回归框或其他任务输出 |
特征演化过程一般是:
- 浅层学边缘、角点、纹理
- 中层学局部部件
- 深层学物体语义
CNN 的优势:
- 局部连接,参数共享,适合二维图像
- 归纳偏置强,小数据下往往更稳
2. 说一下YOLO模型的架构
Section titled “2. 说一下YOLO模型的架构”YOLO 的核心思想是把目标检测当成单阶段回归问题,直接从图像一次前向输出类别和框。
现代 YOLO 通常可以分成三部分:
Backbone:提取多尺度特征,比如 CSPDarknetNeck:做特征融合,比如 FPN / PANHead:在不同尺度上预测类别、置信度和边界框
整体流程:
Image -> Backbone 提特征 -> Neck 融合高低层特征 -> Detection Head 多尺度预测 -> NMS / 后处理 -> 最终检测框为什么 YOLO 快:
- 单阶段,不像两阶段方法先 proposal 再分类
- 端到端一次前向完成主要预测
- 多尺度头兼顾大目标和小目标
面试里常见补充点:
分类分支预测类别回归分支预测框位置objectness预测这个位置是否有目标
一句话总结:YOLO 的优势是速度快、工程落地成熟,代价是精度上要在不同版本间做平衡。
1. 传统 DDPM 的前向扩散和反向去噪过程是怎么实现的?
Section titled “1. 传统 DDPM 的前向扩散和反向去噪过程是怎么实现的?”DDPM 的核心思路是:训练时逐步加噪,推理时逐步去噪。
前向扩散过程:
- 从真实样本
x_0出发 - 每一步加一点高斯噪声
- 最后把样本变成近似标准高斯
常写成:
进一步可以直接采样到任意步:
反向去噪过程:
- 训练一个网络
\epsilon_\theta(x_t, t)或等价参数化 - 预测当前噪声或干净样本方向
- 从
x_T一步步还原到x_0
形式上近似学习:
训练 loss 常见是简单的噪声预测 MSE:
一句话理解:正向是把图像毁掉,反向是学会怎么一点点修回来。
2. 是否了解过多模态大模型(MLLM)?可以简单介绍几类常见多模态大模型及其核心差异吗?
Section titled “2. 是否了解过多模态大模型(MLLM)?可以简单介绍几类常见多模态大模型及其核心差异吗?”MLLM 就是在 LLM 基础上接入图像、视频、音频等模态,让模型能做跨模态理解和生成。
常见几类路线:
| 路线 | 代表思路 | 核心特点 |
|---|---|---|
| 视觉编码器 + Projector + LLM | LLaVA、很多轻量开源方案 | 结构简单,落地快 |
| 视觉编码器 + Q-Former + LLM | BLIP-2 | 用 query 做信息压缩和提炼 |
| 强视觉主干 + 原生多模态位置建模 | Qwen2.5-VL / Qwen3-VL | OCR、定位、视频、长上下文更强 |
| 统一端到端多模态模型 | 一些 omni / speech-vision-language 模型 | 模态统一更彻底,但训练更复杂 |
核心差异通常看四个点:
- 视觉信息怎么编码
- 视觉 token 怎么接入 LLM
- 是否支持视频、音频、GUI 等更多模态
- 是否强调推理、agent、长上下文能力
面试里可以把 MLLM 简化成一句话:
早期重点是“把图像接进 LLM”后来重点变成“如何更高效地对齐、更长程地推理、支持更多模态和工具”
1. Dense、MMOE、MoE 这类结构各自是什么?Dense 和 MoE 的区别在哪里?
Section titled “1. Dense、MMOE、MoE 这类结构各自是什么?Dense 和 MoE 的区别在哪里?”先区分三个概念:
Dense:每个 token 都走同一套参数,所有层都全量计算MoE:每个 token 只激活少数几个专家,属于稀疏激活MMoE:多任务场景下的多门控专家结构,不同任务有不同 gate
Dense 和 MoE 的核心区别:
| 维度 | Dense | MoE |
|---|---|---|
| 每个 token 用多少参数 | 全部共享参数 | 只走部分专家 |
| 计算量 | 随总参数一起涨 | 可在较低 FLOPs 下提升总容量 |
| 表达方式 | 单一路径 | 条件路由、多路径 |
| 工程难点 | 相对简单 | 路由、负载均衡、并行通信更复杂 |
一句话:MoE 用“稀疏激活”换“更大模型容量”。
2. 介绍一下基于 MoE 的模型架构:router、shared expert / routed expert、top-k 路由、capacity factor 分别起什么作用?
Section titled “2. 介绍一下基于 MoE 的模型架构:router、shared expert / routed expert、top-k 路由、capacity factor 分别起什么作用?”典型 MoE 层一般是:
输入 token -> router 打分 -> 选 top-k expert -> expert 计算 -> 加权聚合输出
几个核心组件:
router:给每个 token 计算该送到哪些 expertrouted expert:真正参与路由竞争的专家shared expert:所有 token 都会经过的共享专家,补充通用能力top-k 路由:每个 token 只选分数最高的k个专家capacity factor:限制每个 expert 最多接多少 token,防止某些 expert 爆满
各自作用:
- router 决定“谁擅长处理当前 token”
- shared expert 负责稳定的公共知识
- routed expert 负责稀疏、专门化能力
- top-k 决定稀疏程度和计算量
- capacity factor 决定负载上限和丢 token 风险
3. 标准 MoE 和 MMoE 有什么区别?分别适用于什么场景?
Section titled “3. 标准 MoE 和 MMoE 有什么区别?分别适用于什么场景?”标准 MoE 和 MMoE 最大区别在“有没有多任务视角”。
| 维度 | 标准 MoE | MMoE |
|---|---|---|
| 使用目标 | 提升单任务或通用模型容量 | 多任务学习 |
| gate | 通常一套路由 | 每个任务一个 gate |
| expert 共享方式 | token 级共享 | 多任务共享 + 任务特定选择 |
| 常见场景 | LLM、稀疏 Transformer | 推荐、广告、CTR/CVR 多任务 |
适用场景:
标准 MoE:更适合大模型、通用建模、语言模型扩容MMoE:更适合多个相关但不完全相同的任务一起学
一句话:MoE 更偏模型扩容,MMoE 更偏多任务知识共享。
4. MoE 的专家数量通常如何选择?应该从任务相关性、模型容量、路由负载和过拟合风险等角度如何分析?
Section titled “4. MoE 的专家数量通常如何选择?应该从任务相关性、模型容量、路由负载和过拟合风险等角度如何分析?”专家数量没有固定答案,通常要同时看四件事:
- 任务是否天然存在多子分布
- 当前 dense 模型是不是已经容量不足
- 集群通信和路由是否承受得住
- 数据量是否足够支撑专家专门化
分析框架可以这样答:
- 任务相关性高、模式差异明显:可以多一些 expert
- 数据量不大:expert 太多容易每个专家都吃不到足够样本
- 路由负载不均:expert 太多会放大空转和通信问题
- 过拟合风险高:过多专家可能学成“记忆分工”而不是泛化分工
实际选择时常做:
- 固定总 FLOPs,比几组 expert 数量
- 看验证集效果
- 看各 expert token 占比是否均衡
- 看是否出现大量 token dropping
所以不是专家越多越好,而是要看容量收益是否大于路由代价。
5. 如果基于 MoE 的模型在训练时负载均衡不好怎么办?通常看哪些监控指标,辅助 loss、capacity factor、token dropping、路由温度等手段分别解决什么问题?
Section titled “5. 如果基于 MoE 的模型在训练时负载均衡不好怎么办?通常看哪些监控指标,辅助 loss、capacity factor、token dropping、路由温度等手段分别解决什么问题?”先看监控,再谈优化。
常见监控指标:
- 每个 expert 接收到的 token 占比
- router 概率分布熵
- token dropping 比例
- 各 expert 的实际利用率
- 通信耗时和 step time
常见问题和对应手段:
| 手段 | 主要解决什么问题 |
|---|---|
| 辅助负载均衡 loss | 防止少数 expert 吃掉大多数 token |
| 调整 capacity factor | 缓解 expert 爆满或浪费容量 |
| token dropping 策略 | 当 expert 超载时控制计算和稳定性 |
| 路由温度调节 | 控制 router 分布过尖或过平 |
| top-k 调整 | 在表达力、通信量和均衡性之间折中 |
排查顺序通常是:
- 先看是不是 router 过于尖锐,导致头部 expert 垄断
- 再看 capacity 是否太小,造成大量 token 被挤掉
- 再看辅助 loss 权重是不是太弱或太强
- 最后看数据分布本身是否极不均衡
一句话:MoE 训练里最怕的不是专家不够多,而是路由只会用少数几个专家。
QwenVL
Section titled “QwenVL”1. Qwen 2.5 VL 以及 Qwen 3 VL 对比
Section titled “1. Qwen 2.5 VL 以及 Qwen 3 VL 对比”按 Qwen 官方在 2025 年公开的资料来看,Qwen3-VL 是在 Qwen2.5-VL 之上的新一代视觉语言模型,主要升级点不是“只换了一个更大的 backbone”,而是把长上下文、多图视频建模和 agent 能力一起加强了。
可以这样概括:
| 维度 | Qwen2.5-VL | Qwen3-VL |
|---|---|---|
| 核心定位 | 强视觉理解、OCR、定位、长视频 | 更强多模态推理、长上下文、视觉 agent |
| 上下文能力 | 已支持长视频与复杂文档 | 原生更长的 interleaved context |
| 位置建模 | 动态分辨率 + MRoPE / 时间建模 | 增强版 interleaved-MRoPE |
| 视觉语言对齐 | 动态分辨率 ViT + 多阶段对齐 | 进一步强化多层视觉特征利用 |
| 工程特性 | 文档理解、定位、结构化抽取很强 | 在复杂推理、跨图跨视频关联和执行能力上更进一步 |
面试表达建议:
Qwen2.5-VL更强调“看得清、读得准、定位准”Qwen3-VL更强调“看懂之后还能长程推理、跨模态关联和执行”
如果被追问具体 benchmark,不要硬背分数,重点说清架构升级方向。
2. Qwen 2.5 VL 怎么做的动态分辨率处理的图片或者视频,对比 intervl 两者有什么不一样的
Section titled “2. Qwen 2.5 VL 怎么做的动态分辨率处理的图片或者视频,对比 intervl 两者有什么不一样的”Qwen2.5-VL 的关键点是原生动态分辨率。
它的思路不是先把所有图片强行缩放到同一个固定尺寸,而是:
- 尽量保留原图尺度信息
- 让不同大小的图像映射成不同数量的视觉 token
- 通过 Window Attention 降低高分辨率输入时的计算开销
这样做的好处:
- 文档、图表、长图里的细节保留更好
- 小图不会被无意义地放大
- 大图也不必粗暴压缩丢失信息
和 InternVL 常见做法的区别可以概括为:
InternVL更常见的是把图像切成若干 tile,再送入视觉编码器Qwen2.5-VL更强调 native dynamic resolution,让 token 数量随输入分辨率自然变化
直观区别:
- tile 方案更像“先切块,再拼接理解”
- dynamic resolution 更像“按原始尺度直接编码,只是在算力上做窗口化优化”
视频上也类似,本质是把帧序列映射成带时间信息的视觉 token,再交给多模态主干处理。
3. Qwen 2.4 VL 里面的 MROPE 怎么实现的
Section titled “3. Qwen 2.4 VL 里面的 MROPE 怎么实现的”这一题很多时候实际指的是 Qwen-VL 系列里的 M-RoPE / MRoPE 设计,核心思想是把传统一维 RoPE 扩展到多模态场景。
实现直觉:
- 文本 token 只有一维位置:序列位置
- 图像 token 至少有二维位置:
h, w - 视频 token 还有时间维:
t, h, w
所以 MRoPE 通常会给视觉 token 构造多维 position id,再把 RoPE 作用到这些维度上,让注意力同时感知:
- 文本顺序
- 图像空间位置
- 视频时间顺序
可以把它理解成:
text: position = (seq)image: position = (h, w)video: position = (t, h, w)这样做的价值是:
- 图像里“左上”和“右下”不会只被当成普通序列 token
- 视频里前后帧也能被显式区分
- 多图、多帧和文本混排时,位置关系更自然
面试里不必陷入实现细节,重点说清:MRoPE 是把 RoPE 从一维文本位置扩展到多维视觉/时空位置。
4. Qwen 2.5 VL 的图像 ViT 部分是什么结构,图文 embedding 怎么做对齐的?
Section titled “4. Qwen 2.5 VL 的图像 ViT 部分是什么结构,图文 embedding 怎么做对齐的?”按官方技术说明,Qwen2.5-VL 的视觉侧是一个从头训练的动态分辨率 ViT,并专门做了高分辨率优化。
可以抓住几个关键词:
- native dynamic-resolution ViT
- 只有少数层使用 full attention
- 大部分层使用 window attention 降低复杂度
- 在结构上引入了更接近 LLM 的
RMSNorm和SwiGLU
图文对齐通常不是一步做完,而是多阶段:
- 先做类似 CLIP 的视觉语义预训练,学图文粗对齐
- 再做 vision-language alignment,把视觉 token 投影到 LLM 可消费的表示空间
- 最后做端到端联合训练,让模型学会图文问答、OCR、定位、视频理解等任务
所以“图文 embedding 怎么对齐”可以答成:
- 视觉 encoder 先提特征
- 通过 projector / alignment 模块把视觉特征映射到语言空间
- 再靠多模态指令训练把跨模态语义真正对齐
面试中这题更重要的是说清三阶段思路,而不是死背某层 hidden size。
1. 了解哪些常见推荐系统算法?协同过滤、矩阵分解、双塔、DIN / DSSM、序列推荐各适用于什么场景?
Section titled “1. 了解哪些常见推荐系统算法?协同过滤、矩阵分解、双塔、DIN / DSSM、序列推荐各适用于什么场景?”常见推荐算法可以按建模思路分:
- 传统协同过滤
- 矩阵分解
- 双塔召回
- DSSM / DIN 这类深度匹配或兴趣建模模型
- 序列推荐
各自适用场景可以这样记:
| 方法 | 核心思想 | 适用场景 |
|---|---|---|
| 协同过滤 | 相似用户喜欢相似物品 | 冷启动不强、行为数据较多的基础推荐 |
| 矩阵分解 | 把用户和物品映射到同一隐空间 | 评分预测、显式反馈场景 |
| 双塔 | 用户塔和物品塔分别编码,向量召回 | 大规模召回,要求高吞吐低时延 |
| DSSM | 学用户与物品语义匹配 | 搜索/推荐召回,文本和稀疏特征较多 |
| DIN | 对候选物品做目标感知兴趣建模 | CTR 预估、个性化排序 |
| 序列推荐 | 用用户行为序列预测下一步偏好 | 兴趣随时间变化明显的场景 |
几个典型判断:
- 想做海量候选召回,优先看双塔
- 想做更细粒度排序,常看 DIN、DeepFM、DCN 一类
- 用户兴趣变化快,序列推荐更重要
- 只有评分矩阵、特征不多时,矩阵分解仍然是强基线
面试里可以补一句:推荐系统通常不是单模型打天下,而是“召回 + 粗排 + 精排”多阶段组合。
1. 常见降维方法有哪些?VAE 是在解决什么问题?和 AE 有什么本质区别?
Section titled “1. 常见降维方法有哪些?VAE 是在解决什么问题?和 AE 有什么本质区别?”常见降维方法可以分成两类:
- 线性降维:PCA、SVD
- 非线性流形方法:t-SNE、UMAP
- 表示学习方法:AE、VAE
VAE 想解决的问题不是“只把维度压小”,而是学习一个可采样、连续、结构化的潜变量空间,既能压缩表示,也能做生成。
AE 和 VAE 的本质区别:
| 维度 | AE | VAE |
|---|---|---|
| 编码结果 | 一个确定的隐向量 | 一个分布 `q(z |
| 目标 | 重建尽量准 | 重建 + 潜空间正则 |
| 能否稳定采样生成 | 一般较弱 | 更强 |
| 潜空间结构 | 可能不连续 | 更平滑、更可插值 |
一句话记忆:AE 更像压缩器,VAE 是带概率建模的生成式 AE。
2. VAE 的整体结构是什么?
Section titled “2. VAE 的整体结构是什么?”VAE 由三部分组成:
Encoder:输入x,输出潜变量分布参数\mu(x), \log \sigma^2(x)Sampling:从q(z|x)里采样得到zDecoder:输入z,重建出\hat{x}
整体流程:
x -> Encoder -> (mu, logvar) -> sample z -> Decoder -> x_hat训练时通常假设先验是:
这样模型会被约束到一个规则的潜空间,后续可以直接从标准正态采样再解码生成样本。
3. VAE 的目标函数是什么?(ELBO)
Section titled “3. VAE 的目标函数是什么?(ELBO)”VAE 最大化的是证据下界 ELBO:
通常训练时写成最小化负 ELBO:
两项分别表示:
- 第一项:重建项,让生成结果尽量接近原样本
- 第二项:KL 正则项,让后验不要偏离先验太远
面试里可以补一句:VAE 的核心就是“既要重建得像,又要潜空间规整”。
4. 什么是 reparameterization trick?
Section titled “4. 什么是 reparameterization trick?”如果直接从 q(z|x) 采样,采样操作不可导,梯度没法稳定反传到 \mu 和 \sigma。
reparameterization trick 的做法是把随机性挪到一个独立噪声变量上:
这样:
- 随机部分来自
\epsilon \mu和\sigma仍然在可导计算图里- 就能用标准反向传播训练
一句话:它把“不可导的采样”改写成“可导的确定性变换 + 外部噪声”。
这里的 q(z|x) 是编码器学到的后验近似,p(z) 是我们预设的先验,通常是标准正态。
为什么要加:
- 让每个样本对应的潜变量分布不要跑得太散
- 让潜空间整体更连续、更平滑
- 保证推理或生成时可以直接从
p(z)采样
为什么通常写 KL(q(z|x)\|p(z)):
- 训练时我们手里有
q(z|x),因为编码器直接给出了它 - 目标是让编码器学到的分布去贴近先验
- 这个方向在变分推断里也更容易计算和优化
直观上可以理解成:把每个样本的潜表示往统一的标准正态空间里拉。
6. VAE vs GAN?
Section titled “6. VAE vs GAN?”两者都能生成,但思路很不一样。
| 维度 | VAE | GAN |
|---|---|---|
| 训练目标 | 最大化 ELBO | 生成器和判别器对抗 |
| 优点 | 训练相对稳定,潜空间可解释、可插值 | 生成图像往往更锐利 |
| 缺点 | 结果容易偏平滑、偏糊 | 训练不稳定,容易 mode collapse |
| 是否显式建模似然 | 是 | 否 |
| 是否适合表示学习 | 较适合 | 也可,但通常不是强项 |
经验上:
- 关注潜空间结构、插值、表示学习时,VAE 更常用
- 追求高保真图像生成时,GAN 往往更强
- 现在很多生成模型任务里,扩散模型又进一步取代了不少 GAN 场景
ViT & CLIP
Section titled “ViT & CLIP”1. CLIP 如何构造正负样本对,如何执行对比学习
Section titled “1. CLIP 如何构造正负样本对,如何执行对比学习”CLIP 的训练数据是大规模图文对 (image, text)。
正负样本的构造方式很直接:
- 正样本:同一条数据里的图片和文本
- 负样本:同一个 batch 里其他不匹配的图文组合
一个 batch 有 N 对样本时,会得到一个 N x N 的相似度矩阵:
其中:
v_i是图像编码向量t_j是文本编码向量\tau是温度参数
训练时通常做双向对比学习:
- image-to-text:给定图片,匹配正确文本
- text-to-image:给定文本,匹配正确图片
损失本质上是对角线做分类,常写成对称的 InfoNCE / Cross Entropy。
一句话记忆:CLIP 就是在一个 batch 内,让正确图文更近,让错误图文更远。
2. 详细画一下 vit 的架构图
Section titled “2. 详细画一下 vit 的架构图”ViT 可以理解成“把图像切成 patch,再当成 token 喂给 Transformer”。
结构图可以这样画:
Image -> Patch Partition -> Flatten -> Linear Projection -> Patch Embeddings -> Add [CLS] Token -> Add Position Embedding -> Transformer Encoder x L -> MSA -> MLP -> Residual + LayerNorm -> 取 [CLS] 或所有 patch 特征 -> Classification Head / Downstream Head每一步在做什么:
Patch Partition:把图像切成固定大小的小块,比如16x16Linear Projection:把每个 patch 映射到统一 hidden sizePosition Embedding:告诉模型 patch 的空间位置Transformer Encoder:建模不同 patch 之间的全局关系Head:做分类、检测、分割或多模态对齐
和 CNN 的核心区别:
- CNN 靠局部卷积逐层扩大感受野
- ViT 一开始就把图像离散成 token,用全局 self-attention 建模关系
面试里常补一句:ViT 的代价是更吃数据和算力,但全局建模能力更强。