一行代碼命令可以做什么?
“一行命令可以實現(xiàn)‘一條龍’運行實驗。”
訪問 github.com/THUDM/cogdl 一鍵體驗!
近年來,結(jié)構(gòu)化數(shù)據(jù)的表示學(xué)習(xí)備受業(yè)界關(guān)注與熱捧,圖神經(jīng)網(wǎng)絡(luò)成為處理相關(guān)工作的有力工具,基于隨機(jī)游走、矩陣分解的方法在搜索推薦、分子和藥物生成等領(lǐng)域有著十分重要的應(yīng)用。
但是,由于許多項目的代碼并未開源或者開源代碼的風(fēng)格多種多樣,研究者和使用者在使用這些方法的過程中會遇到各種各樣的問題,比如實驗復(fù)現(xiàn)以及如何在自己的數(shù)據(jù)集上運行模型等。
具體而言(以學(xué)術(shù)研究為例),研究者和使用者在從事研究過程中需要將自己提出的模型與其他模型進(jìn)行對比,來驗證所提出模型的有效性。但在對比過程中,他們需要選定若干個下游任務(wù),在每個任務(wù)下,通過公平的評估方式來對比不同模型的性能,由于不同模型在提出時可能會使用不完全一致的下游任務(wù)或者評估方式,他們需要花費大量精力修改基線模型來進(jìn)行適配。
那么,如何快速、便捷地復(fù)現(xiàn)出基線模型(baseline)的結(jié)果,并將這些模型應(yīng)用到自定義的數(shù)據(jù)集上?
為此,清華大學(xué)知識工程實驗室(KEG)聯(lián)合北京智源人工智能研究院(BAAI)開發(fā)了一種基于圖深度學(xué)習(xí)的開源工具包——CogDL(底層架構(gòu)為 PyTorch,編程語言為 Python)。
據(jù) CogDL 開發(fā)者介紹,該工具包通過整合多種不同的下游任務(wù),同時搭配合適的評估方式,使得研究者和使用者可以方便、快速地運行出各種基線模型的結(jié)果,進(jìn)而將更多精力投入研發(fā)新模型的工作之中。
“對圖領(lǐng)域中每種任務(wù),我們提供了一套完整的“數(shù)據(jù)處理-模型搭建-模型訓(xùn)練-模型評估”的方案,易于研發(fā)人員做相關(guān)的實驗。比如對于圖上半監(jiān)督節(jié)點分類任務(wù),我們整合了常用的數(shù)據(jù)集 Cora、Citeseer、Pubmed,提供了經(jīng)典的/前沿的各種模型(包括GCN、GAT、GCNII 等),提供了相應(yīng)的訓(xùn)練腳本,并且整理出了一個相應(yīng)的排行榜作為參考?!?CogDL 開發(fā)者說。
CogDL 最特別的一點在于它以任務(wù)(task)為導(dǎo)向來集成所有算法,將每一個算法分配在一個或多個任務(wù)下,從而構(gòu)建了 “數(shù)據(jù)處理-模型搭建-模型訓(xùn)練和驗證” 一條龍的實現(xiàn)。
此外,CogDL 也支持研究者和使用者自定義模型和數(shù)據(jù)集,并嵌入在 CogDL 的整體框架下,從而幫助他們提高開發(fā)效率,同時也包含了當(dāng)前許多數(shù)據(jù)集上 SOTA 算法的實現(xiàn),并且仍然在不斷更新。 CogDL:面向任務(wù),擴(kuò)展算法 圖表示學(xué)習(xí)算法可以分為兩類:一類是基于圖神經(jīng)網(wǎng)絡(luò)的算法,另一類是基于 Skip-gram 或矩陣分解的算法。前者包括 GCN、GAT、GraphSAGE 和 DiffPool 等,以及適用于異構(gòu)圖的 RGCN、GATNE 等;后者則包括 Deepwalk、Node2Vec、HOPE 和 NetMF 等,以及用于圖分類的 DGK、graph2vec 等算法。
大體上,CogDL 將已有圖表示學(xué)習(xí)算法劃分為以下 6 項任務(wù):
有監(jiān)督節(jié)點分類任務(wù)(node classification):包括 GCN、GAT、GraphSAGE、MixHop 和 GRAND 等;
無監(jiān)督節(jié)點分類任務(wù)(unsupervised node classification):包括 DGI、GraphSAGE(無監(jiān)督實現(xiàn)),以及 Deepwalk、Node2vec、ProNE 等;
有監(jiān)督圖分類任務(wù)(graph classification):包括 GIN、DiffPool、SortPool 等;
無監(jiān)督圖分類任務(wù)(unsupervised graph classification):包括 InfoGraph、DGK、Graph2Vec 等;
鏈接預(yù)測任務(wù)(link prediction):包括 RGCN、CompGCN、GATNE 等;
異構(gòu)節(jié)點分類(multiplex node classification):包括 GTN、HAN、Metapath2vec 等。
CogDL 還包括圖上的預(yù)訓(xùn)練模型 GCC,GCC 主要利用圖的結(jié)構(gòu)信息來預(yù)訓(xùn)練圖神經(jīng)網(wǎng)絡(luò),從而使得該網(wǎng)絡(luò)可以遷移到其他數(shù)據(jù)集上,來取得較好的節(jié)點分類和圖分類的效果。 能用來做什么? 那么,研究者和使用者可以利用 CogDL 做些什么?主要有三點:跟進(jìn) SOTA、復(fù)現(xiàn)實驗,以及自定義模型和數(shù)據(jù)。
跟進(jìn) SOTA。CogDL 跟進(jìn)最新發(fā)布的算法,包含不同任務(wù)下 SOTA 的實現(xiàn),同時建立了不同任務(wù)下所有模型的 leaderboard(排行榜),研究人員和開發(fā)人員可以通過 leaderboard 比較不同算法的效果。
復(fù)現(xiàn)實驗。論文模型的可復(fù)現(xiàn)性是非常重要的。CogDL 通過實現(xiàn)不同論文的模型也是對模型可復(fù)現(xiàn)性的一個檢驗。
自定義模型和數(shù)據(jù)?!皵?shù)據(jù)-模型-訓(xùn)練”三部分在 CogDL 中是獨立的,研究者和使用者可以自定義其中任何一部分,并復(fù)用其他部分,從而提高開發(fā)效率。 怎么用? 有兩種方法:命令行直接運行,通過 API 調(diào)用 命令行直接運行。通過命令行可以直接指定 "task"、"model"、"dataset" 以及對應(yīng)的超參數(shù),并且支持同時指定多個模型和多個數(shù)據(jù)集,更方便。代碼如下:
支持自定義數(shù)據(jù)集和模型,并且提供了自動調(diào)參的例子。
據(jù) CogDL 研究者介紹,從 2019 年啟動以來,該項目經(jīng)過了多次密集的研發(fā),到目前已經(jīng)整合了圖領(lǐng)域的重要任務(wù)及其相關(guān)的經(jīng)典和前沿的模型。
CogDL 開發(fā)者表示,“起初,我們只是整合了實驗室內(nèi)部從事相關(guān)領(lǐng)域研究的同學(xué)所使用的相關(guān)代碼,為了方便實驗室其余的同學(xué)運行相關(guān)的實驗。后來,我們決定將代碼開源出來,讓更多的研究和開發(fā)人員能夠借助我們的代碼從事相關(guān)工作?!?br />
如今,CogDL 已經(jīng)上線了 CogDL v0.1.1。
“我們增加了一些最前沿的圖神經(jīng)網(wǎng)絡(luò)模型,包括圖自監(jiān)督模型、圖預(yù)訓(xùn)練模型。用戶可以利用圖上預(yù)訓(xùn)練好的模型做不同的下游任務(wù)。在下游任務(wù)方面,我們增加了知識圖譜的鏈接預(yù)測任務(wù),方便從事知識圖譜領(lǐng)域的用戶進(jìn)行相關(guān)實驗?!?CogDL 開發(fā)者說。
具體而言,在監(jiān)督節(jié)點分類任務(wù)上,增加了 GRAND 和 DisenGCN,GRAND 在 Cora、PubMed、Citeseer 上取得了 SOTA 或者接近 SOTA 的效果;無監(jiān)督節(jié)點分類任務(wù)上,增加了 DGI、MVGRL、GraphSAGE(無監(jiān)督實現(xiàn));在鏈接預(yù)測任務(wù)上,增加了知識圖譜上的鏈接預(yù)測 GNN 模型 RGCN 和 CompGCN;以及增加了圖上的預(yù)訓(xùn)練模型 GCC。
另外,CogDL 也提供了使用 optuna 進(jìn)行超參數(shù)搜索的 example,通過指定 "模型,數(shù)據(jù)集,參數(shù)" 即可自動實現(xiàn)超參數(shù)的搜索。
接下來,CogDL 研究者希望在現(xiàn)有基礎(chǔ)上,繼續(xù)補(bǔ)充其余的圖領(lǐng)域的下游任務(wù),添加更多的數(shù)據(jù)集,更新每個任務(wù)的排行榜;同時增加最前沿的關(guān)于預(yù)訓(xùn)練的圖神經(jīng)網(wǎng)絡(luò)模型,支持用戶直接使用預(yù)訓(xùn)練好的模型來進(jìn)行相關(guān)應(yīng)用;以及完善 CogDL 的教程和文檔,讓剛接觸圖領(lǐng)域的初學(xué)者能夠快速上手。
談及最終的愿景,CogDL 研究者表示,一方面希望從事圖數(shù)據(jù)領(lǐng)域的研究人員可以方便地利用 CogDL 來做實驗,另一方面希望面向?qū)嶋H應(yīng)用的開發(fā)人員可以利用 CogDL 來快速地搭建相關(guān)下游應(yīng)用,最終打造一個完善的圖領(lǐng)域的研發(fā)生態(tài)。
編輯:hfy
-
人工智能
+關(guān)注
關(guān)注
1806文章
48987瀏覽量
249143 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86668 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5560瀏覽量
122769 -
結(jié)構(gòu)化數(shù)據(jù)
+關(guān)注
關(guān)注
0文章
3瀏覽量
2607
發(fā)布評論請先 登錄
IQM 宣布 Resonance 量子云平臺重大升級,推出全新軟件開發(fā)工具包
在OpenVINO?工具套件的深度學(xué)習(xí)工作臺中無法導(dǎo)出INT8模型怎么解決?
在Google Colab筆記本電腦上導(dǎo)入OpenVINO?工具包2021中的 IEPlugin類出現(xiàn)報錯,怎么解決?
構(gòu)建開源OpenVINO?工具包后,使用MYRIAD插件成功運行演示時報錯怎么解決?
靈汐科技開源類腦深度學(xué)習(xí)應(yīng)用開發(fā)平臺BIDL

安裝OpenVINO?工具包穩(wěn)定擴(kuò)散后報錯,怎么解決?
云計算開發(fā)工具包的功能
最新Simplicity SDK軟件開發(fā)工具包發(fā)布
基于EasyGo Vs工具包和Nl veristand軟件進(jìn)行的永磁同步電機(jī)實時仿真

NPU在深度學(xué)習(xí)中的應(yīng)用
GPU深度學(xué)習(xí)應(yīng)用案例
FPGA加速深度學(xué)習(xí)模型的案例
FPGA仿真工具包軟件EasyGo Vs Addon介紹

采用德州儀器 (TI) 工具包進(jìn)行模擬前端設(shè)計應(yīng)用說明

評論