Pythia:Facebook最新开源的视觉、语言多任务学习框架

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

今天,Facebook 发布了一个全新的多任务学习框架 Pythia,它基于 PyTorch 且可用于视觉和语言的联合任务。Pythia 是一种模块化的即插即用框架,数据科学家和机器学习开发者能快速构建、复现和构建基准模型。

项目地址:https://github.com/facebookresearch/pythia

Pythia 是个啥?

 

Pythia 是一个深度学习框架,它支持视觉和语言领域的多任务处理。该框架搭建于开源的 PyTorch之上,其模块化、即插即用的设计使得研究者可以迅速构建模型。Pythia 是为视觉和语言任务设计的,如与视觉数据相关的问答和自动生成图像注释。

Pythia 不但支持分布式训练及多种数据集,同时还支持自定义的损失函数、度量标准、调度和最优化器等。Pythia 还提供了常用的视觉和语言层级模块,它们都支持分布式训练。Pythia 另一个特点是内建了很多语料库,包括 VQA、VizWiz、TextVQA 和 VisualDialog,它们可以用于多任务学习,即 Pythia 能同时在多个语料训练单一多任务模型。

总体而言,Pythia 的特性主要有以下几点:

  • Model Zoo:SoTA 视觉和语言模型的推理实现,包括 LoRRA(VQA 和 TextVQA 的 SoTA)、Pythia 模型(VQA 2018 挑战赛冠军)和 BAN。

  • 多任务:支持多任务,允许在多个数据集上同时训练。

  • 数据集:包括对多种数据集内置的支持,有 VQA、VizWiz、TextVQA 和 VisualDialog。

  • 模块:提供对视觉和语言领域中多个常用层的实现。

  • 分布式:支持基于 DataParallel 和 DistributedDataParallel 的分布式训练。

  • 非指定:不指定构建在其上的数据集和模型实现。

  • 定制化:定制损失函数、度量标准、调度、最优化器、TensorBoard,满足所有定制化需求。

Pythia 有啥用?

Pythia 包含了 Facebook 在最近的 AI 竞赛(VQA 2018 挑战赛和 Vizwiz 2018 挑战赛)中获胜的元素。特征包括推理实现,以展示之前的 SOTA 模型如何达到相关基准结果并快速评估新模型。除了多任务,Pythia 还支持分布式训练、一系列数据集以及定制损失函数、度量、调度和优化器。

  • Pythia 官方文档:https://learnpythia.readthedocs.io/en/latest/

我们可以使用 Pythia 完成视觉和语言多模态研究项目,如下图所示为视觉问答,它同时需要学习图像和文本相关的知识。

 4bec0fb117a7a3e33cb82bacb2429113.jpeg

Pythia 怎么用?

Pythia 的安装非常简单,各种依赖项也都会自动安装:

# Clone Pythia repository
git clone https://github.com/facebookresearch/pythia ~/pythia

# Install dependencies and setup
cd ~/pythia
python setup.py develop
  1. 获取数据

Pythia 目前支持的数据集要求有两部分,即特征和 ImDB。例如,对于 TextVQA,我们需要下载如下数据和预训练权重。

cd ~/pythia;
# Create data folder
mkdir -p data && cd data;

# Download and extract the features
wget https://dl.fbaipublicfiles.com/pythia/features/open_images.tar.gz
tar xf open_images.tar.gz

# Get vocabularies
wget http://dl.fbaipublicfiles.com/pythia/data/vocab.tar.gz
tar xf vocab.tar.gz

# Download detectron weights required by some models
wget http://dl.fbaipublicfiles.com/pythia/data/detectron_weights.tar.gz
tar xf detectron_weights.tar.gz

# Download and extract ImDB
mkdir -p imdb && cd imdb
wget https://dl.fbaipublicfiles.com/pythia/data/imdb/textvqa_0.5.tar.gz
tar xf textvqa_0.5.tar.gz
  1. 训练

下载数据后就可以直接训练了:

cd ~/pythia;
python tools/run.py --tasks vqa --datasets textvqa --model lorra --config *\*
configs/vqa/textvqa/lorra.yml
  1. 推断

如果需要运行推断或生成预测,我们可以下载对应的预训练模型,并运行以下命令行:

cd ~/pythia/data
mkdir -p models && cd models;

wget https://dl.fbaipublicfiles.com/pythia/pretrained_models/textvqa/lorra_best.pthcd ../..

python tools/run.py --tasks vqa --datasets textvqa --model lorra --config *\*
configs/vqa/textvqa/lorra.yml --resume_file data/models/lorra_best.pth *\*
--evalai_inference 1 --run_type inference
  • 完整的示例可以在 colab 上查看:https://colab.research.google.com/drive/1Z9fsh10rFtgWe4uy8nvU4mQmqdokdIRR 

Pythia 有何重要之处

 

Pythia 使得进入不断发展中的视觉和语言子领域这一过程变得更加平滑,可以让研究人员专注于更快的原型和实验。Facebook 的目标是通过提高这些模型和结果的复现性来加速进程。如此一来,社区就能更容易地构建成功的系统,并对其进行基准测试。

Facebook 希望,在移除一些障碍之后,研究者能够更加快速地开发出人类和智能机器交流的新方法。这项工作还应该帮助研究者开发适应性 AI,将多种理解综合成更基于上下文的、多模态的理解。除了本次开源的内容外吗,Facebook 还计划增加一些工具、任务、数据集和参考模型。

参考文章:https://code.fb.com/ai-research/pythia/

 
 

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇

 
 

50713efbad2f0c45a041eb17bb3654ee.jpeg

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码使用了Hugging Face库中的transformers模块,并结合了两个预训练模型进行文本生成任务。以下是对代码的解析: 1. 导入所需的库和模型: ```python from transformers import AutoModelForCausalLM, AutoTokenizer # 导入预训练模型和分词器 checkpoint = "EleutherAI/pythia-1.4b-deduped" assistant_checkpoint = "EleutherAI/pythia-160m-deduped" tokenizer = AutoTokenizer.from_pretrained(checkpoint) model = AutoModelForCausalLM.from_pretrained(checkpoint) assistant_model = AutoModelForCausalLM.from_pretrained(assistant_checkpoint) ``` 2. 初始化分词器和输入: ```python # 初始化分词器 prompt = "Alice and Bob" inputs = tokenizer(prompt, return_tensors="pt") ``` 3. 使用预训练模型生成文本: ```python # 使用预训练模型生成文本 outputs = model.generate(**inputs, assistant_model=assistant_model, do_sample=True, temperature=0.5) ``` 4. 解码生成的文本: ```python # 解码生成的文本 decoded_outputs = tokenizer.batch_decode(outputs, skip_special_tokens=True) ``` 根据代码中的设置,预训练模型`model`将根据输入的prompt进行文本生成。同时,通过指定`assistant_model`参数,使用了另一个预训练模型`assistant_model`作为助理模型参与生成过程。`do_sample=True`表示使用采样方式生成文本,`temperature=0.5`表示在采样时引入一定的随机性,使生成的文本更多样化。 最后,通过使用分词器的`batch_decode`函数,将生成的文本解码为人类可读的形式并存储在`decoded_outputs`中。 对于这段代码的输出,假设生成的文本为:"Alice and Bob are sitting on the sofa. Alice says, 'I'm going to my room"。这是模型根据输入prompt生成的一句话,表示Alice和Bob坐在沙发上,Alice说:“我要去我的房间了”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值