2024 SOTA多模态大模型架构设计的最佳实践

作者:Dreamweaver,SJTU × AIGC/LLM,腾讯公司 · 多模态应用研究 (实习)
声明:本文只做分享,版权归原作者,侵权私信删除!
原文:https://zhuanlan.zhihu.com/p/706145455

我们会发现,最新流行的MLLM架构大多采用类LLaVA的ViT+MLP+LLM范式。得益于LLaVA的精简设计、数据和训练高效性、更强的baseline性能,LLaVA架构建立起了良好的应用生态。国内也涌现出了高质量的MLLM,InternVL拉近了开源模型与GPT-4V的差距,具备4K高分辨率处理能力,而MiniCPM-V实现了高效端侧部署,让小模型也能抗衡顶尖的闭源模型。最新的Cambrian-1则是鼓励研究者跳出当前MLLM的思维定式,不断探索视觉表征更多的可能性。通往AGI有多条路径,而原生的多模态大模型则是必经之路。

本文重点介绍LLaVA-NeXT、InternVL、MiniCPM-V系列,以及以视觉为中心的Cambrian-1,简单介绍VILA1.5和CogVLM2。截止2024.06,持续更新ing... 干货很多,欢迎大家多多点赞、收藏、讨论!

LLaVA-NeXT系列

LLaVA-1.5

23年10月,LLaVA-1.5发布,通过在视觉和语言模态间添加简单的MLP层实现了训练样本高效性,为多模态大模型在低数据业务场景的落地提供了可能。

[2310.03744] Improved Baselines with Visual Instruction Tuning[1]

图片

LLaVA-NeXT

24年1月,LLaVA-NeXT(1.6)发布,在1.5的基础上保持了精简的设计和数据高效性,支持更高的分辨率、更强的视觉推理和OCR能力、更广泛场景的视觉对话。模型分为两阶段训练:阶段1预训练只训练连接层,阶段2指令微调训练整个模型。

LLaVA-NeXT: Improved reasoning, OCR, and world knowledge[2]

图片

  • • 动态高分辨率AnyRes:如上图,为了让模型能感知高分辨率图像的复杂细节,对图像进行网格划分。比如,对于672x672的图像,一方面按2x2的网格切分为4张336px的输入图像送给ViT编码成特征,另一方面将图像直接resize到336px进行编码,最后将两部分特征合并输入到LLM中,这样模型具备了全局和局部的视觉推理能力。

  • • 指令数据混合:一方面保证指令数据具有高质量、多样性,反映真实场景的广泛用户意图;另一方面,补充文档和表格数据,提升模型的OCR和图表理解能力。

  • • 扩大LLM尺寸:考虑了7B、13B、34B的LLM。

24年5月,团队发布基于更强LLM的LLaVA-NeXT版本,支持LLaMA3(8B)和Qwen1.5(72B/110B)。更大的LLM提供更好的视觉世界知识和逻辑推理能力,最大的模型接近GPT-4V的性能,同时保证了训练高效性。

LLaVA-NeXT: Stronger LLMs Supercharge Multimodal Capabilities in the Wild[3]

LLaVA-NeXT-Video

24年4月,LLaVA-NeXT-Video发布,展现出强大的zero-shot视频理解能力。LLaVA-NeXT中的高分辨率图像动态划分可以很自然地迁移到视频模态用来表示视频的多帧,使得只在图文模态上训练的LLaVA-NeXT能在视频任务上泛化。此外,推理时的长度泛化用于有效处理超出LLM最大长度的长视频输入。基于LLaVA-NeXT-Image模型,作者发布了在视频数据上监督微调的LLaVA-NeXT-Video,以及在AI反馈的监督下使用DPO偏好对齐的LLaVA-NeXT-Video-DPO。使用SGLang部署和推理,支持可扩展的大规模视频推理。可以想到,这有助于海量视频的高效文本标注,催生了未来更强大视频生成模型。

