Pythia:Facebook最新開源的視覺、語言多任務學習框架
選自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 完成視覺和語言多模態研究項目,如下圖所示為視覺問答,它同時需要學習圖像和文本相關的知識。
Pythia 怎麼用?
Pythia 的安裝非常簡單,各種依賴項也都會自動安裝:
獲取數據
Pythia 目前支持的數據集要求有兩部分,即特徵和 ImDB。例如,對於 TextVQA,我們需要下載如下數據和預訓練權重。
訓練
下載數據後就可以直接訓練了:
推斷
如果需要運行推斷或生成預測,我們可以下載對應的預訓練模型,並運行以下命令行:
完整的示例可以在 colab 上查看:https://colab.research.google.com/drive/1Z9fsh10rFtgWe4uy8nvU4mQmqdokdIRR
Pythia 有何重要之處
Pythia 使得進入不斷發展中的視覺和語言子領域這一過程變得更加平滑,可以讓研究人員專註於更快的原型和實驗。Facebook 的目標是通過提高這些模型和結果的復現性來加速進程。如此一來,社區就能更容易地構建成功的系統,並對其進行基準測試。
Facebook 希望,在移除一些障礙之後,研究者能夠更加快速地開發出人類和智能機器交流的新方法。這項工作還應該幫助研究者開發適應性 AI,將多種理解綜合成更基於上下文的、多模態的理解。除了本次開源的內容外嗎,Facebook 還計劃增加一些工具、任務、數據集和參考模型。
參考文章:https://code.fb.com/ai-research/pythia/
本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。
------------------------------------------------
※快到沒朋友的YOLO v3有了PaddlePaddle 預訓練模型
※理論優美的深度信念網路,Hinton老爺子北大最新演講
TAG:機器之心 |