LLM 算法岗 | 八股问答(7)· 多模态与主流模型架构


完整题库链接:LLM 算法岗 | 面试常问的 LLM 八股题目汇总


1. 主流的开源大模型结构有哪些?讲讲 Qwen2.5VL、Llama 等模型及其核心特征。它们如何进行微调和训练?

主流开源大模型结构:
目前主流的大模型主要基于 Transformer 架构,并衍生出三种主要路线:

  1. 仅解码器(Decoder-only):最主流的架构,适用于绝大多数生成式任务。代表作:Llama 系列、Qwen(非VL版本)、GPT 系列。
  2. 仅编码器(Encoder-only):擅长理解类任务,如分类、序列标注。代表作:BERT、RoBERTa。
  3. 编码器-解码器(Encoder-Decoder):适用于序列到序列的任务,如翻译、摘要。代表作:T5、BART。

模型核心特征:

  • Llama 系列

    • 核心特征:以 Decoder-only 架构为基础,通过在海量高质量数据上进行预训练,强调训练效率推理性能。其成功在于证明了在适当规模的数据和模型设计下,开源模型可以达到闭源模型的性能。
    • 技术亮点:采用 RMSNorm 进行层归一化(取代 LayerNorm)、SwiGLU 激活函数(取代 ReLU,表达能力更强)、旋转位置编码(RoPE,Rotary Position Embedding),以及优化的多头注意力机制(如 GQA,Grouped Query Attention,在 Llama 3 中引入)来加速推理。
  • Qwen2.5-VL

    • 核心特征:这是一个多模态模型,端到端理解图像 + 视频 + 文本,非拼接式架构。它的核心在于将视觉信息高效地融入语言模型 。
    • 技术亮点
      • 视觉编码器:采用架构与 SigLIP 类似但经过优化的 ViT,支持动态分辨率视频帧率训练,使其能处理任意长宽比图像、超过 1 小时的视频 。
      • 视觉-语言适配器:通过一个简单的 MLP 层将 ViT 输出的视觉特征投影到语言模型(Qwen2.5)的嵌入空间。使用特殊的视觉位置编码(Window-based + 2D RoPE),保留空间信息。
      • 多模态旋转位置编码(mRoPE):将原始 RoPE 扩展到多模态,以处理图像的空间位置和视频的时间序列信息 。
      • 如何处理图像和视频:图像、视频、文本统一 token 化,图像切分为 视觉 token(如 14×14 patch),视频帧序列化处理。
      • 多模态原生预训练:从 0 开始联合训练,而非先训 LLM 再冻住接视觉模块。

微调和训练方法:
主要分为预训练和对齐两个阶段,其中微调是面试重点。

  1. 预训练

    • 数据:在海量无监督数据上进行,目标是预测下一个词。
    • 技术:需要大规模分布式训练框架,如 Megatron-LM、DeepSpeed,使用混合精度训练(FP16 / BF16)、梯度累积等技术。
  2. 微调与对齐

    • 指令微调(SFT,Supervised Fine-Tuning):使用高质量的指令-响应对数据,以监督学习的方式更新模型参数,使其学会遵循指令。
    • 高效微调技术(PEFT)面试高频考点。旨在只更新少量参数,大幅降低显存和计算成本。
      • LoRA:在模型原有权重矩阵旁添加低秩矩阵进行训练,推理时将增量合并回原权重,不增加额外延迟。实践如 LLaMA-Factory 工具常使用此方法 。
      • Q-LoRA:在 LoRA 基础上进一步量化基础模型(如4-bit量化),显著降低显存占用。
    • 人类反馈强化学习(RLHF):进一步使模型与人类偏好对齐。通常包含训练奖励模型和使用 PPO(Proximal Policy Optimization) 等强化学习算法优化语言模型。

2. 多模态大模型一般有哪几个组件?什么作用?

目前主流的多模态大模型(以视觉-语言为例)通常遵循 模块化 范式,主要由以下三个组件构成 :

  1. 视觉编码器

    • 作用:将原始图像像素转换为紧凑的、富含语义的视觉特征向量。它相当于模型的“眼睛”,负责“看懂”图像内容,如物体、场景、颜色等。
    • 常见选择ViTCLIP 的视觉编码器(也是ViT或ResNet)、ConvNeXt 等。
  2. 模态连接器 / 投影器

    • 作用:这是多模态融合的关键“桥梁”。由于视觉编码器输出的特征空间与大型语言模型的文本特征空间不一致,连接器的任务就是将视觉特征“翻译”成大型语言模型能理解的、位于同一语义空间的向量(即视觉Token)
    • 常见设计:简单 MLP 层(如Qwen-VL)、Q-Former(如BLIP-2)、或交叉注意力层(如Flamingo)。
  3. 大型语言模型

    • 作用:作为整个系统的“大脑”,接收由连接器转换后的视觉Token和用户输入的文本Token,进行统一的推理和生成。它负责理解图文交互、执行指令,并最终生成自然语言输出。
    • 常见选择LlamaQwen 等预训练好的仅解码器语言模型。

