❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 功能:ParGo 通过全局与局部视角联合,高效连接视觉与语言模态,提升多模态大语言模型的效果。
- 技术:采用 Partial-Global Perception Block 和 Cascaded Partial Perception Block 模块,结合自监督学习策略,增强模型对上下文的理解。
- 应用:适用于视觉问答、图像字幕生成、跨模态检索等任务,显著提升细节感知能力。
正文(附运行示例)
ParGo 是什么
ParGo 是字节团队与中山大学合作推出的多模态大语言模型连接器,旨在提升视觉和语言模态在多模态大语言模型(MLLMs)中的对齐效果。通过结合局部 token 和全局 token,使用精心设计的注意力掩码分别提取局部和全局信息,在控制 token 数量的同时增强了局部区域之间的关系建模。
ParGo 充分考虑了图像的细节与全局视角,克服了传统方法中忽视细节的问题。其核心在于通过 Partial-Global Perception Block(PGP)和 Cascaded Partial Perception Block(CPP)两个关键模块,将视觉特征映射为 Partial token 和 Global token,分别提取图像的局部和全局信息。
ParGo 的主要功能
- 高效连接视觉与语言模态:通过全局与局部视角联合,ParGo 实现了视觉特征和大语言模型(LLM)的高效连接,克服了传统方法对显著区域的过度聚焦问题。
- 提升多模态大语言模型效果:在多个 MLLM 基准测试中表现出色,特别是在强调细节感知能力的任务中,显著优于其他投影器。
- 自监督学习增强上下文理解:通过预测遮挡部分的内容,增强模型对上下文的理解能力,减少了对大规模标注数据的依赖。
ParGo 的技术原理
- 全局+局部视角联合:ParGo 采用两种类型的可学习 token,基于 attention 机制,同时从局部和全局视角将视觉特征映射到大语言模型(LLM)中。
- Partial-Global Perception Block (PGP):将视觉编码器的特征映射为 Partial token 和 Global token,分别提取图像的局部和全局信息。
- Cascaded Partial Perception Block (CPP):通过带有特殊设计掩码的自注意力机制,逐步扩展 Partial token 的感知范围。
- 自监督学习策略:在训练阶段引入自监督学习策略,通过预测遮挡部分的内容来增强模型对上下文的理解能力。
如何运行 ParGo
1. 环境配置
首先,克隆 ParGo 仓库并创建虚拟环境:
cd ParGo
conda create -n ParGo_env python=3.10 -y
conda activate ParGo_env
pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
pip install -r ./requirements.txt
2. 下载模型
需要提前下载 LLM(internlm2-7b)和视觉编码器(eva-clip-l-14-336)。
3. 评估 MME 基准
将基准数据放置在 benchmarks
目录下,数据结构如下:
├── benchmarks
│ ├── MMEBenmark
│ └── images
│ └── Data_json
然后生成响应并计算分数:
python3 eval/eval_mme_finetuning.py --config ./configs/MMEBench_interLM2-7B.json
python3 eval/calculation_mme.py --results_dir ./output/internlm2-MME
资源
- GitHub 仓库:https://github.com/bytedance/ParGo
- arXiv 技术论文:https://arxiv.org/pdf/2408.12928
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