TOP
0
0
即日起~6/30,暑期閱讀書展,好書7折起
MLOps實踐:機器學習從開發到生產(全彩)(簡體書)
滿額折

MLOps實踐:機器學習從開發到生產(全彩)(簡體書)

商品資訊

人民幣定價:106 元
定價
:NT$ 636 元
優惠價
87553
領券後再享88折起
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:16 點
相關商品
商品簡介
作者簡介
名人/編輯推薦
目次

商品簡介

在大數據時代,機器學習(ML)在互聯網領域取得了巨大的成功,數據應用也逐漸從“數據驅動”階段向“模型驅動”階段躍升,但這也給ML項目落地帶來了更大的困難,為了適應時代的發展,MLOps應運而生。本書從多個方面介紹了MLOps實踐路徑,內容涵蓋了設計、構建和部署由ML驅動的應用程序所需的各種實用技能。

本書適合數據科學家、軟件工程師、ML工程師及希望學習如何更好地組織ML實驗的研究人員閱讀,可以幫助他們建立實用的MLOps實踐框架。


作者簡介

李攀登,非參數統計碩士, AlgoLink(專注於MLOps研發與應用)的創始人,出海遊戲公司博樂科技數據專家。曾任萬達集團算法專家,藍色光標算法團隊負責人,Teradata資深數據挖掘工程師,亞信科技高級數據挖掘工程師。研究方向為機器學習、推薦系統、MLOps,擁有機器學習算法應用相關專利7項,MLOps專利2項,軟件著作權1項。

名人/編輯推薦

1.哈佛大學統計學博士,香港大學博士生導師劉中華傾情作序,業內大咖孫明俊、李毅成、陳宇、周鵬飛、秦予平聯袂力薦。

2.本書系統地介紹了MLOps的方方面面,聚焦於可落地的MLOps實踐,為企業推進機器學習生產化提供了有價值的參考。

3.本書不僅可以作為企業智能數字化轉型的實踐參考,也可以作為ML領域從業者的經驗手冊。

4.本書適合數據科學家、軟件工程師、ML工程師及希望學習如何更好地組織ML實驗的研究人員閱讀。


推薦序

在始於18世紀60年代的工業革命期間,物理機器的興起要求組織系統化,形成了工廠、裝配線及我們所知道的關於自動化製造的一切,最後實現了以大規模工廠化生產取代個體手工生產的一場生產與科技革命。

類似地,伴隨著互聯網、移動互聯網的浪潮,軟件工程也經歷了從傳統的手工開發運維向敏捷開發的過渡,敏捷系統幫助企業實現了產品生命周期的可運維性,通過減少資源浪費和開發過程的自動化,為持續創新鋪平了道路,DevOps也進一步優化了軟件生產的生命周期。

這波互聯網、移動互聯網的浪潮同時催生了人工智能的應用,在全球範圍內,人工智能正在作為全新的生產要素加速助力產業轉型升級,具體的表現形式為,機器學習(ML)從學術研究領域逐漸移步現實世界中真正的應用領域。這種變化給軟件工程帶來了更大的挑戰,因為相對於傳統的軟件工程,它引入了新的要素,即數據。而且,ML在學術環境中的工作方式與實際場景生產環境配置的要求之間存在差距和差異。具體的挑戰體現在以下兩個層面。

(1)依賴層面

通常,我們開發的ML模型依賴於幾個要素,如數據、算法和/或參數。在實驗過程中,這些要素會隨著時間的推移而改變,從而生成不同的版本。不同的版本會導致不同的模型行為,通過特定版本的數據、算法和參數會生成特定的模型。ML項目中擁有多個版本的數據、算法、參數,但沒有特定的策略來處理不同的版本,這可能會使我們失去對ML系統的控制。創建數據和參數的版本鏡像可以幫助我們跟蹤不同的版本,但是版本控制有其自身的成本,例如,隨著時間的推移而需要維護多個版本。

