CoCa: Contrastive Captioners are Image-Text Foundation Models

Jiahui Yu† Zirui Wang†{jiahuiyu, ziruiw}@google.comVijay Vasudevan Legg Yeung Mojtaba Seyedhosseini Yonghui WuGoogle Research

参考代码链接:https://github.com/lucidrains/CoCa-pytorch

模型效果对比网址:CoCa: Contrastive Captioners are Image-Text Foundation Models | Papers With Code

论文摘要:

本文介绍了对比描述生成器(CoCa),这是一种极简的设计,可以与(contrastive loss and captioning loss)对比损失和图像描述损失一起预训练图像-文本编码器-解码器基础模型,从而从 CLIP 等对比方法和 SimVLM 等生成方法中假设模型能力。与所有解码器层都关注编码器输出的标准编码器-解码器转换器相比,CoCa 在解码器层的前半部分省略了交叉注意来编码单模态文本表示,并级联剩余的解码器层,这些解码器层交叉关注图像编码器用于多模态图像-文本表示。除了自回归预测文本标记的多模态解码器输出上的字幕损失之外,我们还在单模态图像和文本嵌入之间应用了对比损失。通过共享相同的计算图,以最小的开销有效地计算两个训练目标。CoCa 在网络规模的 Alt-text 数据和带注释的图像上都是端到端和从头开始预训练的,通过将所有标签简单地视为文本,无缝统一自然语言监督以进行表示学习。

模型结构思路&后续下游任务可实现功能:

模型训练伪代码:

算法1 对比式描述器架构的伪代码。
# image, text.ids, text.labels, text.mask: 配对的图像,文本数据
# con_query: 1个用于对比嵌入的查询令牌
# cap_query: N个用于描述嵌入的查询令牌
# cls_token_id: 词汇表中的一个特殊cls_token_id

def 注意力池化(features, query):
    out = 多头注意力(features, query)
    return 层归一化(out)

img_feature = vit_encoder(image) # [批次, 序列长度, 维度]
cap_feature = 注意力池化(img_feature, cap_query) # [批次, N, 维度]
ids = 连接(text.ids, cls_token_id)
mask = 连接(text.mask, zeros_like(cls_token_id)) # 对cls_token_id进行非填充
txt_embs = 嵌入查找(ids)
unimodal_out = lm_transformers(txt_embs, mask, 交叉注意力=None)
multimodal_out = lm_transformers(
    unimodal_out[:, :-1, :], mask, 交叉注意力=cap_feature)
cls_token_feature = 层归一化(unimodal_out)[:, -1:, :] # [批次,1, 维度]
con_loss = 对比损失(con_feature, cls_token_feature)
cap_loss = softmax交叉熵损失(
    multimodal_out, 标签=text.labels, 掩码=text.mask)
vit_encoder:基于视觉变换器的编码器;lm_transformer:语言模型变换器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/11236.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS一次开发多端部署三巨头之功能级一多开发和工程级一多开发

功能级一多开发与工程级一多开发 引言功能级一多开发SysCaps机制介绍能力集canlUse接口 工程级一多开发三层架构规范 引言 一次开发多端部署 定义:一套代码工程,一次开发上架,多端按需部署 目标:支撑开发者快速高效的开发多终端设…

c中的文件管理

大家好,今天我们来看看语言中的文件管理,聊到这个,我们就得先说说文件的特点。 1.文件是一种让数据持久化的方法,使用文件可以将数据直接存放在电脑的硬盘上,做到数据持久化。 那么什么是文件呢? 硬盘上…

ElasticSearch的Python Client测试

一、Python环境准备 1、下载Python安装包并安装 https://www.python.org/ftp/python/3.13.0/python-3.13.0-amd64.exe 2、安装 SDK 参考ES官方文档: https://www.elastic.co/guide/en/elasticsearch/client/index.html python -m pip install elasticsearch一、Client 代…

python中常见的8种数据结构之一数组的应用

在Python中,数组是一种常见的数据结构,用于存储一系列相同类型的元素。在实际应用中,数组可以用于解决各种问题。 以下是数组在Python中的一些常见应用: 1. 存储和访问数据:数组可以用于存储和访问一组数据。可以通过…

Android 实现柱形图

在 Android 中实现柱状图,可以使用流行的图表库 MPAndroidChart,它支持多种类型的图表,包括柱状图、折线图、饼图等。下面是一个基本的柱状图实现步骤,具体分为以下几个部分: 1. 添加依赖 首先,你需要在 …

python基础

