AI2025-03-3045 分钟

多模态大模型

解析多模态大模型的核心架构:CLIP 的对比学习、ViT 图像 patch 编码、图文跨模态对齐机制,以及 VQA、图像描述等多模态任务的技术方案。

多模态大模型

多模态大模型

Q1. 为什么ViT不能简单地像处理文本词元那样,为每个图像块分配一个唯一的、离散的ID,而是必须采用线性投影生成连续的嵌入向量?

文本词元来自有限的词汇表(几万个),可以用离散ID索引。但图像块的可能组合是无限的——同一个16×16像素区域的RGB值组合数量远超任何词汇表大小。用离散ID需要一个天文数字大的codebook,而且语义相似的图像块(比如不同亮度的同一纹理)会被分配完全不同的ID,丢失了连续性信息。线性投影保留了像素值的连续特性,语义相近的图像块在嵌入空间中也相近。

Q2. 在CLIP训练过程中,为什么需要同时最大化匹配图文对的相似度和最小化非匹配对的相似度?

如果只最大化匹配对的相似度,模型会学到一个退化解——把所有输入映射到同一个点,这样所有对的相似度都是1。加上最小化非匹配对的对比目标后,模型被迫学习区分不同图文对的特征,在拉近匹配对的同时推开不匹配的。这就是对比学习的核心思想:同时需要正例吸引力和负例排斥力,才能学到有意义的表征空间。

Q3. BLIP-2采用了冻结预训练ViT和LLM,仅训练Q-Former的策略。这种设计的核心动机和优势是什么?

核心动机是效率。ViT和LLM各自在大规模数据上预训练过了,重新训练成本极高且可能破坏已有能力。冻结它们只训练中间的Q-Former(参数量很小),大幅降低训练成本和数据需求。优势:1)可以灵活组合不同的视觉编码器和语言模型;2)训练数据量需求小得多;3)保留了两个基础模型的能力不退化。代价是Q-Former成为信息瓶颈,视觉信息经过压缩后可能丢失细节。

Q4. BLIP-2是如何连接预训练的图片编码器和预训练LLM的?为何不直接将视觉编码器的输出连接到语言模型,而要引入Q-Former这一中间层结构?

Q-Former用一组可学习的query向量通过交叉注意力从ViT的输出中提取固定数量的视觉token,再输入LLM。不直接连接的原因:1)维度不匹配——ViT和LLM的隐层维度可能不同;2)ViT输出太多token(一张图可能200+),直接喂给LLM会大幅增加计算量;3)ViT的表征空间和LLM的文本空间有gap,需要Q-Former做桥接和压缩。Q-Former本质是一个信息瓶颈,把视觉信息压缩到LLM能理解的少量token里。

Q5. 将多模态特征映射到文本特征空间时不可避免会产生信息损失,交叉注意力、Q-Former和线性映射等方法的信息保留能力有什么区别?

信息保留能力从高到低:交叉注意力 > Q-Former > 线性映射。交叉注意力让LLM的每一层都能直接attend到所有视觉token,信息最完整但计算量大。Q-Former用少量query压缩视觉信息,是选择性保留,会丢失query没关注到的细节。线性映射最简单,一个矩阵乘法完成维度转换,但它是无条件的固定变换,没有选择性。LLaVA证明了简单的线性映射加大量数据训练也能达到很好的效果,说明LLM有很强的跨模态理解能力。

Q6. BLIP-2模型的图像-文本对比学习、图像-文本匹配、基于图像的文本生成三个任务分别是什么作用?与今天的Qwen-VL等多模态模型有什么区别?

三个任务各有分工:ITC(对比学习)让图文在向量空间对齐;ITM(匹配)做细粒度的图文匹配判断;ITG(文本生成)让模型学会根据图像生成文本。这是一个渐进式的预训练策略。今天的Qwen-VL等模型更简洁——通常直接用视觉编码器+投影层+LLM的架构,省去了Q-Former,用更多的训练数据和更大的模型来弥补架构的简化。趋势是架构越来越简单,靠数据和规模来提升效果。

