機器學習項目交付實戰

機器學習項目交付實戰

《機器學習項目交付實戰》是清華大學出版社於2023年出版的一本圖書,作者是[美] 本·威爾遜 (Ben Wilson)

基本介紹

  • 中文名:機器學習項目交付實戰
  • 作者:[美] 本·威爾遜 (Ben Wilson) 
  • 譯者:李曉峰 逄金輝 殷海英  
  • 出版時間:2023年7月 
  • 出版社:清華大學出版社 
  • ISBN:9787302637424 
內容簡介,作者簡介,目錄,

內容簡介

《機器學習項目交付實戰》將介紹如何從模型和數據中獲取**性能,幫助你構建穩定的數據管道。通過高效的可復用技術集合,來確保應用程式工作流程的順利執行,以及提高模型的可維護性。基於數十年的良好軟體工程實踐,機器學習工程可確保你的機器學習系統具有彈性、適應性和可執行性。 《機器學習項目交付實戰》將介紹設計、構建和交付成功的機器學習項目的核心原則和上佳實踐。你將了解很多軟體工程技術,例如對原型進行實驗和實施模組化設計,從而產生彈性架構和一致的跨團隊溝通。基於作者豐富的經驗,本書中的每一種方法都被成功地用於解決現實世界中的問題。

作者簡介

Ben Wilson是一名機器學習工程師,曾擔任過核工程技術員、半導體工藝工程師和數據科學家。

目錄

