十多年ML系統(tǒng)SRE經(jīng)驗(yàn),Google練出4大ML可靠性戰(zhàn)略

來源: 十輪網(wǎng)
作者:十輪網(wǎng)
時(shí)間:2022-03-15
12109
Google在2003年首創(chuàng)了第一個(gè)SRE(Site Reliability Engineering,服務(wù)可靠性工程)團(tuán)隊(duì),通過系統(tǒng)架構(gòu)設(shè)計(jì)、運(yùn)維流程改善等各種做法,來確保系統(tǒng)運(yùn)行的更可靠。2014年,Google公開了這套SRE方法論和經(jīng)驗(yàn),后來也成了許多企業(yè)運(yùn)維自家網(wǎng)站和線上服務(wù)可靠性的重要參考。

1068-cover2-960.jpg

“不只是為了省錢,或只是減少丟臉時(shí)刻,避免影響顧客,更重要的價(jià)值是,SRE是確保ML創(chuàng)新速度的關(guān)鍵。”Google ML SRE團(tuán)隊(duì)負(fù)責(zé)人Todd Underwood在去年10月全球SRE年會(huì)演講時(shí),他特別強(qiáng)調(diào),這才是Google早在13年前開始將SRE經(jīng)驗(yàn)和知識(shí)運(yùn)用到ML系統(tǒng)的關(guān)鍵理由。

Google在2003年首創(chuàng)了第一個(gè)SRE(Site Reliability Engineering,服務(wù)可靠性工程)團(tuán)隊(duì),通過系統(tǒng)架構(gòu)設(shè)計(jì)、運(yùn)維流程改善等各種做法,來確保系統(tǒng)運(yùn)行的更可靠。2014年,Google公開了這套SRE方法論和經(jīng)驗(yàn),后來也成了許多企業(yè)運(yùn)維自家網(wǎng)站和線上服務(wù)可靠性的重要參考。

不只是用來確保網(wǎng)站和線上服務(wù)的可靠性,13年前,Google已經(jīng)將SRE成功運(yùn)用到搜索服務(wù),存儲(chǔ)系統(tǒng)、廣告資料存儲(chǔ)系統(tǒng)的可靠性運(yùn)維上,當(dāng)時(shí)開始思考,是不是能將SRE運(yùn)用到ML系統(tǒng)上,決定先從匹茲堡辦公室的Google Ads品質(zhì)團(tuán)隊(duì)開始,運(yùn)用到依賴大量機(jī)器學(xué)習(xí)算法的Google的廣告推薦機(jī)制上。

因?yàn)镚oogle關(guān)鍵字廣告采點(diǎn)擊計(jì)費(fèi),點(diǎn)擊才會(huì)計(jì)價(jià),靠ML模型來推薦的廣告越符合搜索需求,就會(huì)能成功吸引瀏覽者來點(diǎn)擊。

Todd Underwood指出,廣告系統(tǒng)越穩(wěn)定可靠,營(yíng)收就能越穩(wěn)定,因此決定開始從這套系統(tǒng)開始導(dǎo)入SRE做法,稱為“ML SRE”。Todd Underwood就是13年前發(fā)起了Ads ML SRE團(tuán)隊(duì)的關(guān)鍵人物之一,

Todd Underwood表示,AI跟ML其實(shí)很不一樣,AI是從人、應(yīng)用需求角度來看,但ML則是要讓計(jì)算機(jī)系統(tǒng)可以運(yùn)用機(jī)器學(xué)習(xí)技術(shù)來解決問題,是一種利用資料來訓(xùn)練模型的做法,ML是AI的一個(gè)子集。

Todd Underwood也公開了Google內(nèi)部所用ML系統(tǒng)概略架構(gòu),跟大多數(shù)企業(yè)常見的ML訓(xùn)練流程差異不大。這個(gè)ML系統(tǒng)架構(gòu)包括了5個(gè)流程,從資料搜集、資料準(zhǔn)備、模型訓(xùn)練、品質(zhì)管控到提供推論服務(wù),Google打造了一套模型管理工具和流程調(diào)度系統(tǒng),用來關(guān)注模型、特征和資料的元數(shù)據(jù)。Google也特別重視資料讀取、資料檢查、特征資料的分布和變動(dòng)等資料品質(zhì)的管控。