Q7. 基于已经预训练好的模态编码器、模态解码器、文本大模型做多模态模型,多模态预训练和多模态微调两个阶段分别需要什么数据,需要冻结模型的哪些参数,需要根据具体任务和数据来确定。

预训练阶段:用大量图文对数据做模态对齐,冻结视觉编码器和LLM,只训练连接层(投影层/Q-Former)。目的是让投影层学会把视觉特征翻译成LLM能理解的token。微调阶段:用高质量的指令数据(如VQA、图像描述、多模态对话),解冻LLM(或用LoRA),可选择性地解冻视觉编码器后几层。预训练数据量大但质量要求低,微调数据量小但质量要求高。冻结策略没有定论,要看数据量和计算资源权衡。

Q8. CLIP和BLIP-2在处理图像时,都会将其预处理成固定尺寸。如何处理长宽差异巨大的图像?

几种方法:1)直接resize会改变长宽比,导致物体变形;2)padding——按长边缩放,短边填黑,保持比例但浪费计算;3)动态分辨率——把图像切成多个固定尺寸的子图分别编码,最后拼接表征(如Qwen-VL的做法);4)AnyRes——保持原始比例,按固定块大小切割,产生不同数量的token。现在主流趋势是动态分辨率,既保持图像比例又适应不同尺寸。

Q9. 在BLIP-2实现视觉问答(VQA)时,模型是如何同时处理输入的图像和文本问题的,需要根据具体任务和数据来确定。

图像先过ViT编码器得到视觉特征,Q-Former的可学习query通过交叉注意力从视觉特征中提取信息,同时文本问题也输入Q-Former做自注意力。Q-Former输出的视觉token和文本问题一起送入冻结的LLM。LLM把视觉token当作特殊的前缀token,结合文本问题自回归生成答案。关键在于Q-Former阶段,图像和问题已经有了交互,Q-Former会根据问题内容选择性地关注图像的不同区域。

Q10. 以一个你熟悉的开源多模态模型为例,输入一张512×512的图片和一个100词元的问题,其首字延迟大约是多少,其中模态编码器、Q-Former和LLM部分各占多少,需要根据具体任务和数据来确定。

以LLaVA-1.5-7B为例,在A100上首字延迟约200-500ms。ViT编码器处理512×512图片约30-50ms(产生约576个视觉token);线性投影层几乎可忽略(<1ms);LLM预填占大头(150-400ms),因为要处理576+100=676个token的注意力计算。视觉token数量直接影响延迟,这也是为什么需要压缩视觉token数。

Q11. 能够操作计算机图形界面的多模态大模型每步操作的延迟通常需要几秒,延迟的构成是什么,需要根据具体任务和数据来确定。

每步通常需要2-5秒。延迟构成:1)截图采集(~100ms);2)图像编码(~50-100ms),屏幕截图分辨率往往较高需要更多视觉token;3)LLM推理(~1-3秒),这是大头,需要理解当前屏幕状态并决定下一步操作;4)执行操作(~100-500ms),包括鼠标移动和点击。类似Claude Computer Use、GPT-4o操作电脑每步都需要等待几秒,主要瓶颈在LLM推理。

Q12. 人类对不熟悉的界面操作较慢,但对熟悉的界面操作很快。如何让多模态模型像人类一样快速操作熟悉的界面?

人类快是因为建立了“背景→操作”的直觉映射,不需要每次都重新理解界面。可以模仿这个机制:1)缓存常见界面的视觉特征和元素位置,避免重复视觉理解;2)建立“界面状态→操作序列”的快捷映射,知道某个界面的常见操作流程,跳过推理直接执行;3)用DOM/无障碍树而不是截图作为输入,减少视觉处理开销。本质是用经验缓存换推理速度。

