易燃物匯聚 YouTube 有聲書與書評
Kubeflow:雲計算和機器學習的橋樑 封面

Kubeflow:雲計算和機器學習的橋樑

何金池等

643人在讀
10.9萬字總字數
¥55.3定價

內容簡介

當前的IT界有兩大高速列車,一是以“Kubernetes”爲標杆技術的雲計算,二是以“Tensorflow和PyTorch”等爲代表的機器學習。如何使二者結合起來,成爲近期IT界討論的熱點。Kubeflow的橫空出世,有效的連接起了Kubernetes 和各個機器學習的框架,提供了機器學習在Kubernetes上的端到端的解決方案。本書講解Kubeflow以及其社區的技術棧,包括機器學習的流程編排技術Pipelines、並行模型訓練技術TFJob和PyTorchJob等、超參調優技術Katib、服務發佈KFServing,機器學習的Python SDK Fairing等,涉及到機器學習的各個方面。本書結合理論和實戰,詳細闡述了Kubeflow社區的新技術和新方案。最後,展望了Kubeflow的前景和AI Hub的發展趨勢。

讀者書評

★★★★★

《Kubeflow:雲計算和機器學習的橋樑》核心拆解 作者:何金池等 一句話概括 Kubeflow以Kubernetes爲資源與調度底座,把數據準備、實驗開發、分佈式訓練、超參優化、流程編排、模型發佈和元數據追蹤連接起來,使機器學習從個人實驗轉變爲可復現、可擴展、可運維的生產流程。 核心邏輯 機器學習項目的難點不僅是訓練模型,還包括一系列工程問題: 如何統一環境 → 如何申請計算資源 → 如何運行分佈式訓練 → 如何自動調參 → 如何復現實驗 → 如何發佈模型 → 如何擴縮容和監控 Kubeflow的解決思路是: 用容器封裝運行環境,用Kubernetes管理資源和作業,再用不同Kubeflow組件覆蓋機器學習生命週期。 全書的技術鏈路可以概括爲: Notebook實驗 → 代碼和環境鏡像化 → Pipelines編排流程 → Operator執行訓練 → Katib優化參數 → Metadata記錄過程 → KFServing發佈服務 → 監控、擴縮容和更新 其核心價值不是提供一種新的機器學習算法,而是讓數據科學、模型訓練和雲原生運維使用一套可組合、可聲明和可自動化的基礎設施。 核心內容 1. Kubernetes解決機器學習的資源與運行環境問題 機器學習任務具有幾個典型特徵: 計算資源需求高;不同實驗依賴不同軟件環境;訓練任務具有突發性;經常需要GPU和多節點並行;線上推理需要擴縮容與高可用。 Docker鏡像把代碼、依賴和運行環境封裝在一起,解決“在我的機器上可以運行”的環境差異。 Kubernetes則負責調度Pod、分配CPU、GPU、內存和存儲、維持期望運行狀態、處理故障與重啓、暴露網絡服務、實現彈性擴縮容,以及管理配置和資源對象。 因此,Kubeflow並不取代Kubernetes,而是在它之上增加機器學習所需的領域能力。 2. Kubeflow是一組可組合的工具,而非單一平臺程序 Kubeflow覆蓋機器學習生命週期的主要組件包括: Jupyter Notebook:交互式實驗開發;Pipelines:工作流定義與編排;TFJob、PyTorchJob等Operator:分佈式訓練;Katib:超參數搜索;Metadata:記錄實驗及模型血緣;KFServing:發佈推理服務;Fairing:銜接開發、構建、訓練和部署;Kubebench:進行模型和環境基準測試。 這些組件既可以組合成端到端平臺,也可以根據企業已有技術棧選擇性採用。 Kubeflow的設計重點是開放和可替換,而不是強迫所有團隊使用同一種機器學習框架。 3. Pipelines把機器學習實驗變成可執行流程 完整的機器學習項目通常包含: 數據獲取 → 數據清洗 → 特徵工程 → 模型訓練 → 模型評估 → 模型驗證 → 服務發佈 如果這些步驟依靠開發人員手動運行,就容易出現操作順序不一致、參數和代碼版本難以追蹤、中間數據無法複用、實驗難以重現,以及上線過程依賴個人經驗等問題。 Kubeflow Pipelines把每個步驟封裝成組件,再按照依賴關係組成有向流程。 這樣可以記錄每一步的輸入、輸出、參數和運行狀態,並在部分步驟失敗時重新執行。機器學習由此從一組零散腳本轉變爲可檢查、可重複的流水線。 4. Operator把分佈式訓練聲明爲Kubernetes資源 原生Kubernetes理解Pod和Deployment,卻不瞭解參數服務器、訓練節點、主節點和工作節點之間的機器學習語義。 Kubeflow通過自定義資源CRD和Operator解決這個問題。例如,TFJob管理TensorFlow分佈式訓練,PyTorchJob管理PyTorch訓練,其他Operator適配不同計算框架。 用戶只需聲明使用什麼鏡像、需要多少訓練節點、每個節點需要多少資源、各節點承擔什麼角色,以及失敗後採用什麼重啓策略。 Operator負責把聲明轉換爲實際Pod,並持續檢查訓練狀態。 這使機器學習作業獲得與其他雲原生應用相似的自動調度、故障恢復和資源管理能力。 5. Katib把調參過程自動化 學習率、批量大小、網絡層數和正則化係數等超參數不會在普通訓練過程中自動獲得,卻會顯著影響模型效果。 人工調參存在效率低、實驗記錄混亂和結果依賴個人經驗等問題。 Katib允許用戶定義待搜索參數及其範圍、優化目標、實驗次數、併發任務數、搜索算法和提前停止策略。 隨後,它可以通過隨機搜索、網格搜索、貝葉斯優化等方法自動生成實驗,並根據評測結果繼續尋找較優參數組合。 其真正價值不僅是“找到更好的參數”,還在於把每次試驗變成可以比較、記錄和復現的標準化過程。 6. 元數據管理保證實驗可以復現和追責 生產級機器學習系統必須能夠回答: 這個模型使用了哪一版數據;由哪一版代碼訓練;採用了什麼參數和鏡像;在什麼環境中運行;評測結果是什麼;最終發佈的是哪個模型;出現問題時應該回滾到哪一版。 Kubeflow Metadata用於收集和展示數據集、作業、模型、指標及其他運行信息,形成實驗和模型之間的血緣關係。 沒有元數據,模型只是一個難以解釋的文件;有了元數據,模型才成爲來源明確、過程可查、結果可比較的工程製品。 7. KFServing解決模型從訓練到在線服務的“最後一公里” 完成模型訓練並不等於完成機器學習產品。模型還需要被包裝成穩定的推理接口,並處理服務啓動、請求路由、版本更新、流量切換、自動擴縮容、故障恢復和資源隔離。 書中的KFServing基於Kubernetes、Istio和Knative,把模型封裝爲InferenceService,使模型能夠通過標準接口對外提供預測服務。 它把模型部署從手工編寫複雜服務,轉變爲聲明模型位置、運行框架和資源要求,再由平臺創建服務。 需要注意的是,KFServing後來已演化並更名爲KServe。閱讀本書時應吸收其“聲明式模型服務”的思想,而不要機械照搬舊版本的接口與部署步驟。 8. Fairing縮短Notebook到集羣之間的距離 數據科學家通常習慣在Notebook中開發,但生產訓練需要經歷代碼導出、鏡像構建、上傳倉庫、提交作業和發佈服務等步驟。 Kubeflow Fairing嘗試把這些步驟連接起來: 本地或Notebook代碼 → 預處理 → 構建鏡像 → 提交集羣訓練 → 發佈服務 其目標是讓開發者儘量使用熟悉的Python工作方式,而不必直接操作大量底層Kubernetes配置。 這體現了MLOps平臺的重要原則:平臺不應只是提供基礎設施,還要降低數據科學家使用基礎設施的認知成本。 9. Notebook Hub提供統一、隔離的實驗環境 Kubeflow中的Jupyter Notebook Hub允許不同用戶在Kubernetes集羣中啓動自己的Notebook環境。 管理員可以統一配置基礎鏡像、CPU和GPU配額、持久化存儲、軟件依賴、用戶權限以及網絡和安全策略。 這樣既保留Notebook的交互式開發體驗,又避免每位成員單獨維護機器和環境。 但Notebook主要適合探索和調試。進入穩定生產階段後,關鍵步驟仍應轉化爲版本化代碼和自動化流水線,避免業務長期依賴人工點擊單元格。 10. 端到端平臺的價值是連接研發與運維 本書通過圖像分類和Seq2Seq等案例,展示一條完整路徑: 在Notebook中處理數據、編寫並驗證模型;把訓練代碼和依賴打包爲鏡像;用TFJob等資源執行集羣訓練;用Katib進行參數優化;用Metadata記錄實驗;用Pipelines編排完整流程;用KFServing發佈預測接口。 Kubeflow真正解決的是組織協作問題:數據科學家關注模型和指標,平臺工程師負責資源和基礎設施,運維人員關注可靠性,而流水線和聲明式資源成爲雙方共同的交付接口。 本書最值得關注的核心觀點 1. 機器學習生產化的核心是生命週期管理 訓練模型只是其中一個環節。真正的生產系統必須同時管理數據、代碼、環境、參數、模型、服務和運行記錄。 2. 容器保證環境一致,Kubernetes保證運行狀態 容器回答“模型在哪裏都能以同樣方式運行”,Kubernetes回答“需要多少資源、運行多少副本、失敗後如何恢復”。 3. 流水線是機器學習工程的交付單位 單個Notebook或模型文件無法表達完整過程。可版本化、可執行、可追蹤的Pipeline更適合作爲團隊交付物。 4. 聲明式管理比手工操作更適合規模化 用戶描述期望狀態,由控制器持續將現實狀態調整到目標狀態。這種思想貫穿訓練作業、調參任務和模型服務。 5. 可復現性來自完整血緣,而不只是保存模型 只有同時記錄數據、代碼、鏡像、參數、指標和環境,模型結果才能被真正復現、審計和比較。 6. MLOps平臺的成功取決於組件邊界和用戶體驗 技術組件越多,不代表平臺越成熟。平臺需要爲數據科學家提供簡單入口,同時爲工程團隊保留治理、擴展和替換能力。 一段話總結 《Kubeflow:雲計算和機器學習的橋樑》系統介紹瞭如何以Kubernetes爲雲原生底座,把機器學習的實驗開發、環境封裝、分佈式訓練、超參數優化、流程編排、元數據追蹤和模型服務連接成完整生命週期:Jupyter Notebook提供交互式開發環境,Pipelines把數據處理、訓練、評估和發佈轉化爲可復現流程,TFJob和PyTorchJob等Operator以聲明式資源管理分佈式訓練,Katib自動搜索超參數,Metadata保存實驗與模型血緣,Fairing連接代碼、鏡像、訓練和部署,KFServing則完成在線推理服務的發佈與擴縮容。全書最重要的啓示是,機器學習生產化並不只是把模型部署到服務器,而是讓數據、代碼、環境、參數、計算資源、模型版本和線上服務都能夠被統一管理、自動執行、持續追蹤和安全回滾;Kubeflow的真正意義,正是把Kubernetes的彈性調度與聲明式管理能力引入機器學習工程,使模型研發從個人化實驗升級爲可協作、可復現、可擴展和可運維的MLOps體系。

★☆☆☆☆

2026年讀完的第二本書,我的評價是不如看官方文檔,不推薦。

★★★☆☆

copy源代碼湊篇幅嚴重 乾貨不多

★★★★★

入門書籍,先理解概念,後續團隊可以實踐一把

★★★★★

還不錯,對於新人可以幫助快速瞭解kubeflow的基本體系和使用

★★★☆☆

kubeflow入門介紹挺不錯的,對進階來說,需要詳細看各個組件模塊,剛好和最近工作切合,期待kf社區的發展。

★★★☆☆

對得起定價了,基本上就是一個官方文檔漢化加學習筆記的綜合體,英文不好的可以看看作爲入門材料。

★★★☆☆

整個介紹不錯,但略顯粗糙,課程代碼建議附上。

書籍信息

作者何金池等
出版社電子工業出版社
出版時間2020-08-01
ISBN9787121392771
分類計算機-理論知識
格式EPUB
完結狀態連載中
章節數80