知名公司怎樣測(cè)試機(jī)器學(xué)習(xí)模型?

盡管機(jī)器學(xué)習(xí)行業(yè)在開(kāi)發(fā)幫助數(shù)據(jù)團(tuán)隊(duì)和從業(yè)人員操作其機(jī)器學(xué)習(xí)模型的解決方案方面取得了進(jìn)展,但測(cè)試這些模型以確保它們能按預(yù)期工作,仍然是最具挑戰(zhàn)性的方面之一。開(kāi)始一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目時(shí),標(biāo)準(zhǔn)的做法是對(duì)業(yè)務(wù)、技術(shù)和數(shù)據(jù)集的要求進(jìn)行嚴(yán)格注意。

雖然大多數(shù)團(tuán)隊(duì)對(duì)在部署模型之前使用模型評(píng)估指標(biāo)來(lái)量化模型的性能感到滿意,但這些指標(biāo)大多不足以確保你的模型為生產(chǎn)做好準(zhǔn)備。你還需要對(duì)你的模型進(jìn)行徹底的測(cè)試,以確保它們對(duì)現(xiàn)實(shí)世界的遭遇足夠強(qiáng)大。

參考資料

將自動(dòng)測(cè)試和人工驗(yàn)證結(jié)合起來(lái)進(jìn)行有效的模型測(cè)試

GreenSteam公司為海運(yùn)業(yè)提供軟件解決方案,幫助減少燃料使用。過(guò)量的燃料使用既昂貴又不利于環(huán)境,國(guó)際海事組織要求船舶運(yùn)營(yíng)商變得更加綠色,并在2050年前減少50%的二氧化碳排放量。

GreenSteam的模擬儀表盤(pán)測(cè)試工作流程概述

  • 用于模型驗(yàn)證的自動(dòng)測(cè)試。
  • 手動(dòng)模型評(píng)估和驗(yàn)證。

為了在他們的工作流程中實(shí)現(xiàn)自動(dòng)化測(cè)試,該團(tuán)隊(duì)利用使用Jenkins運(yùn)行代碼質(zhì)量檢查和冒煙測(cè)試。

在自動(dòng)化測(cè)試運(yùn)行并通過(guò)模型管道后,領(lǐng)域?qū)<沂謩?dòng)審查評(píng)估指標(biāo),以確保它們有意義,驗(yàn)證它們,并標(biāo)記為準(zhǔn)備部署。

團(tuán)隊(duì)運(yùn)行的單元和集成測(cè)試是為了檢查關(guān)于數(shù)據(jù)集的一些斷言,以防止低質(zhì)量的數(shù)據(jù)進(jìn)入訓(xùn)練管道,并防止數(shù)據(jù)預(yù)處理代碼的問(wèn)題。你可以把這些斷言看作是團(tuán)隊(duì)對(duì)數(shù)據(jù)的假設(shè)。例如,他們會(huì)期望在數(shù)據(jù)中看到某種相關(guān)性,或者看到模型的預(yù)測(cè)邊界是非負(fù)的。

單元測(cè)試機(jī)器學(xué)習(xí)代碼比典型的軟件代碼更具挑戰(zhàn)性。單元測(cè)試模型代碼的幾個(gè)方面對(duì)團(tuán)隊(duì)來(lái)說(shuō)是困難的。例如,為了準(zhǔn)確地測(cè)試,他們必須訓(xùn)練模型,即使有適度的數(shù)據(jù)集,單元測(cè)試也會(huì)花費(fèi)很長(zhǎng)的時(shí)間。

此外,一些測(cè)試隨機(jī)失敗。運(yùn)行單元測(cè)試以保證數(shù)據(jù)質(zhì)量的挑戰(zhàn)之一是,在樣本數(shù)據(jù)集上運(yùn)行這些測(cè)試更加復(fù)雜,所花的時(shí)間遠(yuǎn)遠(yuǎn)少于在整個(gè)數(shù)據(jù)集上運(yùn)行這些測(cè)試。這對(duì)團(tuán)隊(duì)來(lái)說(shuō)是很難解決的,但要解決這些問(wèn)題。他們選擇了取消部分單元測(cè)試,而采用冒煙測(cè)試。

