論文導讀 | TFX:基於TensorFlow可大規模擴展的機器學習平台

翻譯 | Maglish

編輯 | Vincent

AI前線出品| ID:ai-front

AI 前線導語:過去幾年中,世界一流的在線產品和服務開發發生了巨變。 我們最近一直在關注的一系列論文可以幫助你了解上限的位置(當大部分公司達到這一上限時,它又會向前推進了)。

新基線:到目前為止,你已經接受了自動化測試,持續集成,持續交付,或許是持續部署,而且你已經熟練地逐步推陳出新,監控行動,並在發現問題時及時停止或回退。

除此之外,你已經建立了一個成熟的指標系統和一個連續實驗平台。

由於系統複雜性的增加,你可能還需要將其擴展到通用黑箱優化平台。

但工作還沒有完成!

已經優化過的所有機器學習模型都需要進行訓練、驗證和服務。你需要一個機器學習平台。這就是今天文章的主題:Google 的機器學習平台,TFX。

論文原文

TFX: A TensorFlow-based production scale machine learning platform Baylor et al., KDD』17

地址:

kdd.org/kdd2017/papers/

我並不是說以上所有平台你都必須要自己搭建一個。我更多指的是應該將它們作為日常實踐的一部分來使用,對於企業來說,能夠使用租賃的平台通常會是最好的選擇。

我為什麼需要一個機器學習平台?

實現機器學習模型的代碼只是生產系統中使用機器學習的一小部分。 我們在《機器學習:技術債務的高息信用卡》一文中看到了大量應用機器學習的經驗教訓。數據需要轉換和驗證,模型驗證需要與數據驗證相結合,以防止不良的(尚未驗證的)模型進入生產。並且,你還需要一個可擴展的服務基礎架構。機器學習平台(TFX)的關鍵組成部分如下圖所示:

圖 1:機器學習平台高級組件概覽

「我們的平台對這些組件的實現能夠將生產計劃中的最佳實踐進行編碼。通過將上述組件集成到一個平台中,我們能夠標準化組件,簡化平台配置,並且將生產時間從數月縮短到數周,同時提供平台穩定性,最大程度地減少中斷。」

數據分析,轉換和驗證

數據處理將影響一個機器學習平台的優劣。在數據的異常情況擴散之前發現它們,將節省大量時間。

數據中的小錯誤可能會在一段時間內以難以檢測的方式顯著降低模型質量(不像一些災難性的錯誤會導致明顯的故障,因此易於追蹤),所以為了長遠考慮,都任何一個機器學習平台都應始終保持對數據的警惕性。

為了建立基準並監控改動,TFX 會為每個輸入數據集生成一組描述性統計信息。這些信息包括特徵狀態和價值、跨特徵統計信息,以及可配置片段。這些統計數據需要大規模高效計算,並且在大型訓練數據上進行精確計算是十分耗費資源的。 在這種情況下,可以使用提供近似結果的分散式流演算法。

TFX 還包括支持特徵衝突的一套數據轉換函數。例如,TFX 可以生成稱為「辭彙「的特徵到整數的映射。當數據轉換在訓練和服務之間僅有細微差別時,很容易弄亂一切。TFX 可以自動導出任何數據轉換作為訓練模型的一部分,以避免這些問題。

執行驗證時,TFX 依賴於提供模版化描述預期數據的模式。該模式描述特徵及其預期類型、價和域。TFX 可以幫助用戶自動生成其模式的第一個版本。

圖 2: 樣本驗證案例

TFX 會提供有用且詳實的信息異常警報,讓用戶不會忽視它們。

我們希望用戶對待數據錯誤能像處理代碼錯誤一樣嚴謹和認真。為了推動用戶這麼做,我們允許用戶提交異常數據,就像任何能夠被記錄、追蹤並且最終解決的軟體錯誤一樣。

訓練

一旦你模型中的代碼(當然是在 TensorFlow 中寫的)被整合到 TFX 中,你就能輕鬆地轉換學習的演算法。不斷的訓練和導出機器學習模型是一個常見的生產使用情況,但是在許多場景下,每次都從頭開始再訓練模型,將會消耗大量的時間和資源。。