Google SRE工程師Mary McGlohon正是過去4年來負(fù)責(zé)運(yùn)維和開發(fā)這套超大規(guī)模ML系統(tǒng)的工程師之一。

Mary McGlohon指出,機(jī)器學(xué)習(xí)系統(tǒng)過于復(fù)雜和龐大,必需要打造工具來分析,才能探索問題,對(duì)ML SRE來說,就不用知道每一件事的業(yè)務(wù)邏輯,也可以做事。

因此,Google也自行發(fā)展了不少M(fèi)L SRE工具,從更大的尺度來觀察系統(tǒng),找出各種可能出錯(cuò)的狀態(tài),并依據(jù)過去的錯(cuò)誤設(shè)計(jì)更好的實(shí)例方式。

雖然,Google沒有公開這些ML SRE工具,但Mary McGlohon歸納出四個(gè)Google用來提高M(jìn)L可靠性的SRE戰(zhàn)略,這正是他們過去十多年確保ML系統(tǒng)可靠性的關(guān)鍵秘訣。

這四個(gè)策略,包括了,第一,要讓失效問題看得見,才能知道為何出錯(cuò)。其次,也需要盡可能驗(yàn)證各種異動(dòng),才能避免異動(dòng)帶來的錯(cuò)誤,并且要厘清對(duì)資料完整性的要求,最后則是得妥善管理工作流程的等待任務(wù)。

Mary McGlohon指出,若誤以為ML是魔術(shù),這是一個(gè)偏見,對(duì)在乎系統(tǒng)穩(wěn)定的工程師來說,今天的偷懶,可能會(huì)帶來明天的技術(shù)債,先分析ML系統(tǒng)的特征,才能知道系統(tǒng)出錯(cuò)時(shí)會(huì)有哪些風(fēng)險(xiǎn),讓我們知道可以如何管理風(fēng)險(xiǎn)。

ML系統(tǒng)的特別之處,第一是大量資料的依賴性。因?yàn)闄C(jī)器學(xué)習(xí)算法非常強(qiáng)大,可以有效識(shí)別信號(hào)和噪聲,這就導(dǎo)致不需要篩選或過濾資料,也能提升預(yù)測(cè)能力。

甚至,不需要知道哪些數(shù)據(jù)源更有價(jià)值直接全部導(dǎo)入,這會(huì)帶來一個(gè)后果,累計(jì)越久,就會(huì)有越多資料依賴性(data dependencies)問題,這也是Google ML系統(tǒng)的一大特質(zhì)。其次,ML系統(tǒng)其實(shí)是一套龐大交互作用的流程系統(tǒng),必須知道如何安排這些流程,才能管理風(fēng)險(xiǎn)。

最后一點(diǎn),ML是一種超大規(guī)模的非典型工作負(fù)載,不同的ML批次運(yùn)算,會(huì)有不一樣的運(yùn)算和資料I/O需求,這對(duì)資源調(diào)度工作帶來很大的挑戰(zhàn)。

Google也曾從分析了過去15年ML系統(tǒng)上百起宕機(jī)事件的檢討報(bào)告后歸納,出19種ML系統(tǒng)宕機(jī)問題,Mary McGlohon指出,其中只有30%的問題,是來自ML系統(tǒng)內(nèi)部的問題,像是標(biāo)記錯(cuò)誤,模型配置設(shè)置錯(cuò)誤,但高達(dá)40%的問題是來自分布式系統(tǒng)的內(nèi)部問題,例如負(fù)載均衡出錯(cuò),數(shù)據(jù)結(jié)構(gòu)沒有優(yōu)化,工作調(diào)度安排錯(cuò)誤等。

