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

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

2019-01-17    來源:raincent

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

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

正文

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

 

圖片來源:opensource.com

 

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

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

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

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

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

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

數(shù)據(jù)科學項目:預測客戶流失率

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

 

 

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

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

 

 

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

 

 

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

 

 

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

 

 

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

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

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

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

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

♦ 描述服務之間連接的聲明性配置有助于創(chuàng)建跨平臺的可重復學習管道和模型;

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

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

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

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

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

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

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

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

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

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

面向生產(chǎn)環(huán)境機器學習的 Kubernetes

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

Kubeflow項目的目標用戶是機器學習工程師,他們需要在 Kubernetes 上搭建和維護機器學習工作負載和管道。對于精通基礎(chǔ)設施的數(shù)據(jù)科學家來說,Kubeflow 也是一個非常好的發(fā)行版。它提供模板和自定義資源來在 Kubernetes 上部署一系列機器學習庫和工具。

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

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

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

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

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

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

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

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