视觉/深度学习/机器学习相关面经总结(3)(持续更新)

对实习过程中用到的大模型的原理进行总结

目录

  • 1、SAM
    • [1.1 SAM1](#1.1 SAM1)
      • 面试回答
      • 结构
        • [1. Image Encoder(图像编码器):提取全局图像特征,为分割提供"图像基础信息"](#1. Image Encoder(图像编码器):提取全局图像特征,为分割提供“图像基础信息”)
        • [2. Prompt Encoder(提示编码器):将多类用户提示转化为统一特征,实现"灵活交互"](#2. Prompt Encoder(提示编码器):将多类用户提示转化为统一特征,实现“灵活交互”)
        • [3. Mask Decoder(掩码解码器):融合图像与提示特征,输出高精度分割结果](#3. Mask Decoder(掩码解码器):融合图像与提示特征,输出高精度分割结果)
    • [1.2 SAM2](#1.2 SAM2)
    • [2 Qwen](#2 Qwen)

1、SAM

1.1 SAM1

面试回答

首先在结构上,三大核心模块:Image Encoder基于MAE预训练的ViT架构 ,提取为1/16下采样的64×64图像特征提供全局语义基础Prompt Encoder 针对点、框、掩码三类提示分别编码------点/框通过坐标归一化、正弦余弦位置编码叠加少量可学习类别向量生成稀疏特征掩码通过下采样与卷积生成密集特征 ,实现多提示统一转化;Mask Decoder则融合图像特征、提示特征及位置编码 ,借助Transformer注意力机制与可学习的掩码/IoU预测Token,输出4个不同粒度的二值化掩码及对应IoU分数,最终完成精准分割。它的输入是:「(图像 emb + 密集提示 emb) (Token 序列 + 稀疏提示 emb) 」

结构

三个模块:Image Encoder,Prompt Encoder和Mask Decoder

1. Image Encoder(图像编码器):提取全局图像特征,为分割提供"图像基础信息"
  • 核心职责:将输入图像转化为具有全局语义信息的特征图,是后续分割的"图像理解基础"。
  • 输入处理:为保证输入一致性与推理效率,对任意尺寸图像做标准化预处理------先等比例缩放至"长边=1024像素",再减均值、除方差后补0至1024×1024。
  • 核心技术
    • 基于MAE预训练的ViT架构(Vision Transformer),利用ViT的全局注意力优势捕捉长距离语义关联;
  • 输出:生成1/16下采样的64×64特征图(即Image Embedding),通道数通常为768/1024,既保留足够空间细节(支撑细粒度分割),又压缩维度降低后续计算成本。

掩码自编码器(masked autoencoders, MAE)是视觉任务中的灵活的自监督学习器。MAE思路很简单:对输入图像的patches序列随机掩码(遮挡),然后尝试重建出这些被遮挡的像素。

2. Prompt Encoder(提示编码器):将多类用户提示转化为统一特征,实现"灵活交互"
  • 核心职责:适配点、矩形框、掩码3类主流提示,将其编码为模型可理解的特征向量,是SAM"通用交互"的核心------解决"不同类型提示如何统一输入模型"的问题。

  • 分类型编码逻辑(重点,体现设计细节)

    提示类型 输入形式 核心编码步骤 可学习参数亮点
    点(Point) 坐标(x,y)+类别(前景/背景) 1. 坐标移至像素中心→归一化到[-1,1]; 2. 正弦余弦位置编码(不可学习,保证空间信息); 3. 叠加"前景/背景可学习向量"(仅2个可学习参数,轻量化) 仅类别向量可学习,兼顾效果与效率
    框(Box) 左上/右下角点坐标 1. 复用点的"坐标归一化+正弦余弦编码"; 2. 叠加"左上/右下角点可学习向量"(区分角点类型) 仅角点向量可学习,与点编码复用逻辑
    掩码(Mask) 二值化掩码(1024×1024) 1. 先下采样4倍→再通过2层Conv2D-LN-GeLU下采样4倍(总下采样16倍); 2. 无掩码时用"可学习向量复制填充" 卷积层可学习,适配密集提示
  • 输出:两类特征统一输出------点/框对应"稀疏特征向量",掩码对应"64×64密集特征图",为后续融合做准备。

3. Mask Decoder(掩码解码器):融合图像与提示特征,输出高精度分割结果
  • 核心职责:将"图像特征(Image Embedding)"与"提示特征(Prompt Embedding)"融合,最终输出对应分割掩码及质量分数,是SAM"精准分割"的核心。
  • 输入构成:4类关键输入------①Image Encoder输出的图像特征;②Prompt Encoder输出的稀疏/密集提示特征;③图像特征的位置编码(补充空间信息);④2个可学习Token(分别用于"掩码预测"和"IoU分数预测")。
  • 核心技术
    • 特征融合:通过Transformer注意力机制,让提示特征"引导"图像特征聚焦于目标区域(比如点提示会让图像特征在对应位置权重升高);
    • 多粒度输出:为平衡"分割精度"与"场景适配性",每次推理输出4个掩码(对应不同分割粒度),同时通过MLP输出每个掩码的IoU分数(供用户选择最优结果);
  • 输出:4个1024×1024二值化掩码(与原图尺寸一致)+4个IoU分数(衡量掩码与真实目标的重合度)。

1.2 SAM2

面试回答:

SAM2 将 SAM 的可提示分割从图像扩展到视频。

图像编码器:使用 MAE 预训练的 Hiera 层次化 ViT,结合 FPN 生成 stride 4--32 的多尺度特征,并以流式方式处理长视频。

记忆机制:通过 Memory Encoder 将每帧预测的掩码与图像特征编码为记忆,存入 Memory Bank(包含最近帧的空间特征和目标语义向量)。解码时,Memory Attention 将当前帧与历史记忆做交叉注意力(使用 FlashAttention2 加速),并加入时间位置嵌入以建模短期运动。

Prompt Encoder:与 SAM1 相同,支持点、框、掩码提示。

Mask Decoder:采用 双向 Transformer 融合当前帧特征、提示和历史记忆,输出多个候选掩码及其 IoU 分数,并新增 可见性预测头 以判断目标在当前帧是否可见。

这样 SAM2 实现了"任意帧提示---全视频掩码自动传播---多轮交互修正"的 Promptable Visual Segmentation。

结构

  1. 任务扩展 :从静态图像的可提示分割扩展到 Promptable Visual Segmentation (PVS) ------在任意帧接收点击/框/掩码提示,自动生成该目标在全视频的掩码序列(masklet),支持用户多轮交互修正。

  2. 图像编码器 :采用 MAE 预训练的 Hiera (层次化 ViT),并通过 FPN 多尺度融合 (stride 4/8/16/32),在保证高分辨率细节的同时流式处理视频,每帧只需一次前向。

  3. 记忆机制

    • Memory Encoder:将当前帧图像特征与预测掩码融合成记忆;
    • Memory Bank:FIFO 队列保存最近 N 帧的空间特征与目标语义向量(object pointer),并对提示帧单独维护队列;
    • Memory Attention :当前帧自注意力 + 与记忆做交叉注意力,使用 FlashAttention 2 加速,并加入时间位置嵌入建模短期运动。
  4. Prompt Encoder:沿用 SAM1 设计,支持点/框/掩码提示。

  5. Mask Decoder

    • 采用 双向 Transformer 块,输入 = 当前帧特征 + 历史记忆 + 当前提示;
    • 输出多候选掩码及 IoU 分数;
    • 额外 可见性预测头,判断当前帧是否能看到目标。
  6. 训练策略:在图像+视频数据上联合训练,随机帧接收提示并顺序预测真实掩码;支持交互式点击校正。

2 Qwen

引文:
Qwen2VL

面试回答

Qwen2-VL 是通义千问在 Qwen2 LLM 上扩展的视觉-语言模型,能够同时处理文本、图像乃至视频。整体由视觉编码器和语言模型两部分构成。视觉侧是基于 ViT 的 Transformer,使用 3D 卷积做 patch embedding 并引入二维 RoPE,最后通过 PatchMerger 将高维视觉 token 聚合成 3584 维,直接送入大语言模型,没有复杂的连接器。

语言侧沿用 Qwen2 的 decoder-only 架构,但关键加入了多模态三维 RoPE,把文本的时间位置与图像的高宽坐标统一编码。

训练分三步:先对 ViT 进行 600B 图文 token 预训练,再用约 1.4T token 进行全参数多模态联合训练,最后做 ChatML 格式的多模态指令微调。

总体结构

  1. 视觉编码器(Qwen2VisionTransformerPretrainedModel)
    • 基于 ViT,但做了两点改造:
      • PatchEmbed:使用 3D 卷积将图像(或视频帧序列)划分成 2D patch,并在时间维做 stride=2,下采样时自然融入时间信息。
      • 二维 Rotary Positional Embedding (2D-RoPE):在高、宽两个方向分别注入旋转位置编码,为后续多模态三维位置扩展打基础。
    • 由 32 层 Vision Transformer Block 组成,内部是标准多头自注意力 + MLP。
    • PatchMerger :末端做轻量的 token 聚合,将视觉 token 数降到语言模型可接受的规模(3584 维),直接送入大语言模型。
      特点:没有复杂的"Connector"桥接层,视觉特征几乎直接进入 LLM,这与早期 ViLT 的思路类似,说明大语言模型对视觉 embedding 的兼容能力已大幅提升。
  2. 语言模型(Qwen2VLModel)
    • 主体与 Qwen2 LLM 相同:28 层 decoder-only Transformer。
    • 关键改造
      • 三维 Rotary Position Embedding (M-RoPE):在文本的时间维度基础上,视觉 token 还同时编码 height、width 信息,实现文本、图像、视频三模态统一位置表示。
      • 注意力层做了 Key/Value 降维(k/v dim 512 < q dim 3584),降低显存和计算。
      • 采用 RMSNorm + SiLU 激活,保持稳定与收敛速度。
    • 输出端是标准的 LM Head,用于下一 token 预测。

训练三阶段

  1. ViT 预训练

    • 600B 图文 token,单独训练视觉编码器。
    • LLM 参数初始化自 Qwen2,视觉端基于 DFN ViT 并替换为 2D-RoPE。
    • 目标是让视觉编码器具备高质量语义表示。
  2. 全参数联合训练

    • 额外约 800B 混合 token:图文问答、多任务、纯文本。
    • 解锁所有参数,仅对文本 token 提供监督,提升多模态融合能力。
    • 累计处理约 1.4T token。
  3. 指令微调(Instruction Tuning)

    • 使用 ChatML 格式。
    • 数据涵盖纯文本、多模态会话、文档解析、多图比较、视频理解等。
    • 提升模型在开放式多轮对话、任务执行中的指令遵循与鲁棒性。
相关推荐
小oo呆2 小时前
【自然语言处理与大模型】RAG发展过程中的三个范式
人工智能·自然语言处理
syounger2 小时前
OpenAI携手SAP与微软:推动德国公共部门主权云AI落地
人工智能·microsoft
缘友一世2 小时前
PyTorch深度学习实战【12】之基于RNN的自然语言处理入门
pytorch·rnn·深度学习
疯狂的Alex2 小时前
半精度浮点在AI推理中的应用:C++23新类型与性能测试
人工智能·c++23
青春不败 177-3266-05202 小时前
基于PyTorch深度学习遥感影像地物分类与目标检测、分割及遥感影像问题深度学习优化实践技术应用
人工智能·pytorch·深度学习·目标检测·生态学·遥感
诸葛箫声2 小时前
基于PyTorch的CIFAR-10图像分类项目总结
人工智能·pytorch·分类
en-route3 小时前
从零开始学神经网络——GRU(门控循环单元)
人工智能·深度学习·gru
说私域3 小时前
基于开源AI大模型AI智能名片S2B2C商城小程序的产地优势产品营销策略研究
人工智能·小程序·开源
说私域3 小时前
蒸汽机革命后工业生产方式的变革与AI智能名片S2B2C商城小程序的影响
大数据·人工智能·小程序