當(dāng)你用大量高質(zhì)量訓(xùn)練數(shù)據(jù)訓(xùn)練深度學(xué)習(xí)模型時(shí),可能會(huì)刷新多個(gè)領(lǐng)域的模型最佳預(yù)測表現(xiàn)(例如圖像分類、語音識(shí)別和機(jī)器翻譯)。作為訓(xùn)練數(shù)據(jù)、日志、模型服務(wù)、檢查點(diǎn)的存儲(chǔ)中心,分布式文件系統(tǒng)正變得越來越重要。HopsFS就是不錯(cuò)的選擇,它可以本地支持?jǐn)?shù)據(jù)科學(xué)主流的Python框架,例如Pandas、TensorFlow/Keras、PySpark和Arrow。
數(shù)據(jù)集尺寸增加,預(yù)測性能增加
百度研究院曾經(jīng)提出,可以根據(jù)訓(xùn)練數(shù)據(jù)的數(shù)量,判斷深度學(xué)習(xí)模型預(yù)測的精確度是否能提高(或者能否生成更少的錯(cuò)誤)。根據(jù)下方的對(duì)數(shù)坐標(biāo)圖可以看出,隨著訓(xùn)練數(shù)據(jù)的尺寸增加,生成的錯(cuò)誤不斷減少,呈冪律分布。這一結(jié)果來源于對(duì)多領(lǐng)域不同的機(jī)器學(xué)習(xí)模型的研究,包括機(jī)器翻譯、語言建模、圖像分類、語音識(shí)別。假設(shè)這一結(jié)果在多個(gè)應(yīng)用領(lǐng)域都通用,那么有可能在你的研究領(lǐng)域也成立。對(duì)正在考慮大規(guī)模投資深度學(xué)習(xí)的公司來說,這一結(jié)果非常重要。假設(shè)生成或收集1GB的新訓(xùn)練數(shù)據(jù)需要花費(fèi)X美元,你就能預(yù)測它能為模型精確度提高多少。
來源:百度研究院research.baidu.com/deep-learning-scaling-predictable-empirically/
可預(yù)測的投資回報(bào)率
這里通過收集或生成更多訓(xùn)練數(shù)據(jù)而得到的可預(yù)測投資回報(bào)率(ROI)比上面的概念稍復(fù)雜。首先,你需要收集到足夠多的數(shù)據(jù),如下圖所示,使數(shù)據(jù)量超過“Small Data Region”,在冪律區(qū)域中,才能用足夠的數(shù)據(jù)做出預(yù)測。
你可以根據(jù)你模型生成的錯(cuò)誤數(shù)量變化繪制出函數(shù)圖像,并聯(lián)系起訓(xùn)練數(shù)據(jù)的多少制定出對(duì)數(shù)坐標(biāo)。通過觀察你模型的直線變化,計(jì)算你的冪律圖形中的指數(shù)(圖形的斜率)。百度的實(shí)證結(jié)果表明,在它們繪制的學(xué)習(xí)曲線上,指數(shù)的范圍在-0.35到-0.07之間,說明模型在學(xué)習(xí)真實(shí)世界數(shù)據(jù)時(shí)比理論上要慢(理論上模型的理想冪律指數(shù)為-0.5)。
并且,如果你觀察了冪律區(qū)域,當(dāng)訓(xùn)練數(shù)據(jù)集的尺寸增加時(shí),模型預(yù)測的生成錯(cuò)誤會(huì)減少。例如,如果你在為一輛自動(dòng)駕駛汽車訓(xùn)練圖像分類器,那么小車自動(dòng)形式的時(shí)間決定了訓(xùn)練數(shù)據(jù)的尺寸。所以,自動(dòng)駕駛的時(shí)間越長,圖像分類器出錯(cuò)的機(jī)會(huì)就越少,并且是可以預(yù)測的。這對(duì)商業(yè)領(lǐng)域來說,能夠通過數(shù)據(jù)增加判斷精確度增加,是非常重要的一點(diǎn)。
分布式文件系統(tǒng)的必要性
TensorFlow團(tuán)隊(duì)在2018年TensorFlow開發(fā)者峰會(huì)上表示,一個(gè)分布式文件系統(tǒng)對(duì)深度學(xué)習(xí)來說是必需的。數(shù)據(jù)集越來越大,GPU不僅僅要實(shí)現(xiàn)存儲(chǔ),還需要協(xié)調(diào)模型檢查點(diǎn)、超參數(shù)優(yōu)化和模型架構(gòu)搜索。你的系統(tǒng)可能需要多個(gè)服務(wù)器,所以,一個(gè)分布式文件系統(tǒng)可以將你的機(jī)器學(xué)習(xí)流程中的不同階段融合起來,可以讓團(tuán)隊(duì)成員共享GPU硬件和數(shù)據(jù)。重要的是,分布式文件系統(tǒng)能根據(jù)你的編程語言和深度學(xué)習(xí)框架工作。
管理日志、TensorBoard、協(xié)調(diào)GPU、存儲(chǔ)檢查點(diǎn)等都需要分布式文件系統(tǒng)
前面我們說到,HopsFS是一種不錯(cuò)的選擇,它是HDFS的替代。HopsFS/HDFS都支持主流的Python框架,例如Pandas、PySpark數(shù)據(jù)框架、TensorFlow數(shù)據(jù)等等。在Hopsworks中,我們提供嵌入式的HopsFS/HDFS支持,以及pydoop庫。HopsFS有一個(gè)針對(duì)機(jī)器學(xué)習(xí)工作負(fù)載的特征,即對(duì)小型文件,它改善了吞吐量,并將降低了讀取/書寫的延遲。我們在Middleware 2018上有一篇經(jīng)過同行審議的論文,證明了和之前的HDFS處理小文件相比,HopsFS的吞吐量提高了66倍。
Python在分布式文件系統(tǒng)中的支持情況
下表體現(xiàn)出不同分布式文件系統(tǒng)所支持的框架:
HopsFS中Python的支持情況
下面我們介紹幾個(gè)用Python代碼在HopsFS中使用數(shù)據(jù)集的例子,完整Notebook地址:github.com/logicalclocks/hops-examples/tree/master/tensorflow/notebooks
Pandas
import hops.hdfs as hdfs
cols = [“Age”, “Occupation”, “Sex”, …, “Country”]
h = hdfs.get_fs()
with h.open_file(hdfs.project_path()+“/TestJob/data/census/adult.data”, “r”) as f:
train_data=pd.read_csv(f, names=cols, sep=r’s*,s*’,engine=‘python’,na_values=“?”)
用Pandas時(shí),和本地文件系統(tǒng)相比,我們唯一要改變代碼的地方就是將openfile(..)改成h.openfile(..),其中h是HDFS/HopsFS中文檔處理的指令。
PySpark
from mmlspark importImageTransformer
IMAGE_PATH=“/Projects/myProj/Resources/imgs”
images = spark.readImages(IMAGE_PATH, recursive = True, sampleRatio = 0.1).cache()
tr = (ImageTransformer().setOutputCol(“transformed”)
.resize(height = 200, width = 200)
.crop(0, 0, height = 180, width = 180) )
smallImgs = tr.transform(images).select(“transformed”)
smallImgs.write.save(“/Projects/myProj/Resources/small_imgs”, format=“parquet”)
TensorFlow數(shù)據(jù)集
def input_fn(batch_sz):
files = tf.data.Dataset.list_files(IMAGE_PATH)
def tfrecord_dataset(f):
return tf.data.TFRecordDataset(f, num_parallel_reads=32, buffer_size=8*1024*1024)
dataset = files.apply(tf.data.parallel_interleave(tfrecord_dataset,cycle_length=32))
dataset = dataset.prefetch(4)
return dataset
-
編程語言
+關(guān)注
關(guān)注
10文章
1956瀏覽量
36651 -
圖像分類
+關(guān)注
關(guān)注
0文章
96瀏覽量
12167 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5561瀏覽量
122794
原文標(biāo)題:面向深度學(xué)習(xí)的分布式文件系統(tǒng)
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
分布式軟件系統(tǒng)
分布式文件系統(tǒng)和fastDFS
一文解讀在RTThread平臺(tái)上使用DFS分布式文件系統(tǒng)
HarmonyOS分布式文件系統(tǒng)開發(fā)指導(dǎo)
采用信任管理的分布式文件系統(tǒng)TrustFs
海量郵件分布式文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于分布式文件系統(tǒng)元數(shù)據(jù)操作優(yōu)化

盤點(diǎn)一下這些常見的分布式文件系統(tǒng)

AFS,GFS ,QKFile主流分布式存儲(chǔ)文件系統(tǒng)
解析夸克分布式文件系統(tǒng)如何實(shí)現(xiàn)資源共享
分布式文件存儲(chǔ)系統(tǒng)GFS的基礎(chǔ)知識(shí)

分布式文件系統(tǒng)主從式的伸縮性架構(gòu)設(shè)計(jì)

評(píng)論