GeoChat
任务
图像级对话任务
在此任务中,GeoChat 处理图像和用户文本查询,利用图像的全局上下文执行对话的任务。
区域级对话任务
在图像输入中向 GeoChat 提供空间框位置 ( b ),指导模型关注图像中的特定区域,执行区域级的对话任务。
具体化对话任务
通过使用特殊的标记,引导GeoChat完成任务。
模型架构
GeoChat整体遵循LlaVA-v1.5的架构,由视觉编码器,跨模态适配层,大语言模型组成。
任务标记
使用{grounding,identify,refer}三种任务标记,分别用于语义对话、区域描述和指代表达理解。至于视觉问答(VQA)和场景分类的情况。
空间位置标记
以文本形式表示空间位置:$$b = { b_{x_{left}}, b_{y_{top}}, b_{x_{right}}, b_{y_{bottom}} \mid \theta }$$
(以文本形式直接输入LLM?)
视觉主干
通过对CLIP模型中的位置编码进行了插值,以适应 504×504 的输入图像大小,使模型接收更大的输入尺寸。
MLP跨模态适配器
使用一个具有一个隐藏层的MLP适配器,从冻结的CLIP-ViT模型中将输出tokens投影到语言模型空间。将视觉模型的输出特征投影到语言模型的空间,使两者能够有效地结合。
大语言模型
以开源大型语言模型Vicunav1.5(7B)作为GeoChat的基础。使用低秩适应(LoRA)的策略对LLM进行微调,降低微调大模型所需的机器资源。
LoRA
在原始预训练模型旁边增加一个旁路,做一个降维再升维的操作,训练的时候固定预训练模型的参数,只训练降维矩阵A与升维矩阵B。而模型的输入输出维度不变,输出时将BA与PLM的参数叠加。用随机高斯分布初始化A用0矩阵初始化B.
训练细节
使用预训练的CLIP-ViT(L-14)编码器、MLP适配器和Vicuna-v1.5来初始化模型。接着,对LLM进行LoRA微调,同时保持MLP适配器和CLIP编码器冻结,以实现更好的训练效果。
数据集的创建
组成数据集
整合了三种不同类型的数据集,涵盖了针对对象检测、场景分类和视觉问答(VQA)设计的数据集。DOTA [34]、DIOR [6] 和 FAIR1M [27],共同形成SAMRS [30] 数据一个场景分类数据集NWPURESISC-45 [5],一个VQA数据集LRBEN [20],以及一个洪水检测VQA数据集 [25)。
添加缺失类
使用其他模型推理,添加图片中未标注的类别(例如建筑,道路,树木)。
属性提取
通过目标的在图片中的方位,占比,像素值来提取相对位置,颜色,大小等属性。
生成表达式
通过表达式生成对象的文本描述,或者对象之间的联系。
模型复现
在运行demo的过程中被killed,应该因为显卡的内存不足