機器學習容器化:TensorFlow、Kubernetes和Kubeflow
譯文【51CTO.com快譯】機器學習(ML)是一種用于識別模式和預測未來概率的數據分析方法,它是人工智能(AI)研究的一部分。通過將答案預確定的數據輸入到數學模型中,計算機可以訓練自己、預測將來未知的輸入集。
雖然ML迄今已成功解決了特定的任務,但分析參數更復雜的數據需要能夠大規模部署簡化操作的模型。這種機器學習將使計算機能夠從更多數量的信息中找到解決方案并使之自動化。由于這些原因,估計到2020年AI和ML會成為推動云計算采用的主要催化劑。ML需要大規模高效學習,并與云原生技術(尤其是容器化)集成,以便處理云端的一大批可用信息。
為此,谷歌最近宣布開發Kubeflow,這種可組合、可移植、可擴展的ML堆棧基于Kubernetes構建而成。它為ML模型連接到容器上提供了一個開源平臺,將數據與計算放在一塊執行,而不是在疊加層內執行。
Kubeflow有助于解決實現ML堆棧的固有難題。構建生產級ML解決方案需要導入、轉換和可視化數據,然后大規模構建、驗證、訓練和部署模型。這些堆棧經常用不同的工具構建而成,使得算法管理起來很復雜、結果不一致。Kubeflow 1.0提供的軟件包將各種ML工具(尤其是TensorFlow和JupyterHub)合并成一個堆棧,在擁有Kubernetes的多云環境中可以輕松傳輸。
TensorFlow
Kubeflow依靠開源編程系統TensorFlow來構建機器學習模型。它的軟件庫使用張量幾何結構,以有狀態的數據流圖這種形式來表示數據之間的線性關系。它將硬件平臺抽取出來,讓模型可以在CPU(中央處理單元)、GPU(圖形處理單元)或TPU(張量處理單元)上運行。這些共同為低精度算術計算的高吞吐量構筑了基礎。這種靈活的架構讓它得以匯集來自各個對象的信息,從桌面系統、集群、服務器、移動設備到邊緣設備,不一而足。
雖然TensorFlow用起來困難且復雜,但非常適合創建高級復雜的ML模型,這種模型需要可移植、可擴展的數據管理。
JupyterHub
Kubeflow直接從Jupyter筆記本(notebook)執行TensorFlow計算圖。Jupyter筆記本對容器友好,可以在Kubernetes或任何類型的開源基礎設施上運行。它們為用戶提供了可輕松實現ML模型的環境和資源,沒有安裝和維護帶來的開銷。它們的文檔樣式格式將代碼和標記(markdown)嵌入到同樣的文件中,從而提供計算的可見性。JupyterHub讓工程師可以立即執行TensorFlow圖或存儲供以后使用,從而更有效地控制TensorFlow模型的配置。 Kubeflow依賴JupyterHub用于協作和交互式訓練。
Kubeflow的堆棧包含另外幾個解決方案,可以補充TensorFlow模型的執行。Argo用于工作流調度,SeldonCore用于復雜推理和非TensorFlow Python模型,Ambassador用作反向代理。該堆棧與Kubernetes集成,讓工程師可以高效地大規模開發、訓練和部署ML模型。
Kubernetes
Kubernetes是一種可靠的開源容器編排工具。它將應用程序設計標準化為模塊化、可移植、可擴展的微服務,以便將復雜的工作負載部署到不同環境中。它采用豐富的API,可以自動執行眾多操作功能。Kubeflow的平臺利用Kubernetes簡化TensorFlow模型的操作,并使其執行具有云原生特性。
- 可移植性和可擴展性:Kubernetes讓TensorFlow模型可以作為微服務加以模塊化管理,使其具有高度可移植性和可擴展性。它們可以在不同的環境、平臺和云提供商之間輕松移動。傳統上,ML堆棧是不可移動的,將模型及其相關依賴項從筆記本電腦遷移到云集群的過程需要重新設計架構方面的大量工作。Kubeflow讓這些算法訪問數據的速度可以與執行速度一樣快。
- 自動化和易操作性:Kubernetes提供用于管理微服務的豐富的聲明式API庫,幫助應用程序采用端到端自動化。Kubernetes負責處理資源管理、作業分配以及歷來很費時的其他操作問題。Kubeflow讓工程師得以專注于編寫ML算法而不是管理操作。
云端有大量信息,但無法全部供機器學習使用。Kubeflow 1.0承諾ML能夠跟上云端數據不斷增長的步伐。它將ML集成到容器編排層中,為模型提供了更強的可操作性、可擴展性和可移植性。它提供了一套完整的、容器化的堆棧,可以快速簡單地部署。Kubeflow 1.0讓計算機可以使用一套可靠而全面的堆棧,拿多得多的數據集來訓練自己。了解Kubernetes是使用Kubeflow無縫部署ML模型的***步。
原文標題:The Containerization of Machine Learning: TensorFlow, Kubernetes and Kubeflow,作者:Syed Ahmed
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】