Facebook全新开源深度学习框架Pythia,即插即用快速构建AI模型

facebook的人工智能研究部门近期推出pythia,一个模块化的即插即用框架。目标是使数据科学家能够快速构建、复制和基准人工智能模型,将vqa v2.0数据集模型的性能从65.67%提高到70.22%,已在github上开源。
facebook最近在开发者社区抛出了一系列工具。继一月份image processing library spectrum、去年底的自然语言处理建模框架pytext和11月的人工智能增强学习平台horizon的开源后,facebook的人工智能研究部门又推出了pythia,一个模块化的即插即用框架。
pythia的目标是使数据科学家能够快速构建、复制和基准人工智能模型,已在github上开源。
而pythia(中文一般译作皮媞亚)这个名字的来历也很有意思。古希腊神话中,pythia是阿波罗神的女祭司,服务于帕纳塞斯山上的德尔斐(delphi)神庙,以传达阿波罗神的神谕而闻名,被认为能预知未来。
即插即用pythia:让数据科学家快速构建、复制和基准ai模型
pythia是什么?
pythia是一个深度学习框架,支持视觉和语言领域的多任务处理。基于pytorch 框架,模块化即插即用的设计使研究人员能够快速构建、复制和基准化人工智能模型。
pythia是为视觉和语言任务而设计的,例如回答与视觉数据相关的问题和自动生成图像注释。
pythia能做什么?
pythia加入了最近的人工智能竞赛(2018年vqa挑战赛和2018年vizwiz挑战赛)中获奖作品的元素。功能包括用参考实现(reference implementations)来显示以前最先进的模型如何实现相关的基准结果,并快速衡量新模型的性能。
除了多任务处理之外,pythia还支持分布式培训和各种数据集,以及自定义损失、度量、调度(scheduling)和优化器。
pythia的特性
model zoo:艺术级的视觉和语言模型的参考实现,包括lorra(vqa和textvqa上的sota)、pythia模型(vqa 2018 挑战赛获胜者)和ban。
多任务处理:支持多任务处理,允许对多个数据集进行训练。
数据集:包括对各种内置数据集的支持,包括vqa, vizwiz, textvqa and和visualdialog。
模块:为视觉和语言领域中的许多常用层提供实现
分布式:支持基于数据并行和分布式数据并行的分布式训练。
unopinionated:关于基于它的数据集和模型实现是unopinionated。
定制:定制损失、度量、调度、优化器、tensorboard;适合用户所有的定制需求。
用户可以使用pythia为自己下一个视觉和语言多模式研究项目进行引导。pythia还可以作为围绕视觉和语言数据集的挑战的起始代码库(参见textvqa挑战赛和vqa挑战赛)。
pythia最厉害的地方是什么?
pythia简化了进入视觉和语言发展子领域的过程,使研究人员能够专注于更快的原型制作和实验。facebook的目标是通过增加这些模型和结果的再现性来加速进展。这将使社区更容易建立成功系统的基础和基准。
开发者还希望通过pythia消除障碍,能够使研究人员更快地为人们和智能机器开发新的交流方式。这项工作还应该帮助研究人员开发自适应人工智能,将多种理解合成一种更基于上下文的多模式理解。除了这个开源版本,facebook计划继续添加工具、任务、数据集和引用模型。
在上面提到的vqa 2018比赛中,pythia v0.1出发点是自下而上、自上而下模型的模块化重新实现,最终力压群雄而胜出。
pythia v0.1证明,通过对模型体系结构和学习速率计划进行细微但重要的更改、微调图像功能和添加数据扩充,可以显著提高vqa v2.0数据集自上而下模型的性能,从65.67%提高到70.22%。
此外,通过使用不同特征和不同数据集训练的不同模型集合,pythia v0.1能够显著提高1.31%的“标准”集合方式(即具有不同随机种子的相同模型)。总的来说,pythia v0.1在vqa v2.0数据集的测试标准分割上达到了72.27%。
术语和概念
pythia经过精心设计,从一开始就是一个多任务框架。这意味着使用pythia,可以一起训练多个任务和数据集。
但是,pythia在其模块中抽象了许多概念,在pythia之上进行开发,有必要理解pythia代码库中使用的概念和术语。一旦开发人员理解了这些简单的概念,就很容易在pythia之上进行开发。其中主要概念和术语如下:
任务和数据集
在pythia中,数据集被划分为一组任务。因此,任务对应属于它的数据集的集合。例如,vqa 2.0,vizwiz和textvqa都属于vqa任务。 已为每个任务和数据集分配了一个唯一key,用于在命令行参数中引用。
下表显示了任务及其数据集:
下表显示了上表的反转,数据集及其任务和key:
模型
已经包括了最先进模型的参考实施,作为研究论文复制和新研究起点的基础。pythia曾被用于以下论文:
走向可以阅读的vqa模型(lorra模型)
vqa 2018挑战赛冠军
vizwiz 2018挑战赛冠军
与任务和数据集类似,每个模型都使用唯一key进行注册,以便在配置和命令行参数中轻松引用。下表显示了可以运行的每个模型的关键名称和数据集。
注册表
受到redux全球商店的启发,pythia生态系统所需的有用信息已在注册表中注册。可以将注册表视为框架的多个部分所需的信息的通用存储,并在需要该信息的任何地方起作用信息源。
注册表还基于如上所述的唯一密钥来注册模型、任务、数据集等。 注册表的函数可以用作需要注册的类的装饰器(例如模型等)
导入注册表对象导入:
from pythia.common.registry import registry
配置
根据研究需要,pythia中的大多数参数/设置都是可配置的。 pythia特定的默认值(training_parameters)存在于:
pythia/common/defaults/configs/base.yml
其中详细的注释描述了每个参数的用法。为了便于使用和模块化,每个数据集的配置分别保存在:
pythia/common/defaults/configs/tasks/[task]/[dataset].yml
可以从tasks中的表中获取数据集的[task]值和数据集部分。模型配置也是分开的,并且是用户在创建自己的模型时需要定义的部分。
由于每个数据集的单独配置,这个概念可以扩展到执行多任务并在此包含多个数据集配置。
处理器
处理器的主要目的是使数据处理流程尽可能与不同数据集相似,并允许代码重用。
处理器接受带有与所需数据相对应key的字典,并返回带有处理数据的字典。这有助于通过修复所需的签名来使处理器独立于逻辑的其余部分。
处理器用于所有数据集以切换数据处理需求。在处理器文档中了解有关处理器的更多信息。
samplelist
samplelist受到了maskrcnn-benchmark中bboxlist的启发,但更为通用。与pythia集成的所有数据集都需要返回一个sample,该sample将被整理到samplelist中。
现在,samplelist带有许多方便的功能,可以轻松地批量处理和访问事物。对于例如样本是带有一些key的字典。在samplelist中,这些key的值将根据它是张量还是列表而被巧妙地分组,并分配回该字典。
因此,终端用户可以很好地将这些key组合在一起,并可以在他们的模型中使用它们。与pythia集成的模型接收samplelist作为参数,这再次使trainer对模型和数据集不再有任何影响。在其文档中了解有关sample和samplelist的更多信息。
预训练模型
在pythia中使用预训练模型进行推理很容易。从下表中选取一个预训练模型,并按照步骤进行推理或生成预测让evalai评估。(注意,这部分内容需要先安装教程中介绍的数据,教程链接在文末)
现在,假设你到预培训模型model是link(从table中选择>右键单击>复制链接地址),相应的配置应该位于configs/[task]/[dataset]/[model].yml。例如,vqa2 train_and_val的配置文件应该是configs/vqa/vqa2/pythia_train_and_val.yml。现在要运行evalai的推断,请运行以下命令:
如果要在val上进行培训或评估,请相应地将run_type改为train或val。你还可以使用多个运行类型,例如进行训练、对val进行推断、还可以将--run_type设置为train+val+inference进行推断。
如果删除--evalai_inference论证,pythia 将执行推断并直接在数据集上提供结果。请注意,对于测试集,这是不能用的,因为我们没有它们的答案/目标。因此,这对于在本地执行 val集的推理很有用。
如果删除--evalai_inference论证,pythia 将执行推断并直接在数据集上提供结果。请注意,对于测试集,这是不能用的,因为我们没有它们的答案/目标。因此,这对于在本地执行 val集的推理很有用。
下表显示了各种预培训模型的评估指标:
demo演示