團(tuán)隊(duì)定義了驗(yàn)收標(biāo)準(zhǔn),他們的測(cè)試套件也在不斷發(fā)展,他們通過(guò)增加新的測(cè)試和刪除其他測(cè)試進(jìn)行試驗(yàn),獲得了更多關(guān)于什么是有效的和什么是無(wú)效的知識(shí)。

他們將在一個(gè)類似于生產(chǎn)的環(huán)境中對(duì)每個(gè)新的拉動(dòng)請(qǐng)求的完整數(shù)據(jù)集進(jìn)行模型訓(xùn)練,只是他們將調(diào)整超參數(shù)的值,以獲得快速的結(jié)果。最后,他們將監(jiān)測(cè)管道的健康狀況,以便及早發(fā)現(xiàn)問(wèn)題。

在訓(xùn)練完模型后,我們會(huì)根據(jù)數(shù)據(jù)集創(chuàng)建帶有不同圖表的報(bào)告來(lái)顯示結(jié)果,這樣領(lǐng)域?qū)<揖涂梢栽谀P统鰪S前對(duì)其進(jìn)行審查。

訓(xùn)練完模型后,領(lǐng)域?qū)<視?huì)生成并審查一份模型質(zhì)量報(bào)告。該專家會(huì)通過(guò)人工審核過(guò)程批準(zhǔn)(或拒絕)該模型,然后在得到驗(yàn)證并通過(guò)之前的所有測(cè)試后,該模型最終可以由團(tuán)隊(duì)運(yùn)往生產(chǎn)。

零售客戶應(yīng)用程序進(jìn)行機(jī)器學(xué)習(xí)測(cè)試的方法

這個(gè)團(tuán)隊(duì)利用機(jī)器學(xué)習(xí)幫助零售客戶以自動(dòng)化的方式解決票據(jù)。當(dāng)用戶提出票據(jù)或由維護(hù)問(wèn)題產(chǎn)生時(shí),應(yīng)用程序使用機(jī)器學(xué)習(xí)將票據(jù)分類到不同的類別,幫助更快地解決。

工作流程涉及在每次提交時(shí)在持續(xù)集成(CI)管道中生成構(gòu)建。此外,構(gòu)建管道將運(yùn)行代碼質(zhì)量測(cè)試(linting測(cè)試),以確保沒(méi)有代碼問(wèn)題。

一旦管道生成了構(gòu)建(一個(gè)容器鏡像),模型就會(huì)通過(guò)發(fā)布管道在類似生產(chǎn)環(huán)境中進(jìn)行壓力測(cè)試。在部署之前,團(tuán)隊(duì)也會(huì)偶爾對(duì)模型進(jìn)行A/B測(cè)試,以評(píng)估不同情況下的性能。

運(yùn)行測(cè)試以檢查代碼質(zhì)量對(duì)任何軟件應(yīng)用都是至關(guān)重要的。你總是想測(cè)試你的代碼,以確保它是。

  • 正確的。
  • 可靠(在不同條件下不會(huì)中斷)。
  • 安全。
  • 可維護(hù)。
  • 高度性能。

這個(gè)團(tuán)隊(duì)在CI管道中的任何容器鏡像構(gòu)建之前,對(duì)他們的代碼進(jìn)行了lint測(cè)試。提示測(cè)試確保了他們能夠執(zhí)行編碼標(biāo)準(zhǔn)和高質(zhì)量的代碼,以避免代碼中斷。執(zhí)行這些測(cè)試還可以讓團(tuán)隊(duì)在構(gòu)建過(guò)程之前抓住錯(cuò)誤(當(dāng)它們?nèi)菀渍{(diào)試時(shí))。

根據(jù)不同的用例,該團(tuán)隊(duì)還進(jìn)行了A/B測(cè)試,以了解他們的模型在部署前在不同條件下的表現(xiàn),而不是純粹依賴離線評(píng)估指標(biāo)。通過(guò)從A/B測(cè)試中學(xué)到的東西,他們知道一個(gè)新的模型是否改進(jìn)了當(dāng)前的模型,并調(diào)整了他們的模型,以更好地優(yōu)化業(yè)務(wù)指標(biāo)。
對(duì)機(jī)器學(xué)習(xí)模型進(jìn)行壓力測(cè)試