输入层 :

  • 图像 / 视频 → 视觉编码器 → 视觉特征
  • 文本 → Tokenizer → 文本 Token
  • 视觉编码器的典型实现:ViT、CLIP ViT、Swin Transformer、ConvNeXt
  • 位置编码:保留图像空间/视频时序信息,如 2D RoPE、绝对位置编码、时间戳嵌入

对齐层(Alignment):

  • 投影网络(MLP / Q-Former / Perceiver)
  • 作用:将视觉特征映射到 LLM 的语义空间

融合层(LLM 底座):

  • Decoder-only Transformer
  • 统一处理:文本 token + 视觉 token
  • 自回归生成回答

3. 视觉跟文本之间的对齐任务是怎么做的?

视觉与文本的对齐旨在让模型理解“这幅图”和“这句话”在语义上是匹配的。核心方法是构建一个跨模态的共享语义空间

主要做法 :

  1. 对比学习对齐(如 CLIP):(我只看得懂这个)

    • 核心思想:拉近匹配的图文对(正样本)在向量空间中的距离,推远不匹配的图文对(负样本)的距离。
    • 具体操作:对训练批次中的 N 个图文对,模型分别编码得到 N 个图像向量和 N 个文本向量,形成一个 N x N 的相似度矩阵。对角线元素是正样本对,其余是负样本对。模型通过对比损失函数(如 InfoNCE)学习,最大化对角线的相似度,同时最小化其他位置的相似度 。
  2. 细粒度对齐(如用于 Text-VQA 的 TWA 方法)

    • 核心思想:不仅要对齐整体的图文,还要对齐图像中的区域(如检测框)和文本中的词或短语。
    • 具体操作:引入注意力机制或图神经网络,让模型学习“哪个词对应图中的哪个物体”。例如,对于 OCR 场景,将识别出的文本 Token 与图像中的对应位置进行关联,以纠正 OCR 识别错误 。
  3. 生成式对齐(如图像 / 文本重建)

    • 核心思想:要求模型基于一种模态生成另一种模态。如果能正确生成,则证明其实现了对齐。
    • 具体操作
      • 掩码建模:掩码掉图像的一部分区域或文本的一部分 Token,让模型根据可见部分进行重建 。
      • 图像描述 / 文本到图像生成:训练模型根据图像生成准确的描述,或根据文本描述生成相符的图像。

阶段一:特征对齐(Feature Alignment)

  • 目标:让视觉特征和文本特征在同一空间可比
  • 方法:对比学习(Contrastive Learning)
  • 代表:CLIP 预训练,图像-文本对拉近,负样本推开

阶段二:语义对齐(Semantic Alignment)

  • 目标:LLM 能理解视觉内容并生成描述
  • 方法
    1. Prefix / Projection:视觉特征作为软提示(Soft Prompt)前缀输入 LLM
    2. Cross-Attention:视觉特征作为 Key / Value,文本 Query 去 attend(如 Flamingo)
    3. Q-Former(BLIP-2):轻量查询 Transformer,提取与文本最相关的视觉特征

阶段三:指令对齐(Instruction Alignment)

  • 数据(图像, 指令, 回答) 三元组
  • 训练:SFT,让模型遵循多模态指令
  • 优化:冻结视觉编码器,训练投影层 + LLM

4. CLIP 框架描述。CLIP 的文本编码器和图像编码器都是什么?它们分别如何提取特征?

CLIP 框架描述 :
CLIP(Contrastive Language-Image Pre-training)是 OpenAI 提出的一个里程碑式的多模态预训练框架。其核心是一个双塔结构,由独立的图像编码器和文本编码器组成。它通过对比学习在包含 4 亿个图文对的大规模数据集上进行预训练,目标是让模型学习到图像和文本之间细粒度的对应关系。

编码器结构与特征提取方式:

图像编码器

  • 结构:可以是传统的 CNN(如ResNet) 或基于 Transformer 的 ViT(Vision Transformer)
  • 特征提取
    • 输入:将图像预处理为统一尺寸(如 224x224)。
    • ViT 处理流程:将图像分割成固定大小的 Patches(如 16x16),每个 Patch 线性投影为一个向量。添加一个特殊的 [CLS] Token 和位置编码后,输入一系列 Transformer 块。最终,取 [CLS] Token 的输出作为整张图像的全局特征向量
    • ResNet 处理流程:通过卷积层堆叠提取特征图,最后通过全局平均池化得到最终的图像特征向量。

文本编码器

  • 结构:通常是一个 Transformer 模型(如 GPT 系列,但通常是仅编码器或解码器的变体)。
  • 特征提取
    • 输入:将文本进行 Tokenize(分词),并在开头和结尾添加特殊的 [SOS](开始)和 [EOS](结束)Token。
    • 处理流程:Token 序列经过嵌入层转换为向量,并加上位置编码,然后输入 Transformer 块。最终,通常取序列最后一个 Token(或 [EOS] Token)的输出经过线性投影后,作为文本的全局特征向量

