Facebook的人工智能研究部門近期推出Pythia,一個模塊化的即插即用框架。目標是使數(shù)據科學家能夠快速構建、復制和基準人工智能模型,將VQA v2.0數(shù)據集模型的性能從65.67%提高到70.22%,已在Github上開源。
Facebook最近在開發(fā)者社區(qū)拋出了一系列工具。繼一月份image processing library Spectrum、去年底的自然語言處理建??蚣躊yText和11月的人工智能增強學習平臺Horizon的開源后,F(xiàn)acebook的人工智能研究部門又推出了Pythia,一個模塊化的即插即用框架。
Pythia的目標是使數(shù)據科學家能夠快速構建、復制和基準人工智能模型,已在Github上開源。
而Pythia(中文一般譯作皮媞亞)這個名字的來歷也很有意思。古希臘神話中,Pythia是阿波羅神的女祭司,服務于帕納塞斯山上的德爾斐(Delphi)神廟,以傳達阿波羅神的神諭而聞名,被認為能預知未來。
即插即用Pythia:讓數(shù)據科學家快速構建、復制和基準AI模型
Pythia是什么?
Pythia是一個深度學習框架,支持視覺和語言領域的多任務處理。基于PyTorch 框架,模塊化即插即用的設計使研究人員能夠快速構建、復制和基準化人工智能模型。
Pythia是為視覺和語言任務而設計的,例如回答與視覺數(shù)據相關的問題和自動生成圖像注釋。
Pythia能做什么?
Pythia加入了最近的人工智能競賽(2018年VQA挑戰(zhàn)賽和2018年Vizwiz挑戰(zhàn)賽)中獲獎作品的元素。功能包括用參考實現(xiàn)(reference implementations)來顯示以前最先進的模型如何實現(xiàn)相關的基準結果,并快速衡量新模型的性能。
除了多任務處理之外,Pythia還支持分布式培訓和各種數(shù)據集,以及自定義損失、度量、調度(scheduling)和優(yōu)化器。
Pythia的特性
Model Zoo:藝術級的視覺和語言模型的參考實現(xiàn),包括LoRRA(VQA和TextVQA上的SoTA)、Pythia模型(VQA 2018 挑戰(zhàn)賽獲勝者)和Ban。
多任務處理:支持多任務處理,允許對多個數(shù)據集進行訓練。
數(shù)據集:包括對各種內置數(shù)據集的支持,包括VQA, VizWiz, TextVQA and和VisualDialog。
模塊:為視覺和語言領域中的許多常用層提供實現(xiàn)
分布式:支持基于數(shù)據并行和分布式數(shù)據并行的分布式訓練。
Unopinionated:關于基于它的數(shù)據集和模型實現(xiàn)是Unopinionated。
定制:定制損失、度量、調度、優(yōu)化器、Tensorboard;適合用戶所有的定制需求。
用戶可以使用Pythia為自己下一個視覺和語言多模式研究項目進行引導。Pythia還可以作為圍繞視覺和語言數(shù)據集的挑戰(zhàn)的起始代碼庫(參見TextVQA挑戰(zhàn)賽和VQA挑戰(zhàn)賽)。
Pythia最厲害的地方是什么?
Pythia簡化了進入視覺和語言發(fā)展子領域的過程,使研究人員能夠專注于更快的原型制作和實驗。Facebook的目標是通過增加這些模型和結果的再現(xiàn)性來加速進展。這將使社區(qū)更容易建立成功系統(tǒng)的基礎和基準。
開發(fā)者還希望通過Pythia消除障礙,能夠使研究人員更快地為人們和智能機器開發(fā)新的交流方式。這項工作還應該幫助研究人員開發(fā)自適應人工智能,將多種理解合成一種更基于上下文的多模式理解。除了這個開源版本,F(xiàn)acebook計劃繼續(xù)添加工具、任務、數(shù)據集和引用模型。
在上面提到的VQA 2018比賽中,Pythia v0.1出發(fā)點是自下而上、自上而下模型的模塊化重新實現(xiàn),最終力壓群雄而勝出。
Pythia v0.1證明,通過對模型體系結構和學習速率計劃進行細微但重要的更改、微調圖像功能和添加數(shù)據擴充,可以顯著提高VQA v2.0數(shù)據集自上而下模型的性能,從65.67%提高到70.22%。
此外,通過使用不同特征和不同數(shù)據集訓練的不同模型集合,Pythia v0.1能夠顯著提高1.31%的“標準”集合方式(即具有不同隨機種子的相同模型)??偟膩碚f,Pythia v0.1在VQA v2.0數(shù)據集的測試標準分割上達到了72.27%。
術語和概念
Pythia經過精心設計,從一開始就是一個多任務框架。這意味著使用Pythia,可以一起訓練多個任務和數(shù)據集。
但是,Pythia在其模塊中抽象了許多概念,在Pythia之上進行開發(fā),有必要理解Pythia代碼庫中使用的概念和術語。一旦開發(fā)人員理解了這些簡單的概念,就很容易在Pythia之上進行開發(fā)。其中主要概念和術語如下:
任務和數(shù)據集
在Pythia中,數(shù)據集被劃分為一組任務。因此,任務對應屬于它的數(shù)據集的集合。例如,VQA 2.0,VizWiz和TextVQA都屬于VQA任務。 已為每個任務和數(shù)據集分配了一個唯一key,用于在命令行參數(shù)中引用。
下表顯示了任務及其數(shù)據集:
下表顯示了上表的反轉,數(shù)據集及其任務和key:
模型
已經包括了最先進模型的參考實施,作為研究論文復制和新研究起點的基礎。Pythia曾被用于以下論文:
走向可以閱讀的VQA模型(LoRRA模型)
VQA 2018挑戰(zhàn)賽冠軍
VizWiz 2018挑戰(zhàn)賽冠軍
與任務和數(shù)據集類似,每個模型都使用唯一key進行注冊,以便在配置和命令行參數(shù)中輕松引用。下表顯示了可以運行的每個模型的關鍵名稱和數(shù)據集。
注冊表
受到Redux全球商店的啟發(fā),Pythia生態(tài)系統(tǒng)所需的有用信息已在注冊表中注冊??梢詫⒆员硪暈榭蚣艿亩鄠€部分所需的信息的通用存儲,并在需要該信息的任何地方起作用信息源。
注冊表還基于如上所述的唯一密鑰來注冊模型、任務、數(shù)據集等。 注冊表的函數(shù)可以用作需要注冊的類的裝飾器(例如模型等)
導入注冊表對象導入:
from pythia.common.registry import registry
配置
根據研究需要,Pythia中的大多數(shù)參數(shù)/設置都是可配置的。 Pythia特定的默認值(training_parameters)存在于:
pythia/common/defaults/configs/base.yml
其中詳細的注釋描述了每個參數(shù)的用法。為了便于使用和模塊化,每個數(shù)據集的配置分別保存在:
pythia/common/defaults/configs/tasks/[task]/[dataset].yml
可以從Tasks中的表中獲取數(shù)據集的[task]值和數(shù)據集部分。模型配置也是分開的,并且是用戶在創(chuàng)建自己的模型時需要定義的部分。
由于每個數(shù)據集的單獨配置,這個概念可以擴展到執(zhí)行多任務并在此包含多個數(shù)據集配置。
處理器的主要目的是使數(shù)據處理流程盡可能與不同數(shù)據集相似,并允許代碼重用。
處理器接受帶有與所需數(shù)據相對應key的字典,并返回帶有處理數(shù)據的字典。這有助于通過修復所需的簽名來使處理器獨立于邏輯的其余部分。
處理器用于所有數(shù)據集以切換數(shù)據處理需求。在處理器文檔中了解有關處理器的更多信息。
SampleList
SampleList受到了maskrcnn-benchmark中BBoxList的啟發(fā),但更為通用。與Pythia集成的所有數(shù)據集都需要返回一個Sample,該Sample將被整理到SampleList中。
現(xiàn)在,SampleList帶有許多方便的功能,可以輕松地批量處理和訪問事物。對于例如樣本是帶有一些key的字典。在SampleList中,這些key的值將根據它是張量還是列表而被巧妙地分組,并分配回該字典。
因此,終端用戶可以很好地將這些key組合在一起,并可以在他們的模型中使用它們。與Pythia集成的模型接收SampleList作為參數(shù),這再次使trainer對模型和數(shù)據集不再有任何影響。在其文檔中了解有關Sample和SampleList的更多信息。
預訓練模型
在Pythia中使用預訓練模型進行推理很容易。從下表中選取一個預訓練模型,并按照步驟進行推理或生成預測讓EvalAI評估。(注意,這部分內容需要先安裝教程中介紹的數(shù)據,教程鏈接在文末)
現(xiàn)在,假設你到預培訓模型model是link(從table中選擇>右鍵單擊>復制鏈接地址),相應的配置應該位于configs/[task]/[dataset]/[model].yml。例如,vqa2 train_and_val的配置文件應該是configs/vqa/vqa2/pythia_train_and_val.yml。現(xiàn)在要運行EvalAI的推斷,請運行以下命令:
如果要在val上進行培訓或評估,請相應地將run_type改為train或val。你還可以使用多個運行類型,例如進行訓練、對val進行推斷、還可以將--run_type設置為train+val+inference進行推斷。
如果刪除--evalai_inference論證,Pythia 將執(zhí)行推斷并直接在數(shù)據集上提供結果。請注意,對于測試集,這是不能用的,因為我們沒有它們的答案/目標。因此,這對于在本地執(zhí)行 val集的推理很有用。
如果刪除--evalai_inference論證,Pythia 將執(zhí)行推斷并直接在數(shù)據集上提供結果。請注意,對于測試集,這是不能用的,因為我們沒有它們的答案/目標。因此,這對于在本地執(zhí)行 val集的推理很有用。
下表顯示了各種預培訓模型的評估指標:
Demo演示
-
Facebook
+關注
關注
3文章
1429瀏覽量
54479 -
深度學習
+關注
關注
73文章
5422瀏覽量
120598 -
pytorch
+關注
關注
2文章
794瀏覽量
13013
原文標題:Facebook全新開源深度學習框架Pythia,即插即用快速構建AI模型
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論