0
本文作者: 恒亮 | 2017-02-23 16:21 |
在實(shí)際的機(jī)器學(xué)習(xí)開(kāi)發(fā)中,開(kāi)發(fā)者通常需要對(duì)數(shù)據(jù)集進(jìn)行大量的耗時(shí)費(fèi)力的預(yù)處理過(guò)程,以適應(yīng)各種不同標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)模型(例如神經(jīng)網(wǎng)絡(luò))。這些預(yù)處理過(guò)程根據(jù)待解問(wèn)題的不同和原始數(shù)據(jù)的組織形式而各不相同,包括不同格式之間的轉(zhuǎn)換,分詞、詞干提取和形成詞匯,以及包括歸一化在內(nèi)的各種數(shù)值操作等等。實(shí)際上,數(shù)據(jù)的預(yù)處理已經(jīng)成為了機(jī)器學(xué)習(xí)開(kāi)發(fā)中無(wú)法回避的一個(gè)難題。
針對(duì)這一難題,谷歌于 22 日通過(guò)開(kāi)發(fā)者博客正式發(fā)布了一個(gè)基于 TensorFlow 的全新功能組件 —— tf.Transform。它允許用戶在大規(guī)模數(shù)據(jù)處理框架中定義預(yù)處理流水線(preprocessing pipelines),同時(shí)用戶還可以將這些流水線導(dǎo)出,并將其作為 TensorFlow 計(jì)算圖(TensorFlow graph)的一部分。用戶可以通過(guò)組合 Python 函數(shù)來(lái)定義該流水線,然后在 Apache Beam 框架下通過(guò) tf.Transform 執(zhí)行。(注:Apache Beam 是一個(gè)用于大規(guī)模的、高效的、分布式的數(shù)據(jù)處理的開(kāi)源框架)目前,基于 Apache Beam 框架的流水線可以在 Google Cloud Dataflow 平臺(tái)上運(yùn)行,并計(jì)劃在未來(lái)支持更多的平臺(tái)(可能包括 Apache Apex,Apache Flink 和 Apache Spark 等)。值得一提的是,通過(guò) tf.Transform 導(dǎo)出的 TensorFlow 計(jì)算圖還可以在模型預(yù)測(cè)階段將這種數(shù)據(jù)預(yù)處理步驟復(fù)用(例如,通過(guò) Tensorflow Serving 提供模型時(shí))。
另一方面,開(kāi)發(fā)者最終在產(chǎn)品形態(tài)運(yùn)行機(jī)器學(xué)習(xí)模型時(shí)通常還會(huì)遇到“訓(xùn)練服務(wù)偏差”(training-serving skew),即由于服務(wù)中處理的數(shù)據(jù)與模型訓(xùn)練中使用的數(shù)據(jù)存在一定的差異,從而造成的預(yù)測(cè)質(zhì)量下降。
面對(duì)這一問(wèn)題,此次新發(fā)布的 tf.Transform 組件還能保證預(yù)處理過(guò)程的零偏差,即保證服務(wù)中的數(shù)據(jù)預(yù)處理和訓(xùn)練中的數(shù)據(jù)預(yù)處理執(zhí)行完全相同的操作,特別是當(dāng)模型訓(xùn)練和服務(wù)運(yùn)行在不同的框架時(shí),例如訓(xùn)練在 TensorFlow,服務(wù)在 Apache Beam 的情況。
除了便于數(shù)據(jù)的預(yù)處理之外,tf.Transform 還允許用戶計(jì)算其數(shù)據(jù)集的統(tǒng)計(jì)概要(summary statistics)。對(duì)于每個(gè)機(jī)器學(xué)習(xí)項(xiàng)目的開(kāi)發(fā)者而言,深刻理解其數(shù)據(jù)都非常重要,因?yàn)槿魏螌?duì)底層數(shù)據(jù)做出的錯(cuò)誤假設(shè)都可能會(huì)產(chǎn)生一些微妙的錯(cuò)誤。通過(guò)更簡(jiǎn)單和高效地計(jì)算數(shù)據(jù)的統(tǒng)計(jì)概要,tf.Transform 可以幫助開(kāi)發(fā)者更好地檢查他們關(guān)于原始數(shù)據(jù)和預(yù)處理數(shù)據(jù)的假設(shè)。
最后,谷歌在博客中表示,對(duì)于 tf.Transform 的發(fā)布他們感到非常激動(dòng),他們真誠(chéng)地希望 tf.Transform 可以幫助 TensorFlow 開(kāi)發(fā)者們更方便地預(yù)處理數(shù)據(jù),以及更好地理解這些數(shù)據(jù)。
開(kāi)源地址:https://github.com/tensorflow/transform
來(lái)源:googleblog,雷鋒網(wǎng)編譯
雷鋒網(wǎng)相關(guān)閱讀:
百度將 HPC 技術(shù)引入深度學(xué)習(xí);卡巴斯基操作系統(tǒng);AMD Ryzen 預(yù)售等 | AI 開(kāi)發(fā)者頭條
TensorFlow 1.0 正式發(fā)布 你需要知道的都在這里
雷鋒網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。