MLOps實踐——機器學習從開發到生產(全彩)

MLOps實踐——機器學習從開發到生產(全彩)

《MLOps實踐——機器學習從開發到生產(全彩)》是2022年4月電子工業出版社出版的圖書,作者是李攀登。

基本介紹

  • 書名:MLOps實踐——機器學習從開發到生產(全彩)
  • 作者:李攀登
  • 出版社:電子工業出版社
  • 出版時間:2022年4月
  • 頁數:292 頁
  • 定價:106 元
  • 開本:16 開
  • ISBN:9787121431562
內容簡介,圖書目錄,作者簡介,

內容簡介

從多個方面介紹了MLOps實踐路徑,內容涵蓋了設計、構建和部署由ML驅動的應用程式所需的各種實用技能。

圖書目錄

第1章 MLOps概述 1
1.1 ML涉及的概念 1
1.1.1 監督學習 3
1.1.2 無監督學習 4
1.1.3 半監督學習 4
1.1.4 強化學習 5
1.1.5 何時使用ML 5
1.2 ML相關符號及術語定義 7
1.2.1 原始數據、輸入數據、特徵與特徵工程 7
1.2.2 訓練樣本及預留樣本 8
1.2.3 參數與超參數 8
1.2.4 參數模型、非參數模型、極大似然估計 9
1.2.5 ML管道 11
1.2.6 模型選擇與性能權衡 12
1.3 ML的工程挑戰與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 ML工程及生產化模組 25
1.4.2 ML工程模組的設計原則 26
1.4.3 進行ML工程的模組設計時需要注意的細節 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框架下開展ML項目 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 ML項目生命周期 48
2.6 團隊建設及分工 49
2.6.1 企業數位化程度 50
2.6.2 界定ML團隊的角色 50
2.6.3 探討ML項目的團隊建設與分工 51
2.6.4 項目外包還是自建ML團隊 53
2.7 本章總結 55
第3章 MLOps的基礎準備:模型開發 56
3.1 背景概要 57
3.2 定義ML目標 57
3.2.1 業務問題概述 58
3.2.2 業務目標 58
3.2.3 ML目標 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 ML投產陷阱及挑戰 83
3.10.2 ML模型演化:從獨立模型到模型工廠 85
3.10.3 利用MLOps實現模型的規模化投產 86
3.11 本章總結 87
第4章 ML與Ops之間的信息存儲與傳遞機制 88
4.1 ML實驗跟蹤 89
4.1.1 ML實驗跟蹤的定義 90
4.1.2 ML實驗跟蹤的必要性 91
4.1.3 隨時隨地管理實驗 91
4.1.4 ML實驗跟蹤與模型管理的區別 92
4.1.5 在MLOps框架中增加ML實驗跟蹤功能 92
4.1.6 設計和實現ML實驗跟蹤API 93
4.1.7 在生產中使用ML實驗跟蹤API 100
4.2 A/B線上實驗 101
4.2.1 創建線上實驗的必要性 101
4.2.2 確定實驗的範圍與目標 102
4.2.3 最小樣本量的確定方法 103
4.2.4 對ML模型進行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 ML模型基礎接口概述 136
5.1.1 軟體開發的策略模式 137
5.1.2 Scikit-Learn對接口的處理方法 138
5.2 業內一些常見的解決方案 139
5.2.1 AWS的ML生命周期工具SageMaker 139
5.2.2 Meta的ML平台FBLearner Flow 139
5.2.3 Uber的ML平台Michelangelo 140
5.2.4 開源的Seldon Core 140
5.3 一個簡單的ML模型接口示例 140
5.3.1 繼承ModelBase基類 142
5.3.2 模型管理基類 145
5.3.3 Flask REST端點 148
5.4 ML項目打包 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 ML部署的簡單定義 154
6.1.2 部署ML模型的常見挑戰 155
6.2 對業務的驅動邏輯 156
6.2.1 模型部署的邊界 156
6.2.2 模型部署與業務套用流程的關係 157
6.3 常見的設計模式 158
6.3.1 用於線上推理的ML模型部署的挑戰 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 ML實驗跟蹤功能升級 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 ML模型服務開源方案的總結 201
6.9.6 關於ML模型部署和服務方案的思考 201
6.10 本章總結 202
第7章 MLOps框架下的模型發布及零停機模型更新 204
7.1 ML在生產中的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 制定ML模型服務發布策略的必要性 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 ML模型監控簡介 230
8.1.1 模型的監控場景 231
8.1.2 為什麼監控很重要 232
8.1.3 ML監控與傳統軟體監控的區別 233
8.1.4 誰需要關注ML的監控結果 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 ML的日誌信息記錄 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 ML和MLOps平台比較 254
9.1.1 聚焦傳統ML與聚焦深度學習 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

作者簡介

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

相關詞條

熱門詞條

聯絡我們