中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

為什么數(shù)據(jù)科學(xué)家往往很喜歡 Kubernetes?

2019-01-17    來(lái)源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

Kubernetes 為職業(yè)數(shù)據(jù)科學(xué)家提供了無(wú)與倫比的功能組合。簡(jiǎn)化軟件開(kāi)發(fā)工作流的特性也為數(shù)據(jù)科學(xué)工作流提供了支持。

正文

本文最初發(fā)布于 Opensource.com,經(jīng)原作者授權(quán)翻譯并分享。

 

圖片來(lái)源:opensource.com

 

首先,讓我們從一個(gè)沒(méi)有爭(zhēng)議的觀點(diǎn)開(kāi)始:軟件開(kāi)發(fā)人員和系統(tǒng)管理員都喜歡將Kubernetes作為一種在 Linux 容器中部署和管理應(yīng)用程序的方法。Linux 容器是可重復(fù)構(gòu)建和部署的基礎(chǔ),但是,Kubernetes 及其生態(tài)系統(tǒng)為讓容器適合運(yùn)行應(yīng)用程序提供了基本特性,比如:

♦ 持續(xù)集成和部署:你可以實(shí)現(xiàn)從 Git 提交到向在生產(chǎn)環(huán)境中運(yùn)行的新代碼傳遞測(cè)試套件的整個(gè)流程;

♦ 全面監(jiān)控:跟蹤系統(tǒng)組件的性能和其他指標(biāo)并以有意義的方式可視化讓其更易分析;

♦ 聲明式部署:依靠 Kubernetes 在臨時(shí)環(huán)境中重建生產(chǎn)環(huán)境;

♦ 靈活的服務(wù)路由:這意味著可以擴(kuò)展服務(wù)或?qū)⒏轮鸩桨l(fā)布到生產(chǎn)環(huán)境(如果需要,還可以將其回滾)。

你可能不知道,Kubernetes 還為職業(yè)數(shù)據(jù)科學(xué)家提供了無(wú)與倫比的功能組合。簡(jiǎn)化軟件開(kāi)發(fā)工作流的特性也為數(shù)據(jù)科學(xué)工作流提供了支持。要知道為什么,我們先來(lái)看看數(shù)據(jù)科學(xué)家是怎么工作的。

數(shù)據(jù)科學(xué)項(xiàng)目:預(yù)測(cè)客戶流失率

有些人對(duì)數(shù)據(jù)科學(xué)的定義很寬泛,包括機(jī)器學(xué)習(xí)(ML)、軟件工程、分布式計(jì)算、數(shù)據(jù)管理和統(tǒng)計(jì)。另一些人則狹義地將數(shù)據(jù)科學(xué)定義為將某些領(lǐng)域的專業(yè)知識(shí)與機(jī)器學(xué)習(xí)或高級(jí)統(tǒng)計(jì)相結(jié)合,尋找解決實(shí)際問(wèn)題的方法。在本文中,我們不會(huì)給出數(shù)據(jù)科學(xué)家的明確定義,但是,我們將告訴你數(shù)據(jù)科學(xué)家在一個(gè)典型的項(xiàng)目中可能要做什么,以及他們可能如何工作。

 

 

擁有訂閱客戶的企業(yè)都面臨一個(gè)問(wèn)題:有些企業(yè)可能不會(huì)續(xù)訂?蛻袅魇z測(cè)旨在主動(dòng)識(shí)別那些可能不會(huì)續(xù)簽合同的客戶。一旦這些客戶被識(shí)別出來(lái),企業(yè)可以選擇用特定的干預(yù)措施(例如銷售電話或折扣)來(lái)鎖定這些老主顧,以降低他們離開(kāi)的可能性。整體上,流失預(yù)防問(wèn)題有幾個(gè)部分:預(yù)測(cè)哪些客戶可能會(huì)離開(kāi),確定哪些干預(yù)措施可能會(huì)留住客戶,以及在干預(yù)預(yù)算有限的情況下,將哪些客戶作為優(yōu)先目標(biāo)。數(shù)據(jù)科學(xué)家可以對(duì)其中任何一個(gè)或所有部分進(jìn)行研究,但是我們將以第一部分為例。

