- 機器學習流水線實戰
- (美)漢內斯·哈普克 凱瑟琳·納爾遜
- 1710字
- 2021-11-22 15:28:40
序
在亨利 ? 福特的公司于 1913 年建造第一條用于生產傳奇的福特 T 型汽車的流水線后,每架汽車底盤的組裝時間從 12 小時降至約 90 分鐘。這條流水線大大降低了成本,使福特 T 型汽車成為歷史上第一款大眾可購買的汽車。它也實現了量產化,因此在不久之后,路上便出現了大量的福特 T 型汽車。
當生產過程被定義為一系列清晰的步驟時(這個系列又稱為流水線),如果將一部分步驟自動化,則可以節省很多時間和金錢。在今天,汽車的生產大部分是依賴機器完成的。
然而,節省時間和金錢并不是自動化的全部目的。對于大部分重復性的工作來說,機器比工人更穩定,進而保證了最終產品的可預期性、一致性和可靠性。同時,當工人們不再需要在重型機械旁工作時,生產安全極大地提高了,他們也可以從無聊的工作中解放出來,從事更有價值的工作了。
從另一個角度來看,搭建一條流水線既耗時又耗材。如果只想生產小批量或高度定制化的產品,流水線并不是理想的選擇。福特曾有一句名言:“當汽車只有黑色一種顏色時,客戶便沒有定制顏色的權利。”
在過去的幾十年中,我們可以在軟件行業看到汽車量產史的影子:今天大部分的重要軟件是由 Jenkins 或者 Travis 等自動化工具構建、測試和部署的。然而,福特 T 型汽車的例子并不能完全反映軟件行業的現狀。與投放汽車不同,軟件不僅需要部署,還需要日常的監測、維護和升級。軟件開發流水線更像是靈動的循環,而不是缺少變化的生產線。快速、可靠地升級軟件或者流水線是非常重要的。任何軟件都比福特 T 型汽車更能被個性化,軟件可以“擁有”各種各樣的顏色(打個比方,你可以算算微軟 Office 有多少個版本)。
可惜的是,“傳統”的自動化工具不能滿足機器學習流水線的需求。實際上,機器學習模型并不是傳統意義上的軟件。
第一,機器學習模型的大部分行為由訓練數據驅動。因此,訓練數據本身必須是某種意義上的“代碼”(比如需要版本控制)。對數據進行版本控制是個非常棘手的問題,因為每天都會出現大量的新數據,這些數據會隨著時間而變化,通常還摻雜著隱私數據,而且必須進行標注后才能用于監督式學習算法。
第二,這些模型的行為往往不夠透明。它們可能在一些測試數據上通過所有檢測,但在另一些測試數據上無法通過。因此,你需要保證測試樣例能夠反映模型在生產環境中所接觸的所有數據。特別需要防范模型對某一部分用戶的歧視。
因為某些原因,數據科學家和軟件工程師在早期都是用“小作坊”的方式手動構建和訓練機器學習模型的。許多人至今仍然保持著手動開發模型的工作方式。但近幾年的新型自動化工具,比如 TensorFlow Extended(TFX)和 Kubeflow,可以用來應對機器學習流水線中的各種挑戰。越來越多的組織開始用這些工具創建機器學習流水線,進而將大部分(甚至全部)機器學習模型的構建步驟和訓練步驟自動化。和汽車行業的自動化一樣,機器學習的自動化可以節省成本和時間,構建更好、更可靠、更安全的模型。人們可以將更多的時間用在有價值的工作上,而不是在簡單的復制數據或者分析數據的任務上浪費時間。但是,構建機器學習流水線并不是一件簡單的事情。該如何開始呢?
答案就在這本書中!
在這本書中,漢內斯和凱瑟琳提供了清晰的機器學習流水線自動化指南。作為通過上手實操學習技術內容的堅定支持者,我特別享受這本書一步一步帶你完成示例項目的過程。有了大量的代碼示例和簡潔明了的解釋,你很快就能架設和使用自己的機器學習流水線,并且知道如何將它用在各種應用場景中。強烈建議你在閱讀的同時在計算機上進行實操練習,這樣會學得更快。
2019 年 10 月,我在美國加利福尼亞州圣克拉拉市舉辦的 TensorFlow World 會議上第一次見到了漢內斯和凱瑟琳。會上我演說了如何用 TFX 搭建機器學習流水線。他們當時正在撰寫這本書,而且我們的編輯是同一個人,所以我們聊了很多共同話題。演講結束時,一些與會者問了我很多關于 TensorFlow Serving(TFX 的一個部件)的技術問題,漢內斯和凱瑟琳幫我找到了這些問題的答案。漢內斯甚至接受了我的臨時邀請,在會上介紹了 TensorFlow Serving 的進階特性。他的演說簡直就是寶藏,充滿了深刻見解和實用的建議。你可以在這本書中學到這些見解和建議,以及更多豐富精彩的內容。
開始創建專業的機器學習流水線吧!
——Aurélien Géron
前 YouTube 視頻分類團隊主管
《機器學習實戰:基于 Scikit-Learn、Keras 和 TensorFlow 》作者
2020 年 6 月 18 日于新西蘭奧克蘭市
- 大數據技術與應用基礎
- 零起步輕松學單片機技術(第2版)
- Instant Raspberry Pi Gaming
- 大數據管理系統
- Mastering Proxmox(Third Edition)
- 現代測控電子技術
- Deep Learning Quick Reference
- 實時流計算系統設計與實現
- 程序設計缺陷分析與實踐
- 來吧!帶你玩轉Excel VBA
- Java開發技術全程指南
- Windows 8應用開發實戰
- Learning Apache Cassandra(Second Edition)
- VMware Performance and Capacity Management(Second Edition)
- 大數據技術與應用