“從這個(gè)結(jié)果告訴我們,ML系統(tǒng)的運(yùn)維可以借鑒其他分布式系統(tǒng)的運(yùn)維和最佳實(shí)務(wù)做法?!盡ary McGlohon指出,Google的ML系統(tǒng)是一種分布式系統(tǒng),資料密集,流程化的系統(tǒng),我們挑選了分布式系統(tǒng)最佳實(shí)務(wù),資料完整性最佳實(shí)務(wù),和工作流程優(yōu)化實(shí)務(wù)來緩解風(fēng)險(xiǎn)。

ML SRE關(guān)鍵策略1:讓失效問題看得見

“要知道如何解決故障之前,得先知道何時(shí)會(huì)故障,看得見故障是一件重要的事。”Mary McGlohon表示。

Google內(nèi)部有一套協(xié)調(diào)調(diào)度平臺(tái),可以用來設(shè)計(jì)模型開發(fā)流程,可以設(shè)置模型配置,并提供儀表板來檢查模型性能,可以用來觀察模型如何運(yùn)行。

不過,Mary McGlohony則是建議,SRE團(tuán)隊(duì)最好可以創(chuàng)建一些模型品質(zhì)預(yù)警通知,通知模型開發(fā)者以及系統(tǒng)運(yùn)維人員,一旦模型品質(zhì)開始下滑,可以在更多用戶發(fā)現(xiàn)之前,讓模型開發(fā)者可以展開行動(dòng),退回前一版,或趕快開始調(diào)查原因。

“儀表板是一種降低事故風(fēng)險(xiǎn)的好方法,發(fā)生事故時(shí),要確保開發(fā)這個(gè)模型的核心人員也能觀察到系統(tǒng)的信息,他們可以成為解決問題的幫手。”Mary McGlohon說。

ML SRE關(guān)鍵策略2:盡可能驗(yàn)證各種異動(dòng)

但只靠預(yù)警機(jī)制還不夠,更主動(dòng)的SRE方法是進(jìn)一步驗(yàn)證各種系統(tǒng)上線的變動(dòng),可以從二進(jìn)制檔和資料的變動(dòng)來關(guān)注。

如何最有效關(guān)注系統(tǒng)的變動(dòng),Mary McGlohon建議,任何系統(tǒng)都會(huì)有帶有業(yè)務(wù)邏輯的二進(jìn)制文件,不管是,特征處理,模型訓(xùn)練,或推論服務(wù)等,都會(huì)用到二進(jìn)制檔,因此,可以驗(yàn)證這些二進(jìn)制檔來確保是否順利運(yùn)行,另一個(gè)可以關(guān)注變動(dòng)的地方是系統(tǒng)配置檔的變動(dòng)。例如像是資料Schema配置,不同階段的各種配置。

關(guān)注二進(jìn)制檔和配置檔的變動(dòng),最好的做法就是創(chuàng)建一個(gè)上線前的Staging(準(zhǔn)備)階段和環(huán)境,在這個(gè)環(huán)境中,復(fù)制一份正式系統(tǒng),進(jìn)行測(cè)試,驗(yàn)證性能,來確保異動(dòng)的影響符合預(yù)期,確定沒有問題才正式上線。

在Staging階段較容易發(fā)現(xiàn)可能導(dǎo)致宕機(jī)的錯(cuò)誤,但不容易發(fā)現(xiàn)性能問題的影響,例如I/O用量,CPU用量,一條工作流程跟大量工作流程同時(shí)執(zhí)行的影響不一樣,后者可能導(dǎo)致很多等待的任務(wù),而影響了系統(tǒng)運(yùn)行。

Google還會(huì)關(guān)注另外一種變動(dòng),就是資料變動(dòng),可以從原始資料變動(dòng),特征資料更新的脧中,模型表征的變動(dòng),推論資料的產(chǎn)生等?!皞蓽y(cè)資料本身的異動(dòng),是一種防止事故的做法?!盡ary McGlohon表示。

962-9690-Google.jpg

