[阅读笔记11][LLaVA]Visual Instruction Tuning

接下来是llava这篇论文,它发表于23年9月。

主要贡献点有两个,第一点是使用了大模型,这里视觉编码器使用的是CLIP中用的vit large 14,LLM使用的是decoder-only的vicuna 13b版本。
第二点贡献是提出了一个借助chatgpt或gpt4来制作多模态指令数据集的方法。
模型整体很简洁,图像通过vision transformer提取特征,然后投影到语言模型embedding空间,文本直接输入语言模型,与图像向量拼接,然后语言模型自回归输出响应。

这里展示了如何生成数据集,作者把coco数据集上每张图片的五个caption以及bounding box的信息输入给模型,然后要求gpt自问自答,问题有三种类型,第一种就是对话,询问一些图像的基本信息,比如有几个物体,物体颜色,位置关系等等。第二种问题是对图像的详细描述。第三种问题是复杂推理,例如图中问的就是现在这些人面临什么困难。
右边是生成对话时输入给gpt的prompt信息,每次询问前都会先给gpt几个示例,利用它few-shot性能来生成更好的回答。
最终收集到了15.8万条样本,其中对话占5.8万,详细描述占2.3万,复杂推理占7.7万。

训练部分分为两步,第一步是预训练来进行图文特征对齐,第二步是进行端到端的微调。
预训练的时候只训练投影矩阵W,微调的时候训练W和语言模型。
对话数据按照图中的格式整理为prompt输入到语言模型中,第一轮对话给出图片和问题,之后每轮对话都只给问题。损失函数就是预测下一个token损失。
预训练数据集使用的是过滤后的CC3M数据集,这个数据集也是图文匹配的,也是借助gpt转为问答数据集,使用的问题是简要描述一下这张图片,然后让gpt生成回答。这样每张图片都对应一轮问答,用这个单轮问答数据集来预训练投影矩阵。
微调过程使用了两个数据集,一个数据集就是之前利用coco生成的数据集,另一个是Science QA数据集。训练投影矩阵W和LLM。

接下来是做的一些实验,均使用GPT-4对回答质量进行打分。
上面这张是对问题类型做的消融。可以看到这三种类型的问题都是不可缺少的。
下面这张是与其他模型进行的对比。可以看到llava在各方面都更能被gpt-4认可。

这是在ScienceQA数据集上做的消融,分四个部分。
第一点是视觉特征抽取的位置,可以选择在最后一个transformer层之前抽,也可以在之后抽,根据实验最优的情况是在之前抽。
第二点是思维链,作者为了决定训练时给出答案和推理过程之间的顺序,分为两种情况,第一种是先给出答案再给出推理过程,第二种是先给出推理过程再给出答案。实验结果是先给出答案的情况在第12个epoch达到最优值89.77%,先给出推理过程的情况是在第6个epoch达到最优值89.77%,到第24个epoch都没再有提升了。所以作者根据这个结果得出来的结论是,类似cot的这种先给出推理的策略可以提升收敛性,但是对模型最终性能提升较小。
第三点是预训练,如果不加预训练过程而是直接微调,性能会下降很多。
第四点是模型大小,论文里标准模型是13B的,这里测试了一下7B模型,这点也是符合预期的,小模型性能比不过更大的模型。

<think>好的,用户想获取关于如何准备LLaVA-1.1-7B和13B模型权重的官方指导。我需要先回忆一下LLaVA项目的相关信息。根据用户提供的引用[^1],官方文档提到了Model Zoo,里面应该包含所有公开的LLaVA检查点和使用权重的说明。首先,用户需要访问Model Zoo页面,找到对应的模型版本。 接下来,步骤可能包括克隆官方仓库,安装依赖项。用户需要确保环境配置正确,比如Python版本、PyTorch版本以及相关的库如transformers和accelerate。然后,下载预训练的视觉模型和语言模型,可能使用提供的脚本或直接下载链接。 用户可能需要合并视觉和语言模型的权重,这通常需要运行特定的脚本,比如官方提供的转换脚本。例如,使用`python -m llava.model.apply_delta`命令来合并基础语言模型和LLaVA的增量权重。这里要确保路径正确,避免文件找不到的错误。 此外,用户可能会遇到依赖项版本不兼容的问题,需要按照官方指定的版本安装。例如,使用特定版本的torch和transformers库。可能还需要注意CUDA版本是否匹配,以确保GPU加速正常。 最后,验证模型是否加载成功,可以通过运行示例代码或官方提供的测试脚本来检查。如果用户遇到问题,可能需要查阅项目的GitHub Issues或社区讨论,寻找常见问题的解决方案。 用户的需求可能不仅限于准备权重,还可能涉及如何微调模型或使用模型进行推理。因此,生成的相关问题可以包括如何微调LLaVA模型,或者在不同硬件上部署的注意事项,以及如何处理多模态输入等。确保回答准确引用官方文档,并引导用户正确操作,避免常见的配置错误。</think>关于LLaVA-1.1-7B/13B模型权重的准备,请按照以下步骤操作: ### 1. 环境准备 - 克隆官方仓库并安装依赖: ```bash git clone https://github.com/haotian-liu/LLaVA.git cd LLaVA pip install -e . ``` 注意需使用Python ≥3.8,PyTorch ≥2.0和transformers ≥4.31.0 ### 2. 权重下载 - **基础语言模型**: - LLaVA-1.1-7B:下载Vicuna-7B-v1.5权重 - LLaVA-1.1-13B:下载Vicuna-13B-v1.5权重 - **视觉模型**: 使用官方提供的CLIP ViT-L/14-336px视觉编码器 ### 3. 权重合并 使用官方提供的delta权重进行融合: ```bash python -m llava.model.apply_delta \ --base [path/to/vicuna_weights] \ --target [output_directory] \ --delta liuhaotian/llava-v1.1-7b-delta-v0 # 13B则替换为llava-v1.1-13b-delta-v0 ``` ### 4. 验证加载 ```python from llava.model import LlavaLlamaForCausalLM model = LlavaLlamaForCausalLM.from_pretrained("[output_directory]") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值