譯者 | 崔皓
審校 | 重樓
摘要
本文強調(diào)MLOps(機(jī)器學(xué)習(xí)運營)的重要性,并詳細(xì)介紹了其五個關(guān)鍵階段:問題框架、解決方案框架、數(shù)據(jù)準(zhǔn)備、模型構(gòu)建和分析以及模型服務(wù)和監(jiān)控。文章通過一個金融科技案例研究,詳細(xì)解釋了如何在實踐中應(yīng)用這五個階段。最后,文章強調(diào)了實施MLOps的好處,包括解決業(yè)務(wù)問題、使用正確的工具、善用代表問題的數(shù)據(jù)集、構(gòu)建最優(yōu)的機(jī)器學(xué)習(xí)模型,以及部署和監(jiān)控模型。
開篇
許多數(shù)據(jù)科學(xué)項目因為各種原因都不為人所知。MLOps就是其中一個, MLOps指的是從數(shù)據(jù)階段到部署階段的過程,它可以確保機(jī)器學(xué)習(xí)模型的成功。在這篇文章中,你將了解到MLOps的關(guān)鍵階段(從數(shù)據(jù)科學(xué)家的角度)以及一些常見的陷阱。
小貼士:MLOps市場在2019年估計為232億美元,并預(yù)計到2025年將達(dá)到1260億美元,原因是MLOps被業(yè)內(nèi)廣泛應(yīng)用。
MLOps的動機(jī)
MLOps是一種專注于運營數(shù)據(jù)科學(xué)模型的實踐。通常,在大多數(shù)企業(yè)中,數(shù)據(jù)科學(xué)家負(fù)責(zé)建模數(shù)據(jù)集,預(yù)處理數(shù)據(jù),進(jìn)行特征工程,最后構(gòu)建模型。然后,模型被“扔”給工程團(tuán)隊,以便部署成API或者站點。在這個過程中,科學(xué)(建模)和工程(部署)往往在各自的孤島中進(jìn)行,兩部分工作的隔離導(dǎo)致部署延遲,在最壞的情況下,會導(dǎo)致部署錯誤。MLOps可以快速準(zhǔn)確地部署企業(yè)規(guī)模的ML模型。數(shù)據(jù)科學(xué)往往被人認(rèn)為 “說起來容易做起來難”。MLOps就是這一領(lǐng)域的靈丹妙藥,用來根治從模型學(xué)習(xí)到生產(chǎn)部署的各種疑難雜癥。其實數(shù)據(jù)科學(xué)家都清楚,90%的ML模型并沒有投入生產(chǎn)。MLOps給數(shù)據(jù)科學(xué)和工程團(tuán)隊帶來了標(biāo)準(zhǔn)和流程,確保他們緊密且持續(xù)地合作。這種合作對于確保模型成功部署至關(guān)重要。
簡述MLOps
對于熟悉DevOps的人來說,MLOps對于機(jī)器學(xué)習(xí)應(yīng)用就像DevOps對于軟件應(yīng)用一樣重要。MLOps有多種形式,然而有五個關(guān)鍵階段對于MLOps策略至關(guān)重要,同時每個階段都需要與利益相關(guān)者進(jìn)行溝通。下面我們就展開說明有哪五個階段:
問題框架
深入理解業(yè)務(wù)問題。這是成功部署模型和使用的關(guān)鍵。在這個階段需要與所有的利益相關(guān)者進(jìn)行交流,從而獲得項目的支持。包括工程、產(chǎn)品、合規(guī)等。
解決方案框架
只有在問題陳述被詳細(xì)討論之后,才開始考慮“如何”以及是否需要機(jī)器學(xué)習(xí)來解決業(yè)務(wù)問題?一開始,作為數(shù)據(jù)科學(xué)家,我建議避開機(jī)器學(xué)習(xí),這一舉動可能會讓人覺得奇怪。因為“巨大的力量帶來的是巨大的責(zé)任”。我們只要確保機(jī)器學(xué)習(xí)模型被建立、部署和仔細(xì)監(jiān)控,以確保它滿足并繼續(xù)滿足業(yè)務(wù)需求。同時,在這個階段也應(yīng)該與利益相關(guān)者討論時間表和資源。
數(shù)據(jù)準(zhǔn)備
一旦決定走機(jī)器學(xué)習(xí)的路線,就開始考慮“數(shù)據(jù)”。這個階段包括數(shù)據(jù)收集、數(shù)據(jù)清洗、數(shù)據(jù)轉(zhuǎn)換、特征工程和標(biāo)簽(對于監(jiān)督學(xué)習(xí))。這里需要記住的格言是“垃圾輸入,垃圾輸出”。這個步驟通常是過程中最痛苦的步驟,對于確保模型成功至關(guān)重要。確保多次驗證數(shù)據(jù)和特征,以確保它們與業(yè)務(wù)問題相符。記錄你在創(chuàng)建數(shù)據(jù)集時做出的所有假設(shè)。例如:一個特征的異常值真的是異常值嗎?
模型構(gòu)建和分析
在這個階段,需要構(gòu)建和評估多個模型,選擇最能解決問題的模型架構(gòu)。選擇的優(yōu)化指標(biāo)應(yīng)反映業(yè)務(wù)需求?,F(xiàn)在,有許多機(jī)器學(xué)習(xí)庫可以加快這個步驟。記住記錄和跟蹤你的實驗,以確保機(jī)器學(xué)習(xí)流水線的可重復(fù)性。
模型服務(wù)和監(jiān)控
一旦我們從前一階段構(gòu)建出模型對象,需要考慮如何讓最終用戶“使用”它。最小化響應(yīng)延遲,以及最大化吞吐量。部署服務(wù)模型為REST API端點,并將其部署到云上的Docker容器或在邊緣設(shè)備上。即便是順利部署了服務(wù),但也不能高興得太早,因為還存在變數(shù)。例如,生產(chǎn)中的數(shù)據(jù)可能會漂移,導(dǎo)致模型衰退,或者模型會受到對抗性攻擊。我們需要為機(jī)器學(xué)習(xí)應(yīng)用建立強大的監(jiān)控基礎(chǔ)設(shè)施。這里需要監(jiān)控兩件事:
1.部署環(huán)境的健康狀況(例如:負(fù)載,使用情況,延遲)
2. 模型本身的健康狀況(例如:性能指標(biāo),輸出分布)。
在這個階段也需要確定監(jiān)控頻率。每天、每周還是每月監(jiān)控ML應(yīng)用程序?至此,已經(jīng)建立、部署和監(jiān)控了一個健壯的機(jī)器學(xué)習(xí)應(yīng)用程序。但是,輪子并沒有停止旋轉(zhuǎn),因為上述步驟需要不斷迭代。