Q13. 现有一个能力较弱的多模态模型和一个能力较强的文本模型(如DeepSeek-R1),如何结合两者的能力,回答多模态问题?

用多模态模型做感知,文本模型做推理。具体流程:1)多模态模型先对图像生成详细的文本描述(内容、布局、文字、数字等);2)把描述和用户问题一起输入强文本模型,用它的推理能力回答。这种'感知+推理'的分工可以充分发挥各自优势。比如用弱VLM描述医学影像,用DeepSeek-R1做诊断推理。

Q14. 如果一个垂直领域(如医学)的图文对训练数据极为有限,如何为该领域构建多模态大模型,需要根据具体任务和数据来确定。

几种策略:1)基于通用多模态模型做微调,利用迁移学习,少量领域数据就能获得不错效果;2)用LLM生成合成数据——根据少量真实样本生成更多图文对;3)分阶段训练——先用大量通用数据做模态对齐,再用少量领域数据微调;4)用强文本模型+弱视觉的构架,将图像先转成文本描述再用文本模型处理。

Q15. 如何构建一个AI照片助手,能够索引用户的上万张照片,根据用户的查询高效地检索到相关照片,需要根据具体任务和数据来确定。

索引阶段:1)用CLIP编码所有照片得到向量,存入向量数据库;2)用VLM给每张照片生成文本描述(场景、人物、物体、所在地点等),存储为元数据;3)提取时间、GPS等EXIF信息。检索时:用CLIP编码用户查询做向量检索,同时用关键词搜索文本描述,用时间/地点等元数据过滤。支持自然语言查询如'去年夏天在海边的照片'。

Q16. 端到端语音模型中,语音是如何转换成词元表示的,需要根据具体任务和数据来确定。

主流方法是用语音编码器(如Whisper的encoder、EnCodec)把连续音频波形压缩成离散的token序列。具体步骤:音频先转成梅尔频谱图,再用编码器提取特征,然后通过量化将连续特征映射到codebook中的离散索引,得到语音token。这些token和文本token共享同一个词汇表或用特殊前缀区分,统一输入LLM。输出时反过来,用解码器把语音token还原成波形。

Q17. 端到端语音模型是如何实现在工具调用进行过程中,继续与用户实时语音交互的?工具调用的结果与用户的语音输入在模型的上下文中如何区分,需要根据具体任务和数据来确定。

工具调用是异步的。模型发出工具调用请求后,不阻塞等待,继续监听用户语音输入。工具返回结果时,作为特殊的系统信息插入上下文,与用户语音用不同的特殊标记区分(如不同的token类型或特殊分隔符)。这需要模型在训练时就见过多流並行的输入模式——同时处理用户语音流和工具返回流,并根据两者的优先级决定回应策略。

Q18. 图像生成模型(如Stable Diffusion)与图像理解模型(如CLIP、BLIP-2)在技术路线上有什么异同?为什么扩散模型在推理时需要噪声,而自回归模型不需要,需要根据具体任务和数据来确定。

相同点:都用编码器提取视觉特征,都用文本条件引导。不同点:理解模型把图像压缩到语义空间,生成模型从语义空间重建像素。扩散模型需要噪声是因为它的训练目标是学习去噪——输入加噪图像,输出去噪后的图像。推理时从纯噪声开始,逐步去噪得到清晰图像。自回归模型不需要噪声,因为它是通过一个一个生成token来构建输出,随机性来自采样过程而不是输入噪声。

RELATED

AI2025-04-01

为分类任务微调表示模型

深入讲解为分类任务微调表示模型的完整流程:分类头设计、全量微调 vs LoRA 的选择、小样本场景下的 SetFit 方案,以及过拟合防范与模型评估。

Read next25 分钟
AI2025-03-31

构建文本嵌入模型

从 Sentence-BERT 到对比学习(SimCSE),再到 Matryoshka 嵌入和 MTEB 基准评估——系统讲解如何构建和优化高质量文本嵌入模型。

Read next25 分钟