如何最有效關(guān)注系統(tǒng)的變動(dòng),Google建議,任何系統(tǒng)都會(huì)有帶有業(yè)務(wù)邏輯的二進(jìn)制文件,不管是,特征處理,模型訓(xùn)練,或推論服務(wù)等,都會(huì)用到二進(jìn)制檔,因此,可以驗(yàn)證這些二進(jìn)制檔來確保是否順利運(yùn)行,另一個(gè)可以關(guān)注變動(dòng)的地方是系統(tǒng)配置檔的變動(dòng)。例如像是資料Schema配置,不同階段的各種配置。Google還會(huì)關(guān)注另外一種變動(dòng),就是資料變動(dòng),從原始資料變動(dòng),特征資料更新的脧中,模型表征的變動(dòng),推論資料的產(chǎn)生等。圖片來源/Google

ML SRE關(guān)鍵策略3:更清楚掌握對(duì)資料完整性的要求

另外,創(chuàng)建模型后,在正式上線之前,Google會(huì)先用測(cè)試資料來了解模型的性能,或是在準(zhǔn)備好特征資料后,先篩選出異常資料,避免對(duì)模型訓(xùn)練產(chǎn)生影響。Mary McGlohon表示,對(duì)特征資料越熟悉,就越能這樣事先過濾,而且不能單靠資料異常檢查,還是需要搭配對(duì)配置檔和二進(jìn)制檔異動(dòng)檢查,來確保ML環(huán)境準(zhǔn)備正常,也才能避免壞資料產(chǎn)生問題。

如何分辨哪些資料是異常資料,就得對(duì)資料完整性的要求,清楚了解送入ML系統(tǒng)的資料是否符合訓(xùn)練所需,而且能準(zhǔn)時(shí)送達(dá)。

尤其,很多外部問題會(huì)影響資料品質(zhì),例如標(biāo)記出錯(cuò),數(shù)據(jù)源在不同時(shí)來自不同地方,資料處理流程在第三方,甚至可能無法監(jiān)控資料來發(fā)生了什么事。Google SRE會(huì)要求,組織內(nèi)部資料負(fù)責(zé)窗口,有任何資料需求的調(diào)整,也得通知SRE。

另一個(gè)做法是簡(jiǎn)化ML,避免壞資料帶來長(zhǎng)期的影響,也可以創(chuàng)建系統(tǒng)回復(fù)機(jī)制。例如遇到資料錯(cuò)誤,或不完整的資料,訓(xùn)練出了有問題的模型,若有回復(fù)機(jī)制,就可以回到一個(gè)安全不容易出錯(cuò)的模型快照版本

ML SRE關(guān)鍵策略4:妥善管理工作流程的等待任務(wù)

Google ML SRE最后一項(xiàng)關(guān)鍵策略是ML工作流程優(yōu)化,因?yàn)榻?jīng)常有大量工作流程同時(shí)進(jìn)行,重載會(huì)是常見問題,一旦流程宕機(jī),或者資料晚到,就得有彈性來應(yīng)對(duì),因此,Mary McGlohon表示,需要?jiǎng)?chuàng)建流程退回機(jī)制,另外要有工作量?jī)?yōu)先級(jí)機(jī)制,才知道哪一項(xiàng)任務(wù)可以延后,最后要讓調(diào)度機(jī)制更聰明,例如可以針對(duì)系統(tǒng)備援來進(jìn)行資源調(diào)度,一旦遇到宕機(jī)時(shí)就可以采用。

963-968990-Google.jpg

Google ML SRE最后一項(xiàng)關(guān)鍵策略是ML工作流程優(yōu)化,因?yàn)榻?jīng)常有大量工作流程同時(shí)進(jìn)行,重載會(huì)是常見問題,一旦流程宕機(jī),或者資料晚到,就倒有彈性來應(yīng)對(duì),因此,Google建議,需要?jiǎng)?chuàng)建流程退回機(jī)制,另外要有工作量?jī)?yōu)先級(jí)機(jī)制,才知道哪一項(xiàng)任務(wù)可以延后,最后要讓調(diào)度機(jī)制更聰明,例如針對(duì)系統(tǒng)備援來進(jìn)行資源調(diào)度,一旦遇到宕機(jī)時(shí)就可以采用。圖片來源/Google

