【面经】多模态大模型
第一部分:知识体系框架
- 基础基石:深度学习与NLP/CV核心
-
Transformer架构:(基本必考)Self-Attention、Multi-Head Attention、Positional Encoding(正余弦、RoPE、ALiBi)、Feed-Forward Network、LayerNorm、残差连接。手撕Multi-Head Attention代码。
-
CV基础:CNN(ResNet)、ViT(Vision Transformer)原理、图像Patch Embedding、位置编码。
-
NLP基础:词袋模型、ngram、马尔科夫链
-
语音基础:声音(如频率、幅度)、TTS、ASR
-
其他:如eeg
-
基础NLP/CV任务:语言建模(LM)、文本分类、目标检测(如DETR)、图像分类、分割。
- 大语言模型 (LLM) 核心
-
架构变体:Causal Decoder (GPT系列)、Encoder-Decoder (T5)、Prefix LM。为什么现在主流Decoder-only?
-
预训练:Next Token Prediction,数据来源与清洗,Tokenizer(BPE, SentencePiece)。
-
高效训练:混合精度(FP16/BF16)、梯度累积、ZeRO优化器(Stage 1/2/3)、FlashAttention 1&2。
-
参数高效微调 PEFT:LoRA(原理、为什么能减少参数、合并方式)、Adapter、Prefix Tuning。面试很喜欢问LoRA。
-
对齐技术:RLHF(奖励模型、PPO算法)、DPO(直接偏好优化,更简单常见)。了解基本流程和区别。
-
推理优化:KV-Cache、量化(GPTQ, AWQ, GGUF)、推测解码。
- 多模态核心
-
常见范式
-
对齐:CLIP, ALIGN (双塔模型,对比学习)。CLIP的InfoNCE loss,训练细节。
-
融合:LLaVA, Flamingo, BLIP-2, Qwen-VL, InternVL。
-
-
关键组件与技术
-
视觉编码器:CLIP-ViT, SigLIP, DINOv2。为什么用冻结的预训练ViT?
-
连接器/适配器:MLP Projector (LLaVA), Q-Former (BLIP-2), Perceiver Resampler (Flamingo)。它们的作用。
-
位置注入:绝对/相对位置,2D RoPE。
-
多模态训练阶段:预训练(图-文对)-> 指令微调(多模态对话数据)-> 对齐/DPO。
-
-
高级能力:视频理解(帧采样、时空注意力)、Referring expression分割/检测、具身智能基础、Any-to-Any(如NextGPT, AnyGPT)。
- 工程与工具
-
深度学习框架:PyTorch (必须精通,尤其是nn.Module, Dataset, Dataloader, autograd)。
-
分布式训练:torch.distributed,torchrun,NCCL。
-
常用库:HuggingFace (transformers, datasets, peft, accelerate), DeepSpeed, vLLM, XTuner, LLaMA-Factory。
-
评估基准:MMLU, C-Eval (文本);MMBench, SEED-Bench, MME, MMMU, MathVista (多模态)。
常见题
Self-Attention的计算过程,包括Q, K, V是怎么来的,公式是什么,以及为什么需要除以dk\sqrt{d_k}dk?另外,Multi-Head Attention是如何工作的?
LoRA(Low-Rank Adaptation)是目前微调LLM最常用的方法。请解释LoRA的核心思想——它如何做到“参数高效”?假设我们要微调一个7B的模型,使用LoRA(rank=8)大约能节省多少参数量和显存?最后,在推理时,我们是否需要保留原始的base model和LoRA weights两个文件?
请描述CLIP的训练过程——它的batch组成、损失函数的形式(InfoNCE)。另外,CLIP有什么明显的缺点?比如在细粒度任务(计数、属性识别)上为什么表现不佳?
请说明LLaVA(Large Language and Vision Assistant)的核心架构。它有哪些训练阶段?每个阶段分别冻结/更新哪些模块?(例如:视觉编码器、MLP连接器、LLM)。如果你来改进LLaVA,你会怎么做?
假设我们要在8张A100(80G)上训练一个7B的LLM + Vision Encoder(~300M参数)。如果使用bf16混合精度,需要多大的显存?你会采用哪些分布式并行策略(DP, ZeRO, TP, PP)?如何用HuggingFace的accelerate或DeepSpeed配置实现?
设计一个小型多模态模型,能够根据用户的口语描述,从一张复杂的街景图中“高亮”出所有红色车辆。不用考虑实时性,请描述你的模型架构、损失函数、训练数据构造方法。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)