對於許多生產應用情況,機器學習模型的新鮮度至關重要... 很多這樣的應用情況也有巨大的訓練集(複雜度為 100B 的數據點),這可能需要幾個小時(或幾天)的訓練…這導致要在模型質量與模型新鮮度之間進行取捨。熱啟動是抵消這種取捨的一項實用技術,如果正確使用,它可以在更短的時間和更少的資源消耗下,獲得與此前需要幾個小時的訓練才能獲得的相同質量的模型。

TFX 中內置了熱啟動,並且 TensorFlow 中也實現並開源了對網路中的熱啟動特徵進行選擇的功能。當使用熱啟動訓練新版本的網路時,對應於熱啟動特徵的參數會從先前訓練的模型中初始化,並且從那裡開始微調。

評估和驗證

TFX 包含了一個模型評估和驗證組件,旨在確保將模型提供給用戶之前是「好」的。

機器學習的模型通常是包含大量數據源和交互組件的複雜系統的一部分,這些組件通常糾纏在一起。這會使問題的影響擴大,還可能會導致意外的交互問題,最終可能發展為機器學習模型的退化,對終端用戶體驗造成損害。

新模型如何推廣到生產中?當然通過 A / B 測試!模型首先通過持續的數據進行評估,以確定它們是否有望開始實時測試,TFX 提供了可以近似業務指標的代理指標。對於通過此測試的模型,團隊再部署到特定產品上進行 A/B 測試,以確定模型在實時流量和相關業務指標上的實際效果。

一旦將模型開始進行生產並不斷更新,則使用自動驗證來確保更新的模型是好的。我們使用簡單的 canary 程序來驗證一個模型是否安全。我們通過將模型質量與固定閾值以及基線模型(例如當前生產模型)進行比較,來評估預測質量。

如果模型更新驗證失敗,則不會將其推送到服務中,並且會為所屬產品團隊生成警報。最開始團隊都不太確定他們是否需要或者想要這項驗證功能,但是在遇到了本可以通過驗證功能避免的實際生產問題後,他們突然都變得十分熱衷於使用此項功能。

服務

TensorFlow 服務為將要部署到生產環境的機器學習模型提供了完整的服務解決方案。生產為需求服務,包括低延遲和高效率在內的許多特性。大多數模型使用常見的 TensorFlow 數據格式,但對於數據密集型(與 CPU 密集型相對)網路,如線性模型,我們用惰性解析構建了專門的協議緩衝區解析器。

在實現該系統時,我們特別注意最小化數據複製。這對於稀疏數據配置來說尤其具有挑戰性。專用協議緩衝區解析器的應用能夠在基準數據集上得到了 2-5 倍的加速。

TFX 和 Google Play

Google 內部開始使用 TFX 平台的首批團隊之一是 Google Play,他們將其用於推薦系統。該系統在 Play 應用程序的用戶訪問商店主頁時,會向他們推薦相關的 Android 應用程序。訓練數據集包含數百億個示例,在生產過程中,系統必須以嚴格的延遲要求(幾十毫秒)來響應每秒數千個查詢。

當我們將 Google Play 排名系統從之前的版本轉移到 TFX 時,我們在新的測試中發現,迭代速度有所增加,減少了技術負債,提高了模型質量。

下一步:可解釋性?

隨著機器學習變得越來越普遍,對於可理解性有強烈需求,即模型可以向用戶解釋其決策和行為(以及 GDPR-AC 等新法律成立後,許多情況下法律也要求做到這一點)。我們相信我們從部署 TFX 中學到的經驗教訓為構建互動式平台提供了基礎,可為用戶提供更深入的見解。

本文原文

blog.acolyer.org/2017/1


-全文完-

關注人工智慧的落地實踐,與企業一起探尋 AI 的邊界,AICon 全球人工智慧技術大會火熱售票中,6 折倒計時一周搶票,詳情點擊:

aicon.geekbang.org/?

《深入淺出TensorFlow》迷你書現已發布,關注公眾號「AI前線」,ID:ai-front,回復關鍵字:TF,獲取下載鏈接!


推薦閱讀:

Andrew Ng對 Geoffrey Hinton 的採訪:致敬老爺子的一路堅持!
揭開機器學習的面紗
李宏毅機器學習2016 第三講 梯度下降
重新理解Bias和Variance

TAG:TensorFlow | 机器学习 |