ALBEF paper : http://arxiv.org/abs/2107.07651 BLIP paper : http://arxiv.org/abs/2201.12086 BLIP code : https://github.com/salesforce/BLIP ALBEF 网络结构如下,这篇算得上BLIP/BLIP2的前身了,其三个Loss一直延续至今(当然MLM变成了LM)。具体三个Loss的介绍可以看BLIP2 - JJJYmmm Blog,有以下几个特别点: ITC Loss采用了MOCO的形式,即通过一个momentum encoder来扩大负样本的数量,这也是多了一个momentum model的原因。论文还从模型蒸馏的角度对momentum model做了进一步改进,例如在计算ITC和MLM时引入了伪标签 这里对于文本理解任务,采用的是MLM而不是LM,可能是因为MLM任务相比于LM任务更简单,因为模型只需要预测被mask的单词即可 在计算ITC时得到的Image-Text Similarity可以挑选出hard negatives,专门去做ITM;这个方法
Repository:https://github.com/salesforce/LAVIS/tree/main/projects/blip2 预训练结构 第一阶段 网络结构如下图。 对于图像特征,采用DETR类似的思路,使用Learned Queries作为输入,Image Features作为cross attention的KVs,希望通过可学习的参数来抽取与文本更相关的视觉特征 对于文本特征,采用传统的Bert Encoder思路 对于多模态特征的融合,与双流模型不同,这里两个Encoder的self attention层是共享参数的,当然与单流模型也不同,因为FFN不共享参数,且视觉特征提取时还会走cross attention层 训练采用的三个Loss函数(ITG/ITM/ITC)主要参考之前的ALBEF工作。 Image-Text Contrastive : 这部分的目的主要是对齐图像特征和文本特征的单模态特征,计算方法类似CLIP。与ALBEF不同的是,这里的negative pairs直接采用in-batc方式得到,并没有像ALBEF那样借鉴MOCO得到一个较大
网络 原始网络结构 原始网络采用24层卷积层进行特征的抽取,这部分参数在ImageNet数据集上预训练来初始化。 Head部分采用两个全连接层实现,首先将7*7*1024的Tensor Flatten,并送入输出为4096的全连接层;再接一个输出为1470的全连接层。 最后将1470的向量reshape成7*7*30. 输出解析 输出为SxSx(B*5+C)的tensor,其中SxS为grid cell的个数. 每个grid cell预测B个bounding box.每个bounding box有5个参数----中心点的坐标x和y,box的宽w和高h以及这个box包含物体的置信度confidence. C是物体各个类别的概率(这里是20),这里的概率是条件概率,即在这个grid cell预测的某个bounding box预测物体时,各个类别的概率. $$ P(class)=P(class|obj)*confidence $$ 损失函数 损失函数loss共分为五个部分: 第一部分是负责检测物体的bounding box的中心
Abstract 本文提出了一个开源的可拓展的知识抽取工具包——DeepKE,支持多场景(少资源、文档级别、多模态)下的知识数据库填充。 Introduction KBP的提出是为了从文本语料库中抽取知识来补充知识库(KBs)中缺失的元素,即对知识图谱进行补充。 DeepKE支持标准监督设置和三种复杂场景下的知识抽取任务(命名实体识别、关系抽取和属性提取)。 Core Functions 这一节简要介绍了一下三种知识抽取任务的概念和效果。略。 Toolkit Design and Implementation DeepKE的三大特性: 统一框架,在数据、模型和核心组件方面,不同的任务对象使用相同的框架。 灵活使用,提供自动超参数调整等工具,提高工作效率 现成模型,提供预训练的语言模型。 Data Module 数据模块主要完成数据的预处理和加载。其中的Tokenizer负责实现中文/英文的标记化。图像等其他视觉对象在多模态设置下先转化成视觉信息如标记或image patch。 Model Module 模型模块包
Axuanz
Updating as per fate.