要解決這個(gè)問(wèn)題,第一步是確定合適的定義,以便將“流失”納入預(yù)測(cè)模型。對(duì)于怎樣算失去一個(gè)客戶,我們可能有一個(gè)直觀的定義,但數(shù)據(jù)科學(xué)家需要形式化的定義,比如說(shuō),將客戶流失預(yù)測(cè)問(wèn)題定義為:“考慮客戶在過(guò)去 18 個(gè)月的活動(dòng),他們有多大可能在未來(lái) 6 個(gè)月中取消他們的合同?”

 

 

然后,數(shù)據(jù)科學(xué)家需要決定模型應(yīng)該考慮有關(guān)客戶活動(dòng)的哪些數(shù)據(jù)——實(shí)際上,就是研究并形式化客戶流失定義的第一部分。具體地說(shuō),數(shù)據(jù)科學(xué)家可能會(huì)考慮有關(guān)客戶在該歷史窗口中實(shí)際使用該公司產(chǎn)品的信息、客戶規(guī)模、客戶 - 服務(wù)交互次數(shù),甚至是他們?cè)谄涮峤坏姆⻊?wù)工單上所留下的評(píng)論的語(yǔ)氣。模型所考慮的度量值或數(shù)據(jù)稱為特征。

 

 

有了流失定義和一組要考慮的特征之后,數(shù)據(jù)科學(xué)家就可以開(kāi)始對(duì)歷史數(shù)據(jù)(包括特征集和給定時(shí)期內(nèi)給定客戶的最終結(jié)果)進(jìn)行探索性分析了。探索性分析可以包括可視化特征組合,以及查看它們是否與客戶會(huì)流失相關(guān)。更一般地說(shuō),這部分處理是為了識(shí)別歷史數(shù)據(jù)中的結(jié)構(gòu),以及是否有可能根據(jù)描述客戶的數(shù)據(jù)在留下的客戶和流失的客戶之間找到清晰的劃分。

 

 

對(duì)于某些問(wèn)題,數(shù)據(jù)中是否存在結(jié)構(gòu)并不明顯——在這些情況下,數(shù)據(jù)科學(xué)家將不得不從頭做起,確定要收集的一些新數(shù)據(jù),或者確定一種對(duì)可用數(shù)據(jù)進(jìn)行編碼或轉(zhuǎn)換的新方法。然而,探索性分析通常會(huì)幫助數(shù)據(jù)科學(xué)家確定在訓(xùn)練預(yù)測(cè)模型時(shí)要考慮的特征,并提出一些轉(zhuǎn)換這些數(shù)據(jù)的方法。數(shù)據(jù)科學(xué)家的下一項(xiàng)工作是特征工程:找到一種方法來(lái)轉(zhuǎn)換和編碼特征數(shù)據(jù)——這些數(shù)據(jù)可能位于數(shù)據(jù)庫(kù)表中、事件流中或者是通用編程語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)中——以便能作為模型訓(xùn)練算法的輸入。通常,這意味著將這些特征編碼為浮點(diǎn)數(shù)的向量。不是任何編碼都行;數(shù)據(jù)科學(xué)家需要找到一種可以保留特征結(jié)構(gòu)的編碼,這樣,類似的客戶就可以映射到類似的向量,否則算法的性能就會(huì)很差。

 

 