傳統的軟件系統采用模塊化設計來維護整個系統,你可以改變一個部分而不干擾其他部分。與傳統的軟件系統相比,ML系統的組件之間沒有如此清晰的界限。ML 管道使用數據版本、算法版本和/或不同的參數,前面提到的這些要素的任何更改都會觸發新的模型版本的生成。

(2)管理層面

通常生產環境中的ML系統的目標是同時運行和維護數十個或數百個模型,而這會帶來管理上的挑戰。例如,如何監控模型的整個生產管道?如何更新或分配模型的資源配置?

為了自動化和加速ML生命周期管理,我們需要一個策略或工作流來幫助我們持續跟蹤數據、參數、超參數及實驗結果等。在某種程度上,它有助於實現更好的管理和協作,因為手動記錄實驗過程的效率不高且容易出錯。

慶幸的是,近幾年MLOps開始走進數據科學家的視野,我們也越來越頻繁地聽到MLOps這個詞,這是一個將類似DevOps的實踐帶入ML領域的概念,是專注於高效且可靠地進行ML模型的規模化開發、部署、管理和運維的過程,以優化和擴展工業環境中的ML生命周期,同時保證ML項目的可重復性和可追溯性。MLOps的實踐彌合了開發(學術環境)和運維(生產環境)之間的差距,使運行ML系統的不同團隊之間能夠更好地協作和溝通。MLOps正在成為企業在現實世界中利用ML優勢的必要技能或必經實踐。

令人遺憾的是,現在並沒有很多資源可以告訴工程師和科學家如何構建可投產的ML模型。市面上的很多書和課程會介紹如何訓練ML模型或如何構建軟件項目,但很少有書和課程將這兩個世界融合起來,介紹如何構建由ML驅動的實際應用。而本書講解了ML驅動實際應用時所經歷的每一步,旨在通過分享筆者和其他有經驗的從業者的方法、代碼實例和建議,幫助讀者完成ML項目的投產(這也是MLOps的核心目標)。本書中的內容將涵蓋由ML驅動的應用程序(業務)所需的設計、構建、部署和運維等實用技能,讀者可以通過學習本書的內容來踐行符合自己業務的MLOps實踐,以加快ML項目的交付,減少ML項目所需的勞動力,例如一些人工工作,如手動訓練和重新訓練模型、跟蹤實驗結果、手動發布和部署模型等。

如果我們把MLOps集成到ML的開發過程中,那麼無須在數據科學家和運維團隊之間來回折騰就可以實現更快的模型部署和優化周期,而且在向生產環境添加新模型或更新現有模型時也無須付出巨大的努力。

MLOps可以分為多種實踐:自動化基礎架構構建,數據科學實驗,模型重要部分的版本控制、部署(打包、持續集成和持續部署)、安全和監控。

將MLOps方式帶入ML模型開發中,可以確保將模型真正投入生產,使模型部署周期更快、更可靠,減少手動工作和不必要的錯誤,並將數據科學家的時間從不能體現他們核心能力的工程任務中解放出來。

如果你的ML之旅仍處於早期階段(如概念驗證階段),那麼可以將ML模型的開發方式轉變為MLOps方式,MLOps方式能夠避免繁重的流程。在MLOps方式或框架下工作,通過將開發工作轉移到版本控制上,可以自動執行重新訓練和部署的步驟。雖然在這個階段中強大的開發框架和管道基礎設施可能不是最高優先級的,但是早期階段在自動化開發過程中付出的任何努力都將在以後得到回報,並從長遠來看可以有效地減少ML“技術債”。這也是本書希望傳達給讀者的實踐MLOps的有效方式。


劉中華

哈佛大學統計學博士,香港大學博士生導師


前 言