关键细节:

  • 大规模数据:4 亿互联网图文对(WebImageText)
  • zero-shot 能力:通过自然语言描述迁移到下游任务
  • 局限性:细粒度理解弱,OCR 能力差,需要后续微调

5. ViT 的结构是什么?

ViT(Vision Transformer)的核心思想是将标准的 Transformer 架构直接应用于图像处理:将图像视为序列,直接应用 Transformer,打破 CNN 的局限性(局部性、平移等变性)。其结构主要包含以下模块:

  1. 图像分块与嵌入 Patch Embedding

    • 将输入图像 H x W x C 分割成 N 个固定大小的非重叠 Patch(如 16x16)。
    • 将每个 Patch 展平并通过一个可训练的线性投影层,映射到 D 维空间,得到一系列 Patch Embeddings。
  2. 添加特殊 Token 和位置编码

    • [CLS] Token:在序列开头添加一个可学习的嵌入向量 [CLS],其最终输出作为整个图像的全局表示,用于分类任务。
    • 位置编码:由于 Transformer 本身不具备空间顺序信息,需要向每个 Patch Embedding 中加入位置编码(可学习的或固定的),以保留图像的空间位置信息。
  3. Transformer 编码器

    • 将加入了 [CLS] Token 和位置编码的整个序列(长度为 N+1)输入到堆叠的 Transformer 编码器层中。
    • 每一层包含
      • 层归一化 LayerNorm
      • 多头自注意力 Multi-Head Self-Attention:让每个Patch与其他所有Patch进行信息交互,从而捕获全局依赖关系。
      • 层归一化 LayerNorm
      • MLP:由两个全连接层和 GELU 激活函数组成,增加模型的非线性表达能力。
    • 每个子层后都使用残差连接
  4. 输出层(用于分类)

    • 取最后一层 Transformer 编码器输出的 [CLS] Token 的向量。
    • 将其输入一个分类头(一个简单的 MLP),得到最终的类别预测。

6. SAM 有哪几个组件?用的什么指标评价?模型性能横向相比大概什么水平?

(这是我第一次听说 SAM,不懂这个)

SAM(Segment Anything Model)组件 :
SAM 是一个用于图像分割的提示基础模型,其设计目标是实现“可提示的分割”。它包含三个核心组件:

  1. 图像编码器 Image Encoder
    • 一个基于 ViT 的模型(MAE 预训练(MAE 是什么?)),对输入图像进行处理,提取高分辨率的图像特征。这部分计算量大,但只需对每张图像运行一次。
  2. 提示编码器 Prompt Encoder
    • 负责将用户的交互提示转换为特征向量。提示可以是稀疏的(点、框、文本)或稠密的(粗略的掩码 mask)。
    • 点/框:通过位置编码表示。
    • 文本:通过 CLIP 等模型的文本编码器编码。
    • 掩码:通过卷积降采样后与图像特征结合。
  3. **轻量级掩码解码器 **Mask Decoder****:
    • 一个高效的双层 Transformer 解码器。它将 image encoder 和 prompt encoder 的特征 以及一个可学习的输出 Token 映射到最终的 mask。这个 decoder 经过设计,可以在极短时间内(约 50ms)根据任意提示生成多个有效的分割掩码。
    • 核心设计:模糊感知(Ambiguity-aware):
      • 一个提示可能对应多个有效 mask(如点击杯沿,可能指杯子或杯盖)
      • 解决方案:同时输出 3 个 mask,分别对应 整体、部分、子部分
      • 训练时根据 GT 与预测 mask 的 IoU 选择最佳匹配计算损失

评价指标 :
图像分割领域常用的指标主要有:(这些我也不懂)

  • IoU:预测分割区域与真实分割区域之间的重叠率。
  • mIoU:在所有类别上计算 IoU 的平均值,是语义分割最核心的指标。
  • FPS:每秒处理的图像帧数,用于衡量模型的计算效率和推理速度。
  • Accuracy:像素级别的分类准确率。
  • Boundary F-score:边界质量评估。

模型性能水平(横向比较) :
SAM 作为分割领域的“基础模型”,其最大的优势在于强大的零样本泛化能力和灵活的提示工程,而非在所有特定数据集上都追求绝对的精度。与 SOTA 专用模型相比:

  • 优势通用性和交互性。SAM无需微调即可分割从未见过的物体,这是传统分割模型难以做到的。
  • 改进方向:针对其性能短板,涌现了大量改进工作:
    • 加速MobileSAM、EfficientViT-SAM、FastSAM 通过替换笨重的 ViT-H 图像编码器为轻量级CNN,在性能略有牺牲的情况下大幅提升推理速度,使其更适合移动端应用。
    • 精度提升HQ-SAM 专注于提升分割结果的边界质量,使其更加精细准确。
    • 鲁棒性RobustSAM 致力于提升模型在图像退化(如噪声、模糊)情况下的表现。
    • 性能总结:在保持强大通用性的前提下,SAM的各类变体正在逐步弥补其在特定任务上的精度和效率差距,使其在实际应用中更加均衡。


posted @ 2026-03-18 14:28  MoonOut  阅读(120)  评论(0)    收藏  举报