LLaVA-NeXT: A Strong Zero-shot Video Understanding Model[4]

图片

  • • AnyRes:可以将N帧视频看作{1xN}的网格,而LLM的最大长度限制了可以处理的帧数,很自然地会考虑对图像进行下采样减少每帧token数,但作者发现为保证效果仍只能处理16帧。

  • • 长度泛化:基于LLM的长度外推技术(RoPE的线性扩展),推理时扩展2倍,从之前的16帧扩展到56帧,大大提升了模型分析长视频序列的能力。

  • • 基于LLM反馈的DPO偏好优化:偏好数据由LLM生成,视频表示为详细的说明文字,带来了很大的性能增益。

  • • 对于视频数据的微调,作者进行了ablation study:(1) 在LLaVA-NeXT图像级指令微调后,继续在视频级指令上增量微调;(2) 在LLaVA-NeXT图像级预训练后,在图像级和视频级数据联合微调,每个batch数据包含一种类型或

### 知识蒸馏在多模态模型中的应用 #### 背景介绍 知识蒸馏是一种用于提升小型模型性能的技术,它通过让一个小的学生模型模仿一个大型的教师模型来实现高效的学习过程[^4]。在多模态学习领域,由于涉及不同类型的数据(如文本、图像、音频等),知识蒸馏的应用变得更加复杂但也更具潜力。 #### 方法概述 为了应对多模态数据的特点,研究人员提出了几种创新的知识蒸馏方法: 1. **基于自监督学习的知识蒸馏** 自监督学习能够利用未标注数据生成伪标签,从而帮助学生模型更好地学习来自教师模型的知识[^1]。这种方法减少了对大量标注数据的依赖,适合处理多模态场景下的数据稀缺问题。 2. **跨模态知识蒸馏** 这种方法旨在将一种模态的知识迁移到另一种模态上。例如,可以将文本领域的高级语义信息蒸馏到视觉模型中,或者反过来将图像特征传递给自然语言处理模型。这种技术对于构建统一的多模态表征至关重要。 3. **动态知识蒸馏** 动态调整知识蒸馏的过程可以根据具体任务的需求改变蒸馏强度或策略。这有助于优化不同应用场景下的模型表现。 #### 关键挑战 尽管上述方法展示了良好的前景,但在实践中仍存在一些亟待解决的问题: - **模态间对齐**:不同的感官输入可能具有完全异构的形式,因此找到合适的映射方式是一个难点。 - **知识表示**:如何定义并提取各模态的有效知识仍然是开放的研究课题。 - **模型复杂度**:设计既紧凑又功能强大的架构需要权衡多个因素。 #### 推荐论文与代码资源 以下是几个值得参考的具体实例及其对应的资料链接: - mPLUG-PaperOwl 提供了一个科学图表分析框架,结合了多模态预训练技术和先进的推理能力[^2]。项目主页包含了详细的文档说明和技术细节。 - 参考文献总结了一些最新的 SOTA 开源多模态大模型,并提供了丰富的理论背景和工程实践指导[^3]。读者可以从这里获取更多关于特定算法实现的信息。 ```python # 示例代码片段展示简单的知识蒸馏流程 import torch.nn as nn from torchvision import models def knowledge_distillation(teacher_model, student_model, dataloader): criterion_kl = nn.KLDivLoss() teacher_outputs = [] for data in dataloader: output_teacher = teacher_model(data) teacher_outputs.append(output_teacher) optimizer_student = ... # 初始化学生的优化器 for epoch in range(num_epochs): running_loss = 0. for i, (inputs, _) in enumerate(dataloader): outputs_student = student_model(inputs) loss = criterion_kl(nn.functional.log_softmax(outputs_student / T), nn.functional.softmax(torch.cat(teacher_outputs[i]) / T)) optimizer_student.zero_grad() loss.backward() optimizer_student.step() running_loss += loss.item() ``` 此脚本仅作为概念验证用途,请根据实际情况修改参数设置及调用逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lqfarmer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值