Pythia:Facebook最新開源的視覺、語言多任務學習框架

Facebook 發佈了一個全新的多任務學習框架 Pythia,它基於 PyTorch 且可用於視覺和語言的聯合任務。Pythia 是一種模塊化的即插即用框架,數據科學家和機器學習開發者能快速構建、復現和構建基準模型。javascript

項目地址:https://github.com/facebookresearch/pythiajava

Pythia 是個啥?python

Pythia 是一個深度學習框架,它支持視覺和語言領域的多任務處理。該框架搭建於開源的 PyTorch之上,其模塊化、即插即用的設計使得研究者能夠迅速構建模型。Pythia 是爲視覺和語言任務設計的,如與視覺數據相關的問答和自動生成圖像註釋。git

Pythia 不但支持分佈式訓練及多種數據集,同時還支持自定義的損失函數、度量標準、調度和最優化器等。Pythia 還提供了經常使用的視覺和語言層級模塊,它們都支持分佈式訓練。Pythia 另外一個特色是內建了不少語料庫,包括 VQA、VizWiz、TextVQA 和 VisualDialog,它們能夠用於多任務學習,即 Pythia 能同時在多個語料訓練單一多任務模型。github

整體而言,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 完成視覺和語言多模態研究項目,以下圖所示爲視覺問答,它同時須要學習圖像和文本相關的知識。模塊化

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 還計劃增長一些工具、任務、數據集和參考模型。

相關文章
相關標籤/搜索