毫無疑問,在過去的幾年裡,機器學習(ML)[ ML,Machine Learning的簡稱,如無特殊說明,本書中的ML均代指機器學習。]正在逐漸發展成為當今商業和軟件工程領域的熱門名詞,由ML驅動的應用呈爆發式增長,如推薦系統、精準營銷、廣告系統等。市面上ML方面的圖書和文章也越來越多,細心的讀者會發現ML相關圖書多集中在不同機器學習算法的原理、算法是如何工作的及如何通過數據進行模型訓練等方面的理論和實踐上,而對於如何構建由ML驅動實際應用的項目工程方面,如數據收集、存儲,模型部署、管理及監控運維等方面的書卻很少見,這些方面沒有得到足夠的重視。在企業應用中,除了一線科技巨頭公司,也很少看到針對商業問題部署和管理ML的解決方案,而這部分正是本書試圖去介紹和實踐的內容——MLOps(機器學習運維的簡稱)。

為了成功地給用戶提供ML產品,數據科學家需要做的不僅是簡單地訓練一個模型,還需要將產品需求轉化為ML的問題來思考,並為此不斷地收集數據,在模型之間進行有效迭代,在生產中驗證模型,並以穩健的方式部署和管理它們。有過ML生產經驗的讀者能夠體會到,學術環境中工作的算法及模型和現實生產系統所需的條件之間存在著顯著的差異。在生產過程中,除了需要關注建模時基於的模型假設在現實中的真實表現,還需要關注性能瓶頸及後期模型更新迭代等一系列問題。本書中介紹的概念、技術、工具、框架和方法論都將告訴我們如何面向生產來思考、設計、構建和執行ML項目,進而實現整個ML生產化流水線的最佳實踐。

如果你是一名數據科學家或ML工程師,在閱讀本書時可能會質疑:“我為什麼要關心MLOps?我已經把模型做出來了,線下測試效果都很好,把它們帶到生產中不是IT團隊的工作嗎?”這對於擁有獨立IT/數據科學或算法部門的一、二線科技公司來說,你的質疑是沒錯的,但對於大多數剛開始接觸數據科學和ML的公司來說,實際情況是設計算法、訓練模型的人也將是部署模型和管理模型的人,而這兩部分工作的關注點、知識結構及使用的工具都很不同,數據科學家需要關注數據質量、特徵工程、模型的設計與訓練等,而部署模型的人更多關注的是工程問題,如服務化、並發、低延時、監控、模型零停機更新、可擴展性等,其中困難之一在於人才的稀缺。即使這些公司能夠聘請有才華的ML工程師和數據科學家,在2020年,大多數企業仍然需要花費31~90天的時間來部署一個模型,而18%的公司花費的時間超過了90天,有些公司甚至花費了一年多的時間來實現生產化。

企業在開發ML項目時面臨的主要挑戰,如模型版本控制、可重復性和擴展性,與其說是工程性的,不如說是科學性的,這使得具備良好MLOps知識和工程化經驗變得非常重要和寶貴。

值得慶幸的是,我們可以借鑒軟件工程領域DevOps已有的成熟的實踐經驗和教訓。在添加數據和模型元素後,MLOps也將成為ML領域的關鍵突破。這是一種“機器學習”與“運維”相結合的解決方案,簡單地說,就是數據科學家、研發人員和平臺工程師之間的協作和溝通實踐,可以優化和加速ML項目的生產生命周期。

實踐MLOps意味著遵循標準化和流程化路徑來自動化運行和監控ML部署工作流程的所有步驟,包括數據和基礎設施管理、模型學習、測試、集成、部署、發布和實時監控。與軟件開發一樣,MLOps需要一套工具和框架生態系統,將ML項目過程標準化,為數據科學家與其他項目成員創建一個協作環境,這是一種縮短將模型全面投入生產所需時間的解決方案。

雖然越來越多的ML從業者開始意識到MLOps的必要性,但出於多種原因,MLOps可能很難在業內迅速普及和應用。

√ 這仍然是一個相對較新的領域,市面上還沒有大量的學習資源和實踐案例。

