真实面经题目 · 原创解析
BLIP 如何通过数据清洗和多任务损失提升图文训练数据质量?
这题考 BLIP 里数据 bootstrapping、噪声图文对清洗和多任务预训练目标的关系。回答要聚焦原始 BLIP,不要讲成 BLIP-2 的 Q-Former 两阶段训练。
真实面经题目 · 原创解析
这题考 BLIP 里数据 bootstrapping、噪声图文对清洗和多任务预训练目标的关系。回答要聚焦原始 BLIP,不要讲成 BLIP-2 的 Q-Former 两阶段训练。
BLIP 的核心思路可以概括为用模型反过来提升图文训练数据,再用多任务目标同时学习理解和生成。原始互联网图文对噪声很大,caption 可能缺失、错配、太短或只描述局部。BLIP 用 captioner 为图片生成更干净的候选描述,再用 filter 判断图片和文本是否匹配,形成 CapFilt 式的数据清洗和重标注流程。训练目标上通常讲三个:image-text contrastive loss 拉近匹配图文、拉远不匹配图文;image-text matching loss 判断一对图文是否真实匹配;language modeling loss 让模型根据视觉条件生成文本。这样一方面提高数据质量,另一方面让同一个模型同时具备检索、匹配和生成能力。面试里要强调它不是只换了一个 loss,而是数据清洗和多任务训练一起降低噪声、增强对齐。
多模态预训练常用的大规模图文对来自网页,问题是 caption 噪声高、图文错配、描述过泛、OCR 或广告文本混入、同图重复和低质量图片。BLIP 要解决的是图文数据本身不可靠时,如何让训练信号更干净,而不是单纯堆更多数据。
BLIP 的数据 bootstrapping 思路是用已有模型参与数据重构:captioner 为图片生成更贴图的合成 caption,filter 再判断原始或合成文本与图片是否匹配,过滤掉明显错配和低质样本。这样做能把网页噪声图文对转成更适合预训练的图文监督。
Image-text contrastive loss 把匹配图片和文本的表示拉近,把 batch 内不匹配样本拉远,主要服务检索和粗粒度语义对齐。它能让模型先知道哪段文本大体描述了哪张图,但只靠它不一定能区分细粒度错配。
Image-text matching loss 通常把图文对输入跨模态融合模块,判断这对图文是否匹配。它比纯 embedding 相似度更细,能关注局部对象、属性、关系和文本细节,因此常用来补足对比学习的粗粒度限制。
Language modeling loss 让模型在视觉条件下预测 caption token,训练图到文生成能力。它不仅服务 captioning,也会迫使视觉信息进入语言解码过程,让模型学到更可生成的语义表示。
好的回答要把数据和 loss 串起来:清洗后的图文对减少错误监督,对比和匹配目标提升理解与检索,生成目标提升 caption 能力。三者合起来,BLIP 才能在理解类任务和生成类任务之间共享表示,而不是只优化单一任务。
对比学习擅长粗粒度区分匹配和不匹配,但对局部属性、关系、数量和细节错配不一定敏感。加入 image-text matching 可以在融合表示上做更细的匹配判断。
captioner 负责给图片生成更贴合视觉内容的候选描述,filter 负责判断文本和图片是否匹配、过滤低质或错配样本。二者合起来降低原始网页 caption 的噪声。
对比损失服务图文检索和表示对齐,匹配损失服务 VQA、NLVR、细粒度图文判断等理解任务,语言建模损失服务 image captioning 和生成式图文任务。
如果 filter 过严会损失长尾和困难样本,captioner 生成错误会引入新噪声,模型自举还可能放大已有偏差。因此要保留人工验证集、分桶评估和噪声鲁棒性检查。