谷歌發布TensorFlow Serving開源項目:更快的將深度學習模型產品商業化

jopen 8年前發布 | 25K 次閱讀 開源 TensorFlow

谷歌發布TensorFlow Serving開源項目:更快的將深度學習模型產品商業化

機器學習現在變得越來越流行了,不僅被大力應用于像Google和非死book這樣的網絡公司,也被普遍應用到大量的創業公司當中。

機器學習經過幾十年軟件工業的實踐已達到產品級別,現已應用在Google各系列產品中,從Google app中的語音識別,Google Mail中的自動回復到Google Photo的搜索。但要把這些機器學習模型做成服務對外提供使用是一種新的挑戰。

TensorFlow開源之后,今天Google又宣布發布面向生產環境的TensorFlow Serving,旨在解決上述挑戰。Google軟件工程師Noah Fiedel在博文中介紹,“TensorFlow Serving是一個高性能、開源的機器學習服務系統,為生產環境及優化TensorFlow而設計。它更適合運行多個大規模模型,并支持模型生命周期管理、多種算法實驗及有效地利用GPU資源。TensorFlow Serving能夠讓訓練好的模型更快、更易于投入生產環境使用。

這里有必要先科普下TensorFlow和TensorFlow Serving的區別:

TensorFlow項目主要是基于各種機器學習算法構建模型,并為某些特定類型的數據輸入做適應學習,而TensorFlow Serving則專注于讓這些模型能夠加入到產品環境中。開發者使用TensorFlow構建模型,然后TensorFlow Serving基于客戶端輸入的數據使用前面TensorFlow訓練好的模型進行預測。

個人認為TensorFlow Serving是將tensorflow訓練出來的模型更好的應用于生產環境中,通過它的API等支持的方式來方便對外提供穩定可靠的服務。TensorFlow Serving的意義就在于能夠很方便的將深度學習生產化,解決了模型無法提供服務的弊端,并且用的是c++語言,性能上應該不錯。這樣以后深度學習方向的創業公司都能很方便的將產品商業化,保證7*24小時的可靠服務。

如谷哥所說,TensorFlow Serving可以在不改變現有模型架構和API的基礎上發布新的模型和實驗數據到產品中。它不僅僅支持TensorFlow訓練的模型,也可以擴展到其他類型的模型(比如Scikit Learn生成的模型)。

下面講下TensorFlow Serving使用的具體例子:

給個簡單的監督學習的訓練pipeline,如圖1

谷歌發布TensorFlow Serving開源項目:更快的將深度學習模型產品商業化

圖1在圖1中,輸入訓練數據(Data)到學習者(Learner)中,輸出訓練成功的模型(Model 1)。

一旦新版本的模型訓練好就可以發布到服務系統(TensorFlow Serving)上,如圖2

谷歌發布TensorFlow Serving開源項目:更快的將深度學習模型產品商業化

圖2

在圖2中,TensorFlow Serving利用上面訓練好的模型基于客戶端(Clients)提供的數據進行預測結果。這里客戶端和服務端之間的通信采用的是RPC協議(Google開源的一個高性能RPC的實現,gRPC源代碼見 http://www.grpc.io )。

谷歌發布TensorFlow Serving開源項目:更快的將深度學習模型產品商業化

對于生產環境來說,啟動模型,隨著時間不斷迭代模型,新的訓練數據出現需要訓練優化模型,這些都是常態。現在有了TensorFlow Serving就可以在不停止服務的情況下更新模型和數據,Google內部許多pipelines一直在運行。

TensorFlow Serving采用C++編寫,支持Linux。為性能做有優化,在16核至強CPU設備上,每核每秒能夠處理超過10萬個請求,這里包括gRPC和TensorFlow接口之間的處理時間。 TensorFlow Serving 代碼和 教程 已經能夠在GitHub獲取。

 

來自: http://www.infoq.com/cn/news/2016/02/TensorFlow-Serving

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!