√ 不同於DevOps,這一領域的技術非常複雜且應用廣泛,涵蓋了ML模型的整個生命周期,從數據到實驗、訓練、模型管理、服務和監控等,這意味著從何處開始及如何將各個部分組成一個連貫的整體成為一個巨大的挑戰。

√ 這一領域所需的技能和經驗範圍同樣廣泛,這意味著需要對各個領域都有實戰經驗的“全棧工程師”來推進MLOps的實踐,這類人才在一線科技巨頭公司之外的公司內並不常見。

筆者在算法領域工作有十多個年頭,經歷過算法模型在生產化時遇到的各種讓人頭痛的工程問題,也曾經自行研發和帶領團隊開發過多個不同側重點的算法平臺來試圖解決這些問題。近幾年,筆者也在更具覆蓋性和迭代性的MLOps領域獲得了豐富的實踐和落地經驗。筆者期望能把自己的實踐經驗分享給同樣在經歷“ML生產化痛苦”的同行,這也是寫作本書的初衷。

讀者物件

本書的讀者物件包括那些希望生產化ML項目,為企業提升生產力並改善業務狀況的數據科學家、ML算法工程師、分析師、ML軟件架構師、ML產品負責人或ML 項目經理,以及希望使用MLOps原則和技術在生產中構建、部署和維護ML系統的商業和技術領導者。本書假設讀者對ML的基本概念和編程比較熟悉,筆者將主要使用Python語言進行技術舉例,並假設讀者熟悉其語法和編程。如果你具備一定的編程經驗和一些基礎的ML知識,並想構建由ML驅動的產品,那麼本書將會為你提供從產品創意到生產的整個過程的實戰參考;如果你是一名ML產品經理,不懂代碼,建議你與數據科學家合作,這樣可以跳過一些代碼示例,從而理解ML從開發到生產化的過程。

本書特色

本書的重點聚焦在工程化階段,不會使用編程語言從零開始實現算法,而是通過使用更高層次抽象的庫和工具來保持ML 項目生命周期的實用性和技術性。筆者將首先構建一個簡單的端到端的ML應用實例,以ML項目生命周期為主線,通過逐步增加MLOps功能(組件)的方法,最終呈現MLOps的全貌。

在本書中,為體現實踐性和實用性,筆者會使用代碼片段來說明一些關鍵概念和流程。學習ML最好的方法是通過實踐來學習,所以筆者也鼓勵讀者通過本書中的例子,領會實踐思路,來構建你自己的用ML驅動的應用程序。

此外,本書是對ML工程實踐和設計的全面回顧,對於ML工程經驗豐富的讀者,你可以按照任何順序閱讀本書各章節,因為它們涵蓋了MLOps框架中涉及的不同方面,而且沒有直接的依賴關係。對於剛入行的讀者,建議按照本書章節順序閱讀,這可以幫助你理解MLOps框架的搭建思路。

本書的整體結構

本書的整體結構可以分為三個部分,其中第一部分是第1~3章,為MLOps框架的實現做了前期準備,該部分主要介紹MLOps框架下ML項目涉及的基礎內容及實現MLOps時需要準備的事項。第二部分是第4~8章,是MLOps框架實現的主體部分,該部分通過將實驗環境下創建的模型逐步升級至投產所需的功能和能力來展現MLOps從0到1的搭建過程。最後一部分是第9章,該部分對市面上一些相對成熟的MLOps產品進行了對比和總結,並給出了MLOps的一些設計原則與成熟度評估標準以供參考。

第1章 MLOps概述

本章介紹MLOps涉及的基礎概念,希望在後續章節用到這些概念的時候大家能擁有共同的理解。另外,本章也簡單提到了MLOps框架下的工程化實踐所涉及的內容,及其對ML模型真正投入生產時應起到的關鍵作用。

第2章 在MLOps框架下開展ML項目

本章介紹在MLOps框架下開展ML項目需要了解的基礎知識,包括業務範圍的界定、研究與探索階段需要達成的目標、模型開發階段需要注意的細節,以及在ML項目中,團隊需要哪些角色及團隊的分工等。