智能门锁是如何工作的,它的工作原理如何
巨头争霸,苹果和谷歌的智能家居之战
6个简单的开关电源电路设计原理图
抖音还有可能被超越么?短视频的下半场到底在哪里?
多媒体普法阵地创新法治文化宣传形式
Facebook全新开源深度学习框架Pythia,即插即用快速构建AI模型
西门子博途中DB_ANY数据类型的使用
一加5什么时候上市?一加5和一加3T有什么区别?这次一加5升级了哪些新功能?
利用触觉晶体管打造更智能的人造皮肤
国际电工委最新标准动态,它都发布将会带来哪些影响
超声波流量计的温度校验方法
变频器无故停机的常见原因分析
机器人来了,外卖小哥会失业吗?5G对无人外卖配送有什么影响?
Versal HDIO OBUFT和IOBUF三态时序影响
摩尔定律5年内将失效 半导体行业地震
下一代 iPhone 将搭载三摄并将支持5倍光学变焦?
三分钟读懂 王峰与朱啸虎的对话区块链
12.9寸的iPad Pro2即将发布:保护壳提早曝光,会有双镜头?
周子学:全球半导体市场仍处于上升的趋势,中国市场发展潜力可期
新一代iPad Pro曝光:三星电子计划明年发布首款Mini LED电视