直到現(xiàn)在,數(shù)據(jù)科學(xué)家才準(zhǔn)備好訓(xùn)練一個(gè)預(yù)測(cè)模型。對(duì)于預(yù)測(cè)客戶是否會(huì)流失的問(wèn)題,模型訓(xùn)練管道從標(biāo)注過(guò)的客戶歷史數(shù)據(jù)開(kāi)始。然后,它使用在特征工程過(guò)程中開(kāi)發(fā)出的技術(shù)從原始數(shù)據(jù)中提取特征,生成帶有“true”或“false”標(biāo)記的浮點(diǎn)數(shù)向量,并對(duì)應(yīng)到你所感興趣的窗口中將會(huì)流失或不會(huì)流失的客戶。模型訓(xùn)練算法將這些特征向量集合作為輸入,優(yōu)化過(guò)程,以錯(cuò)誤率最低的方式分離真假向量。預(yù)測(cè)模型最終是一個(gè)函數(shù),它接受一個(gè)特征向量并返回 true 或 false,指示與該向量對(duì)應(yīng)的客戶是否可能流失。

在這個(gè)過(guò)程的任何一點(diǎn)上,數(shù)據(jù)科學(xué)家可能需要重新回到以前的階段——也許是改進(jìn)特征工程方法,收集不同的數(shù)據(jù),甚至是更改他們?cè)噲D預(yù)測(cè)的指標(biāo)。在這種情況下,數(shù)據(jù)科學(xué)工作流和傳統(tǒng)的軟件開(kāi)發(fā)生命周期非常像:在實(shí)現(xiàn)過(guò)程中發(fā)現(xiàn)的問(wèn)題可能會(huì)迫使工程師更改接口的設(shè)計(jì)或數(shù)據(jù)結(jié)構(gòu)的選擇。這些問(wèn)題甚至可以級(jí)聯(lián)到需求分析,對(duì)項(xiàng)目的基礎(chǔ)情況進(jìn)行更廣泛的反思。幸運(yùn)的是,Kubernetes 可以像支持軟件開(kāi)發(fā)生命周期一樣支持?jǐn)?shù)據(jù)科學(xué)家的工作流。

面向數(shù)據(jù)科學(xué)的 Kubernetes

數(shù)據(jù)科學(xué)家和軟件工程師有許多相同的關(guān)注點(diǎn):可重復(fù)的實(shí)驗(yàn)(比如可重復(fù)的構(gòu)建);可移植和可復(fù)制的環(huán)境(如在開(kāi)發(fā)、過(guò)渡和生產(chǎn)環(huán)境中具有相同的設(shè)置);憑證管理;跟蹤和監(jiān)控生產(chǎn)環(huán)境中的指標(biāo);靈活的路由;輕松擴(kuò)展。不難看出,應(yīng)用程序開(kāi)發(fā)人員使用 Kubernetes 所做的事情與數(shù)據(jù)科學(xué)家可能想做的事之間有一些類似之處:

♦ 可重復(fù)的批處理作業(yè),如 CI/CD 管道,類似于機(jī)器學(xué)習(xí)管道,多個(gè)協(xié)同階段在其中以可重復(fù)的方式一起處理數(shù)據(jù)、提取特征、訓(xùn)練、測(cè)試和部署模型;

♦ 描述服務(wù)之間連接的聲明性配置有助于創(chuàng)建跨平臺(tái)的可重復(fù)學(xué)習(xí)管道和模型;

♦ 微服務(wù)架構(gòu)支持在管道中對(duì)機(jī)器學(xué)習(xí)模型進(jìn)行簡(jiǎn)單地調(diào)試,并幫助數(shù)據(jù)科學(xué)家和他們團(tuán)隊(duì)中的其他成員進(jìn)行協(xié)作。

數(shù)據(jù)科學(xué)家與應(yīng)用程序開(kāi)發(fā)人員面臨許多相同的挑戰(zhàn),但他們也面臨一些獨(dú)特的挑戰(zhàn),這些挑戰(zhàn)與數(shù)據(jù)科學(xué)家的工作方式以及機(jī)器學(xué)習(xí)模型比傳統(tǒng)服務(wù)更難測(cè)試和監(jiān)控這一事實(shí)有關(guān)。我們將重點(diǎn)討論一個(gè)與工作流相關(guān)的問(wèn)題。