第3章 MLOps的基礎準備:模型開發

本章以流失模型為例,展示了常規的業務目標的定義、ML目標的確定、數據處理、特徵工程及模型創建的過程。這也是我們常見的在研究階段做的事情。後面章節從生產的視角,在此基礎上逐步增加功能模塊,這個逐步升級的過程也可以看成MLOps的搭建過程。

第4章 ML與Ops之間的信息存儲與傳遞機制

本章介紹在ML模型開發與生產之間創建信息傳遞的機制,該機制將使得ML項目的生命周期更加完整和可管理。在MLOps框架裡,ML(模型開發)與Ops(生產)是相對獨立的兩個過程,這也導致這兩個過程之間缺乏傳遞信息的機制。信息存儲與傳遞機制的建立主要是通過中心化的ML實驗跟蹤、A/B在線實驗、ML模型注冊、特徵存儲等組件來實現的,本章主要圍繞這幾個組件的設計和實現來搭建MLOps底層的信息“地基”。

第5章 模型統一接口設計及模型打包

本章介紹將實驗階段創建的模型、模型代碼及依賴的數據進行標準接口創建的方案。在創建軟件時,編寫抽象類來幫助定義類可以實現和繼承不同接口,這通常是很有用的。通過創建一個基類(接口),可以定義一個標準,簡化整個系統的設計,明確每個方法的功能和邊界。這樣做有利於推理服務的快速生成,方便客戶端的調用和使用方的理解,對於後期模型的運維也是有益的。此外,模型的打包是從實驗環境向其他環境遷移的必要步驟,也是本章介紹的內容之一。

第6章 在MLOps框架下規模化部署模型

本章介紹如何將實驗階段的ML模型規模化部署到MLOps框架內,通過模型即服務的設計來實現ML模型和將代碼自動部署為Docker鏡像,自動生成統一的推理服務,並將模型工件提交至中央存儲。每個模型都遵循同樣的操作方式,進而實現部署的規模化,並在第4章實現的模型注冊和中心化存儲的基礎上實現規模化的管理。

第7章 MLOps框架下的模型發布及零停機模型更新

本章介紹模型部署和發布的關係,從風險控制的角度考慮,將模型部署到生產環境時不會立即接收用戶流量,而是要在選擇發布策略並進行局部測試後,沒有發現問題的情況下,再逐步替換舊版本的模型,以接收全部用戶產生的流量。此外,對於模型需要頻繁更新的場景,如新聞、電商類的在線推薦,需要實現零停機模型更新機制,避免手動操作影響系統的穩定性。

第8章 MLOps框架下的模型監控與運維

本章介紹ML 項目生命周期的最後一個環節,即模型的監控和運維,主要是為解決模型衰退、模型持續訓練的觸發問題而設立的。通過設計實時識別數據漂移、概念漂移、模型錯誤、推理服務性能和推理服務健康度等指標,以及記錄相關日志信息,來監控模型的性能和服務的健康度,以保證模型在生產中是安全的、健康的和“新鮮的”。

第9章 對MLOps的一些實踐經驗總結

本章介紹市面上一些成熟的MLOps產品與開源框架的功能,以及各自聚焦的領域,並給出MLOps 架構成熟度評估標準,方便開發者依據自己的業務場景進行相應的判斷與擴充,並分享了一些筆者在MLOps實踐中總結的經驗和搭建原則,供讀者參考。


目次

目 錄

