模型详细情况和参数
LLaVA全称Large Language and Vision Assistant,是由微软与威斯康星大学麦迪逊分校教授一起提出的一个多模态大模型。它是一个非常简单的思想,就可以让语言模型支持多模态的能力,包括理解图像等。不过,由于使用的开源语言模型是Vicuna,它是基于MetaAI的LLaMA微调的,受到LLaMA的限制,无法商用。不过预训练结果和数据集都是公开的。
语言模型能力无法在多模态上直接应用的一个主要障碍就是缺少多模态数据。而微软的研究人员首先利用语言模型生成视觉相关的指令数据,利用ChatGPT/GPT4将文本-图像对数据转换成指令跟随的形式。然后提出LLaVA模型,将预训练的CLIP VIT-L/14作为encoder,然后和MetaAI开源的LLaMA连接(其实使用的Vicuna),使用一个简单的映射矩阵完成语言模型的多模态能力升级。主要包括两个步骤:
这样一个简单的方法就让语言模型有了多模态的能力,主要就是有了的图像理解的能力,你只要输入一个图像,它就可以回答关于图像内容的问题。
LLaVA的研究者的一个主要贡献是开源了他们使用的数据集。如前所述,多模态模型缺乏的一个重要原因是缺少多模态数据。而微软的想法很简单,基于COCO数据集,来和GPT-4交互,并将这样的文本-图像对数据转换成语言-图像指令数据。最终,微软得到了15.8万的多模态指令数据集:
数据文件名称 | 简介 | 数据集大小 | 下载地址 |
---|---|---|---|
llava_instruct_150k.json | 15万个图像-文本指令数据集 | 229MB | https://huggingface.co/datasets/liuhaotian/LLaVA-Instruct-150K/raw/main/llava_instruct_150k.json |
llava_instruct_80k.json | 8万个图像-文本指令数据集 | 229MB | https://huggingface.co/datasets/liuhaotian/LLaVA-Instruct-150K/raw/main/llava_instruct_80k.json |
conversation_58k.json | 5.8万对话数据集 | 126MB | https://huggingface.co/datasets/liuhaotian/LLaVA-Instruct-150K/raw/main/conversation_58k.json |
detail_23k.json | 2.3万描述图像细节的数据集 | 20.5MB | https://huggingface.co/datasets/liuhaotian/LLaVA-Instruct-150K/raw/main/detail_23k.json |
complex_reasoning_77k.json | 7.7万包含复杂推理的对话数据 | 79.6MB | https://huggingface.co/datasets/liuhaotian/LLaVA-Instruct-150K/raw/main/complex_reasoning_77k.json |
上述数据完全公开,质量很高,包含了每一次对话对应的图像ID,大家根据ID就可以找到GPT-4和人类讨论的是哪个图像了。
当然,上面讨论的都是CC-3M数据集的子集,也就是LLaVA使用的预训练数据集。所以图像也是其中的图像。需要注意的是,原始的CC-3M中已经有15%左右的数据无法访问,为了让大家更好地使用这个模型,微软还提供了一个压缩文件来给大家使用(下载地址: https://huggingface.co/datasets/liuhaotian/LLaVA-CC3M-Pretrain-595K/blob/main/images.zip ),这里包含了已经从CC-3M去除的数据,温馨提示,这个数据集不允许用在其它地方。
数据集 | 对话文件 | 元数据 | 数据集大小 |
---|---|---|---|
CC-3M Concept-balanced 595K | chat.json | metadata.json | 211MB |
LAION/CC/SBU BLIP-Caption Concept-balanced 558K | blip_laion_cc_sbu_558k.json | metadata.json | 181MB |
前面说过,这个项目原始依赖的文件是LLaMA预训练结果文件,但是该文件受到分发限制,只能去MetaAI那里申请下载。下载完成之后用再下载LLaVA的预训练文件,再使用LLaVA的脚本将其转化成LLaVA需要的权重即可。目前,LLaVA提供两个预训练文件:LLaVA-13B,需要60G的CPU内存才可以运行。另一个是LLaVA-7B,需要30G的CPU内存才可以运行。
2023年5月2日,官方发布LLaVA Lightning,只需要8个A100的GPU训练3个小时即可完成(按照spot实例价格,仅需要40美元)。大家只需要下载源代码,执行train_lightning.sh即可训练Lightning版本。原版是基于Vicuna 13B,即130亿参数微调的,而Lightning版本应该是基于Vicuna 7B模型微调的结果。
效果还是很不错的,而且速度很快,下面是我上传的一个AI转绘的清明上河图的截图部分,回答虽然是英文的,但是大差不差,唯一的问题就是它认为可能是日本的建筑。
在线演示地址: https://llava-vl.github.io/
官方介绍地址: https://llava-vl.github.io/
LLaVA数据集地址: https://huggingface.co/datasets/liuhaotian/LLaVA-Instruct-150K