金融科技案例研究

為了將上述五個階段付諸實踐,我們會舉一個案例作為最佳實踐的參考。假設(shè)你是一家金融科技公司的數(shù)據(jù)科學(xué)家,負(fù)責(zé)部署一個用于檢測欺詐交易的欺詐模型。在這種情況下,首先要深入研究檢測的欺詐類型(是第一方還是第三方?)。交易如何被確定為欺詐或非欺詐?是由最終用戶報告的,還是你必須使用啟發(fā)式方法來識別欺詐?誰會使用模型?它將實時使用還是批量模式?回答上述問題對解決這個業(yè)務(wù)問題至關(guān)重要。
接下來,考慮什么解決方案最能解決這個問題。你需要機(jī)器學(xué)習(xí)來解決這個問題,還是可以從簡單的啟發(fā)式方法開始來處理欺詐?所有的欺詐是否都來自一小部分IP地址?
如果你決定構(gòu)建一個機(jī)器學(xué)習(xí)模型(假設(shè)這個案例是監(jiān)督學(xué)習(xí)),你將需要標(biāo)簽和特征。你將如何處理缺失的變量?異常值呢?欺詐標(biāo)簽的觀察窗口是多少?即用戶報告欺詐交易需要多長時間?是否有一個數(shù)據(jù)倉庫可以用來構(gòu)建特征?在向前移動之前,確保驗證數(shù)據(jù)和特征。這也是與利益相關(guān)者就項目方向進(jìn)行交流的好時機(jī)。
一旦你有了所需的數(shù)據(jù),就構(gòu)建模型并進(jìn)行必要的分析。確保模型指標(biāo)與業(yè)務(wù)使用相符。(例如:對于這個用例,可能是第一分位數(shù)的召回率)。所選的模型算法是否滿足延遲要求?
最后,與工程協(xié)調(diào)部署和服務(wù)模型。因為欺詐檢測是一個非常動態(tài)的環(huán)境,欺詐者努力保持在系統(tǒng)前面,所以監(jiān)控非常重要。對數(shù)據(jù)和模型都有一個監(jiān)控計劃。例如,人口穩(wěn)定性指數(shù)(PSI)是常用的跟蹤數(shù)據(jù)漂移的措施。你將多久重新訓(xùn)練一次模型?
現(xiàn)在,你可以成功地通過使用機(jī)器學(xué)習(xí)(如果需要的話?。﹣頊p少欺詐交易,從而創(chuàng)造商業(yè)價值。
結(jié)論
希望在閱讀這篇文章后,你能夠理解MLOps給企業(yè)實現(xiàn)機(jī)器學(xué)習(xí)到部署帶來的益處??偟膩碚f,MLOps能夠給數(shù)據(jù)科學(xué)團(tuán)隊帶來如下優(yōu)勢:
- 解決正確的業(yè)務(wù)問題
- 使用正確的工具來解決問題
- 利用代表問題的數(shù)據(jù)集
- 構(gòu)建最優(yōu)的機(jī)器學(xué)習(xí)模型
- 最后部署和監(jiān)控模型以確保持續(xù)的成功
然而,要注意常見的陷阱,以確保你的數(shù)據(jù)科學(xué)項目不會成為數(shù)據(jù)科學(xué)墓地的一塊墓碑!數(shù)據(jù)科學(xué)應(yīng)用是一個活生生的東西。數(shù)據(jù)和模型需要持續(xù)被監(jiān)控。從一開始就應(yīng)該考慮AI治理,而不是作為事后的想法。牢記這些原則,我相信你可以真正地利用機(jī)器學(xué)習(xí)(如果需要的話!)創(chuàng)造商業(yè)價值。
譯者介紹
崔皓,51CTO社區(qū)編輯,資深架構(gòu)師,擁有18年的軟件開發(fā)和架構(gòu)經(jīng)驗,10年分布式架構(gòu)經(jīng)驗。
原文標(biāo)題:How to MLOps like a Boss: A Guide to Machine Learning without Tears,作者:Natesh Babu Arunachalam
