ML SRE和SRE有兩大挑戰(zhàn)不一樣

Todd Underwood指出,ML SRE特別跟其他SRE做法,有兩件事不一樣。第一是,新模型和新團(tuán)隊(duì)需要很大的彈性,可能有各種技術(shù)考量,業(yè)務(wù)需求,或資料限制,必須調(diào)整模型。

因?yàn)樾枰梢远ㄖ苹哪P图軜?gòu),容易增加新功能,超快速部署,負(fù)責(zé)團(tuán)隊(duì)能快速修改問題直接執(zhí)行模型來更新,也就是說,Todd Underwood表示,ML系統(tǒng),希望能夠盡快正式上線,這意味著,機(jī)器學(xué)習(xí)訓(xùn)練要高可用,容量分派自動(dòng)化,調(diào)度自動(dòng)化,SRE自動(dòng)支持等。但是,要具備高度彈性,也代表了不容易標(biāo)準(zhǔn)化,這是第一個(gè)挑戰(zhàn)。

第二個(gè)不一樣之處是,ML SRE的另一個(gè)挑戰(zhàn)是“模型品質(zhì)”,Todd Underwood指出,尤其要思考該如何對(duì)模型品質(zhì)負(fù)責(zé)。Google常見做法是由模型開發(fā)者來確保模型品質(zhì),但在ML模型上線之后,很多問題是來自系統(tǒng)性問題,而非模型的問題,只靠模型開發(fā)者解決不了問題。

“如何對(duì)模型品質(zhì)負(fù)責(zé),這是一個(gè)還沒有答案的ML SRE大問題,這真的是一個(gè)非常難解的問題。”Todd Underwood強(qiáng)調(diào)。

為了解決這個(gè)模型品質(zhì)問題,Google正在思考的做法是,創(chuàng)建升級(jí)檢查清單,也就是可以檢查一個(gè)ML模型是否能從實(shí)驗(yàn)狀態(tài),進(jìn)入到正式上線狀態(tài)的檢查清單。這個(gè)挑戰(zhàn)也就是要定義一個(gè)模型的服務(wù)水準(zhǔn)目標(biāo)(SLO),關(guān)鍵是“如何判斷,一個(gè)模型可以正常運(yùn)行?!盩odd Underwood說。

目前,Google有幾項(xiàng)定義“模型正常運(yùn)行”的角度,例如資料是否不完整,過大,過小,或者會(huì)出現(xiàn)不同版本。訓(xùn)練速度太慢,或容易卡住?;蚴怯?xùn)練過程太消耗資源、模型品質(zhì)突然改變(準(zhǔn)確度下滑)、服務(wù)無法加載模型、模型加載服務(wù)后變慢等。

Todd Underwood說:“這些就是我們會(huì)設(shè)立指標(biāo)的地方,來測(cè)量數(shù)據(jù)和性能,來判斷什么樣的模型品質(zhì)夠好,可以升級(jí)到正式環(huán)境。還會(huì)搭配其他指標(biāo)如Model元數(shù)據(jù)是否完整,和其他模型的依賴性檢查等。

下一步,Google ML SRE想要做到5件事,Todd Underwood分享,一方面說服組織使用稍舊的ML技術(shù)但搭配可以自動(dòng)化建模的做法,夠用就好的ML,不是用最新技術(shù)。

其次,要打造一個(gè)兼顧各種功能和穩(wěn)定性的端到端平臺(tái),但要把這些功能盡量背景化,希望做到,一個(gè)按鈕就可以完成。

Todd Underwood也希望大幅降低訓(xùn)練成本,并且把各種ML服務(wù)變成API,可以穩(wěn)定且方便集成到各種應(yīng)用中,讓ML無所不在,最后則是要?jiǎng)?chuàng)建ML品質(zhì)評(píng)量機(jī)制,適用各處而且值得信任。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于十輪網(wǎng),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家