想象你是一家米其林餐厅的老板,想培养一个能独当一面的厨师学徒。光给他一本食材图鉴和菜谱,他永远学不会“看到这条鱼就知道该清蒸还是红烧”。聪明的办法是:让经验丰富的老师傅当着学徒的面,边做边讲解,把每一步操作录下来当教案;然后学徒照猫画虎地练上几百遍,直到看见任何食材、听到任何指令,都能麻利地端出一盘好菜。LLaVA 干的就是这件事——它让强大的助手模型 GPT-4 当老师傅,自动生成“图片配对话”的教案(视觉指令数据),然后教一个会看图的“学徒”(视觉编码器 + 大语言模型)学会看图听话。本篇带你拆解这份“学徒培训手册”:数据怎么造的、训练分几步、模型如何理解指令、效果怎么考核,以及跟隔壁班的 InstructBLIP 差异在哪。
理解 LLaVA 的视觉指令学习机制,你就能判断自己的多模态场景该不该用它、怎么构造训练数据、如何评估效果——这是做多模态应用的基本功。
可视化演示
展示TCP拥塞控制中慢启动、拥塞避免、快重传与快恢复三个阶段的拥塞窗口动态变化,标记丢包事件与阈值线。
本节配有交互动效(进入视口后自动加载,约 3KB)。
TCP拥塞控制全过程 慢启动阶段cwnd指数增长,到达ssthresh后进入拥塞避免 cwnd=2^RTT 丢包后cwnd减半进入快恢复
多模态骨架
任何厨艺大师都离不开三样东西:一双能看清食材的眼睛、一个懂火候会调味的脑子,以及连接两者的神经通路。LLaVA 这位“学徒”也一样,它由三个器官组成:视觉编码器(ViT)负责“看”,大语言模型(LLM)负责“想”,中间还有一个投影层负责传递信息。视觉编码器通常来自 CLIP 的 ViT 模型,它把图片切成一格格小方块(patch),每块变成一个向量——就像学徒把一条鱼分成鱼头、鱼身、鱼尾,分别观察光泽和纹理。大语言模型则是“语言中枢”,储备了大量词汇、句法与逻辑常识。
问题是:眼睛输出的是“视觉向量”,大脑理解的是“文本向量”,两者语言不通。投影层就是那座桥——一个可学习的线性矩阵,把视觉向量翻译成大脑能读懂的“语言”。这个投影层的作用用一句话说,就是把视觉特征矩阵乘上一个可学习的投影矩阵,输出一组与文本 token 格式一致的视觉 token。LLaVA 原版刻意选择了最简单的线性层而非复杂的注意力网络,目的是尽量不丢视觉信息,让后面的大语言模型看到“原汁原味”的画面细节——这正是它与许多同期方法不同的起点。
有了眼睛、大脑和桥,学徒才算“长齐了器官”。但光长器官还不会做菜,接下来需要一份好教材——视觉指令数据。
- 视觉特征 H_v图片被切成小块(patch)后,视觉编码器把每一块编码成一个向量,所有向量合起来就是 H_v。
- 投影矩阵 W一个可学习的线性参数矩阵,初始随机,通过训练逐步调整到最优。
- 矩阵乘法W 与 H_v 相乘,把视觉维度 d_v 映射到语言模型熟悉的维度 d_q,完成“翻译”。
- 输出视觉 token X_v一组与文本 token 格式一致的向量,之后可以和指令 token 直接拼接。
视觉指令数据
学做菜最怕教材质量差。如果给学徒一本全是“适量盐、少许糖”的菜谱,他永远练不出真本事。LLaVA 的老师们想了个聪明的办法:让 AI 界公认的“大神厨” GPT-4 亲自示范,把做菜全过程录成视频配讲解,学徒照着练。为了造出这份教材,研究团队从公开的图文数据集 CC3M 中采样了 595K 张图片作为“食材库”,再人工编写一小批指令模板(比如“请详细描述这张图片的场景”),然后把图文对和指令模板一起交给 GPT-4,让 GPT-4 批量生成对话式问答。
这里有个巧妙的细节:GPT-4 本身是纯文本模型,它“看”不到图片,只能读到图片自带的标题和上下文。这相当于师傅没亲眼见食材,只看采购单就能推演出做法——听起来不可思议,但实验证明,基于标题生成的指令数据已经足够教会模型“看图说话”。最终,团队用 50 条左右的人工指令模板,繁衍出 158K 条高质量的视觉指令数据,成本主要是调用 GPT-4 API 的费用,远低于人工标注。
数据按用途分成三大类:conversation 是简短的多轮日常对话,教模型“闲聊”;detail description 是长篇细节描写,教模型“观察入微”;complex reasoning 是需要逻辑推理的复杂问题,教模型“举一反三”。多样性至关重要——如果只学“这是什么菜”,学徒遇到“这道菜哪里做得不对”就当场傻眼。三类数据按 40% / 40% / 20% 的比例混合,保证学徒的“本事”均衡发展,而不是只偏科一项。
这份由 GPT-4 师傅量身定做的教案,既便宜又丰富。但光有教材还不够,得按科学的训练计划去练——这就引出两阶段训练。
两阶段训练
培养学徒不能一上来就让他做满汉全席。明智的师父会分两步:先让学徒“认食材”——只看不说,把每种食材的特征刻进脑子里;再让他“上灶实操”——边看边做,练完整流程。LLaVA 的训练正是这两个阶段。阶段一叫特征对齐预训练:用 595K 图文对,冻结视觉编码器和语言模型,只训练投影层。这相当于学徒睁大眼睛看食材,大脑在暗暗建立“这个颜色等于新鲜”的映射,但还不上手做菜,因此数据不需要带指令问答,只要有图文配对即可。
阶段二叫端到端微调:改用 158K 视觉指令数据,冻结视觉编码器,同时训练投影层和语言模型,让学徒学会听到指令后完整地回应。注意视觉编码器在阶段二依然被冻结,原因是图片特征提取的能力已经足够通用,如果继续更新,反而可能让语言模型遗忘自己原本的语言能力——就像学徒已经开始练颠勺了,没必要再回头去学怎么辨别食材新鲜度。两个阶段的优化目标相同,都是最大似然估计,也就是让模型对标准答案里每个词给出的概率尽可能大。假设给定视觉 token 和用户指令 token,模型要逐词生成回答,训练目标就是最小化平均负对数似然。
阶段一让学徒的“眼睛到神经”通路成熟,阶段二让“神经到嘴边”的表达流畅。练完之后,学徒终于能听懂指令并开口说话了。那它具体是怎么听懂看懂的?进入下一节。
- 拼接输入图片投影后的视觉 token 与用户指令 token 拼成完整输入序列。
- 条件概率pθ(x_t | X_v, X_q, x_{<t}) 表示已知图片、指令和已经生成的 t-1 个词时,当前词 x_t 的概率。θ 是当前可训练的参数。
- 取对数求和把每步概率取对数后累加,连乘变成求和,避免极小数下溢,数值更稳定。
- 平均与负号除以 T 取平均并加负号,转化为“平均损失越小越好”的优化问题。
指令跟随机制
当顾客说“来一道清爽的夏日开胃菜”,学徒不会机械地重复菜谱,而是先把这句话拆成关键词——“清爽”“夏日”“开胃”,再结合眼前的新鲜食材做出判断。LLaVA 的指令跟随也是类似:把指令分词变成 token,与图片 token 揉在一起,让语言模型“边看边想”。推理时,输入由三部分拼成一条序列:图片投影后的视觉 token、指令文本的 token,有时还会加上一个分隔标记。由于投影层已经把视觉特征翻译成了文本嵌入空间的“语言”,语言模型可以像处理普通句子一样处理图片信息——视觉 token 就像句子里插入的一串“图片名词”。
举个例子,用户输入图片和指令“图里有什么?”后,模型实际看到的序列是:[图片 token 1][图片 token 2]…[图片 token N][图][里有][什么][?]。语言模型从这个混合序列出发,逐个预测下一个词。每一步生成时,模型根据当前隐状态计算一个概率分布,从中选出概率最高的词,拼到序列末尾,继续预测下一个词,直到输出结束符。
就这样,学徒看一眼食材(视觉 token),听一句指令(文本 token),在脑子里组织语言,一个字一个字地把菜“说”出来。效果如何?需要一场出师考核。
- 隐状态 h_t语言模型在第 t 步对整条序列(视觉 + 指令 + 已生成词)编码得到的向量,汇聚了当前所有信息。
- 词表投影 W_o一个把隐状态维度映射到词表大小的矩阵,输出每个候选词的原始得分。
- softmax 归一化把得分 z 转成概率分布,所有候选词概率之和为 1。
- 采样下一个词按概率分布选出词 x_t,拼到序列后进入下一步,直到遇到结束符。
评估方法
学徒学成后要考核,不能只听师父拍胸脯。正规考核有三关:笔试(标准题库)、师父点评(经验判断)、食客盲测(真实反馈)。LLaVA 的评估也分三层。第一层是笔试——传统基准测试:VQAv2 看图问答、GQA 场景理解、TextVQA 图中文字识别、MMBench 多模态综合等,模型在这些固定题库上算准确率。第二层是师父点评——用 GPT-4 当裁判:把模型的回答和参考答案一并交给 GPT-4,由它从准确性、相关性、忠实度三个维度打分(1 到 5 分)。第三层是食客盲测——人工评估者对比 LLaVA 与其他模型的回答,直接投票选出哪个更像“人话”。
三层评估各有价值:笔试客观但不全面,因为固定题库无法覆盖开放式指令;GPT-4 裁判成本低、可复现,适合快速迭代时的大规模筛选;人工盲测最接近真实用户体验,但耗时耗钱,一般只用于最终结论。研究者在论文中报告了一个关键数字:LLaVA-1.5 在 11 个常用基准上的平均得分比 InstructBLIP 高出约 9%,其中人工盲测中人类更偏好 LLaVA 回答的比例也明显占优。笔试的准确率公式很直白,就是把每个测试样本的正确与否记录下来,算一个平均正确率。
三关考核下来,LLaVA 的可信度有了数据支撑。不过,我们还没回答一个问题:它和隔壁班那个 InstructBLIP 到底谁的教学法更好?
- 样本数 N测试集一共多少张图、多少个问题。
- 指示函数当预测答案 ŷᵢ 与标准答案 yᵢ 一致时取值为 1,否则为 0。
- 求和平均所有正确数加起来除以总样本数,得到整体准确率。
方法对比
同一道菜,A 师傅主张“先背三年食材字典再上灶”,B 师傅主张“边做边认食材”。两种教法都能出师,但出来的学徒风格很不一样。InstructBLIP 和 LLaVA 就是两位师傅带出来的两种学徒。InstructBLIP 走的是 Q-Former 路线:用少量可学习的查询向量(query token)去“提炼”图像特征,把整张图压成 32 个 token 再送入 LLM,信息经过了一道压缩筛选,相当于学徒先画一幅“食材速写”再动刀。LLaVA 走的是线性投影路线,把视觉 token 全部保留(V1.5 用高清版 CLIP 可以产生 576 个 token),不做压缩,让 LLM 看到“原汁原味”的像素特征,相当于学徒直接盯着整条鱼下刀。
数据策略上两者也有显著差异。InstructBLIP 收集了 26 个公开的视觉语言数据集(涵盖 VQA、图像描述、视觉推理等),训练数据来源广但格式不统一;LLaVA 只用 GPT-4 合成的 158K 数据,数据量小但格式高度统一、指令质量高。这好比 A 师傅带学徒把各大菜系的菜谱都翻了一遍,B 师傅只精选了 158 道经典菜反复练到极致——你说不清谁更“见多识广”,但论实战出菜,B 师傅的学徒往往更利落。
架构上的取舍也很清晰:Q-Former 像“摘要笔记”,token 少、计算省,但可能丢细节;线性投影像“原文复印”,token 多、计算重,但细节保留全。实践数据显示,LLaVA-1.5 在 MMBench、VQAv2 等基准上反超 InstructBLIP,同时训练消耗仅有约 8 张 A100 跑一天,性价比极高。当然,LLaVA 也有短板:576 个视觉 token 让推理时的显存占用和首字延迟都高于压缩式方法,在长图、高分辨率场景下效率不如 InstructBLIP。选型时,这两种学徒各有绝活:想要快速出餐、算力紧张,InstructBLIP 的压缩式更合适;想要精雕细琢、保留细节,LLaVA 的投影式更耐打。
应用实践
学徒终于出师,可以到不同餐厅上岗了。LLaVA 这类模型在真实世界的工作,正是把“看图听话”的功夫用在各种具体岗位上。最典型的岗位是智能客服:用户拍一张产品损坏照片,问“这个裂纹影响使用吗?”,模型结合图片与指令生成安抚式回答;第二个岗位是电商内容运营:批量给商品图生成自然语言描述和卖点文案;第三个岗位是垂直医疗场景——LLaVA-Med 用医学教材和问答数据微调,可以辅助医生阅读影像报告。无论哪个岗位,落地时都要关注部署与调优的细节。
部署上要注意三点。一是显存:LLaVA-7B 用 FP16 推理大约需要 16GB 显存,可用 4bit 量化压到 6GB 左右,基本一张消费级显卡就能跑;二是速度:视觉 token 多导致 prefill 阶段偏慢,可配合 vLLM 的并行化或对视觉 token 做剪枝;三是微调成本:如果不想全量微调,用 LoRA 只训练低秩适配器,能省约 90% 的训练显存。数据层面,如果业务场景特殊(比如工业零件缺陷图),建议完全仿照 LLaVA 的数据配方:先用 GPT-4V 或人工编写指令模板,构造 10K 到 50K 条属于自己的视觉指令数据,再按“两阶段”流程微调,比直接拿通用模型硬跑效果好得多。
出师的学徒最终价值不在会背多少菜谱,而在能不能在真实后厨随机应变。LLaVA 教我们的正是:用聪明的数据 + 清晰的两阶段训练,让模型学会在真实任务里看图听话。理解它的方法论,你也能在自己的场景中复刻这套“徒弟养成计划”。
AI 应用场景
智能客服的图片售后问答
阶段:多模态推理 + 指令跟随
解决的问题:传统客服只能处理纯文本工单,用户发来一张碎裂屏照片问“还能用吗”,系统无法理解图像信息。LLaVA 式模型先由视觉编码器提取图像特征,再理解“还能用吗”的指令,生成“屏幕碎裂但显示正常,建议贴膜使用”这类结合图像与常识的回答,把图文联合理解直接落地到客服链路。
具体案例:某电商平台接入 7B 级视觉语言模型处理售后图片,将“退货原因分类 + 安抚话术生成”两个环节合并为一个指令任务,单次推理成本约 0.02 元,处理时长从人工 3 分钟降到 3 秒。
电商商品图自动文案生成
阶段:视觉指令数据构造 + 指令微调
解决的问题:运营团队每天要为上千张商品图写描述,风格不一且效率低。借鉴 LLaVA 数据配方:用 GPT-4V 按“卖点提炼、场景描摹、禁忌提醒”三类指令模板生成训练数据,再用 LoRA 微调小模型,让模型根据商品图直接输出多版文案。
具体案例:某服装品牌对 2 万张商品图构造 6 万条指令数据,微调后模型生成的文案人工采纳率达 78%,上新效率提升约 5 倍。
垂直行业问答助手(医疗/工业)
阶段:领域微调 + 多维度效果评估
解决的问题:通用模型看不懂医学影像或工业缺陷图。团队复用 LLaVA 两阶段思路:先用领域图文对做特征对齐,再用领域指令数据(如“这个 CT 图的病灶在哪里”)微调,最后用 LLM 裁判和领域专家盲测双重评估。
具体案例:某医疗 AI 公司用 LLaVA-Med 工作流微调出影像问答助手,在带解剖位置标注的问答评测中准确率超过基线 12.6%,医生盲测偏好率 68%。
Python 演示
import numpy as np class LLaVAToy: """极简 LLaVA:视觉特征 -> 投影 -> 与指令拼接 -> 预测""" def __init__(self, v_dim=16, h_dim=8, num_classes=3, seed=0): np.random.seed(seed) # 投影桥:把视觉特征映射到语言空间 self.proj = np.random.randn(h_dim, v_dim) * 0.1 # 指令 embed(2 种指令的向量表示) self.instr_embed = np.random.randn(h_dim, 2) * 0.1 # 分类头:输入是 [视觉语义, 指令语义] 拼接 self.head = np.random.randn(num_classes, h_dim + h_dim) * 0.1 # 记录损失曲线 self.loss_list = [] def softmax(self, z): e = np.exp(z - z.max()) return e / e.sum() def stage1_align(self, visuals, steps=50): """阶段一:只训练投影层,让视觉特征贴近语言空间""" for _ in range(steps): grad_proj = np.zeros_like(self.proj) loss = 0.0 for v in visuals: aligned = self.proj @ v target = np.tanh(v[:8]) # 伪目标向量,模拟语言空间表示 err = aligned - target loss += np.mean(err ** 2) grad_proj += 2 * (err[:, None] @ v[None, :]) self.proj -= 0.01 * grad_proj / len(visuals) self.loss_list.append(loss / len(visuals)) def stage2_finetune(self, visuals, instrs, labels, steps=80): """阶段二:端到端微调投影层和分类头""" for _ in range(steps): grad_proj = np.zeros_like(self.proj) grad_head = np.zeros_like(self.head) loss = 0.0 for v, ins_onehot, y in zip(visuals, instrs, labels): h_v = self.proj @ v h_q = self.instr_embed @ ins_onehot feat = np.concatenate([h_v, h_q]) logits = self.head @ feat p = self.softmax(logits) loss += -np.log(p[y] + 1e-9) grad = p.copy() grad[y] -= 1 grad_head += grad[:, None] @ feat[None, :] grad_proj += (self.head[:, :8].T @ grad)[:, None] @ v[None, :] self.proj -= 0.005 * grad_proj / len(visuals) self.head -= 0.005 * grad_head / len(visuals) self.loss_list.append(loss / len(visuals)) def predict(self, v, ins_onehot): h_v = self.proj @ v h_q = self.instr_embed @ ins_onehot feat = np.concatenate([h_v, h_q]) return int(self.softmax(self.head @ feat).argmax()) def main(): rng = np.random.default_rng(42) # 合成数据:3 个类别,每类 20 张 16 维"图片特征" visuals, labels = [], [] for cls in range(3): base = cls * 5 for _ in range(20): v = np.zeros(16) for k in range(base, min(base + 5, 16)): v[k] = rng.uniform(0.5, 1.0) visuals.append(v + rng.normal(0, 0.1, 16)) labels.append(cls) visuals = np.array(visuals) labels = np.array(labels) # 指令 one-hot:随机模拟"看图分类"和"闲聊"两种指令 instrs = np.eye(2)[rng.integers(0, 2, len(labels))] model = LLaVAToy() model.stage1_align(visuals, steps=50) model.stage2_finetune(visuals, instrs, labels, steps=80) print('阶段二前 5 步损失:', [round(x, 4) for x in model.loss_list[:5]]) print('最后 5 步损失:', [round(x, 4) for x in model.loss_list[-5:]]) acc = sum(model.predict(v, i) == y for v, i, y in zip(visuals, instrs, labels)) / len(labels) print('训练集准确率: {:.1%}'.format(acc)) if __name__ == '__main__': main()
self.proj = np.random.randn(h_dim, v_dim) * 0.1投影桥:随机初始化一个小矩阵,是两阶段训练都要优化的核心参数。self.head = np.random.randn(num_classes, h_dim + h_dim) * 0.1分类头:吃下“视觉语义 + 指令语义”拼接后的向量,输出每类得分。aligned = self.proj @ v视觉特征经过投影桥,映射到语言空间的“翻译”过程。model.stage1_align(visuals, steps=50)阶段一训练:只更新投影层,模拟 LLaVA 的特征对齐预训练。model.stage2_finetune(visuals, instrs, labels, steps=80)阶段二训练:同时更新投影层和分类头,模拟端到端微调。feat = np.concatenate([h_v, h_q])图文融合:把视觉向量与指令向量直接拼接成一条特征,模拟 token 拼接。p = self.softmax(logits)输出概率分布:选出下一个词(或类别),对应语言模型的采样机制。acc = sum(model.predict(v, i) == y for v, i, y in zip(visuals, instrs, labels)) / len(labels)用训练集准确率验证“学徒”是否真正学会了看图听话。
常见误区
误区“LLaVA 训练用的 158K 数据肯定请了很多标注员一张张去标注,不然质量怎么保证?数据成本一定高得吓人。”
正解数据主要由 GPT-4 自动生成。人工只写了 50 条左右指令模板,并收集现成的 595K 图文对(来自公开数据集),GPT-4 根据图片标题批量繁衍出对话、描述、推理三种教案,成本主要在 API 调用费,而不是人工标注费。
为何常见:大家习惯了“高质量数据必须人工标注”的传统范式,忽略了 LLM 本身也能当标注员这一新的数据生产方式。
误区“LLaVA 训练了两次,第一次训投影,第二次训投影加语言模型,那就是把整个网络从头到尾重复训练,很费算力。”
正解两次训练的目标和参数范围完全不同。阶段一用大量图文对建立“视觉→文本”的映射(只训投影层),阶段二用指令数据学“看懂指令并回答”(投影层 + LLM 可训练,视觉编码器冻结)。这不是重复劳动,而是先打通通路、再训练技能的递进。
为何常见:只看训练流程表容易忽略冻结策略和数据差异,误以为只是简单的“多训一轮”。
误区“模型能回答'图里有什么',本质就是个升级版图像分类器,把图片映射到固定类别输出。”
正解指令跟随是开放式生成。指令可以是“详细描述这张图的氛围”“如果在下雨天拍摄会有什么不同”这类没有标准答案的问题,模型输出的是多轮对话、细节描写、逻辑延伸,而不是 closed-set 分类。LLM 的语言能力被完整保留,并在视觉信息的引导下发挥。
为何常见:因为常见的图文任务(分类、检索)都是“输入图像、输出固定标签”的范式,容易形成惯性认知。
误区“LLaVA 用线性投影、InstructBLIP 用 Q-Former,不就是把视觉特征送进 LLM 的接口不同吗?效果应该差不多。”
正解差异直接影响视觉信息的保留量与计算成本。Q-Former 把整图压成 32 个 token,相当于写摘要,可能丢细节;线性投影保留 576 个 token,相当于原文复印,细节全但推理更贵。这两种取舍导致基准表现和部署成本都有明显差别,LLaVA-1.5 在 11 个基准上平均领先 InstructBLIP 约 9%。
为何常见:单看结构图都是“视觉特征进 LLM”,容易忽略 token 数量与信息压缩背后的工程代价。
面试题
Q1. LLaVA 中哪个组件负责把图片变成 token?
- A.大语言模型(LLM)
- B.视觉编码器(ViT)← 正确答案
- C.线性投影层(Proj)
- D.分类输出头(Head)
答案:B。视觉编码器把图片切成 patch 并编码成向量序列;投影层只做维度“翻译”,LLM 负责生成文本,分类头用于纯分类任务。
Q2. LLaVA 的视觉指令数据主要由谁自动构造?
- A.众包人工标注员
- B.GPT-4 大模型← 正确答案
- C.随机噪声生成器
- D.网络爬虫程序
答案:B。LLaVA 用公开图文对 + 人工指令模板喂给 GPT-4,由 GPT-4 批量生成 158K 条对话式指令数据;人工只写少量模板。
Q3. LLaVA 两阶段训练中,阶段一“特征对齐预训练”更新哪些参数?
- A.更新视觉编码器全部参数
- B.更新投影层和语言模型
- C.只更新线性投影层参数← 正确答案
- D.更新全部三个组件参数
答案:C。阶段一冻结视觉编码器和 LLM,只训练投影层,目的是建立视觉到文本的映射;这相当于先打通“眼睛到大脑”的通路。
Q4. LLaVA 把视觉特征送入大语言模型前,用什么方式做对齐?
- A.多层 Q-Former 注意力
- B.单层线性投影矩阵← 正确答案
- C.卷积神经网络降维
- D.随机截取部分区域
答案:B。LLaVA 的核心设计是简单的线性投影,保留全部视觉 token;Q-Former 是 InstructBLIP 的方案。线性投影更省参数且不压缩信息。
Q5. LLaVA 的 158K 视觉指令数据包含哪些类型?
- A.简短日常对话← 正确答案
- B.图片细节描述← 正确答案
- C.复杂逻辑推理← 正确答案
- D.语音转写文本
答案:ABC。数据分为 conversation(简短对话)、detail description(细节描述)、complex reasoning(复杂推理)三类,语音转写不属于视觉指令数据。
Q6. 推理时 LLaVA 如何生成回答?
- A.全词表一次性并行生成
- B.自回归逐词生成← 正确答案
- C.聚类中心直接输出
- D.从检索库复制答案
答案:B。LLaVA 由 LLM 自回归解码,每一步都依赖视觉、指令和已生成的词,逐词输出直到结束符,类似“学徒边说边想下一句”。
Q7. 与 InstructBLIP 相比,LLaVA 架构上最显著的特点是?
- A.用 Q-Former 压缩视觉信息
- B.用线性投影保留视觉细节← 正确答案
- C.集成了音频编码模块
- D.无需任何视觉编码器
答案:B。Q-Former 是 InstructBLIP 的标志,LLaVA 用线性投影直接映射,视觉 token 多、细节全,代价是推理显存开销更大。
Q8. 评估 LLaVA 指令跟随效果的方式包括哪些?
- A.固定基准的准确率← 正确答案
- B.GPT-4 作为裁判打分← 正确答案
- C.人工对比盲测← 正确答案
- D.检测随机噪声水平
答案:ABC。三层评估:VQAv2 等基准笔试、GPT-4 评分、人工盲测;噪声检测与指令跟随的语义质量无关。
Q9. LLaVA 阶段二端到端微调时,冻结了哪个组件?
- A.大语言模型(LLM)
- B.线性投影层(Proj)
- C.视觉编码器(ViT)← 正确答案
- D.词表投影头 Wo
答案:C。阶段二冻结视觉编码器,训练投影层和 LLM,避免低质量图像特征扰动语言模型已有的语言能力。
Q10. 关于 LLaVA 指令跟随机制,下列哪些说法正确?
- A.视觉 token 与文本 token 拼接后送入模型← 正确答案
- B.投影层把视觉特征映射到文本嵌入空间← 正确答案
- C.回答概率是逐词条件概率的连乘← 正确答案
- D.视觉编码器全程参与参数更新
答案:ABC。推理时序列为 [Xv, Xq] 拼接;投影层做“翻译”;生成概率按自回归方式连乘。D 错误:阶段二冻结了视觉编码器,它并不参与参数更新。