使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

隨風追魚發表於2019-03-04

Google 開發者大會 (Google Developer Days,簡稱 GDD) 是展示 Google 最新開發者產品和平臺的全球盛會,旨在幫助你快速開發優質應用,發展和留住活躍使用者群,充分利用各種工具獲得更多收益。2018 Google 開發者大會於 9 月 20 日和 21 日於上海舉辦。?Google 開發者大會 2018 掘金專題

2018 年 9 月 21 日 丘天豪(Google Brain 軟體工程師)帶來一場《使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習》的演講,本文將對演講做一個回顧。

TensorFlow Extended

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

如上圖所示,在實際生產環境中部署機器學習是一件讓工程師非常頭痛的事情,除了完成機器學習程式碼之外,工程師們還要考慮茫茫多的生產環境適配。換句話說,工程師們在生產環境中部署機器學習的難點並不在於機器學習的程式碼,而是在處理各種環境適配上,這些問題消耗了大量的時間,所以 TensorFlow Extended 平臺就是為了解決這個難題而誕生。目前 Google 只是開源了一些庫,而不是平臺本身,所以需要引用一些庫檔案來使用部分功能。

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

TensorFlow Extended 平臺的組成結構如上圖所示,下面將根據 Google 開源的 四個部分進行介紹。

資料轉換 (TensorFlow Trainsform)

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

在使用資料集之前,往往需要對資料進行轉換,TFT 允許將資料轉換成 TF 計算圖,同時也可以定義一些特殊的轉換來表達特殊的特徵。生成的 TF 計算圖是完成密封的,包含所有的特徵值資訊,這也就意味著可以應用於訓練和部署中。這個是十分重要的一點,在生產環境中,有可能我們訓練和部署所使用的語言和路徑是不相同的,而 TF 計算圖是完成密封的,很好的解決了這個問題。

示例:

計程車給小費例項

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018
使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

GitHub:github.com/tensorflow/…

模型訓練 (Estimators or Keras)

使用 TensorFlow Estimators 進行模型訓練

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

訓練好的模型會以 SavedModel 形式輸出。

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

使用 tf.Keras 進行模型訓練

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

模型評估和驗證(TensorFlow Model Analysis)

在完成模型訓練之後,往往需要重新編寫程式碼對模型進行評估和驗證。TFMA 就是為了解決這個問題出現。

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

在執行上圖所示程式碼後,會出現如下圖這樣的圖形介面,更加直觀的對模型就行評估。

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

GitHub:github.com/tensorflow/…

模型部署 (TensorFlow Serving)

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

在使用 TensorFlow Serving 部署模型之後,使用 Serving 介面即可進行訪問。

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

GitHub:github.com/tensorflow/…

資料分析和驗證 (TensorFlow Data Validation)

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

在機器學習過程中,資料是十分重要的,錯誤的資料將對模型產生或多或少的影響。垃圾資料對存在迴路的機器學習模型來說影響因子更大,可能原始資料中很少的垃圾資料會被無限放大,因此資料的分析和驗證顯得尤為重要。

Data Validation 模組組成如下:

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

計算統計資料與統計資料視覺化

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

推導初始 Schema

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

資料驗證

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018
使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018
使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

訓練/線上資料偏差檢測

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

GitHub:github.com/tensorflow/…

總結

實際生產環境中使用 TFX 流程如下:

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

論文:TFX: A TensorFlow-Based Production-Scale Machine Learning Platform,KDD(2017)

以上就是本次演講的全部內容,希望對大家有所幫助。

使用 TensorFlow Extended (TFX) 在生產環境中部署機器學習 丨 Google 開發者大會 2018

閱讀更多 Google 開發者大會 2018 技術乾貨

相關文章