“我們使用發(fā)布管道對(duì)模型進(jìn)行壓力測(cè)試,在這里我們用每分鐘X次的推理來(lái)轟炸模型的部署。X可以是1000或100,這取決于我們的測(cè)試。目的是看看模型的性能是否符合要求”。

測(cè)試模型在極端工作負(fù)荷下的性能,對(duì)于通常預(yù)期用戶高流量的商業(yè)應(yīng)用來(lái)說(shuō)至關(guān)重要。因此,該團(tuán)隊(duì)進(jìn)行了壓力測(cè)試,看看在給定的時(shí)間范圍內(nèi),在預(yù)測(cè)請(qǐng)求數(shù)量增加的情況下,該模型的響應(yīng)速度和穩(wěn)定性如何。

這樣,他們對(duì)模型在負(fù)載下的可擴(kuò)展性進(jìn)行了基準(zhǔn)測(cè)試,并確定了模型的突破點(diǎn)。此外,該測(cè)試幫助他們確定該模型的預(yù)測(cè)服務(wù)是否符合所需的服務(wù)水平目標(biāo)(SLO),即正常運(yùn)行時(shí)間或響應(yīng)時(shí)間指標(biāo)。

值得注意的是,對(duì)模型進(jìn)行壓力測(cè)試的意義不在于看模型能處理多少推理請(qǐng)求,而在于看當(dāng)用戶超過(guò)這種流量時(shí)會(huì)發(fā)生什么。這樣,你可以了解模型的性能問(wèn)題,包括加載時(shí)間、響應(yīng)時(shí)間和其他瓶頸。

在部署模型后的生產(chǎn)中,我們測(cè)試數(shù)據(jù)和模型的漂移。我們還做了生產(chǎn)后的審計(jì);我們每季度都有審計(jì),研究運(yùn)營(yíng)情況。

測(cè)試生產(chǎn)模型的目標(biāo)是確保模型的部署是成功的,模型與其他服務(wù)一起在生產(chǎn)中正確運(yùn)行。對(duì)于這個(gè)團(tuán)隊(duì)來(lái)說(shuō),在生產(chǎn)中測(cè)試模型的推理性能是持續(xù)提供商業(yè)價(jià)值的一個(gè)關(guān)鍵過(guò)程。

此外,該團(tuán)隊(duì)還測(cè)試了數(shù)據(jù)和模型的漂移,以確保模型可以被監(jiān)控,也許在發(fā)現(xiàn)這種漂移時(shí)可以重新訓(xùn)練。從另一個(gè)角度來(lái)說(shuō),測(cè)試生產(chǎn)模型可以使團(tuán)隊(duì)通過(guò)領(lǐng)域?qū)<业氖謩?dòng)檢查對(duì)其關(guān)鍵任務(wù)模型進(jìn)行錯(cuò)誤分析。

一家金融科技初創(chuàng)公司的機(jī)器學(xué)習(xí)應(yīng)用的行為測(cè)試

MonoHQ的交易元數(shù)據(jù)產(chǎn)品使用機(jī)器學(xué)習(xí)對(duì)交易報(bào)表進(jìn)行分類,這對(duì)各種企業(yè)客戶的應(yīng)用是有幫助的,如信貸申請(qǐng)、資產(chǎn)規(guī)劃/管理、BNPL(先買后付)和支付。根據(jù)敘述,該產(chǎn)品將數(shù)以千計(jì)的客戶的交易歸入不同類別。


在部署模型之前,該團(tuán)隊(duì)進(jìn)行了一次行為測(cè)試。這個(gè)測(cè)試包括3個(gè)要素。

  • 預(yù)測(cè)分布。
  • 失敗率。
  • 延遲。

