国产成人精品a视频一区www_国产区视频在线观看_99色视频_欲色av_亚洲一区电影_亚洲综合视频一区

從實驗室到工廠,模型部署中幾個重要問題

來源:網(wǎng)絡(luò)

點擊:1032

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞: 模型部署,大數(shù)據(jù),云計算

    在我們的產(chǎn)業(yè)中,很多關(guān)注都集中在開發(fā)分析模型來解決關(guān)鍵商業(yè)問題以及預(yù)測消費者行為上。但是,當數(shù)據(jù)科學(xué)家研發(fā)完模型,需要部署模型以供更大的組織使用時,會發(fā)生什么情況?

    沒有嚴格流程就部署模型會引發(fā)后患,看一下這個金融服務(wù)業(yè)的實例就知道了。

    擁有自己的高頻貿(mào)易算法的Knight曾是美國最大的股票貿(mào)易商,在紐約證券交易所(NYSE)有17.3%的市場份額,在納斯達克(NASDAQ)有16.9%的市場占有率。但是,2012年由于一次計算機交易的小故障,Knight在不到一小時之內(nèi)蒙受了4.4億美元的損失。那年年底,公司被收購。這充分證明:未經(jīng)適當測試就輕易部署使用分析模型會有很大風(fēng)險,那些系統(tǒng)漏洞會給公司帶來嚴重后果。

    在這篇博文中,我們將談?wù)勅绾瓮ㄟ^合理的模型管理和部署流程來避免后患。在部署模型之前,有幾個必須解決的問題:

    ·模型結(jié)果是如何到達那些會從這一分析中獲益的決策者或者應(yīng)用程序那里的?

    ·這個模型能不出問題的自主運行嗎?如何從失敗中恢復(fù)運行的?

    ·因為訓(xùn)練數(shù)據(jù)是不再相關(guān)的歷史數(shù)據(jù),模型也因此變得陳舊,會導(dǎo)致什么后果?

    ·在不阻斷下游消費者的情況下,如何部署和管理新版模型?

    我們可以把數(shù)據(jù)科學(xué)的開發(fā)和應(yīng)用看作是兩個不同的流程,但是,這兩個過程又是更大的模型生命周期流程的一部分。下面示例圖說明了這一過程。


    1. 終端用戶與應(yīng)用程序交互,產(chǎn)生的數(shù)據(jù)存儲在應(yīng)用的線上產(chǎn)品數(shù)據(jù)庫中。

    2. 然后這些數(shù)據(jù)會被傳到一個線下的歷史數(shù)據(jù)庫中(如 Hadoop 或 S3),由數(shù)據(jù)科學(xué)家進行分析,搞清楚用戶是如何與應(yīng)用交互的。這些數(shù)據(jù)也有別的用處,比如構(gòu)建一個模型,根據(jù)用戶在應(yīng)用中的行為把他們進行分類,這樣我們就可以利用這些信息對用戶進行營銷。

    3. 一旦構(gòu)建出了一個模型,我們可以把它登記到一個模型注冊表中,這時一個治理程序會對模型進行評估,批準其投放產(chǎn)業(yè)應(yīng)用,并對模型部署要求進行評估。

    4. 當模型的產(chǎn)業(yè)應(yīng)用被批準后,我們就開始部署模型。為此,我們要搞清楚組織會如何使用這個模型,作出相應(yīng)調(diào)整,確保模型能在特定性能約束下自主端到端運行,同時也要進行測試,以確保在部署之后模型仍與開發(fā)出來的一致。一旦完成這些步驟,我們就在投入生產(chǎn)前,再次對模型進行了評估和批準。

    5.最后,一旦部署完畢,模型所做出的預(yù)測就能服務(wù)于應(yīng)用程序,這些預(yù)測的權(quán)值都是根據(jù)用戶交互行為計算出的。這些信息有助于改進模型,或提出一個新的商業(yè)問題,這就又回到了過程(2)。

    為了確保周期運行成功,我們需要理解數(shù)據(jù)科學(xué)的開發(fā)和部署有著不同的要求,這些要求都需要被滿足。這就是為什么你需要一個實驗室,同時也需要一個工廠。

    實驗室

    數(shù)據(jù)實驗室是數(shù)據(jù)科學(xué)家進行研究的地方,關(guān)注點不同于應(yīng)用產(chǎn)品。最終目標也許是利用數(shù)據(jù)驅(qū)動組織內(nèi)的決策制定,但是,實現(xiàn)這個之前,我們需要先弄清楚對組織而言,那些假設(shè)有意義,并證明其價值。因此,我們主要關(guān)注的是創(chuàng)造出一個環(huán)境——實驗室,在這里,數(shù)據(jù)科學(xué)家可以提出問題,構(gòu)建模型,并用數(shù)據(jù)進行測試。

    正如以下基于  CRISP-DM 模型的圖表所示,這個過程基本上迭代式的。

    我們不會在本文討論太多細節(jié),但是我們有一個深入這個主題的教程。

    在這里,我們關(guān)心的問題是需要實驗室來研發(fā)模型,還需要一個工廠,用以部署這個模型并將之自動應(yīng)用到實時數(shù)據(jù),在約束條件下把結(jié)果傳送給適當?shù)目蛻簦⑶冶O(jiān)管整個過程,以防運行失敗或異常。

    工廠

    在工廠里,我們要做的是優(yōu)化價值創(chuàng)造并降低成本,評估穩(wěn)定性和結(jié)構(gòu)彈性,確保在約束條件下把結(jié)果傳送給適當?shù)目蛻簦瑫r能監(jiān)控和管理程序故障。我們需要給模型提供一個結(jié)構(gòu),根據(jù)生產(chǎn)中的情況進行預(yù)期。

    為了理解工廠的運行過程,我們來看一下如何通過模型注冊表來管理模型,以及部署時需要考慮哪些問題。

    模型注冊表

    為了給模型一個結(jié)構(gòu),我們會根據(jù)模型的組件進行定義,包括數(shù)據(jù)依存性,腳本,配置以及文件。另外,我們會捕獲模型上的元數(shù)據(jù)及其不同版本,提供額外的商業(yè)環(huán)境和模型特定信息。給模型提供一個結(jié)構(gòu),接著就能將模型目錄清單存在模型注冊表中,包括了不同模型版本,以及執(zhí)行過程反饋的關(guān)聯(lián)結(jié)果。下面的圖示解釋了這個概念。

    通過注冊表,我們可以:

    ·明確哪個版本的模型正在被使用,并控制它。

    ·查看發(fā)布說明,搞清楚某個特定版本發(fā)生了什么變化。

    ·查看與模型相關(guān)聯(lián)的資產(chǎn)和文件,這對于創(chuàng)建一個已有模型的新版本或管理維護是有用的。

    ·監(jiān)管模型執(zhí)行的性能標準,以及什么程序在使用它。這些信息是在模型執(zhí)行過程中產(chǎn)生的,會把權(quán)值反饋給注冊表。

    你同樣也可以選擇在模型某個版本中加入 Jupyter Notebook 。這可以讓一個審閱者或開發(fā)者遍歷此版本原始開發(fā)者最初開發(fā)時的思維過程和假設(shè)。有助于模型維護,也有助于組織探索。

    這里有一個矩陣,解構(gòu)了一個模型的不同元素:

    注冊表需要捕捉到數(shù)據(jù)、腳本和訓(xùn)練過的模型對象之間的聯(lián)系,圖中說明了與一個模型特定版本相關(guān)的文件。

    這對我們的實踐有什么幫助?

    ·通過收集如何運行一個模型所需的資產(chǎn)和元數(shù)據(jù),我們就能驅(qū)動一個執(zhí)行工作流,將模型的特定版本用于實時數(shù)據(jù),為終端用戶預(yù)測結(jié)果。如果這是批量程序的一部分,我們就可以利用這些信息為模型創(chuàng)造一個暫態(tài)的執(zhí)行環(huán)境,來提取數(shù)據(jù)、腳本、運行模型、在目標存貯里保存結(jié)果,并在程序完成后關(guān)閉環(huán)境,在最大化資源的同時將成本最小化。

    ·從監(jiān)管角度來看,我們可以支持那些決定模型何時被推向產(chǎn)業(yè)化的商業(yè)工作流,這些工作流負責(zé)允許運行中的模型監(jiān)視程序去做出一些決定,比如,當我們發(fā)現(xiàn)模型預(yù)測已不再符合現(xiàn)實情況時是否應(yīng)該重新訓(xùn)練它。如果你有審計要求,你可能需要跟顧客解釋你是如何得到某個特定結(jié)論的。為了做到這一點,你需要去考察在特定時間運行的某個特定版本的模型,并且需要知道復(fù)現(xiàn)這個結(jié)果用到了什么樣的數(shù)據(jù)。

    ·如果我們在一個已有模型中發(fā)現(xiàn)了漏洞,我們可以把它標記成不應(yīng)該使用,修復(fù)后發(fā)布此模型的新版本。對所有使用漏洞版本的用戶發(fā)送通知,他們就可以轉(zhuǎn)而使用新的修復(fù)版。

    如果不進行以上這些步驟,我們就有可能讓模型維護變成需要試圖理解原始開發(fā)者意圖的冒險行為,部署后的模型不再與那些正在開發(fā)中模型相匹配,產(chǎn)生不正確的結(jié)果,在已有模型升級后還會擾亂下游用戶的正常使用。

    模型部署

    一旦模型被批準部署,我們需要通過幾個步驟來確保模型能被部署。要有驗證正確性的測試,還要測試提取原始數(shù)據(jù)的管道流程、特征生成,以及分析模型評分以確定模型可以自主運行,以消費者需要的方式產(chǎn)生出結(jié)果,滿足行業(yè)定義的性能要求。還要確保模型的執(zhí)行過程處于監(jiān)控中,以防發(fā)生錯誤或模型過時不再產(chǎn)生準確的結(jié)果。

    在部署之前,我們要確保測試了下面幾項:

    ·部署后的模型是否達到了原始模型開發(fā)者的預(yù)期。通過采用一個在開發(fā)過程中產(chǎn)生有效結(jié)果的測試輸入集,我們就能驗證部署的代碼是否與開發(fā)中的預(yù)期吻合。

    ·部署后的模型是否在多種不同的輸入下都能良好運行,測試輸出的極端情況,以及由于數(shù)據(jù)質(zhì)量問題潛在丟失的數(shù)值。同時應(yīng)該有防止這些輸入毀掉模型并最終影響下游顧客的的控制手段。

    我們通過兩種方式來最小化部署后模型與開發(fā)模型匹配時的風(fēng)險:1)部署到生產(chǎn)環(huán)節(jié)之前就運行測試,2)捕獲環(huán)境細節(jié),比如特定的語言版本和模型的庫依存性(例如,一個Python requirements.txt 文件)。
    一旦部署到生產(chǎn)環(huán)節(jié)后,我們就想對用戶顯示模型的預(yù)測結(jié)果。有多少用戶會使用這一模型進行預(yù)測?在為模型打分時,提供特征數(shù)據(jù)的速度要有多快?比如,欺詐偵測中,如果特征信息每24小時產(chǎn)生一次,那么,從事件發(fā)生到詐騙偵測模型檢測到此事件之間,會存在嚴重滯后。這就是我們需要解決的一些可擴展性和性能方面的問題。

    就一個應(yīng)用程序來說,最理想的方式是通過網(wǎng)頁服務(wù)向用戶展示結(jié)果,方式是通過模型實時得分或是以線下批處理過程展示評分結(jié)果。或者是,模型需要支持一個商業(yè)過程,我們需要把模型的結(jié)果放在一個為決策者生成報告并遵照該這些結(jié)果予以行事的地方。無論是那種情況,如果沒有模型注冊表,想要知道哪里可以找到并使用當前模型的結(jié)果是很困難的。

    另一個應(yīng)用實例是想要搞清楚模型如何背離實時數(shù)據(jù)運行,以考察模型是否變得陳舊,或者確定一個新開發(fā)的模型性能是否超過舊模型。一個簡單的例子就是用回歸模型來對比預(yù)期值和實際值。如果我們沒有監(jiān)測到模型結(jié)果隨時間變化,那么,我們可能是在根據(jù)不再適用于當前情勢的歷史數(shù)據(jù)在做決策。

    結(jié)論

    這篇文章中,我們遍歷了模型周期,討論了對實驗室和工廠的需要,意在降低部署那些可能影響商業(yè)決策(并且還可能帶來高成本)壞模型帶來的風(fēng)險。另外,注冊表也提供了組織中模型的透明性和可發(fā)現(xiàn)性。這有利于通過呈現(xiàn)組織使用的現(xiàn)有技術(shù),來研發(fā)新模型,解決相似問題,也有利于現(xiàn)有模型維護或通過澄清模型當前版本、目前相關(guān)資產(chǎn)情況等來提升模型。

    在SVDS ,我們正在研發(fā)一個架構(gòu),它能支持模型管理,把不同模型版本登入注冊表,并管理如何將這些模型版本部署到一個執(zhí)行引擎中。

    (審核編輯: 林靜)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認為內(nèi)容侵權(quán),請聯(lián)系我們刪除。

    主站蜘蛛池模板: 91亚洲精华国产精华精华液 | 国产毛片在线 | 成人在线免费视频 | 在线日韩一区 | 成人黄色大片 | 夜夜草视频 | 欧美第7页 | 中文字幕第一页在线视频 | 亚洲乱码一区二区三区在线观看 | 国产一区二 | 久久久亚洲天堂 | 国产精品呻吟久久av图片 | 日日爱夜夜爽 | a级片网站 | 91一区 | 一二三四区视频 | 国产精品久久久久久久久久久久 | 日韩在线小视频 | 不卡视频一区二区三区 | 爱爱视频在线观看 | 91麻豆精品久久久久蜜臀 | 久久久久久精 | 一本色道久久综合狠狠躁篇的优点 | 亚洲国产精品视频 | 黄色一级片在线观看 | 久久久九九九九 | 日本视频不卡 | 99精品99| 一级全黄少妇性色生活片毛片 | 久久精品中文字幕 | 狠狠综合久久 | 国产精品69久久久久水密桃 | 九九九色| 久久一区 | 四虎国产精品成人免费4hu | 欧美一级二级三级视频 | 最新国产在线 | 久久视频一区二区 | 中文字幕一区二区三区不卡 | 色噜噜狠狠色综合中国 | 男女福利|