1.python的第一个程序 2.代码注释 3.交互模式 4.变量与常量 电影文件是有文件类型:MP4,avi 图片文件:jpeg,png,jpg 5.数据类型 python类型决定了当前变量在内存中的存储体积 字符串,字符&a…

13.UE5流星火雨,引导施法技能制作

2-15 流星火雨,引导施法技能制作、随机数_哔哩哔哩_bilibili 目录 1.为流星火雨添加按键映射 2.创建流星火雨的动画蒙太奇 3.实现播放动画蒙太奇的逻辑 ​编辑 4.定义发射一波流星火雨的发射物 5.使用动画通知释放流星火雨 1.为流星火雨添加按键映射 创建名为流…

【python程序】恢复曾经删除的QQ说说

是否还能想起曾经的QQ说说,是否还想知道自己以前删除了什么 今天就给大家介绍下这个可以恢复以前删除的QQ说说的 小工具 这个工具是由python编写的,也已经打包好了小程序,一键运行 具体下载地址:https://pan.quark.cn/s/b3f41e3…

Springboot 整合 Java DL4J 打造企业知识图谱构建系统

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

goroutine 介绍

引子: 线程比如打开腾讯视频然后开始下载多个视频,下载任务就是线程 但是这并不是同时进行的,只是时间片比较短切换的比较快 进程和线程的关系 有些程序可以多进程有些可能不支持 并发和并行 并发和并行的根本区别是:并发在同一时…

Ubuntu[无桌面]——修改Docker镜像源文件

下载镜像的时候,一般有两种方式: (1)在宿主主机配置相应的文件/etc/docker/daemon.json,配置镜像源环境地址 (2)进入https://quay.io/search中,输入搜索需要下载的镜像名称&#xff…

Linux开发讲课49--- Linux 启动过程分析

理解运转良好的系统对于处理不可避免的故障是最好的准备。 启动过程非常简单。内核在单核上以单线程和同步状态启动,似乎可以理解。但内核本身是如何启动的呢?initrd(initial ramdisk) 和引导程序(bootloader)具有哪些功能&#…

简单安全的密码生成器PSWD

在我们折腾的过程中,经常要生成 APP KEY、JWT_SECRET、SECRET_KEY 一类的参数,除了可以用 openssl rand 命令来生成外,也可以用在线的密码生成器来生成,例如我们今天介绍的 PSWD 什么是 PSWD ? PSWD 是一个简单且安全的密码生成…

【cursor添加azure】在cursor中添加azure的openai api

右上角-设置 会弹出 下拉找到azure 这部分从你的azure后台获取 返回cuesor,点击 输入你的模型名称 然后回车 就可以开始使用了~

JSqlParser、JavaCC实操

1. 背景 项目中使用mubatis-plus,有个sql报错,信息如下 通过debug我发现是第四行代码报错 net.sf.jsqlparser.parser.CCJSqlParserUtil#parseStatements public static Statements parseStatements(String sqls) throws JSQLParserException {CCJSqlP…

【人工智能训练师】3 集群搭建

开启集群环境 本次环境为单节点伪集群环境,环境中已经安装JDK1.8、Hadoop2.7.7、Mysql5.7、hive2.3.4。— 1.环境中已经安装/root/software/hadoop-2.7.7,格式化HDFS,开启集群,查看集群状态。(HDFS端口为9000&#x…

力扣二叉树题解含思路(C++实现)

1.求二叉树的最近公共祖先: 原题链接:. - 力扣(LeetCode) 假设这题的p,q分别为7和8,而它们的最近公共祖先肯定是为3。 这题我们大致的思路为保存p,q的绝对路径,接着通过存储的绝对路…

稀硫酸介质中 V 型球阀的材质选择与选型要点-耀圣

稀硫酸介质中 V 型球阀的材质选择与选型要点 在工业生产中,稀硫酸是一种常见的化学介质,对于输送和控制稀硫酸的阀门,正确的材质选择和选型至关重要。本文将介绍稀硫酸介质中 V 型球阀的材质选择,并提供一些选型的要点。 一、稀硫…

.NET6中WPF项目添加System.Windows.Forms引用

.NET6中WPF项目添加System.Windows.Forms引用 .NET6的WPF自定义控件默认是不支持System.Windows.Forms引用的,需要添加这个引用方法如下: 1. 在项目浏览器中找到项目右击,选择编辑项目文件(Edit Project File)。 …

【后端速成Vue】computed计算属性

前言: 本期将会介绍 Vue 中的计算属性,他和 methods 方法又会有什么区别呢?在这里都会给你一一讲解。 篮球哥找工作专属IT岗位内部推荐: 专属内推链接:内推通道 1、computed计算属性 概念: 基于现有的数据…