如果模型通過(guò)了這三項(xiàng)測(cè)試,團(tuán)隊(duì)就會(huì)把它列出來(lái)進(jìn)行部署。如果模型沒(méi)有通過(guò)測(cè)試,他們將不得不重新工作,直到它通過(guò)測(cè)試。他們總是確保為這些測(cè)試設(shè)置一個(gè)性能閾值作為衡量標(biāo)準(zhǔn)。

他們還對(duì)他們的模型進(jìn)行A/B測(cè)試,以了解哪個(gè)版本更適合投入到生產(chǎn)環(huán)境中。

檢查預(yù)測(cè)質(zhì)量的行為測(cè)試顯示了模型對(duì)推理數(shù)據(jù)的反應(yīng),特別是NLP模型。

首先,團(tuán)隊(duì)運(yùn)行一個(gè)不變性測(cè)試,向輸入數(shù)據(jù)引入擾動(dòng)性。
接下來(lái),他們檢查輸入的輕微變化是否會(huì)影響模型的反應(yīng)--它對(duì)客戶交易的敘述進(jìn)行正確分類的能力。

從本質(zhì)上講,他們?cè)谶@里試圖回答:在具有類似背景的數(shù)據(jù)集中進(jìn)行輕微的調(diào)整是否會(huì)產(chǎn)生一致的輸出?

為了測(cè)試模型在負(fù)載下的響應(yīng)時(shí)間,該團(tuán)隊(duì)配置了一個(gè)測(cè)試環(huán)境,他們將向模型服務(wù)發(fā)送大量的流量。以下是他們的過(guò)程。

  • 采取大量的交易數(shù)據(jù)集。
  • 創(chuàng)建表。
  • 將數(shù)據(jù)流向模型服務(wù)。
  • 記錄推理延遲。
  • 最后,計(jì)算出整個(gè)交易數(shù)據(jù)的平均響應(yīng)時(shí)間。

如果響應(yīng)時(shí)間通過(guò)了指定的延遲閾值,就可以進(jìn)行部署了。如果沒(méi)有,團(tuán)隊(duì)就得重新修改以改善它,或者設(shè)計(jì)另一種策略來(lái)部署模型以減少延遲。

在這個(gè)測(cè)試中,團(tuán)隊(duì)將兩個(gè)模型容器化,部署到生產(chǎn)系統(tǒng)中,供上游服務(wù)消耗到生產(chǎn)系統(tǒng)中。他們部署其中一個(gè)模型,為隨機(jī)抽樣的用戶提供流量,另一個(gè)則為不同的用戶抽樣,這樣他們就可以衡量模型的結(jié)果對(duì)用戶的真實(shí)影響。此外,他們可以使用真實(shí)的客戶來(lái)調(diào)整他們的模型,并測(cè)量他們對(duì)模型預(yù)測(cè)的反應(yīng)。

這種測(cè)試還可以幫助團(tuán)隊(duì)避免從新訓(xùn)練的模型中引入復(fù)雜性,因?yàn)檫@些模型很難維護(hù),對(duì)他們的用戶沒(méi)有任何價(jià)值。

為機(jī)器學(xué)習(xí)應(yīng)用進(jìn)行工程和統(tǒng)計(jì)測(cè)試

image.png

一個(gè)處理新興市場(chǎng)新聞的系統(tǒng),為交易者、資產(chǎn)經(jīng)理和對(duì)沖基金經(jīng)理提供情報(bào)。

這個(gè)團(tuán)隊(duì)對(duì)他們的機(jī)器學(xué)習(xí)項(xiàng)目進(jìn)行了兩種類型的測(cè)試。

  • 基于工程的測(cè)試(單元和集成測(cè)試)。
  • 基于統(tǒng)計(jì)的測(cè)試(模型驗(yàn)證和評(píng)估指標(biāo))。

工程團(tuán)隊(duì)運(yùn)行單元測(cè)試,檢查模型是否拋出錯(cuò)誤。然后,數(shù)據(jù)團(tuán)隊(duì)會(huì)(向工程團(tuán)隊(duì))移交模擬模型,其輸入輸出關(guān)系與他們正在建立的模型相同。同時(shí),工程團(tuán)隊(duì)會(huì)對(duì)這個(gè)模型進(jìn)行測(cè)試,以確保它不會(huì)破壞生產(chǎn)系統(tǒng),然后為它服務(wù),直到數(shù)據(jù)團(tuán)隊(duì)的正確模型準(zhǔn)備好。

