首个大规模图文多模态数据集LAION-400M介绍

news2024/9/20 22:37:51

前言

openAI的图文多模态模型CLIP证明了图文多模态在多个领域都具有着巨大潜力,随之而来掀起了一股图文对比学习的风潮。

就在前几天(2022年12月),连Kaiming都入手这一领域,将MAE的思路与CLIP的思路结合,推出了FLIP,有兴趣可戳(https://arxiv.org/abs/2212.00794)。对于迷茫的CV研究生,如果你找不到研究方向,just follow Kaiming绝对不会出错。


LAION

今天要介绍的是一个优秀的图文多模态数据集LAION,跟CLIP原始训练数据集就有相当体量,即400个million

我第一次接触OpenAI的CLIP工作的时候,完全被其zero-shot能力所震惊。不过这么优秀的工作,有两个让followers抱微词之处:1. 该工作并未开源数据集;2. 该工作未开源训练代码(只是在论文中以伪代码的形式给出)。

而CLIP做得不够的地方,由LAION团队补全了。LAION-400M下载原图和文本对的话,大概有10T左右,所以想用这个数据集的朋友可以大概掂量一下。

闲话不多说,给出项目链接和论文链接:
项目链接:htttps://laion.ai/blog/laion-400-open-dataset/
论文标题:LAION-400M: Open Dataset of CLIP-Filtered 400 Million Image-Text Pairs
论文链接:https://arxiv.org/abs/2111.02114

多模态语言-视觉模型通常是数亿个图文对(image-text pair)上训练出来的,比如CLIP、DALL-E。对于绝大部分研究者而言,要收集这样一个级别的数据集还是有相当难度的。这也是LAION团队收集并开源LAION-400M的原因。而且LAION-400M是用CLIP进行过滤的,所以理论上这个数据集质量会高于CLIP团队所用的400million的数据。

LAION-400M不仅给了这么大数量的图文对,还用CLIP把数据都推理了一遍,并且保存了embedding和kNN索引,咱们可以对这个大数据集高效索引。

索引网站:https://rom1504.github.io/clip-retrieval/

因为所有的图片都保存了embedding,所以当你输入文本的时候,能够迅速算出similarity,从而实现实时retrieval的效果。以下就是我输入的结果:
image retrieval

数据集overview

• 400 million pairs of image URL and the corresponding metadata
• 400 million pairs of CLIP image embedding and the corresponding text
• Several sets of kNN indices that enable quick search in the dataset
img2dataset library that enables efficient crawling and processing of hundreds of millions of images and their metadata from a list of URLs with minimal resources
• Web demo of image-text search on LAION-400M。

LAION-400M的概述如上。4亿个图片-文本对,并且附带4亿个URL和4亿个图片嵌入表示。一些kNN索引来支持快速搜索,以及一个数据处理库。

LAION-400M在收集数据时,做了一些过滤设定:

  1. 将文本短于5个字母或者图像小于5kb的图文对丢弃;
  2. 去重操作;
  3. 用CLIP计算图文相似性,抛弃掉相似性低于0.3的图文对;(重要)
  4. 筛除一些不合法的图文对,比如adult/violence/insulting等等。(love and peace化)

PS: 我在做实验的过程中,发现第三点尤为重要,之前团队收集过400M的某专用领域数据,一直训不到好结果。但用similarity 0.3过滤以后,哪怕数据量只有之前的1/10,训练效果却能达到非常好。

最后看一下数据size的分布:
请添加图片描述

实验结果

请添加图片描述
作者用DALL-E做了实验,基于LAION-400M可以有很好的收敛效果。后续作者还在CLIP上做了实验,虽然没有公布在这篇论文里,但开源了代码,感兴趣的可以去github搜索open-CLIP,在ImageNet上的zero-shot效果比原声CLIP强一点。

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

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

相关文章

MySQL常用高级语句

SQL高级语句 DISTINCT 不显示重复的内容 语法:SELECT DISTINCT “字段” FROM “表名”; select distinct name from lk1;SELECT 显示表格中一个或数个栏位的所有资料 语法:SELECT “字段” FROM “表名”; select * from lk1; #查看表格详细信息…

微机原理与汇编语言—理论知识复习

书上重点内容 本篇博客整理老师课上强调的重点理论知识,以便复习备考,如有错误欢迎指正。 这门课主要讲CPU芯片与其他芯片(内存芯片和I/O接口芯片)之间交互。 一条指令的执行过程:取指(从主存取到CPU寄…

最优化理论笔记及期末复习(《数值最优化》——高立)

目录一、预备知识二、无约束最优化方法的基本结构三、凸集和凸函数四、负梯度方法和Newton型方法五、共轭梯度法六、约束最优化问题的最优性理论七、罚函数方法八、期末复习8.1 知识点复习8.2 习题复习8.3 大实验代码8.3.1实验内容8.3.2实验目的8.3.3算法描述8.3.4程序中的参数…

[附源码]计算机毕业设计基于Springboot的中点游戏分享网站

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【C++】STL:String

🐱作者:傻响 🐱专栏:《C/C - STL》 🔥格言:你只管努力,剩下的交给时间! ​ 目录 STD - String标准库 字符串类介绍 字符串类构造函数 No.1 string() ; No.2 string(const char…

实操1 : Jupyter Notebook 如何更换主题+全部主题展示+深色主题下如何设置可视化图表

文章目录(一) 如何更换主题(二) 全部主题展示(三) 深色主题下设置可视化图表(一) 如何更换主题 1.打开 Jupyter Notebook, 新建一个Python文件 在文件中输入下方命令开始安装主题 pip install --upgrade jupyterthemes -i https://pipy.douban.com/simple2.win R 打开 cmd 命…

效率工具之Arthas

Arthas 阿里巴巴开源的Java诊断工具;追踪方法执行链、反编译、监控JVM状态 在线安装 使用 1. trace 跟踪调用链 解决痛点:定位问题根据日志推理分析,方法出入参不可见,分支判断太多情况下 定位很慢,分析出可能有问…

[附源码]JAVA毕业设计科院垃圾分类系统(系统+LW)

[附源码]JAVA毕业设计科院垃圾分类系统(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术…

JVM学习-- JVM调优

一、选择垃圾收集器 垃圾收集器和内存大小有关 一般情况, serialserial old 适用几十兆内存 pspo 适用几百兆~几个G parNewCMS 可以用到20G G1 可以用到上百G ZGC 可以 4T~16T 1. 常见垃圾收集器组合参数设定 -XX:UseConc(urrent)MarkSweepGC ParNew CM…

【web实战-业务逻辑】评论点赞逻辑

目录 点赞逻辑一: 第一步:找关键 第二步:猜测逻辑 第三步:结论 第四步:归类 点赞逻辑二: 第一步:找关键 第二步:猜测逻辑 第三步:结论 第四步:归纳…

Framework 学习之旅:Service 启动过程

前言 Service 的启动过程将分为两个部分,分别是ContextImpl到ActivityManageService调用过程和ActivityThread启动Service过程。 ContextImpl到ActivityManageService调用过程 一般启动服务操作在Activity中调用startService方法,从Activity的startSe…

[附源码]计算机毕业设计springboot智慧园区运营管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

360T7路由器进行WiFi无线中继教程

360T7路由器进行WiFi中继教程1. 概述2. 360T7路由器进行WiFi中继实现教程2.1 登录路由器管理界面2.2 选择上网方式2.3 搜索WiFi2.4 连接WiFi2.5 点击确认2.6 在主页面查看网络1. 概述 中继路由系统由一组中继路由器组成,为不能交换路由信息的路由域提供中继路由。该…

关于小程序session_key漏洞问题的解决2022-12-01

业务背景:开发了小程序,使用了一段时间以后,小程序提示系统漏洞session_key的问题,在网上找了好多的博客,感觉好多写的没那么清晰,更偏重于理论,导致自己走了很多的弯路,为了更方便快…

基于海鸥算法优化的lssvm回归预测-附代码

基于海鸥算法优化的lssvm回归预测 - 附代码 文章目录基于海鸥算法优化的lssvm回归预测 - 附代码1.数据集2.lssvm模型3.基于海鸥算法优化的LSSVM4.测试结果5.Matlab代码摘要:为了提高最小二乘支持向量机(lssvm)的回归预测准确率,对…

【树莓派不吃灰】Linux服务器篇(核心概念)

目录1. 第一章 架设服务器前的准备工作2. 第二章 基础网络概念3. 第三章 局域网络架构简介4. 第四章 连上 Internet5. 第五章 Linux 常用网络指令6. 第六章 Linux 网络侦错7. 第七章 网络安全与主机基本防护8. 第八章 路由观念与路由器设定9. 第九章 防火墙与 NAT 服务器&#…

Python源码剖析2-字符串对象PyStringObject

二、 1、PyStringObject与 PyString_Type PyStringObject是变长对象中的不可变对象。当创建了一个PyStringObject对象之后,该对象内部维护的字符串就不能再被改变了。这一点特性使得 PyStringObject 对象能作为 PyDictObject 的键值,但同时也使得一些字符串操作的效率大大降低…

Kafka RecordAccumulator 三 高并发写入数据

Kafka RecordAccumulator 三 高并发写入数据 首先我们客户端会通过多线程的方式来发送消息(一般业务需求可能会通过业务系统或者大数据流计算系统如Spark Streaming或者Flink将业务数据发送出去,进而让下游系统消费使用),那这里业…

【Linux】进程状态|僵尸进程 |孤儿进程

索引运行状态:阻塞状态挂起状态看看Linux是怎么做的运行状态R睡眠状态S停止状态T两个特殊的进程:僵尸进程孤儿进程在之前我们听过很多很多进程的状态,像是运行、新建、就绪、挂起、阻塞、等待、停止、挂机、死亡等等。推荐阅读:通…

http协议之digest(摘要)认证,详细讲解并附Java SpringBoot源码

目录 1.digest认证是什么? 2.digest认证过程 3.digest认证参数详解 4.基于SpringBoot实现digest认证 5.digest认证演示 6.digest认证完整项目 7.参考博客 1.digest认证是什么? HTTP通讯采用人类可阅读的文本格式进行数据通讯,其内容非…