第1章 MLOps概述 1
1.1 機器學習涉及的概念 1
1.1.1 監督學習 3
1.1.2 無監督學習 4
1.1.3 半監督學習 4
1.1.4 強化學習 5
1.1.5 何時使用機器學習 5
1.2 機器學習相關符號及術語定義 7
1.2.1 原始數據、輸入數據、特徵與特徵工程 7
1.2.2 訓練樣本及預留樣本 8
1.2.3 參數與超參數 8
1.2.4 參數模型、非參數模型、極大似然估計 9
1.2.5 機器學習管道 11
1.2.6 模型選擇與性能權衡 12
1.3 機器學習的工程挑戰與MLOps解決方案 13
1.3.1 MLOps的定義 14
1.3.2 MLOps與其他Ops的區別 15
1.3.3 誰在關注MLOps 17
1.3.4 為什麼需要MLOps 19
1.3.5 MLOps給企業帶來的增益 20
1.3.6 MLOps的工作流程 21
1.3.7 MLOps工程師需要具備的技能 22
1.3.8 什麼時候真正需要MLOps 23
1.4 MLOps框架下的工程實踐 24
1.4.1 機器學習工程及生產化模塊 25
1.4.2 機器學習工程模塊的設計原則 26
1.4.3 進行機器學習工程的模塊設計時需要注意的細節 27
1.4.4 編碼環境與模型探索 27
1.4.5 特徵存儲 31
1.4.6 實驗管理和模型管理 32
1.4.7 服務 32
1.4.8 模型服務規模化 33
1.4.9 模型監控 34
1.5 本章總結 34
第2章 在MLOps框架下開展機器學習項目 36
2.1 界定業務範圍階段 37
2.1.1 在項目規劃時考慮生產化 37
2.1.2 業務需求 38
2.1.3 確定衡量指標和項目範圍 38
2.1.4 設計初步解決方案 40
2.1.5 制定共同語言 41
2.1.6 數據權限及準備 44
2.2 研究與探索階段 44
2.2.1 數據探索 44
2.2.2 技術有效性檢查 45
2.3 模型開發階段 46
2.3.1 模型開發的必要準備 46
2.3.2 模型開發 46
2.3.3 模型驗證 46
2.4 模型生產化階段 47
2.5 機器學習項目生命周期 48
2.6 團隊建設及分工 49
2.6.1 企業數字化程度 50
2.6.2 界定機器學習團隊的角色 50
2.6.3 探討機器學習項目的團隊建設與分工 51
2.6.4 項目外包還是自建機器學習團隊 53
2.7 本章總結 55
第3章 MLOps的基礎準備:模型開發 56
3.1 背景概要 57
3.2 定義機器學習目標 57
3.2.1 業務問題概述 58
3.2.2 業務目標 58
3.2.3 機器學習目標 58
3.3 數據收集 58
3.3.1 數據獲取 59
3.3.2 加載數據 59
3.3.3 關於數據集 61
3.4 數據預處理 62
3.4.1 缺失值處理 62
3.4.2 離群值檢測 63
3.5 數據探索 64
3.5.1 目標變量 65
3.5.2 服務分析 65
3.5.3 用戶行為分析 67
3.6 特徵工程 70
3.6.1 分類和數值列拆分 70
3.6.2 One-Hot編碼 72
3.6.3 特徵縮放處理 73
3.6.4 目標變量 73
3.6.5 樣本生成 74
3.7 構建和評估模型 74
3.7.1 處理非平衡問題 74
3.7.2 模型構建 75
3.8 持久化模型 78
3.9 構建REST API 78
3.9.1 導入相關庫並加載模型 79
3.9.2 編寫預測函數 80
3.9.3 用戶請求 81
3.10 模型投產 82
3.10.1 機器學習投產陷阱及挑戰 83
3.10.2 機器學習模型演化:從獨立模型到模型工廠 85
3.10.3 利用MLOps實現模型的規模化投產 86
3.11 本章總結 87
第4章 ML與Ops之間的信息存儲與傳遞機制 88
4.1 機器學習實驗跟蹤 89
4.1.1 機器學習實驗跟蹤的定義 90
4.1.2 機器學習實驗跟蹤的必要性 91
4.1.3 隨時隨地管理實驗 91
4.1.4 機器學習實驗跟蹤與模型管理的區別 92
4.1.5 在MLOps框架中增加機器學習實驗跟蹤功能 92
4.1.6 設計和實現機器學習實驗跟蹤API 93
4.1.7 在生產中使用機器學習實驗跟蹤API 100
4.2 A/B在線實驗 101
4.2.1 創建在線實驗的必要性 101
4.2.2 確定實驗的範圍與目標 102
4.2.3 最小樣本量的確定方法 103
4.2.4 對機器學習模型進行A/B測試 104
4.2.5 在MLOps框架中增加A/B在線實驗功能 105
4.2.6 用於A/B在線實驗的MAB方案 108
4.2.7 MLOps框架中的A/B實驗管理 110
4.3 模型注冊 111
4.3.1 模型注冊的定義 111
4.3.2 模型注冊的必要性 112
4.3.3 將模型注冊功能融入MLOps框架 114
4.3.4 模型注冊中心存儲的信息 115
4.3.5 模型注冊的價值 116
4.3.6 先從一個簡單的模型注冊開始 118
4.3.7 設計和實現符合MLOps標準的模型注冊中心 119
4.3.8 在生產中使用模型注冊API 124
4.3.9 模型注冊中心的權限設置 126
4.4 特徵存儲 127
4.4.1 特徵工程及使用挑戰 127
4.4.2 特徵存儲的定義 128
4.4.3 在MLOps框架中增加特徵存儲 129
4.4.4 離線與在線特徵 130
4.4.5 特徵存儲帶來的益處 131
4.4.6 特徵存儲的架構設計 132
4.5 本章總結 135
第5章 模型統一接口設計及模型打包 136
5.1 機器學習模型基礎接口概述 136
5.1.1 軟件開發的策略模式 137
5.1.2 Scikit-Learn對接口的處理方法 138
5.2 業內一些常見的解決方案 139
5.2.1 AWS的機器學習生命周期工具SageMaker 139
5.2.2 Meta的機器學習平臺FBLearner Flow 139
5.2.3 Uber的機器學習平臺Michelangelo 140
5.2.4 開源的Seldon Core 140
5.3 一個簡單的機器學習模型接口示例 140
5.3.1 繼承ModelBase基類 142
5.3.2 模型管理基類 145
5.3.3 Flask REST端點 148
5.4 機器學習項目打包 148
5.4.1 模型及代碼打包的必要性 149
5.4.2 模型和代碼打包的事項及示例 150
5.4.3 模型序列化 150
5.5 本章總結 152
第6章 在MLOps框架下規模化部署模型 153
6.1 定義及挑戰 154
6.1.1 機器學習部署的簡單定義 154
6.1.2 部署機器學習模型的常見挑戰 155
6.2 對業務的驅動邏輯 156
6.2.1 模型部署的邊界 156
6.2.2 模型部署與業務應用流程的關係 157
6.3 常見的設計模式 158
6.3.1 用於在線推理的機器學習模型部署的挑戰 159
6.3.2 什麼時候需要在線推理 162
6.3.3 什麼時候使用批量推理 162
6.3.4 數據庫批量推理模式 163
6.3.5 嵌入式推理模式 164
6.3.6 單服務推理模式 165
6.3.7 微服務推理模式 166
6.4 構建MLOps通用推理服務:模型即服務 168
6.4.1 模型即服務的工作流程 169
6.4.2 模型即服務的核心服務模塊 171
6.5 Web服務框架及應用生態 172
6.5.1 Web應用程序 172
6.5.2 WSGI服務器 173
6.5.3 Web服務器 176
6.5.4 使用REST API為模型提供服務 178
6.6 基於Docker的模型應用程序部署 179
6.6.1 Docker的定義 180
6.6.2 Docker容器、Python虛擬環境和虛擬機 180
6.6.3 構建HTTP REST API 181
6.6.4 創建生產級的Docker鏡像 182
6.6.5 構建並運行Docker容器 183
6.7 模型即服務的自動化 184
6.7.1 模型即服務的邏輯設計 184
6.7.2 模型即服務的通用接口定義 187
6.7.3 使用SQLAlchemy ORM重構MLOps的信息存儲表 187
6.8 在MLOps框架下實現模型部署示例 190
6.8.1 將構建好的模型進行注冊 190
6.8.2 模型部署和服務化 193
6.8.3 機器學習實驗跟蹤功能升級 195
6.9 基於開源項目的模型服務解決方案 199
6.9.1 基於Kubernetes的資源管理項目KFServing 199
6.9.2 機器學習部署平臺Seldon Core 199
6.9.3 輕量級模型部署及管理平臺BentoML 200
6.9.4 機器學習生命周期管理平臺MLflow 200
6.9.5 機器學習模型服務開源方案的總結 201
6.9.6 關於機器學習模型部署和服務方案的思考 201
6.10 本章總結 202
第7章 MLOps框架下的模型發布及零停機模型更新 204
7.1 機器學習在生產中的CI/CD 205
7.1.1 模型在生產中持續迭代的挑戰 206
7.1.2 在MLOps框架中添加模型的發布流程 207
7.1.3 CI階段的實踐 208
7.1.4 CD階段的實踐 211
7.2 模型服務的發布策略 211
7.2.1 傳統軟件工程的發布策略 212
7.2.2 部署即發布 212
7.2.3 制定機器學習模型服務發布策略的必要性 213
7.2.4 影子測試策略與漸進式推出策略 214
7.2.5 競爭策略 216
7.3 零停機更新模型服務 218
7.3.1 生產中Flask的局限性 219
7.3.2 關於GIL、線程和進程的入門知識 219
7.3.3 從單線程的Flask到uWSGI 220
7.3.4 模型更新條件檢查 222
7.3.5 動態更新模型方案 222
7.3.6 基於Kubernetes的擴展方案 227
7.4 本章總結 228
第8章 MLOps框架下的模型監控與運維 230
8.1 機器學習模型監控簡介 230
8.1.1 模型的監控場景 231
8.1.2 為什麼監控很重要 232
8.1.3 機器學習監控與傳統軟件監控的區別 233
8.1.4 誰需要關注機器學習的監控結果 234
8.1.5 生產中導致模型衰退或出錯的原因 235
8.2 數據科學問題的監控 236
8.2.1 模型漂移 237
8.2.2 決策邊界的改變 238
8.2.3 模擬漂移與模型重建修正 239
8.2.4 數據科學問題監控的常見指標和方法 240
8.3 運維問題的監控 241
8.3.1 運維問題的監控與可觀察性 242
8.3.2 運維問題監控的指標定義 242
8.4 在MLOps框架內增加監控功能 243
8.4.1 機器學習的日志信息記錄 244
8.4.2 使用特徵存儲簡化模型監控 245
8.4.3 A/B在線實驗閉環 246
8.4.4 模型衰退檢測 247
8.4.5 模型維護 249
8.4.6 模型自動持續訓練 251
8.4.7 API緩衝 252
8.5 本章總結 252
第9章 對MLOps的一些實踐經驗總結 254
9.1 機器學習和MLOps平臺比較 254
9.1.1 聚焦傳統機器學習與聚焦深度學習 254
9.1.2 聚焦分析探索與聚焦產品化 255
9.1.3 面向平民化數據科學與面向數據科學專家 256
9.1.4 專業化平臺與端到端平臺 256
9.2 自研MLOps平臺 257
9.2.1 自研MLOps平臺的經驗總結 258
9.2.2 MLOps框架或平臺的搭建原則 261
9.2.3 MLOps的架構參考 264
9.3 MLOps架構的成熟度評估 266
9.3.1 對業務需求的定義 267
9.3.2 數據準備 267
9.3.3 模型實驗 268
9.3.4 模型部署 268
9.3.5 模型監控 269
9.3.6 模型的持續訓練 270
9.3.7 關於MLOps架構成熟度評估的思考 271
9.4 本章總結 271

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 553
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區