真实面经题目 · 原创解析
LLaVA 的整体结构如何把视觉编码器输出接入语言模型?
这题考 LLaVA 的视觉编码器、投影层、语言模型和指令微调流程,回答要讲清视觉特征如何变成 LLM 可消费的 token 表示。
真实面经题目 · 原创解析
这题考 LLaVA 的视觉编码器、投影层、语言模型和指令微调流程,回答要讲清视觉特征如何变成 LLM 可消费的 token 表示。
LLaVA 可以理解成把一个视觉编码器和一个大语言模型通过连接层接起来,再用图文指令数据训练成视觉对话模型。典型结构有三块:第一是视觉编码器,例如 ViT 类模型,把输入图片切成 patch 并编码成视觉特征;第二是投影层或适配器,把视觉特征映射到语言模型的 embedding 维度,让视觉向量能像一串特殊 token 一样进入 LLM;第三是语言模型,接收视觉 token、文本问题和历史上下文后自回归生成答案。训练通常先做视觉-语言连接对齐,让 projector 学会把视觉表示映射到语言空间,再用多模态指令数据训练模型按人类问题回答。推理时,图片先经过视觉编码器和 projector,得到视觉 token;这些 token 与用户文本 prompt 拼接或按模板组织后输入 LLM,LLM 基于视觉条件生成回答。回答时还要补充限制:如果视觉编码分辨率、投影层容量、指令数据或 OCR/定位样本不足,模型就可能在细粒度识别、空间关系和事实 groundedness 上出错。
LLaVA 的核心不是重新发明一个完整多模态 Transformer,而是把已有视觉编码器的输出接入已有 LLM。视觉侧负责把图片转成特征,语言侧负责理解指令和生成自然语言,中间的连接层负责把两种表示空间对齐。
输入图片会被视觉编码器切分和编码,得到一组 patch 或全局视觉特征。这些特征保留了物体、场景、颜色、布局等信息,但它们的维度和语义空间并不能直接被 LLM 理解,所以还需要投影或适配。
投影层通常是线性层或小型 MLP,把视觉特征映射到 LLM 的 token embedding 维度。面试里要强调它不是简单改变 shape,而是在训练中学习把视觉表示变成语言模型能使用的条件 token。这个连接层容量太弱会丢信息,太复杂则增加训练和过拟合风险。
LLM 接收视觉 token、用户问题和对话模板后,自回归生成答案。视觉 token 提供 grounding,文本 prompt 提供任务意图,LLM 的语言能力负责推理、组织答案和多轮对话。模型答得好不好,取决于视觉信息是否被正确编码和是否通过指令微调学会使用这些信息。
一个清晰回答应把训练流程拆开:先让 projector 学会把视觉特征接到语言空间,避免 LLM 完全读不懂视觉 token;再用多模态问答、描述、推理和对话指令数据训练模型按用户意图回答。不同阶段冻结或更新哪些模块,会影响成本、稳定性和最终能力。
推理时,图片先经过视觉编码器和 projector,得到一串视觉 token;这些 token 与文本问题、系统模板和历史上下文一起输入语言模型。LLM 生成答案时并不会重新看原始图片,而是使用已经编码进上下文的视觉表示,所以视觉分辨率、token 数量和模板设计都会影响效果。
它把视觉编码器输出映射到 LLM 可用的 embedding 空间,是视觉和语言之间的接口。没有有效 projector,LLM 即使很强也难以利用图片特征。
不是。原始图片先被视觉编码器和 projector 转成视觉 token,LLM 处理的是这些视觉 token 加文本 prompt 组成的上下文。
连接层对齐只能让视觉特征进入语言空间,指令微调让模型学会按用户问题使用视觉信息,例如回答、描述、推理、拒答或澄清。
可能是输入分辨率不足、视觉编码器 patch 粒度太粗、视觉 token 被压缩太强、projector 丢失局部信息,或者训练集中小目标问答样本不足。
纯文本 LLM 只有文本上下文,LLaVA 额外引入图片编码后的视觉 token,并通过多模态训练让语言模型能基于视觉信息生成答案。