Skip to content

5 模型专题

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 不好,而是很多场景里它的额外复杂度不再值得。

1. 介绍一下CNN,CNN 的每一层都在做什么

Section titled “1. 介绍一下CNN,CNN 的每一层都在做什么”

CNN 是用卷积来提取局部空间模式的神经网络,特别适合图像这类有网格结构的数据。

常见各层作用:

作用
卷积层用局部卷积核提取边缘、纹理、形状等特征
激活函数引入非线性,常见是 ReLU
池化层下采样,降低分辨率和计算量,增强一定平移不变性
BN / Norm稳定训练,加快收敛
深层卷积从低级特征逐步组合成高级语义
全连接层 / 检测头做分类、回归框或其他任务输出

特征演化过程一般是:

  • 浅层学边缘、角点、纹理
  • 中层学局部部件
  • 深层学物体语义

CNN 的优势:

  • 局部连接,参数共享,适合二维图像
  • 归纳偏置强,小数据下往往更稳

YOLO 的核心思想是把目标检测当成单阶段回归问题,直接从图像一次前向输出类别和框。

现代 YOLO 通常可以分成三部分:

  • Backbone:提取多尺度特征,比如 CSPDarknet
  • Neck:做特征融合,比如 FPN / PAN
  • Head:在不同尺度上预测类别、置信度和边界框

整体流程:

Image
-> Backbone 提特征
-> Neck 融合高低层特征
-> Detection Head 多尺度预测
-> NMS / 后处理
-> 最终检测框

为什么 YOLO 快:

  • 单阶段,不像两阶段方法先 proposal 再分类
  • 端到端一次前向完成主要预测
  • 多尺度头兼顾大目标和小目标

面试里常见补充点:

  • 分类分支 预测类别
  • 回归分支 预测框位置
  • objectness 预测这个位置是否有目标

一句话总结:YOLO 的优势是速度快、工程落地成熟,代价是精度上要在不同版本间做平衡。

1. 传统 DDPM 的前向扩散和反向去噪过程是怎么实现的?

Section titled “1. 传统 DDPM 的前向扩散和反向去噪过程是怎么实现的?”

DDPM 的核心思路是:训练时逐步加噪,推理时逐步去噪。

前向扩散过程:

  • 从真实样本 x_0 出发
  • 每一步加一点高斯噪声
  • 最后把样本变成近似标准高斯

常写成:

q(xtxt1)=N(1βtxt1,βtI)q(x_t|x_{t-1}) = \mathcal{N}(\sqrt{1-\beta_t}x_{t-1}, \beta_t I)

进一步可以直接采样到任意步:

xt=αˉtx0+1αˉtϵ,ϵN(0,I)x_t = \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1-\bar{\alpha}_t}\epsilon,\quad \epsilon \sim \mathcal{N}(0, I)

反向去噪过程:

  • 训练一个网络 \epsilon_\theta(x_t, t) 或等价参数化
  • 预测当前噪声或干净样本方向
  • x_T 一步步还原到 x_0

形式上近似学习:

pθ(xt1xt)p_\theta(x_{t-1}|x_t)

训练 loss 常见是简单的噪声预测 MSE:

L=Eϵϵθ(xt,t)2\mathcal{L} = \mathbb{E}\|\epsilon - \epsilon_\theta(x_t, t)\|^2

一句话理解:正向是把图像毁掉,反向是学会怎么一点点修回来。


2. 是否了解过多模态大模型(MLLM)?可以简单介绍几类常见多模态大模型及其核心差异吗?

Section titled “2. 是否了解过多模态大模型(MLLM)?可以简单介绍几类常见多模态大模型及其核心差异吗?”

MLLM 就是在 LLM 基础上接入图像、视频、音频等模态,让模型能做跨模态理解和生成。

常见几类路线:

路线代表思路核心特点
视觉编码器 + Projector + LLMLLaVA、很多轻量开源方案结构简单,落地快
视觉编码器 + Q-Former + LLMBLIP-2用 query 做信息压缩和提炼
强视觉主干 + 原生多模态位置建模Qwen2.5-VL / Qwen3-VLOCR、定位、视频、长上下文更强
统一端到端多模态模型一些 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 的核心区别:

维度DenseMoE
每个 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 计算该送到哪些 expert
  • routed 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 最大区别在“有没有多任务视角”。

维度标准 MoEMMoE
使用目标提升单任务或通用模型容量多任务学习
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 调整在表达力、通信量和均衡性之间折中

排查顺序通常是:

  1. 先看是不是 router 过于尖锐,导致头部 expert 垄断
  2. 再看 capacity 是否太小,造成大量 token 被挤掉
  3. 再看辅助 loss 权重是不是太弱或太强
  4. 最后看数据分布本身是否极不均衡

一句话:MoE 训练里最怕的不是专家不够多,而是路由只会用少数几个专家。

按 Qwen 官方在 2025 年公开的资料来看,Qwen3-VL 是在 Qwen2.5-VL 之上的新一代视觉语言模型,主要升级点不是“只换了一个更大的 backbone”,而是把长上下文、多图视频建模和 agent 能力一起加强了。

可以这样概括:

维度Qwen2.5-VLQwen3-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 的 RMSNormSwiGLU

图文对齐通常不是一步做完,而是多阶段:

  • 先做类似 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 的本质区别:

