像Git一樣用AI數(shù)據(jù)!免費托管工具上線,用「活」數(shù)據(jù)集訓(xùn)練
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
搞機器學(xué)習(xí)的人,很多都飽受數(shù)據(jù)管理的折磨。
要么是數(shù)據(jù)集老舊,需要手工修訂標(biāo)注。
要么是同一個數(shù)據(jù)集有很多被別人調(diào)整過的版本,無從下手。
或者,干脆沒有合適數(shù)據(jù)集,需要自己建立。
國外,一位名叫Simon Lousky的程序員小哥終于不能忍了,開發(fā)出了一套用于機器學(xué)習(xí)的數(shù)據(jù)版本控制工具 (Data Version Control,DVC)。
一鍵調(diào)用數(shù)據(jù)集、一鍵查看編輯歷史……最重要的是,在DVC工具背后,有一個GitHub一樣的數(shù)據(jù)托管社區(qū)。
“盤活”數(shù)據(jù)集
Simon Lousky在學(xué)生時代做項目時,就已經(jīng)感受到了機器學(xué)習(xí)數(shù)據(jù)集管理不便的痛點。
當(dāng)時,他的模型需要一個植物和花朵的數(shù)據(jù)進行訓(xùn)練,而開源數(shù)據(jù)集無論如何也得不到合理的結(jié)果。
于是他自己花了幾個小時的時間,一一修正了數(shù)據(jù)集中大量過時、不合理的標(biāo)注,之后訓(xùn)練結(jié)果讓人十分滿意。
除了這個項目,他之后又進行過很多數(shù)據(jù)集的修正、增補、創(chuàng)建工作,他把這些費時費力的工序稱為“數(shù)據(jù)集的調(diào)試試錯”,并且開始有意記錄操作歷史。
他逐漸發(fā)現(xiàn),自己的項目中,數(shù)據(jù)管理總是一塌糊涂,而依靠GitHub托管的代碼,卻一直井井有條。
那為什么不做一個類似GitHub、專門服務(wù)數(shù)據(jù)管理的工具呢?

DVC就這樣誕生了。
這是一個預(yù)裝的工具庫,實現(xiàn)功能包括對數(shù)據(jù)集的調(diào)用、歷史操作信息的查看等等功能。
它的出現(xiàn),意味著之前,研究人員在本地“死”的數(shù)據(jù)集上訓(xùn)練模型的方式徹底改變。
你可以將項目鏈接到在線托管的數(shù)據(jù)集(或任何文件),建立實時、準(zhǔn)確的聯(lián)系。數(shù)據(jù)集的任何更新變動,都能及時獲知,方便項目的開展。

比如,現(xiàn)在有一個Repository A,這是一個“活”數(shù)據(jù)集,其中元數(shù)據(jù)文件,指向存儲在專用服務(wù)器的真實大文件。
用戶可以將數(shù)據(jù)集文件組織到目錄中,并添加帶有utils函數(shù)的代碼文件,以此來方便調(diào)用。
此外,還有一個Repository B,這是對應(yīng)機器學(xué)習(xí)項目,項目代碼中,包含使用DVC導(dǎo)入數(shù)據(jù)集的指令。
只要創(chuàng)建一個數(shù)據(jù)注冊表,就能建立A和B之間的聯(lián)系:
- mkdir my-dataset && cd my-dataset
- git init
- dvc init
此時,數(shù)據(jù)集目錄會是這樣:

需要查看數(shù)據(jù)集相關(guān)信息時,輸入指令:
- dvc add annotations
- dvc add images
- git add . && git commit -m “Starting to manage my dataset”
數(shù)據(jù)集的預(yù)覽會保存到一個目錄里,這個目錄也會被DVC跟蹤。
然后用戶只需要把代碼和數(shù)據(jù)推送到托管倉庫,這樣就隨時隨地訪問它,并與其他人分享。
當(dāng)然,DVC要發(fā)揮作用,自然少不了背后的DAGsHub。

DAGsHub就是一個GitHub的數(shù)據(jù)管理版本,由三部分組成,git倉庫、DVC、和機器學(xué)習(xí)流程平臺mlflow。
用戶可以提交自己的項目,DAGsHub會自動掃描提交,并提取有用的信息,如實驗參數(shù),數(shù)據(jù)文件和模型的鏈接,并將它們結(jié)合到一個簡單的界面。

DAGsHub可以瀏覽和比較代碼、數(shù)據(jù)、模型和實驗,而且不需要下載任何東西。
此外,還能生成可視化數(shù)據(jù)管道、數(shù)據(jù)操作歷史,并記錄模型性能,自動且美觀。
如何在機器學(xué)習(xí)項目中使用“活”數(shù)據(jù)集
要使用DAGsHub,只需要注冊登錄。

通過以下指令安裝DVC:
- pip3 install dvc
在DAGsHub上找到一個數(shù)據(jù)集,如何在自己的模型中使用它呢?
首先,要從托管的數(shù)據(jù)集中導(dǎo)入一個目錄,并把它當(dāng)作原始文件:
- mkdir -p data/raw
- dvc import -o data/raw/images \
- https://dagshub.com/Simon/baby-yoda-segmentation-dataset \
- data/images
- dvc import -o data/raw/annotations \
- https://dagshub.com/Simon/baby-yoda-segmentation-dataset \
- data/annotations
接著,圖片和注釋就會下載到你自己的項目中,并保留其中歷史信息的信息。

當(dāng)你想要知道數(shù)據(jù)集的變更歷史時,只需運行命令:
dvc update
就能將可視化結(jié)果返回默認目錄保存:

是不是很方便?
對了,無論是DVC,還是DAGsHub,都是開源且免費的,趕快來試試吧
傳送門:
DVC教程:https://dagshub.com/docs/experiment-tutorial/2-data-versioning/
DAGsHub主頁:https://dagshub.com/