searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

LLava系列

2024-07-18 09:48:12
38
0

1.1 文章的贡献

1.  这篇论文的贡献如下:多模态指令跟随数据:社区缺少多模态指令跟随数据,作者提出了一个 pipeline 用于将图像文本对转换成指令跟随数据并开源了该数据

2.  大型多模态模型:作者提出了一个新的多模态框架

3.  多模态指令跟随评测集:作者构建了多模态指令跟随 benchmark 并开源

LLaVA 与其他多模态模型的效果对比如图 1 所示:

 
 

1.2 模型结构

LLaVA 选择 Vicuna 作为语言模型 𝑓𝜙(.) 以及经过 CLIP 预训练的 ViT-L/14 作为视觉编码器 𝑔(𝑋𝑣) ,并用一个简单的线性层 𝑊 将视觉特征投影到词嵌入的特征空间,如图 2 所示:

 
 

图 2 的流程如下:

● 对于图像 𝑋𝑣,先使用视觉编码器 𝑔(𝑋𝑣) 将其编码为 𝑍𝑣,再通过线性层 𝑊转换成 𝐻𝑣。

● 对于指令 𝑋𝑞,使用 embedding 层将其转换为 𝐻𝑞,

● 拼接 𝐻𝑣和 𝐻𝑞,将其输入给语言模型 𝑓𝜙(.)并得到输出 𝑋𝑎

使用公式表示上面的流程:

𝑋𝑎 =𝑓(𝑐𝑜𝑛𝑐𝑎𝑡([𝐻𝑣,𝐻𝑞]))

=𝑓(𝑐𝑜𝑛𝑐𝑎𝑡([𝑊𝑍𝑣,𝐻𝑞]))

=𝑓(𝑐𝑜𝑛𝑐𝑎𝑡([𝑊𝑔(𝑋𝑣),𝐻𝑞]))

 

1.3 数据集构造

LLaVA 借助 GPT-4 将带有 Caption 和 Bounding boxes 信息的 COCO 数据转换成三种指令跟随数据,分别是

● Conversation:对话数据,共 58K 个样本

● Detailed description:对图像丰富而全面的描述,共 23K 个样本

● Complex reasoning:复杂推理数据,数据的回复通常需要遵循严格的逻辑逐步推理,共 77K 个样本

图 3 是指令跟随数据的示例(附录中给出了更具体的示例),其中 Context type(包括 Caption 和 Bounding boxes)表示用于构造数据的 prompt,Respone type 则对应转换后的三种指令跟随数据:

 
 

图 4 是使用 GPT4 生成指令跟随数据的 prompt:

 

1.4 训练细节:

LLaVA 采用两阶段微调策略:

● 阶段一:冻结 LLM 权重和视觉编码器,只微调线性层 𝑊,目的是对齐视觉特征 𝐻𝑣和 𝐻𝑞。

● 阶段二:只冻结视觉编码器,微调 LLM 权重和线性层 𝑊

训练数据的格式如图 5 所示:

 
 

其中 𝑋𝑠𝑦𝑠𝑡𝑒𝑚−𝑚𝑒𝑠𝑠𝑎𝑔𝑒 是 system prompt, <𝑆𝑇𝑂𝑃> 是结束标记符, 𝑋𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡1 包含图像和用户的问题, 𝑋𝑎1 是模型的回复, 𝑋𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡2 只包含用户的问题。

另外,在训练时,只有绿色部分参与损失函数的计算。

● 训练配置:阶段一:使用过滤后的 CC3M 数据(记为 CC595K)训练 1 个 epoch、学习率为 2e-3、bacth size 128

● 阶段二:使用 LLaVA-Instruct-158K 数据集(Conversation+Detailed description+Complex reasoning)训练 3 个 epoch、学习率为 2e-5、batch size 32

阶段一和阶段二均使用 Adam 优化器以及 cosine 衰减学习率。

 

 