大多數(shù)數(shù)據(jù)科學(xué)家使用交互式筆記本(interactive notebooks)工作,這是一個(gè)筆記本環(huán)境,通常由Project Jupyter開(kāi)發(fā),提供一種交互式迭代編程環(huán)境,用戶可以在其中混合說(shuō)明性本文和代碼、運(yùn)行并更改代碼、檢查其輸出。

這些特性使得該環(huán)境對(duì)探索性分析非常靈活。然而,它們并不是用于協(xié)作或發(fā)布的理想軟件工件——想象一下,如果軟件開(kāi)發(fā)人員發(fā)布工作的主要方式是將來(lái)自交互式REPL腳本發(fā)布到 pastebin 服務(wù)。

與同事分享交互式筆記本就像分享實(shí)體筆記本一樣——里面有一些很好的信息,但是必須仔細(xì)查找才能找到。由于筆記本的脆弱性和對(duì)環(huán)境的依賴性,同事在運(yùn)行筆記本時(shí)可能會(huì)看到不同的輸出——甚至更糟:它可能會(huì)崩潰。

面向數(shù)據(jù)科學(xué)家的 Kubernetes

數(shù)據(jù)科學(xué)家可能不想成為 Kubernetes 專家——這很好!Kubernetes 的優(yōu)點(diǎn)之一就是構(gòu)建更高級(jí)工具的強(qiáng)大框架。

Binder 服務(wù)就是其中一個(gè)工具,采用一個(gè) Jupyter 筆記本的 Git 存儲(chǔ)庫(kù),構(gòu)建容器鏡像來(lái)提供服務(wù),然后在路由公開(kāi)的 Kubernetes 集群中啟動(dòng)鏡像,這樣就可以從公網(wǎng)訪問(wèn)。由于筆記本的一大缺點(diǎn)是其正確性和功能可能依賴于其環(huán)境,因此,如果有一個(gè)高級(jí)工具可用來(lái)構(gòu)建不可變環(huán)境為 Kubernetes 上的筆記本提供服務(wù)的話,就可以避免許多讓人頭疼的事。

你可以使用托管的 Binder 服務(wù)或運(yùn)行自己的 Binder 實(shí)例,但是,如果你想在這個(gè)過(guò)程中獲得更大的靈活性,你還可以使用Source-To-Image(S2I)工作流和工具,以及Graham Dumpleton 提供的 Jupyter S2I 鏡像上線自己的筆記本服務(wù)。事實(shí)上,對(duì)于基礎(chǔ)設(shè)施專家或打包專家來(lái)說(shuō),Source-To-Image 工作流是構(gòu)建可供主題專家使用的高級(jí)工具的良好起點(diǎn)。例如,Seldon 項(xiàng)目使用 S2I 來(lái)簡(jiǎn)化模型服務(wù)發(fā)布——只要向構(gòu)建器提供一個(gè)模型對(duì)象,它將構(gòu)建一個(gè)容器并將其作為服務(wù)公開(kāi)。

Source-To-Image 工作流的一個(gè)優(yōu)點(diǎn)是,它支持在構(gòu)建映像之前對(duì)源存儲(chǔ)庫(kù)進(jìn)行任意操作和轉(zhuǎn)換。有個(gè)例子可以說(shuō)明這個(gè)工作流有多強(qiáng)大,我們創(chuàng)建了一個(gè) S2I 構(gòu)建器鏡像,該鏡像以一個(gè) Jupyter 筆記本作為輸入,該筆記本展示了如何訓(xùn)練模型。然后,它處理這個(gè)筆記本以確定它的依賴關(guān)系,并提取 Python 腳本來(lái)訓(xùn)練和序列化模型。有了這些,構(gòu)建器就會(huì)安裝必要的依賴項(xiàng)并運(yùn)行腳本來(lái)訓(xùn)練模型。構(gòu)建器的最終輸出是一個(gè) REST Web 服務(wù),它為由筆記本構(gòu)建的模型提供服務(wù)。你可以看下 notebook-to-model-service S2I 的運(yùn)行視頻。同樣,這不是數(shù)據(jù)科學(xué)家必須開(kāi)發(fā)的工具,但是,創(chuàng)建這樣的工具是 Kubernetes 專家和打包專家與數(shù)據(jù)科學(xué)家合作的絕佳機(jī)會(huì)。