第Ⅰ部分 機器學習工程簡介
第1章 什麼是機器學習工程 3
1.1 為什麼使用機器學習工程 4
1.2 機器學習工程的核心原則 7
1.2.1 規劃 7
1.2.2 範圍界定和研究 9
1.2.3 實驗 11
1.2.4 研發 12
1.2.5 部署 15
1.2.6 評估 18
1.3 機器學習工程的目標 20
1.4 本章小結 21
第2章 數據科學工程 23
2.1 用提高項目成功率的過程增強複雜的專業 24
2.2 簡單的基礎 25
2.3 敏捷軟體工程的工作原則 27
2.3.1 溝通與合作 28
2.3.2 擁抱並期待改變 30
2.4 機器學習工程的基礎 31
2.5 本章小結 32
第3章 在建模之前:規劃和確定項目範圍 33
3.1 規劃:你要我預測什麼 36
3.1.1 項目的基本規劃 40
3.1.2 首次會議 45
3.1.3 規劃演示——進行大量演示 47
3.1.4 通過解決方案構建進行實驗:磨刀不誤砍柴工 49
3.2 實驗範圍:設定預期和界限 51
3.2.1 什麼是實驗範圍 52
3.2.2 機器學習團隊的實驗範圍:研究 52
3.2.3 機器學習團隊的實驗範圍:實驗 54
3.3 本章小結 63
第4章 建模之前:項目的溝通與邏輯 65
4.1 溝通:定義問題 67
4.1.1 理解問題 68
4.1.2 設定嚴格的討論界限 78
4.2 不要浪費時間:與跨職能團隊交流 84
4.2.1 實驗變更會議:我們知道自己在做什麼嗎 85
4.2.2 SME 評審/原型評審:我們能解決這個問題嗎 86
4.2.3 開發進度評審:這會奏效嗎 87
4.2.4 MVP評審:是否生成了我們要求的內容 88
4.2.5 預投產評審:我們真希望沒有搞砸 89
4.3 為實驗設定限制 90
4.3.1 設定時限 90
4.3.2 可以投入生產嗎? 你想維護它嗎 92
4.3.3 機器學習項目的TDD、RDD、PDD和CDD 93
4.4 為混亂的業務規則做計畫 96
4.4.1 通過計畫“擁抱混亂” 96
4.4.2 “人機迴環”設計 98
4.4.3 你的備選方案是什麼 99
4.5 對結果進行討論 99
4.6 本章小結 101
第5章 進行實驗:規劃和研究機器學習項目 103
5.1 設計實驗 104
5.1.1 進行基礎的研究和規劃 105
5.1.2 扔掉部落格——仔細閱讀API文檔 108
5.1.3 抽籤決定內部黑客馬拉松 112
5.1.4 公平競爭環境 113
5.2 執行實驗準備工作 114
5.2.1 執行數據分析 115
5.2.2 從腳本轉向可重用代碼 121
5.2.3 為實驗構建可重用代碼的最後說明 128
5.3 本章小結 131
第6章 進行實驗:測試與評估 133
6.1 測試想法 135
6.1.1 在代碼中設定準則 136
6.1.2 運行快速預測測試 143
6.2 減少可能性 158
6.2.1 正確評估原型 159
6.2.2 決定前進的方向 161
6.2.3 接下來做什麼 163
6.3 本章小結 164
第7章 實踐實驗:從原型到MVP 165
7.1 調整:自動化那些惱人的過程 166
7.1.1 調優選項 168
7.1.2 Hyperopt入門 172
7.1.3 使用Hyperopt調優複雜的預測問題 175
7.2 為平台和團隊選擇合適的技術 179
7.2.1 使用Spark的理由 181
7.2.2 用SparkTrials處理來自Driver的調優 183
7.2.3 用pandas_udf處理來自Worker的調優 186
7.2.4 為團隊使用新範式:平台和技術 190
7.3 本章小結 191
第8章 動手實戰:使用MLflow和運行時最佳化實現MVP 193
8.1 日誌記錄:代碼、指標和結果 194
8.1.1 MLflow跟蹤 194
8.1.2 不要通過列印記錄日誌 196
8.1.3 版本控制、分支策略和與他人合作 198
8.2 可伸縮性和並發性 200
8.2.1 什麼是並發 200
8.2.2 哪些內容可以(或不可以)異步運行 203
8.3 本章小結 203
第Ⅱ部分 為投產做準備:創建可維護的機器學習項目
第9章 機器學習中的模組化:編寫可測試且易讀的代碼 207
9.1 單片腳本及其缺點 209
9.1.1 “巨石”是如何形成的 210
9.1.2 文本牆 210
9.1.3 單片腳本的注意事項 213
9.2 調試文本牆 215
9.3 對機器學習代碼進行模組化設計 221
9.4 機器學習的測試驅動開發 222
9.5 本章小結 226
第10章 編碼標準和創建可維護的機器學習代碼 227
10.1 機器學習的代碼異味 228
10.2 命名、結構和代碼體系結構 230
10.2.1 命名約定和結構 231
10.2.2 別耍小聰明 232
10.2.3 代碼體系結構 233
10.3 元組解包和可維護的替代方案 235
10.3.1 元組解包示例 235
10.3.2 元組解包的可靠替代方案 237
10.4 對問題視而不見:“飲食異常”和其他不良做法 239
10.4.1 精準使用try/catch 239
10.4.2 精心設計的異常處理 241
10.4.3 正確處理錯誤 242
10.5 使用全局可變對象 244
10.5.1 易變性會如何傷害你 245
10.5.2 封裝以防止可變性帶來的副作用 246
10.6 過多的嵌套的邏輯 248
10.7 本章小結 254
第11章 模型測量及其重要性 255
11.1 測量模型歸因 256
11.1.1 測量預測性能 258
11.1.2 明確相關性與因果關係 264
11.2 利用A/B檢驗進行歸因計算 268
11.2.1 A/B檢驗基礎 268
11.2.2 連續評估指標 271
11.2.3 使用替代顯示和檢驗 276
11.2.4 評估分類指標 280
11.3 本章小結 283
第12章 通過觀察漂移以保持你的收益 285
12.1 檢測漂移 285
12.2 解決漂移問題 296
12.2.1 我們可以做些什麼 296
12.2.2 應對漂移 298
12.3 本章小結 299
第13章 機器學習中的開發“傲慢” 301
13.1 優雅的複雜性與過度設計 302
13.1.1 輕量級腳本風格(命令式) 304
13.1.2 “精心設計”的混亂 307
13.2 無意混淆:如果不是你寫的,你能否讀懂 311
13.2.1 關於混淆 311
13.2.2 總結不良編碼習慣 322
13.3 不成熟的泛化、不成熟的最佳化以及其他顯示你有多聰明的糟糕方式 323
13.3.1 泛化和框架:除非不得已,否則不要使用它們 323
13.3.2 過早最佳化 325
13.4 你真的想作為“煤礦中的金絲雀”嗎?Alpha測試和開源“煤礦”中的危險 332
13.5 技術驅動的開發與解決方案驅動的開發 335
13.6 本章小結 337
第Ⅲ部分 開發生產機器學習代碼
第14章 編寫生產代碼 341
14.1 你見到了你的數據嗎 342
14.1.1 確保你有數據 344
14.1.2 檢查數據來源 345
14.1.3 找到真相的來源並與之保持一致 348
14.1.4 不要將數據清理嵌入生產代碼中 349
14.2 監控你的特徵 351
14.3 監控模型生命周期中的所有其他內容 355
14.4 保持一切儘可能簡單 359
14.4.1 問題定義的簡潔性 361
14.4.2 簡單的實現 361
14.5 機器學習項目的線框圖 363
14.6 避免機器學習中的貨物崇拜行為 368
14.7 本章小結 373
第15章 質量和驗收測試 375
15.1 數據一致性 376
15.1.1 訓練和推理偏差 376
15.1.2 特徵存儲簡介 378
15.1.3 過程勝於技術 379
15.1.4 數據孤島的危險 380
15.2 回退和冷啟動 382
15.2.1 嚴重依賴現有技術 383
15.2.2 冷啟動問題 385
15.3 最終用戶與內部使用測試 387
15.3.1 有偏見的測試 390
15.3.2 自己公司的員工測試自研的產品(dogfooding) 391
15.3.3 SME評估 392
15.4 模型的可解釋性 393
15.4.1 Shapley加法解釋 394
15.4.2 使用shap包 396
15.5 本章小結 401
第16章 生產環境基礎設施 403
16.1 工件管理 404
16.1.1 MLflow的模型註冊 405
16.1.2 使用模型註冊進行連線 407
16.2 特徵庫 412
16.2.1 特徵庫的用途 413
16.2.2 使用特徵庫 415
16.2.3 評估特徵庫 418
16.3 預測服務體系結構 419
16.3.1 確定服務需求 421
16.3.2 批量外部交付 427
16.3.3 微批量流式傳輸 429
16.3.4 實時伺服器端 430
16.3.5 集成模型(邊緣部署) 433
16.4 本章小結 434
附錄A Big O以及如何考慮運行時性能 435
附錄B 設定開發環境 461

相關詞條

熱門詞條

聯絡我們