1. 程式人生 > >從將機器學習模型轉化成真正產品和服務中學到的經驗教訓

從將機器學習模型轉化成真正產品和服務中學到的經驗教訓

人工智慧依然處於它的幼年時期。今天,只有15%的企業在使用機器學習,但是有30%的企業已經在它們未來的發展路線圖裡包括了機器學習。像Intel的CEO這樣的公眾人物宣稱,每一個企業都應該有一個機器學習的戰略,否則就會有落後的風險。那麼機器學習進入你的組織機構就僅僅只是個時間問題。當然,它目前還沒有進入。

然而在與希望在其企業中實施機器學習的CEO交談時我們發現:將機器學習從科學轉向生產似乎存在一個常見的問題。換句話說,就如《MIT Sloan Management Review》文章的作者提出的,“大多數公司的雄心與實際的執行之間存在很大的差距”。以至於最終在構建一個模型與實際把它準備好為使用者在產品和服務中使用之間存在著重大的差異。

資料科學訓練營非常適合學習如何構建和優化模型,但它們並沒有教會工程師如何將模型帶到下一步。後續的結果就是出現一個構建出的模型沒有轉化為創收產品和服務的瓶頸。那麼在實施機器學習解決方案之前,組織機構應該知道什麼?

模型在被部署到生成系統後它的準確性會立刻開始降低

人們在機器學習方面犯的最大錯誤就是認為模型類似於其他型別的軟體。一旦模型被構建並上線,人們會認為它將持續正常工作。然而,儘管機器學習的終極目標是希望隨著時間的推移變得更加智慧,但實際上如果沒有持續的新資料匯入,模型的質量和速度會降低,而且非常快。這被稱為概念漂移,意味著隨著時間的推移,靜態機器學習模型的預測將變得不準確,可用性降低。在某些情況下,這甚至可能在模型部署上線後的幾天內就開始發生。

因此,企業和機構需要認識到機器學習模型永遠不會有最終版本,並且需要隨著時間的推移對模型進行更新和改進。這要求企業和機構即使在建立模型之後也要讓工程師繼續參與專案,以確保模型不僅能夠保持執行,而且還能保持準確。雖然大資料和機器學習工程師需求量很大,而且價格昂貴,但它們很重要,因為他們負責定期重新訓練模型以保證準確的預測和推薦結果。其中一些工作是可以被自動化,但仍然需要專業知識和定製化開發才能完成。

那麼模型應該多久被重新訓練一次?這取決於模型預測的內容。例如,在網路安全或實時交易等領域,如果變化是持續的,這就需要持續不斷的更新模型。另一方面,語音識別或其他物理模型可以不需要那麼頻繁地被重新訓練,因為它們的輸入通常不太會隨時間變化。

然而,無論模型預測的是什麼,都需要進行一定程度的再訓練。因為總會有無法預見的外部變化會影響機器學習模型的準確性,例如人們偏好的變化、營銷活動、競爭對手的舉動、天氣的變化、新聞週期或使用模型時的位置、時間或裝置型別變化等。因此,對企業和機構而言至關重要的是:建立與監控伺服器和應用執行狀況同等重要的模型線上反饋和準確度測量工具,從而能瞭解其生產系統模型的準確性水平。

完全相同的模型幾乎不能被部署兩次

在將機器學習模型轉換為生產級的產品和服務之前,另一個需要考慮的是模型通常需要進行本地化處理。換句話說,適用於一個地區的模型可能不適用於另一個地區。人口統計、語言和偏好是有地域差異的。為了讓模型能有效地運作,必須仔細考慮這些因素對模型的影響。

有時,需要本地化模型是顯而易見的。例如,推薦體育節目的模型需要考慮在美國超級碗是最重要的體育賽事,而西班牙德比足球賽在西班牙是最大的體育賽事,同時有些國家在板球世界盃期間則是全民關注。但是,本地化模型的需求也可能不那麼明顯。例如,如果考慮到醫院服務於不同的人口,接受不同的保險計劃,或專注於不同的醫學專科,即使是在同一城市的醫院之間,預測患者在出院後30天內返回醫院的風險可能會有很大不同。

對模型進行本地化不僅僅只適用於不同的地理區域。機器學習模型是針對特定受眾而設計的,因此企業應該測試和測量模型在不同人口統計資料上的準確性,以決定是否以及如何調整它們。為一組特定使用者設計的模型在大規模應用時很少會有效。因此企業需要深入瞭解用於構建模型的資料和假設,並根據需要進行調整。

如果忽視這些差異,就可能會產生有偏見的模型。這不僅會導致糟糕的結果,甚至可能引發公共關係災難。以Google為例,其面部識別軟體將黑人與大猩猩混為一談。也可能出現個人助理能較好地為男性工作而對女性不友好。儘管人類生物學不會在一夜之間改變,但在醫療保健中重複使用模型也可能有聲譽風險。在做任何面向消費者的事情時,都需要考慮人口統計差異。不僅要確保準確的結果,更重要的是要避免在社會中產生新的偏見或使現有的偏見持久化。

衡量模型的線上準確性(例如它在生產系統中的實際表現)是非常棘手的,即使是業內經驗最豐富的團隊也可能弄錯。選擇正確的度量標準和測試集需要綜合數學、業務、產品、技術和道德方面的因素,而這些因素超出了團隊中單個成員通常擁有技能的範圍。由於問題僅出現在生產系統中且僅針對特定的使用者子集,因此它們對傳統形式的軟體測試和模型驗證方法是“免疫”的。

通常,真正的建模工作從模型部署到生產系統後才開始

