Macaw-LLM:集成图像、音频、视频和文本的多模态语言建模
Macaw-LLM是一项开创性的尝试,在CLIP、Whisper和LLaMA的基础上,通过无缝结合图像🖼️、视频📹、音频🎵和文本📝数据,开创了多模态语言建模的先河。
📰 论文 :building_construction: 模型(通过dropbox) :building_construction: 模型(通过微云) :card_file_box: 数据集 :bricks: 代码 :monocle_face: 视频 :technologist: 演示
目录 📚
简介
近年来,语言建模领域取得了显著进展。然而,整合图像、视频、音频和文本等多种模态仍然是一项具有挑战性的任务。Macaw-LLM是同类模型中的首创,将用于处理视觉、听觉和文本信息的最先进模型CLIP、Whisper和LLaMA结合在一起。
主要特点 🔑
Macaw-LLM具有以下独特特点:
- 简单快速对齐:Macaw-LLM通过与LLM嵌入的简单快速对齐,实现了多模态数据的无缝集成。这一高效过程确保了各种数据类型的快速适应。
- 一阶段指令微调:我们的模型通过一阶段指令微调简化了适应过程,促进了更高效的学习体验。
- 新的多模态指令数据集:我们创建了一个新的多模态指令数据集,涵盖了利用图像和视频模态的各种指令任务,为未来多模态LLM的工作提供便利。
架构
Macaw-LLM由三个主要组件组成:
- CLIP:负责编码图像和视频帧。
- Whisper:负责编码音频数据。
- LLM(LLaMA/Vicuna/Bloom):编码指令和生成响应的语言模型。
这些模型的整合使Macaw-LLM能够有效处理和分析多模态数据。
对齐策略
我们的新型对齐策略通过高效地将多模态特征桥接到文本特征,实现了更快的适应。过程包括:
- 使用CLIP和Whisper编码多模态特征。
- 将编码后的特征输入注意力函数,其中多模态特征作为查询,LLaMA的嵌入矩阵作为键和值。
- 将输出注入LLaMA的输入序列(指令标记之前),实现最小附加参数的流畅对齐过程。
新的多模态指令数据集 🆕
安装
按照以下步骤安装Macaw-LLM:
# 克隆仓库
git clone https://github.com/lyuchenyang/Macaw-LLM.git
# 切换到Macaw-LLM目录
cd Macaw-LLM
# 安装所需包
pip install -r requirements.txt
# 安装ffmpeg
yum install ffmpeg -y
# 安装apex
git clone https://github.com/NVIDIA/apex.git
cd apex
python setup.py install
cd ..
使用 🚀
-
下载数据集:
- 文本数据:stanford_alpaca/alpaca_data.json
- 图像数据:COCO数据集 VQA数据集
- 视频数据:Charades和Video Dialog
- 图像指令数据:Macaw-LLM图像指令数据集
- 视频指令数据:Macaw-LLM视频指令数据集
-
数据集预处理:
- 将三种模态的数据放入特定文件夹 -
data/text/
、data/image/
、data/video/
- 从视频中提取帧和音频:
python preprocess_data.py
- 将监督数据转换为数据集:
python preprocess_data_supervised.py
- 将无监督数据转换为数据集:
python preprocess_data_unsupervised.py
- 将三种模态的数据放入特定文件夹 -
-
训练:
- 执行训练脚本(可在其中指定训练参数):
./train.sh
- 执行训练脚本(可在其中指定训练参数):
-
推理:
- 执行推理脚本(可在其中给出任何自定义输入):
./inference.sh
- 执行推理脚本(可在其中给出任何自定义输入):
示例
我们展示了几个例子,突出了我们的Macaw-LLM在理解和遵循多模态指令方面的熟练程度。 这些例子展示了我们系统基于图像和视频理解和生成响应的多模态能力。这些例子演示了我们的系统如何理解视觉内容并在自然语言对话中产生高质量、流畅的响应。我们的系统针对图像中的各种问题生成上下文相关和信息丰富的答案,展示了其自然流畅地交流视觉内容的能力。
未来工作和贡献 🚀
虽然我们的模型仍处于早期阶段,但我们相信Macaw-LLM为多模态语言建模领域的未来研究铺平了道路。多样化数据模态的整合在推动人工智能边界和增强我们对复杂现实世界场景的理解方面具有巨大潜力。通过引入Macaw-LLM,我们希望激发这一激动人心研究领域的进一步探索和创新。
我们欢迎社区的贡献,以改进和扩展Macaw-LLM的功能。🤝
待办事项 👨💻
-
评估: 我们展示了一些例子,展示了我们的Macaw-LLM的多模态能力。然而,我们承认这些努力可能不足以准确和全面地展示模型能力。我们的目标是对我们的系统进行广泛评估,以评估其能力。
-
更多语言模型: 我们的目标是通过整合更多语言模型(如Dolly、BLOOM、T-5等)来扩展Macaw-LLM。这将实现更强大和多功能的多模态数据处理和理解。
-
多语言支持: 我们的下一步是支持多种语言,朝着真正的多模态和多语言语言模型迈进。我们相信这将显著扩大Macaw-LLM的适用性,并增强其对多样化全球背景的理解。
致谢 🙏
我们要对以下开源项目对Macaw-LLM的宝贵贡献表示感谢:
- Stanford Alpaca:提供了我们实验中使用的Alpaca数据集。
- Parrot:提供了LLaMA训练的有用实现。
- CLIP:提供了强大的图像和视频编码模型。
- Whisper:提供了强大的音频编码模型。
- LLaMA:提供了强大的大型语言模型。
我们还要感谢这些项目的开发者和维护者,他们的奉献和辛勤工作使得这些项目成为开源并能被社区访问。
引用
@article{lyu2023macaw,
title={Macaw-LLM: 图像、音频、视频和文本集成的多模态语言建模},
author={Lyu, Chenyang and Wu, Minghao and Wang, Longyue and Huang, Xinting and Liu, Bingshuai and Du, Zefeng and Shi, Shuming and Tu, Zhaopeng},
journal={arXiv预印本 arXiv:2306.09093},
year={2023}
}