利用 TensorFlow Serving 系統在生產環境中運行模型
來自: http://wiki.jikexueyuan.com/project/geekdigest/TensorFlow-Serving.html
譯者:李鑫
原文: Running your models in production with TensorFlow Serving
本文為極客學院Wiki組織翻譯,轉載請注明出處。
時間:2016.3.4
</div>
機器學習技術支撐著許多 Google 產品的功能,比如: Google 應用中的語音識別 , 收件箱的智能回復 ,以及 Google 照片搜索 ,等等。盡管軟件行業幾十年中積累起的無數經驗促成了很多用于構建并支持產品的最佳實踐,但基于機器學習的服務卻還是帶來了 一些新穎而有趣的挑戰 。如今,專為解決這些挑戰的系統終于出現了,這就是 TensorFlow Serving 。TensorFlow Serving 是一種用于機器學習模型的高性能開源服務系統,專為生產環境而設計,并針對 TensorFlow 進行了優化處理。
TensorFlow Serving 系統非常適用于大規模運行能夠基于真實情況的數據并會發生動態改變的多重模型。它能夠實現:
- 模型生命周期管理。
- 使用多重算法進行試驗。
- GPU 資源的有效使用。
TensorFlow Serving 能夠簡化并加速從模型到生產的過程。它能實現在服務器架構和 API 保持不變的情況下,安全地部署新模型并 運行試驗 。除了原生集成 TensorFlow,還可以擴展服務其他類型的模型。下圖顯示了簡化的監督學習過程,向 learner 輸入訓練數據,然后輸出模型:
一旦經過 驗證 后,新模型版本定型,就可以部署到服務系統,如下圖所示:
TensorFlow Serving 使用(之前訓練的)模型來實施推理——基于客戶端呈現數據的預測。因為客戶端通常會使用 遠程過程調用 (RPC)接口來與服務系統通信,TensorFlow Serving 提供了一種基于 gRPC 的參考型前端實現,這是一種 Google 開發的高性能開源 RPC 架構。當新數據可用或改進模型時,加載并迭代模型是很常見的。事實上,在谷歌,許多管線經常運行,一旦當新數據可用時,就會產生新版本的模型。
TensorFlow Serving 由 C++ 編寫而成,支持 Linux。TensorFlow Serving 引入的開銷是非常小的。我們在一個有著 16個 vCPU 的英特爾至強 E5 2.6 GHz 的機器上進行了測試,執行每核每秒約 100,000 次查詢,不包括 gRPC 和 TensorFlow 推理處理時間。我們非常激動地向大家分享這個遵守 Apache 2.0 開源協議的 TensorFlow 重要組件。非常希望大家能在 Stack Overflow 和 GitHub 上提問或請求開發一些功能。上手很簡單,只需復制 github.com/tensorflow/serving 中的代碼,然后簽出 教程 即可。隨著我們對 TensorFlow 的繼續開發,你一定會了解到更多有關內容,因為這大概是世界上最好用的機器學習工具包了。如果希望及時了解最新進展,請關注 @googleresearch 或 +ResearchatGoogle ,以及 2016 年 3 月, Jeff Dean 將在 GCP Next 2016 上的主題演講。
</div>