一旦數(shù)據(jù)團(tuán)隊(duì)和利益相關(guān)者評(píng)估并確認(rèn)該模型已準(zhǔn)備好部署,工程團(tuán)隊(duì)將運(yùn)行與原始模型的集成測(cè)試。最后,他們將把模擬模型與生產(chǎn)中的原始模型進(jìn)行交換,如果它能工作的話。

為了運(yùn)行初始測(cè)試以檢查模型是否能與生產(chǎn)中的其他服務(wù)很好地整合,數(shù)據(jù)團(tuán)隊(duì)將發(fā)送模擬(或假)模型給工程團(tuán)隊(duì)。模擬模型的結(jié)構(gòu)與真實(shí)模型相同,但它只返回隨機(jī)輸出。工程團(tuán)隊(duì)將為模擬模型編寫(xiě)服務(wù),并為測(cè)試做準(zhǔn)備。

數(shù)據(jù)團(tuán)隊(duì)將向工程團(tuán)隊(duì)提供數(shù)據(jù)和輸入結(jié)構(gòu),以測(cè)試輸入-輸出關(guān)系是否與他們所期望的一致,是否以正確的格式出現(xiàn),并且沒(méi)有拋出任何錯(cuò)誤。

工程團(tuán)隊(duì)并不檢查該模型是否是正確的模型;他們只檢查它是否從工程角度發(fā)揮作用。他們這樣做是為了確保當(dāng)模型進(jìn)入生產(chǎn)時(shí),它不會(huì)破壞產(chǎn)品管道。

當(dāng)數(shù)據(jù)團(tuán)隊(duì)訓(xùn)練和評(píng)估了正確的模型,并且利益相關(guān)者驗(yàn)證了它,數(shù)據(jù)團(tuán)隊(duì)將把它打包并交給工程團(tuán)隊(duì)。工程團(tuán)隊(duì)將用正確的模型交換模擬模型,然后運(yùn)行集成測(cè)試,以確保它按預(yù)期工作,不出現(xiàn)任何錯(cuò)誤。

數(shù)據(jù)團(tuán)隊(duì)將在真實(shí)世界的數(shù)據(jù)和統(tǒng)計(jì)評(píng)估指標(biāo)上訓(xùn)練、測(cè)試和驗(yàn)證他們的模型。數(shù)據(jù)科學(xué)負(fù)責(zé)人審核結(jié)果并批準(zhǔn)(或否定)該模型。如果有證據(jù)表明該模型是正確的模型,數(shù)據(jù)科學(xué)負(fù)責(zé)人將向必要的利益相關(guān)者報(bào)告結(jié)果。

他將解釋模型的結(jié)果和內(nèi)部運(yùn)作,模型的風(fēng)險(xiǎn),以及模型的錯(cuò)誤,并確認(rèn)他們是否對(duì)結(jié)果感到滿意,或者模型仍然需要重新工作。如果模型被批準(zhǔn),工程團(tuán)隊(duì)會(huì)將模擬模型與原始模型交換,重新進(jìn)行集成測(cè)試,以確認(rèn)它不會(huì)出現(xiàn)任何錯(cuò)誤,然后進(jìn)行部署。

總結(jié)

希望正如你從用例和工作流程中學(xué)到的那樣,模型評(píng)估指標(biāo)不足以確保你的模型可以投入生產(chǎn)。你還需要對(duì)你的模型進(jìn)行徹底的測(cè)試,以確保它們對(duì)現(xiàn)實(shí)世界的遭遇足夠強(qiáng)大。

為ML模型開(kāi)發(fā)測(cè)試可以幫助團(tuán)隊(duì)系統(tǒng)地分析模型錯(cuò)誤和檢測(cè)故障模式,因此在將模型部署到生產(chǎn)之前,要制定和實(shí)施解決計(jì)劃。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容