面向生產(chǎn)環(huán)境機(jī)器學(xué)習(xí)的 Kubernetes

對(duì)于正在開(kāi)發(fā)技術(shù)利用機(jī)器學(xué)習(xí)解決商業(yè)問(wèn)題的數(shù)據(jù)科學(xué)家,Kubernetes 提供了很多幫助,同時(shí),它也為將這些技術(shù)投入生產(chǎn)應(yīng)用的團(tuán)隊(duì)提供了很多幫助。有時(shí)候,機(jī)器學(xué)習(xí)代表一個(gè)獨(dú)立的生產(chǎn)工作負(fù)載——用于訓(xùn)練模型和提供見(jiàn)解的批處理作業(yè)或流作業(yè)——但是,機(jī)器學(xué)習(xí)作為智能應(yīng)用程序的一個(gè)重要組成部分越來(lái)越多地投入到了生產(chǎn)應(yīng)用。

Kubeflow項(xiàng)目的目標(biāo)用戶是機(jī)器學(xué)習(xí)工程師,他們需要在 Kubernetes 上搭建和維護(hù)機(jī)器學(xué)習(xí)工作負(fù)載和管道。對(duì)于精通基礎(chǔ)設(shè)施的數(shù)據(jù)科學(xué)家來(lái)說(shuō),Kubeflow 也是一個(gè)非常好的發(fā)行版。它提供模板和自定義資源來(lái)在 Kubernetes 上部署一系列機(jī)器學(xué)習(xí)庫(kù)和工具。

Kubeflow 是在 Kubernetes 上運(yùn)行 TensorFlow、JupyterHub、Seldon 和 PyTorch 等框架的一種很好的方式,因此,它代表了真正可移植工作負(fù)載的一個(gè)路徑:數(shù)據(jù)科學(xué)家或機(jī)器學(xué)習(xí)工程師可以在筆記本電腦上開(kāi)發(fā)管道并將其部署到任何地方。這是一個(gè)快速發(fā)展的社區(qū),開(kāi)發(fā)了一些很酷的技術(shù),你應(yīng)該看看。

Radanalytics.io是一個(gè)面向應(yīng)用程序開(kāi)發(fā)人員的社區(qū)項(xiàng)目,其重點(diǎn)是基于容器中的擴(kuò)展計(jì)算開(kāi)發(fā)智能應(yīng)用程序的獨(dú)特需求。Radanalytics.io 項(xiàng)目包括一個(gè)容器化的 Apache Spark 發(fā)行版,以支持可伸縮的數(shù)據(jù)轉(zhuǎn)換和機(jī)器學(xué)習(xí)模型訓(xùn)練,以及 Spark 操作界面和 Spark 管理界面。該社區(qū)還為智能應(yīng)用程序的整個(gè)生命周期提供了支持,提供了 Jupyter 筆記本模板和鏡像、TensorFlow 訓(xùn)練和服務(wù)以及 S2I 構(gòu)建器,后者可以部署應(yīng)用程序及其所需的擴(kuò)展計(jì)算資源。如果你想在 OpenShift 或 Kubernetes 上開(kāi)始智能應(yīng)用程序構(gòu)建,radanalysis.io 的示例應(yīng)用程序或有關(guān)會(huì)議演講會(huì)是一個(gè)不錯(cuò)的起點(diǎn)。

查看英文原文:https://opensource.com/article/19/1/why-data-scientists-love-kubernetes

作者:Sophie Watson,William Benton 譯者:平川

標(biāo)簽: linux 代碼 腳本 數(shù)據(jù)庫(kù)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:從大數(shù)據(jù)(big data)到深度數(shù)據(jù)(deep data)思維轉(zhuǎn)變

下一篇:人工智能和大數(shù)據(jù)是如何聯(lián)系在一起的?