面试题详解:多模态大模型全攻略——ViT 架构、扩散模型、U-Net、VAE、CLIP、Prompt 图像对齐一次讲透 1. 先把多模态这条线串起来1.1 多模态不是单点技术而是一条完整生成链路很多人复习多模态时会把 ViT、CLIP、扩散模型、U-Net、VAE 分开背。这样很容易背散。更好的方式是把它们放到同一条链路里理解ViT 让图像能像文本 token 一样被 Transformer 处理CLIP 让文本和图像进入同一个语义空间扩散模型定义从噪声到图像的生成过程U-Net 负责每一步去噪预测VAE 则把图像压缩到 latent 空间让生成成本降下来。所以这组面试题看起来很多本质上都在回答一个问题模型如何理解图像、理解文本并把文本条件一步步变成图像。2. ViT 架构2.1 ViT 的核心思想把图片切成一串视觉 tokenViT也就是 Vision Transformer最核心的想法是把图像处理成序列。传统 Transformer 在 NLP 里吃的是词 tokenViT 则把一张图切成很多固定大小的小块也就是 patch再把每个 patch 变成一个向量像一句话里的词一样送进 Transformer Encoder。这件事的意义很大。因为它让图像任务可以直接复用 Transformer 的全局注意力能力。每个 patch 不再只能局部看邻居而是可以通过自注意力和其他 patch 建立关系。2.2 ViT 图像补丁嵌入是什么图像补丁嵌入也就是 Patch Embedding可以理解为“把每个图像小块翻译成模型能读懂的向量”。具体过程是先把图像切成大小相同的小块再把每个小块展平然后通过一个可学习的线性投影把它变成固定维度的 token。这一步很像 NLP 里的词嵌入。不同的是NLP 里的 token 本来就是离散词而图像 patch 是像素块需要先通过投影层变成向量。2.3 ViT 的图像如何输入模型Class Token 的作用是什么ViT 的输入通常由三部分组成patch embedding、class token、position embedding。Patch embedding 代表每个小图像块class token 是一个额外放在序列开头的可学习向量position embedding 则告诉模型每个 patch 在图像里的位置。Class token 的作用可以理解为“全图代表”。经过多层 Transformer 后它会通过注意力不断吸收其他 patch 的信息最终变成整张图的全局表示。做分类时通常拿这个 token 的输出接分类头。3. 扩散模型为什么要对 X0 加噪声3.1 前向扩散是什么意思前向扩散就是从一张干净图 X0 开始一步步往里加噪声。随着时间步 t 变大图像越来越模糊最后接近纯噪声。这个过程不是模型学出来的而是人为设计好的。因为噪声是我们自己加进去的所以训练时天然知道标准答案。3.2 逆向扩散是什么意思逆向扩散就是反过来从纯噪声开始一步步去噪逐渐还原出清晰图像。模型真正要学的就是在每个时刻根据当前带噪图 Xt 和时间步 t预测应该怎样去掉噪声得到更干净的 Xt-1。3.3 为什么扩散模型要对 X0 加噪声再用 L2 损失Xt 和 Xt-1 有什么联系对 X0 加噪声的好处是可以构造大量有监督训练样本。我们知道干净图是什么也知道加入了什么噪声因此可以让模型去预测噪声、预测 X0 或预测另一种去噪方向。预测错了就用简单的均方误差类损失把它拉回来。Xt 和 Xt-1 的关系可以这样理解在前向过程中Xt 比 Xt-1 多了一点噪声在逆向过程中模型要从更吵的 Xt 预测出更干净的 Xt-1。4. 扩散模型训练时预测目标是什么4.1 最常见预测噪声DDPM 这类经典扩散模型里最常见的训练目标是预测噪声。也就是说模型看到一张带噪图 Xt 和时间步 t要猜出当初加进去的噪声是什么。因为噪声是人为生成的所以训练标签非常明确。4.2 也可以预测 X0 或 v有些模型不直接预测噪声而是预测干净图 X0或者预测一种折中变量 v。无论形式怎么变核心目标都是一样的让网络学会从带噪状态找到回到干净图像的方向。5. U-Net 网络是什么在扩散模型中有什么作用5.1 U-Net 组件有哪些U-Net 的名字来自它像一个 U 形结构左边是下采样路径逐步压缩空间尺寸、提取更高层语义中间是瓶颈层整合全局信息右边是上采样路径逐步恢复空间分辨率中间还会有 skip connection把早期的细节特征直接传到后面的恢复阶段。在扩散模型里U-Net 还会接收时间步信息有时还会接收文本条件。文本条件通常通过 cross-attention 等方式注入让去噪过程朝着 prompt 描述的方向走。5.2 U-Net 在扩散模型中的作用U-Net 是扩散模型的核心去噪网络。它不是一次性生成图像而是在每个时间步看当前带噪图、时间步和条件信息然后预测噪声、X0 或 v。生成过程不断重复这个动作图像就会从纯噪声逐步变清晰。6. VAE、CLIP 和投影层分别有什么作用6.1 VAE 在扩散模型中的作用在 Latent Diffusion 这类模型里VAE 的作用可以理解为“图像压缩和还原”。训练时VAE Encoder 把像素图像压缩到 latent 空间扩散模型主要在这个 latent 空间里加噪和去噪最后 VAE Decoder 再把 latent 解码回真正的图像。这样做的好处是计算量大幅降低。直接在高分辨率像素空间做扩散非常贵而在 latent 空间里操作更省显存、更省计算。6.2 CLIP 架构CLIP 由图像编码器和文本编码器组成。图像编码器把图片变成向量文本编码器把文字变成向量然后二者通过投影层进入同一个语义空间。训练时它会拉近匹配图文对的距离拉远不匹配图文对的距离。在文生图系统里CLIP 文本编码器常用来把 prompt 变成文本条件供 U-Net 在去噪时使用。它也可以作为图文对齐评估器帮助判断生成图和提示词是否匹配。6.3 投影层的作用是什么投影层的核心作用是把不同来源的特征映射到统一维度、统一语义空间。比如 CLIP 里图像编码器和文本编码器输出的特征可能不是天然可比的需要通过投影层变成可以直接计算相似度的向量。ViT 里的 patch projection 也是类似思想把像素块转换成 Transformer 能处理的 token 向量。7. 如何处理 prompt 和生成图像不对齐的问题7.1 先判断不对齐来自哪里Prompt 和生成图像不对齐可能是提示词写得模糊也可能是模型对某些概念理解不足还可能是多个物体的空间关系太复杂或者提示词内部有冲突。比如“一个写实的二次元人物”这种描述本身就会让模型难以统一风格。7.2 从低成本到高成本逐层解决最简单的是重写 prompt把主体、数量、位置、风格、构图和负面约束写清楚其次可以调整 guidance、采样步数和随机种子再进一步可以生成多张候选用 CLIP 相似度或人工规则重排如果还不够可以加入参考图、姿态图、边缘图、ControlNet 或局部重绘如果是特定角色、商品或风格长期不稳定就需要 LoRA、DreamBooth 等微调方案。8. 面试高频追问建议这样回答8.1 ViT 架构怎么说答ViT 把图像切成固定大小的 patch每个 patch 展平后通过线性投影变成 token再加上 class token 和位置编码送入 Transformer Encoder 做全局注意力建模最后用 class token 输出分类结果。8.2 扩散模型为什么加噪答加噪是为了构造可监督训练任务。我们知道干净图 X0也知道人为加进去的噪声所以可以训练模型从 Xt 中预测噪声或干净图。生成时再从纯噪声反向去噪。8.3 U-Net 在扩散模型里做什么答U-Net 是去噪网络每一步接收带噪图、时间步和条件信息预测噪声或去噪方向。下采样提语义上采样恢复细节skip connection 保留局部信息。8.4 CLIP 和投影层怎么讲答CLIP 有图像编码器和文本编码器二者通过投影层映射到同一个语义空间从而可以比较图文是否匹配。投影层负责统一维度和语义空间。9. 总结把多模态看成一条链路所有问题就都顺了如果把这组问题浓缩成一句话那就是ViT 解决图像如何进入 TransformerCLIP 解决文本和图像如何对齐扩散模型解决如何从噪声生成图像U-Net 负责每一步去噪VAE 负责降低生成成本并还原图像。面试中最能拉开差距的不是背出一堆模型名而是能把它们放进同一条链路里讲清楚图像怎么编码文本怎么条件化噪声怎么加模型怎么学生成怎么反向去噪以及当 prompt 和图像不对齐时如何定位和优化。附30 秒快答模板“ViT 把图像切成 patch通过线性投影变成 token再加 class token 和位置编码送入 Transformer扩散模型通过前向加噪构造训练任务让模型学会从 Xt 预测噪声、X0 或 v生成时从纯噪声一步步反向去噪U-Net 是每一步去噪的核心网络VAE 用来把图像压缩到 latent 空间降低成本CLIP 用图像编码器、文本编码器和投影层把图文映射到同一个语义空间从而实现文本条件和图文对齐。”