譯者:李鑫
原文:Running your models in production with TensorFlow Serving
本文為極客學院Wiki組織翻譯,轉載請注明出處。
時間:2016.3.4
機器學習技術支撐著許多 Google 產(chǎn)品的功能很澄,比如:Google 應用中的語音識別斯撮,收件箱的智能回復康聂,以及 Google 照片搜索尚辑,等等瞄崇。盡管軟件行業(yè)幾十年中積累起的無數(shù)經(jīng)驗促成了很多用于構建并支持產(chǎn)品的最佳實踐员串,但基于機器學習的服務卻還是帶來了一些新穎而有趣的挑戰(zhàn)菩掏。如今,專為解決這些挑戰(zhàn)的系統(tǒng)終于出現(xiàn)了昵济,這就是 TensorFlow Serving智绸。TensorFlow Serving 是一種用于機器學習模型的高性能開源服務系統(tǒng),專為生產(chǎn)環(huán)境而設計访忿,并針對 TensorFlow 進行了優(yōu)化處理瞧栗。
TensorFlow Serving 系統(tǒng)非常適用于大規(guī)模運行能夠基于真實情況的數(shù)據(jù)并會發(fā)生動態(tài)改變的多重模型。它能夠?qū)崿F(xiàn):
- 模型生命周期管理海铆。
- 使用多重算法進行試驗迹恐。
- GPU 資源的有效使用。
TensorFlow Serving 能夠簡化并加速從模型到生產(chǎn)的過程卧斟。它能實現(xiàn)在服務器架構和 API 保持不變的情況下殴边,安全地部署新模型并運行試驗憎茂。除了原生集成 TensorFlow,還可以擴展服務其他類型的模型锤岸。下圖顯示了簡化的監(jiān)督學習過程竖幔,向 learner 輸入訓練數(shù)據(jù),然后輸出模型:
一旦經(jīng)過驗證后是偷,新模型版本定型拳氢,就可以部署到服務系統(tǒng),如下圖所示:
TensorFlow Serving 使用(之前訓練的)模型來實施推理——基于客戶端呈現(xiàn)數(shù)據(jù)的預測蛋铆。因為客戶端通常會使用遠程過程調(diào)用(RPC)接口來與服務系統(tǒng)通信馋评,TensorFlow Serving 提供了一種基于 gRPC 的參考型前端實現(xiàn),這是一種 Google 開發(fā)的高性能開源 RPC 架構刺啦。當新數(shù)據(jù)可用或改進模型時留特,加載并迭代模型是很常見的。事實上玛瘸,在谷歌磕秤,許多管線經(jīng)常運行,一旦當新數(shù)據(jù)可用時捧韵,就會產(chǎn)生新版本的模型市咆。
TensorFlow Serving 由 C++ 編寫而成,支持 Linux再来。TensorFlow Serving 引入的開銷是非常小的蒙兰。我們在一個有著 16個 vCPU 的英特爾至強 E5 2.6 GHz 的機器上進行了測試,執(zhí)行每核每秒約 100,000 次查詢芒篷,不包括 gRPC 和 TensorFlow 推理處理時間搜变。我們非常激動地向大家分享這個遵守 Apache 2.0 開源協(xié)議的 TensorFlow 重要組件。非常希望大家能在 Stack Overflow 和 GitHub 上提問或請求開發(fā)一些功能针炉。上手很簡單挠他,只需復制 github.com/tensorflow/serving 中的代碼,然后簽出教程即可篡帕。隨著我們對 TensorFlow 的繼續(xù)開發(fā)殖侵,你一定會了解到更多有關內(nèi)容,因為這大概是世界上最好用的機器學習工具包了镰烧。如果希望及時了解最新進展拢军,請關注 @googleresearch 或 +ResearchatGoogle,以及 2016 年 3 月怔鳖,Jeff Dean 將在 GCP Next 2016 上的主題演講茉唉。