维度AEVAE
编码结果一个确定的隐向量一个分布 `q(z
目标重建尽量准重建 + 潜空间正则
能否稳定采样生成一般较弱更强
潜空间结构可能不连续更平滑、更可插值

一句话记忆:AE 更像压缩器,VAE 是带概率建模的生成式 AE。


VAE 由三部分组成:

  • Encoder:输入 x,输出潜变量分布参数 \mu(x), \log \sigma^2(x)
  • Sampling:从 q(z|x) 里采样得到 z
  • Decoder:输入 z,重建出 \hat{x}

整体流程:

x -> Encoder -> (mu, logvar) -> sample z -> Decoder -> x_hat

训练时通常假设先验是:

p(z)=N(0,I)p(z)=\mathcal{N}(0, I)

这样模型会被约束到一个规则的潜空间,后续可以直接从标准正态采样再解码生成样本。


3. VAE 的目标函数是什么?(ELBO)

Section titled “3. VAE 的目标函数是什么?(ELBO)”

VAE 最大化的是证据下界 ELBO

logp(x)Eq(zx)[logp(xz)]KL(q(zx)p(z))\log p(x) \ge \mathbb{E}_{q(z|x)}[\log p(x|z)] - KL(q(z|x)\|p(z))

通常训练时写成最小化负 ELBO:

L=Eq(zx)[logp(xz)]+KL(q(zx)p(z))\mathcal{L} = -\mathbb{E}_{q(z|x)}[\log p(x|z)] + KL(q(z|x)\|p(z))

两项分别表示:

  • 第一项:重建项,让生成结果尽量接近原样本
  • 第二项:KL 正则项,让后验不要偏离先验太远

面试里可以补一句:VAE 的核心就是“既要重建得像,又要潜空间规整”。


如果直接从 q(z|x) 采样,采样操作不可导,梯度没法稳定反传到 \mu\sigma

reparameterization trick 的做法是把随机性挪到一个独立噪声变量上:

z=μ+σϵ,ϵN(0,I)z = \mu + \sigma \odot \epsilon,\quad \epsilon \sim \mathcal{N}(0, I)

这样:

  • 随机部分来自 \epsilon
  • \mu\sigma 仍然在可导计算图里
  • 就能用标准反向传播训练

一句话:它把“不可导的采样”改写成“可导的确定性变换 + 外部噪声”。


5. KL 散度理解,为什么 KL(q(zx)p(z))KL(q(z|x) || p(z))

Section titled “5. KL 散度理解,为什么 KL(q(z∣x)∣∣p(z))KL(q(z|x) || p(z))KL(q(z∣x)∣∣p(z))”

这里的 q(z|x) 是编码器学到的后验近似,p(z) 是我们预设的先验,通常是标准正态。

为什么要加:

  • 让每个样本对应的潜变量分布不要跑得太散
  • 让潜空间整体更连续、更平滑
  • 保证推理或生成时可以直接从 p(z) 采样

为什么通常写 KL(q(z|x)\|p(z))

  • 训练时我们手里有 q(z|x),因为编码器直接给出了它
  • 目标是让编码器学到的分布去贴近先验
  • 这个方向在变分推断里也更容易计算和优化

直观上可以理解成:把每个样本的潜表示往统一的标准正态空间里拉


两者都能生成,但思路很不一样。

维度VAEGAN
训练目标最大化 ELBO生成器和判别器对抗
优点训练相对稳定,潜空间可解释、可插值生成图像往往更锐利
缺点结果容易偏平滑、偏糊训练不稳定,容易 mode collapse
是否显式建模似然
是否适合表示学习较适合也可,但通常不是强项

经验上:

  • 关注潜空间结构、插值、表示学习时,VAE 更常用
  • 追求高保真图像生成时,GAN 往往更强
  • 现在很多生成模型任务里,扩散模型又进一步取代了不少 GAN 场景

1. CLIP 如何构造正负样本对,如何执行对比学习

Section titled “1. CLIP 如何构造正负样本对,如何执行对比学习”

CLIP 的训练数据是大规模图文对 (image, text)

正负样本的构造方式很直接:

  • 正样本:同一条数据里的图片和文本
  • 负样本:同一个 batch 里其他不匹配的图文组合

一个 batch 有 N 对样本时,会得到一个 N x N 的相似度矩阵:

sij=vi,tjτs_{ij} = \frac{\langle v_i, t_j \rangle}{\tau}

其中:

  • v_i 是图像编码向量
  • t_j 是文本编码向量
  • \tau 是温度参数

训练时通常做双向对比学习

  • image-to-text:给定图片,匹配正确文本
  • text-to-image:给定文本,匹配正确图片

损失本质上是对角线做分类,常写成对称的 InfoNCE / Cross Entropy。

一句话记忆:CLIP 就是在一个 batch 内,让正确图文更近,让错误图文更远。


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:把图像切成固定大小的小块,比如 16x16
  • Linear Projection:把每个 patch 映射到统一 hidden size
  • Position Embedding:告诉模型 patch 的空间位置
  • Transformer Encoder:建模不同 patch 之间的全局关系
  • Head:做分类、检测、分割或多模态对齐

和 CNN 的核心区别:

  • CNN 靠局部卷积逐层扩大感受野
  • ViT 一开始就把图像离散成 token,用全局 self-attention 建模关系

面试里常补一句:ViT 的代价是更吃数据和算力,但全局建模能力更强。