0条评论
作者已关闭评论
1****m
11文章数
0粉丝数
1****m
11 文章 | 0 粉丝
1****m
11文章数
0粉丝数
1****m
11 文章 | 0 粉丝
原创

LLava系列

2024-07-18 09:48:12
38
0

1.1 文章的贡献

1.  这篇论文的贡献如下:多模态指令跟随数据:社区缺少多模态指令跟随数据,作者提出了一个 pipeline 用于将图像文本对转换成指令跟随数据并开源了该数据

2.  大型多模态模型:作者提出了一个新的多模态框架

3.  多模态指令跟随评测集:作者构建了多模态指令跟随 benchmark 并开源

LLaVA 与其他多模态模型的效果对比如图 1 所示:

 
 

1.2 模型结构

LLaVA 选择 Vicuna 作为语言模型 𝑓𝜙(.) 以及经过 CLIP 预训练的 ViT-L/14 作为视觉编码器 𝑔(𝑋𝑣) ,并用一个简单的线性层 𝑊 将视觉特征投影到词嵌入的特征空间,如图 2 所示:

 
 

图 2 的流程如下:

● 对于图像 𝑋𝑣,先使用视觉编码器 𝑔(𝑋𝑣) 将其编码为 𝑍𝑣,再通过线性层 𝑊转换成 𝐻𝑣。

● 对于指令 𝑋𝑞,使用 embedding 层将其转换为 𝐻𝑞,

● 拼接 𝐻𝑣和 𝐻𝑞,将其输入给语言模型 𝑓𝜙(.)并得到输出 𝑋𝑎

使用公式表示上面的流程:

𝑋𝑎 =𝑓(𝑐𝑜𝑛𝑐𝑎𝑡([𝐻𝑣,𝐻𝑞]))

=𝑓(𝑐𝑜𝑛𝑐𝑎𝑡([𝑊𝑍𝑣,𝐻𝑞]))

=𝑓(𝑐𝑜𝑛𝑐𝑎𝑡([𝑊𝑔(𝑋𝑣),𝐻𝑞]))

 

1.3 数据集构造

LLaVA 借助 GPT-4 将带有 Caption 和 Bounding boxes 信息的 COCO 数据转换成三种指令跟随数据,分别是

● Conversation:对话数据,共 58K 个样本

● Detailed description:对图像丰富而全面的描述,共 23K 个样本

● Complex reasoning:复杂推理数据,数据的回复通常需要遵循严格的逻辑逐步推理,共 77K 个样本

图 3 是指令跟随数据的示例(附录中给出了更具体的示例),其中 Context type(包括 Caption 和 Bounding boxes)表示用于构造数据的 prompt,Respone type 则对应转换后的三种指令跟随数据:

 
 

图 4 是使用 GPT4 生成指令跟随数据的 prompt:

 

1.4 训练细节:

LLaVA 采用两阶段微调策略:

● 阶段一:冻结 LLM 权重和视觉编码器,只微调线性层 𝑊,目的是对齐视觉特征 𝐻𝑣和 𝐻𝑞。

● 阶段二:只冻结视觉编码器,微调 LLM 权重和线性层 𝑊

训练数据的格式如图 5 所示:

 
 

其中 𝑋𝑠𝑦𝑠𝑡𝑒𝑚−𝑚𝑒𝑠𝑠𝑎𝑔𝑒 是 system prompt, <𝑆𝑇𝑂𝑃> 是结束标记符, 𝑋𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡1 包含图像和用户的问题, 𝑋𝑎1 是模型的回复, 𝑋𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡2 只包含用户的问题。

另外,在训练时,只有绿色部分参与损失函数的计算。

● 训练配置:阶段一:使用过滤后的 CC3M 数据(记为 CC595K)训练 1 个 epoch、学习率为 2e-3、bacth size 128

● 阶段二:使用 LLaVA-Instruct-158K 数据集(Conversation+Detailed description+Complex reasoning)训练 3 个 epoch、学习率为 2e-5、batch size 32

阶段一和阶段二均使用 Adam 优化器以及 cosine 衰减学习率。

 

 

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0