為什么數(shù)據(jù)科學(xué)家需要承擔(dān)開發(fā)運(yùn)維的工作?

Caleb Kaiser
據(jù)統(tǒng)計(jì),大多數(shù)數(shù)據(jù)科學(xué)家都需要花費(fèi)25%以上的工作時(shí)間來部署模型。有趣的是,在數(shù)據(jù)科學(xué)家職位的招聘廣告中也經(jīng)??匆奒ubernetes、Docker和EC2之類的技術(shù)要求。

作者 | Caleb Kaiser

譯者 | 彎月,責(zé)編 | 夕顏

頭圖 | CSDN下載自視覺中國(guó)

出品 | CSDN(ID:CSDNnews)

以下為譯文:

如果你需要?jiǎng)?chuàng)建一個(gè)生產(chǎn)環(huán)境下的機(jī)器學(xué)習(xí)流水線,那么開始的部分工作(設(shè)計(jì)和訓(xùn)練模型等)顯然屬于數(shù)據(jù)科學(xué)的范疇。

某種意義上,當(dāng)你需要將模型投入生產(chǎn)環(huán)境時(shí),需要將常規(guī)的流水線從數(shù)據(jù)科學(xué)領(lǐng)域轉(zhuǎn)移到基礎(chǔ)設(shè)施領(lǐng)域。直觀地講,這時(shí)數(shù)據(jù)科學(xué)團(tuán)隊(duì)需要將工作移交給其他人,即開發(fā)運(yùn)維。

然而,現(xiàn)實(shí)并非總是如此。越來越多的公司開始要求數(shù)據(jù)科學(xué)家負(fù)責(zé)將模型部署到生產(chǎn)的工作。

據(jù)統(tǒng)計(jì),大多數(shù)數(shù)據(jù)科學(xué)家都需要花費(fèi)25%以上的工作時(shí)間來部署模型。有趣的是,在數(shù)據(jù)科學(xué)家職位的招聘廣告中也經(jīng)??匆奒ubernetes、Docker和EC2之類的技術(shù)要求。

為什么數(shù)據(jù)科學(xué)家不應(yīng)該處理模型服務(wù)?

簡(jiǎn)單來說,模型服務(wù)是基礎(chǔ)架構(gòu)的問題,不屬于數(shù)據(jù)科學(xué)范疇。我們可以比較一下這兩個(gè)領(lǐng)域使用的技術(shù)棧:

當(dāng)然,有些數(shù)據(jù)科學(xué)家喜歡開發(fā)運(yùn)維,他們也可以承擔(dān)跨部門的工作,但是這種情況比較罕見。事實(shí)上,我認(rèn)為大家都高估了數(shù)據(jù)科學(xué)與開發(fā)運(yùn)維之間的重疊度。

我們反過來看,你是否認(rèn)為開發(fā)運(yùn)維工程師能夠設(shè)計(jì)新的模型體系結(jié)構(gòu),或者擁有大量調(diào)整超參數(shù)的經(jīng)驗(yàn)?可能那些具備了數(shù)據(jù)科學(xué)知識(shí),而且愿意學(xué)習(xí)一切的開發(fā)運(yùn)維工程師確實(shí)能夠勝任這些工作,但是將這些工作視為開發(fā)運(yùn)維團(tuán)隊(duì)的職責(zé)就很奇怪了。

將心比心,數(shù)據(jù)科學(xué)家也不應(yīng)該操心自動(dòng)伸縮或編寫Kubernetes清單文件的工作。那么為什么各個(gè)公司會(huì)這樣要求他們呢?

各個(gè)公司忽視了基礎(chǔ)設(shè)施的工作

許多組織對(duì)于模型服務(wù)的復(fù)雜程度存在根本的誤解。通常他們的態(tài)度是“利用Flask打包一下模型就足夠了。”

然而現(xiàn)實(shí)情況是,無論規(guī)模如何,任何模型服務(wù)都涉及一系列基礎(chǔ)設(shè)施的難題。例如:

如何在保證不停機(jī)的情況下,自動(dòng)更新生產(chǎn)中的模型?

如何有效地自動(dòng)伸縮一個(gè)在GPU上運(yùn)行的5GB模型?

如何監(jiān)視和調(diào)試生產(chǎn)部署?

如何在控制云消費(fèi)的情況下,完成所有的工作?

平心而論,現(xiàn)如今的機(jī)器學(xué)習(xí)基礎(chǔ)設(shè)施是一個(gè)非常新的概念。兩年前,Uber才透露了他們最先進(jìn)的內(nèi)部機(jī)器學(xué)習(xí)基礎(chǔ)設(shè)施:Michelangelo。機(jī)器學(xué)習(xí)基礎(chǔ)設(shè)施的編寫方式多種多樣。

但是,很多組織也很好地示范了如何在沒有Uber工程資源的情況下,將數(shù)據(jù)科學(xué)與開發(fā)運(yùn)維的工作重心分開來。

如何分離數(shù)據(jù)科學(xué)與開發(fā)運(yùn)維的工作?

在這個(gè)話題上,我的很多看法主要來自我從事的開源模型服務(wù)平臺(tái)Cortex上的工作。

我們通過模型-API-客戶端的抽象架構(gòu),概念化了數(shù)據(jù)科學(xué)、開發(fā)運(yùn)維與產(chǎn)品工程之間的交接工作:

模型:經(jīng)過訓(xùn)練的模型,即便是沒有數(shù)據(jù)科學(xué)專業(yè)知識(shí)的工程師也可以使用predict()函數(shù)。

API:基礎(chǔ)設(shè)施層接受訓(xùn)練好的模型,然后部署為Web服務(wù)。我們構(gòu)建了Cortex來自動(dòng)化這一層的工作。

客戶端:實(shí)際與部署在API層中的Web服務(wù)交互的應(yīng)用程序。

在模型階段,數(shù)據(jù)科學(xué)家會(huì)訓(xùn)練并導(dǎo)出模型。他們還將負(fù)責(zé)編寫predict()函數(shù),用于根據(jù)模型生成和過濾預(yù)測(cè)。

接下來,他們會(huì)將該模型移交給API,這個(gè)階段的工作完全由開發(fā)運(yùn)維部門負(fù)責(zé)。對(duì)于開發(fā)運(yùn)維部門來說,該模型只是一個(gè)Python函數(shù),只需將其轉(zhuǎn)換為微服務(wù),然后進(jìn)行容器化和部署。

在模型-微服務(wù)啟動(dòng)后,產(chǎn)品工程師就可以把它們當(dāng)作API進(jìn)行查詢。對(duì)他們來說,該模型只是一個(gè)Web服務(wù)。

模型-API-客戶端體系結(jié)構(gòu)不是分割數(shù)據(jù)科學(xué)與工程問題的唯一方法,但這個(gè)例子說明了你完全可以在數(shù)據(jù)科學(xué)和開發(fā)運(yùn)維之間劃清界線,同時(shí)無需引入過多的開銷或構(gòu)建昂貴的端到端平臺(tái)。

只需在機(jī)器學(xué)習(xí)的工作流程中建立明確的交接點(diǎn),就可以將數(shù)據(jù)科學(xué)家解放出來,讓他們?nèi)プ錾瞄L(zhǎng)的工作:數(shù)據(jù)科學(xué)。

作者簡(jiǎn)介

Caleb Kaiser,機(jī)器學(xué)習(xí)基礎(chǔ)設(shè)施工程師。

原文鏈接:

https://towardsdatascience.com/why-are-data-scientists-doing-devops-bc36d00584c3

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無評(píng)論