社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

这个深度学习库能执行10多种图像文本任务,有20多个数据集,还统一接口|已开源

机器学习算法与自然语言处理 • 2 年前 • 281 次点击  

MLNLP社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。
社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。

转载自 | 量子位

支持10余种图像文本任务,囊括20多种数据集,还提供SOTA模型性能和可复现预训练及微调实验配置。

没错,这是一个视觉语言深度学习框架就可以拥有的。

这个库的庐山真面目是:Salesforce亚洲研究院推出的LAVIS。

并且,它还统一了接口,降低开发成本和入门门槛。

最重要的是:已开源!

LAVIS全⽅位⽀持视觉语⾔任务、数据集、模型。

如果还不能看不出它的优势,那话不多说,直接看LAVIS与现有多模态库的对比图。

相较之下,现存的视觉语⾔框架只⽀持较少⼀部分任务和数据集,逊色了不少。

除此之外,LAVIS还附带了丰富的开源资源和⼯具,就比如说它提供了一个图形化的工具,可以可视化数据集的样本,以便于能更好的预览、理解数据。

并且随着LAVIS一起开源的还有GUI demo,它的功能就有这么多。(看图)

具体LAVIS有何过人之处?一起来看看吧~


1

『一站式视觉语言框架』

LAVIS概括下来,可以用三个数字来表示:四、十、二十。

先来说说四,它表示LAVIS支持四种领先的基础视觉语⾔模型架构,包括ALBEF、BLIP、CLIP和ALPRO。

其中ALBEF和CLIP主要支持图像文本任务,ALPRO⽀持视频⽂本任务,BLIP对这两项任务都能够提供⽀持。

也正是有了这些视觉语言模型做基础,LAVIS才能够运行这十余种视觉语言任务。

具体来讲,它可以进行图⽚描述⽣成、图像⽂本检索、视频⽂本检索、图像问答、视频问答、多模态分 类、多模态图像、视频对话、视觉语⾔推理、多模态预训练等实⽤任务。

除此之外,LAVIS还具备多模态特征提取等功能。

讲完模型架构和任务,就还差数据集了,不过这就不必担心,因为LAVIS能够支持二十多种数据集。

想实现各项任务都能够找到合适的数据集进行训练。

不过,这些都还只是LAVIS的开碟小菜,它还“憋了个大招”:

统一接口。

这对初学者和跨领域研究者来说是相当友好了,许多深度学习库的模型、数据集一集任务评估接口都不一致,这就导致学习成本大大提高。

而统一接口之后,就会极⼤简化模型训练评测,并且能够最⼩化重复开发成本。

话说回来,这里的统一接口具体方便了什么呢?

主要分为两部分。

第一部分是用于加载数据集和模型的统一接口,模型及其相关的预处理器也可以通过一个统一的接口来加载,从而便于对自定义数据进行分析和推断。

第二部分是实现多模态特征提取的统一接口,这些特性对于端到端微调的离线应用程序尤其有用。通过更改名称和模式,用户可以选择使用不同的模型架构和预先训练的权重。

这样一来,⽤户便可以利⽤LAVIS提供的load_model(), load_dataset() ,⼀键加载所需模型和数据集。

比如说,加载COCO captioning数据集,只需要输入load_dataset(“coco_caption”);加载BLIP captioning模型只需要输入model=load_model(name=“blip_caption”)。

此外,LAVIS还能实现数据到训练⾼定制化,给予开发者充分空间研究新模型、新多模态能⼒、新引⽤场景。

不过,实现LAVIS这样一站式的视觉语言框架,是怎样做到的呢?


2

『模块化的结构』

其实从LAVIS的构造就能够看出,LAVIS深度学习库的整个构造很简洁,用三个字就可以概括:模块化。

在整个库中,将关键组件模块化后再进行组织。

这样一来,就可以对单个组件的现成访问、快速开发以及新组件或外部组件的轻松集成,还能够模型推断,例如多模态特征提取。

具体是怎样的?可以一起看看。

LAVIS共分为六个关键模块(详见下图)。

其中比较核心的就是runners模块,它负责管理整个训练的评估的过程,RunnerBase和RunnerIters也各司其职,一个负责基于epoch的训练,一个负责基于迭代的训练。

tasks模块会对每个任务执行具体的训练和评估逻辑,以适应特定的任务。

datasets顾名思义就是负责创建数据集。

在models模块中,它保存了其支持的四个模型以及共享模型层的定义。

processors模块用来处理多模态输入的预处理,处理器将输入的图像、视频和文本转换为模型可以使用的形式。

common则是LAVIS提供的工具包和一些应用程序。

这些模块之间相互依赖,由此便形成了一个简单而统一的库,进而可以更方便地训练和评估模型;访问所支持的模型和数据集以及扩展新模型、任务和数据集。

目前,开发人员表示将持续更新维护LAVIS,在未来它将会支持更多更强大的视觉语言预训练模型,和更多的视觉语言任务,比如文本图像生成。

听完是不是心痒痒了?

下方就有开源链接以及详细文档,感兴趣的朋友可以试试~

Github:https://github.com/salesforce/LAVIS
技术报告:https://arxiv.org/abs/2209.09019
⽀持⽂档:https://opensource.salesforce.com/LAVIS//latest/index.html
官⽅博客:https://blog.salesforceairesearch.com/lavis-language-vision-library/


技术交流群邀请函

△长按添加小助手

扫描二维码添加小助手微信

请备注:姓名-学校/公司-研究方向
(如:小张-哈工大-对话系统)
即可申请加入自然语言处理/Pytorch等技术交流群

关于我们

MLNLP 社区是由国内外机器学习与自然语言处理学者联合构建的民间学术社区,目前已经发展为国内外知名的机器学习与自然语言处理社区,旨在促进机器学习,自然语言处理学术界、产业界和广大爱好者之间的进步。
社区可以为相关从业者的深造、就业及研究等方面提供开放交流平台。欢迎大家关注和加入我们。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/147852
 
281 次点击