與很多事情不同,機器學習是開始容易但持續難。實際上,構建機器學習模型確實不是太困難。任何初級資料科學家或開發人員都可以使用一套好的訓練資料和正確的工具來完成模型的構建。現在機器學習中最難的部分實際上是部署和維護準確的模型,因為這需要不斷使用新資料更新模型以提高其準確性。在許多情況下,這些資料只有在初始模型被客戶使用後才會出現。

一旦使用者開始使用機器學習模型,模型就不再使用訓練資料,而是使用真實的資料進行預測。隨著越來越多的使用者開始使用機器學習產品或服務,模型從使用者反饋和實際資料中學習的潛力呈指數級增長。最終使企業能夠在他們獲取使用者後持續地構建和改進他們的模型。這與傳統軟體應用不同,傳統軟體在部署後的主要工作是對小錯誤進行修復或偶爾地升級。

在許多使用案例中,受新模型影響的使用者或競爭對手會改變其行為以規避預測。 這種情況會出現在預測欺詐、多方競爭(如線上廣告競價或演算法驅動的交易)和網路安全的模型中。最近的一種情況是通過扭曲輸入直接攻擊機器學習模型,從而導致模型對它們做出錯誤的分類。這使得人們越來越重視針對對抗的模型魯棒性。這類應用突出了機器學習模型隨著時間推移而降級的另一個原因:在真實環境中部署的模型會不可避免地改變這個環境,從而導致初始模型的假設變得無效。

對於企業而言,自己的成本結構也是一個重要的考慮因素。由於大部分工作(最急迫的工作)都是在模型部署後完成的,因此迫切需要在模型投入生產系統後將最有能力的資料科學家留在專案中。這可能會給企業帶來沉重的負擔,有時甚至是計劃外的開支,因此需要事先計劃好。針對這一點,企業應該確保留出足夠的預算、人力和時間,並計劃好他們的軟體釋出之後的很多工作。

現有的有助於部署、測量和保護模型的工具

所有這些問題都源於這樣一個事實,雖然業界的軟體工程師在運維生產系統裡的應用程式和服務方面已經取得了很大進步,但在運維機器學習解決方案方面仍然缺乏經驗。今天的重點仍然是培訓人員來建立模型,而主要的挑戰卻是在模型被構建之後。

模型被構建後,軟體工程師需要能通過某種API來訪問它,以便在實際產品和服務中使用它。然後,他們必須要有辦法持續地監控模型的準確度,並能收集使用者反饋且採取行動以改進模型。還有一個問題是在部署這些模型的新版本後需要並告知使用者他們應該使用新版本的原因。對於機器學習系統特有的持續整合、持續部署、變更管理、監控以及安全工具和控制也有實際的需求。

雖然部署機器學習的模型成為產品和服務還是一個新興的領域,但目前已經有了很多的工具可用。不過這些工具和已經被用於“傳統的”軟體專案的工具不一樣,因為它們解決的問題不一樣。這些工具被籠統地稱為資料科學平臺,雖然在2018年這些工具所提供的功能存在著巨大的差異。

這些平臺中的大多數都是基於雲的或按使用者數計費的。這可能會使得規模化或是在企業內部構建獨立功能的成本很高。出於這個原因,企業應該尋找一個包含完整原始碼、沒有商業用途限制和有現成實施案例的機器學習平臺。對於那些希望建立自己的機器學習能力的公司來說,對於這樣的關鍵基礎設施,一個有價值的選擇是:沒有供應商鎖定或沒有外部依賴。

但是好工具只能和能用好它們的人一起工作才有用。因此,企業應該計劃建立DataOps專業知識:這是一個最近才被創造的將DevOps原則應用於資料科學需求的領域。向那些有著豐富的部署和運維機器學習產品實踐經驗的機器學習專家諮詢,可以加快這一學習過程。

隨著越來越多的企業開始熟悉機器學習,他們迫切需要了解如何才能做好轉化模型成真實、可靠、可擴充套件且安全的產品和服務的準備。很多時候,企業在實施這個轉化時會停滯不前,因為他們不知道如何或者沒有為實際部署模型相關的所有因素做好計劃。然而,憑藉更好的技術實踐和正確的工具,沒有什麼可以阻止你成功。

相關內容

  • 《為Apache Spark構建自然語言處理庫》:David Talby談論Spark的新NLP庫,以及為什麼模型的開發是在部署到生產系統後才開始的原因。

  • 《當模型開始耍流氓》:David Talby談論在生產系統中使用機器學習獲得的深刻教訓

  • 《什麼是機器學習工程師?》:討論一種專注於建立資料產品和使資料科學在生產系統中工作的新角色

  • 《應用資料科學的現狀》

  • 《我們需要構建機器學習工具來增強機器學習工程師》

This article originally appeared in English: "Lessons learned turning machine learning models into real products and services".

David Talby

David Talby是Pacific AI的首席技術官。他正在幫助多個快速發展的公司應用大資料和資料科學技術來解決醫療保健、生命科學和相關領域的實際問題。David在構建和運營網際網路規模的資料科學和業務平臺以及構建世界一流的敏捷分佈的團隊方面擁有豐富的經驗。在加入Pacific AI前,他曾在微軟的Bing Group工作,負責Bing Shopping在美國和歐洲的業務運營。他還在在西雅圖和英國為亞馬遜工作。在那裡他建立並管理分佈的團隊,幫助擴充套件亞馬遜財務系統。David擁有電腦科學博士學位和電腦科學碩士與工商管理碩士學位。

--------------------- 本文來自 OReillyData 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/zkh880loLh3h21AJTH/article/details/82112404?utm_source=copy