2016-2022 All Rights Reserved.平安財經(jīng)網(wǎng).復制必究 聯(lián)系QQ280 715 8082 備案號:閩ICP備19027007號-6
本站除標明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。
使用Python和Dask進行數(shù)據(jù)科學,分析和分布式機器學習的Nvidia GPU
Nvidia希望將GPU的成功范圍從圖形和深度學習擴展到完整的數(shù)據(jù)科學體驗。開源Python庫Dask是關鍵。
人工智能
英特爾在量子計算領域提供AI突破
人工智能的進步在孤島和文化問題中得到了充分發(fā)揮
調(diào)查:在企業(yè)中管理AI和ML
Facebook首次推出AI工具來解決復仇色情問題
IBM通過分享AI人臉識別(CNET)照片激起爭議
企業(yè)無法獲得AI網(wǎng)絡安全工具的工作方式(TechRepublic)
Nvidia長期以來不僅僅是一家硬件公司。由于其GPU廣泛用于運行機器學習工作負載,因此機器學習已成為Nvidia的重中之重。在本周的GTC活動中,Nvidia提出了許多相關要點,旨在建立機器學習并擴展到數(shù)據(jù)科學和分析。
Nvidia希望“將軟件與硬件相結(jié)合,以提供將數(shù)據(jù)轉(zhuǎn)化為洞察力和智能所需的計算能力。”Nvidia首席執(zhí)行官Jensen Huang強調(diào)了芯片架構(gòu),系統(tǒng),算法和應用之間的協(xié)作方面。
另外:
因此,Nvidia專注于構(gòu)建GPU開發(fā)人員生態(tài)系統(tǒng)。根據(jù)Huang的說法,GPU開發(fā)者生態(tài)系統(tǒng)正在快速增長:開發(fā)人員數(shù)量從去年的80萬增長到120多萬。您可以構(gòu)建一個開發(fā)人員生態(tài)系統(tǒng)嗎?開源軟件。
Nvidia在GTC上宣布了用于GPU加速數(shù)據(jù)科學的CUDA-X AI SDK。Nvidia稱CUDA-X AI是一個加速數(shù)據(jù)科學的端到端平臺,涵蓋了數(shù)據(jù)科學工作流程的許多部分。目標是使用GPU盡可能地并行化這些任務,從而加快它們的速度。
CUDA-X AI的一個關鍵部分是RAPIDS。RAPIDS是一套開源軟件庫,用于完全在GPU上執(zhí)行端到端數(shù)據(jù)科學和分析管道。RAPIDS的一個關鍵部分是Dask。Dask是一個開源框架,其目標是本地擴展Python。
由于Python是大多數(shù)數(shù)據(jù)科學工作的首選語言,因此您可以看到為什么Nvidia選擇將其作為其戰(zhàn)略的關鍵部分。ZDNet與Dask創(chuàng)作者Matthew Rocklin進行了問答,他最近開始為Nvidia工作。
擴展PYTHON
Rocklin說,Dask是從PyData生態(tài)系統(tǒng)(Pandas,NumPy,Scikit-Learn,Jupyter等)發(fā)展而來的。PyData深受數(shù)據(jù)科學家的喜愛,因為它速度快(主要用C / C ++編寫),非專家很容易使用。問題是PyData通常不能很好地擴展,這是數(shù)據(jù)集大小增加時的一個限制。
此外:Streamlio,一個用于云時代的開放核心流數(shù)據(jù)結(jié)構(gòu)
Dask旨在擴展現(xiàn)有的PyData項目,并將它們引入并行計算,而無需完全重寫。Rocklin在Anaconda Inc(當時名為Continuum)工作時開始使用Dask,但Dask很快成長為一個社區(qū)項目,其中包括來自大多數(shù)主要PyData庫的貢獻者。
數(shù)據(jù)科學工作負載可能需要一段時間才能執(zhí)行。加速它們是Dask的意思,這就是它被Nvidia采用的原因。
(圖片來源:Nvidia)
Anaconda投資該項目是因為他們有許多喜歡Pandas,Scikit-Learn和朋友的客戶,但他們正在努力應對更大的數(shù)據(jù)量。Rocklin表示,顯然社區(qū)和市場需要使PyData處理更大的規(guī)模,但也存在許多技術(shù)和社會挑戰(zhàn):
“我們不得不在生態(tài)系統(tǒng)中堵塞大數(shù)據(jù)方面缺少的漏洞。大數(shù)據(jù)空間中有許多技術(shù)當時并不是Python中可用的:像Parquet,Orc和Avro這樣的數(shù)據(jù)格式,數(shù)據(jù)存儲系統(tǒng),如HDFS,GCS,S3,YARN等部署解決方案。“
他繼續(xù)補充說,在Python生態(tài)系統(tǒng)中,許多技術(shù)幾乎沒有支持,使它們在面向性能的環(huán)境中并不真正有用。Dask開始專注于單節(jié)點重型工作站用例。目標是將Python擴展到現(xiàn)代CPU的所有核心,并將數(shù)據(jù)大小限制從可用RAM(~100GB)的數(shù)量擴展到單個工作站上的可用磁盤數(shù)量(~10TB)。
當時,這被視為高生產(chǎn)力的最佳點。羅克林表示,“Dask是Python原生的,易于使用,很多群體都有Numpy / Pandas / Scikit學習這種規(guī)模的風格問題(這是大多數(shù)人)非常喜歡它。”
然而,他繼續(xù)補充說,人們擴展到更大的數(shù)據(jù)集的能力似乎是無法滿足的,所以大約一年后,Dask被擴展到分布式計算環(huán)境中工作,該環(huán)境具有或多或少與系統(tǒng)類似的擴展屬性火花。
Apache Spark是一個非常受歡迎的數(shù)據(jù)科學和機器學習開源平臺,由Databricks提供商業(yè)支持。Spark支持內(nèi)存處理,并通過群集進行擴展。然而,Spark對許多Python用戶的問題在于對Python的支持是有限的,并且部署和調(diào)優(yōu)集群并非易事。
另外:
Dask是為解決這個問題而開發(fā)的。那么Dask和Spark如何比較呢?羅克林說這是他經(jīng)常遇到的一個問題,所以經(jīng)常會有一個詳細的答案。外賣是Dask體積更小,重量更輕。Dask的功能少于Spark,并且旨在與其他Python庫一起使用。
DASK通過GPU幫助加速整個數(shù)據(jù)科學家的工作流程
最近,Rocklin加入了Nvidia,以幫助用Dask擴展RAPIDS。他指出,Nvidia已經(jīng)做了一段時間了,但是想要更多的火力來支持Dask的努力:
“NVIDIA最近一直是開源生態(tài)系統(tǒng)中的支持者,所以我對這個機會感到很興奮。借助RAPIDS,NVIDIA希望將GPU的成功范圍從圖形和深度學習擴展到完整的數(shù)據(jù)科學體驗。這意味著構(gòu)建GPU - 用于更廣泛任務的加速庫。“
Nvidia的T4 GPU。但是,如果沒有適當?shù)能浖褩?,它將無法幫助您。
(圖片來源:Nvidia)
計劃的結(jié)果是能夠加速整個數(shù)據(jù)科學家的工作流程,而不僅僅是深度學習時的最終培訓和預測部分。傳統(tǒng)的機器學習算法,數(shù)據(jù)幀操作,如groupby-aggregations,連接和時間序列操作。數(shù)據(jù)提取,如CSV和JSON解析。和陣列計算一樣,如圖像處理和圖形分析:
“當我第一次聽到這個時,我非常懷疑。我一直認為GPU僅適用于高度規(guī)則和計算密集的計算,就像在深度學習中發(fā)生的矩陣倍增一樣。
但是當我看到NVIDIA已經(jīng)構(gòu)建時一個CSV解析器(一個高度不規(guī)則的計算),比我賣掉的Pandas標準快了20倍。這些機器出來的性能數(shù)字非常驚人。“
Rocklin說,今天RAPIDS使用Dask(和MPI)將這些庫中的一些擴展到多個GPU和多個節(jié)點。就像Dask可以在分布式CPU集群中管理許多Pandas數(shù)據(jù)幀一樣,它也可以在GPU的分布式集群中管理許多GPU加速的Pandas數(shù)據(jù)幀。他繼續(xù)補充說,這最終比人們預期的更容易,原因有兩個。
首先,因為Dask被設計為圍繞其他庫進行并行化,所以它處理負載平衡和彈性等問題,但是沒有強加任何適合NVIDIA需求的特定計算系統(tǒng),因為它希望定義自己的節(jié)點計算。
其次,Dask已經(jīng)擁有適用于Numpy,Pandas,Scikit-Learn和朋友的算法,并且其中許多算法對于等效的RAPIDS庫也是開箱即用的,它們也復制了這些API。
分布式機器學習做與不做
但這真的很容易嗎?最近,Google Cloud AI的技術(shù)負責人Viacheslav Kovalevskyi警告不要使用分發(fā),除非絕對必要。我們想知道Rocklin對此的看法是什么,以及他認為未來分布式機器學習面臨的最大挑戰(zhàn)和機遇。
另外:
羅克林指出,在這個領域有效地進行計算仍然需要相當多的專業(yè)知識。當然,有很多機器學習問題,比如深度學習應用程序中使用的參數(shù)服務器,如果你分發(fā)而不是非常小心,你可能會遭受巨大的性能損失。
“童話區(qū)”:只是在問題上投入更多硬件并不一定能讓機器學習更快。這一切都取決于問題的類型。
(圖片來源:Viacheslav Kovalevskyi)
他補充說,使用集群會產(chǎn)生非常實際的人力和管理成本。集群很復雜,通常由數(shù)據(jù)科學之外的其他團隊管理,難以調(diào)試,并且通常會在分析師和洞察者之間設置障礙。
Rocklin認為,單個大型機器的生產(chǎn)效率很高,無論是從性能/硬件角度還是從人/管理障礙的角度來看。如果您可以在非分布式系統(tǒng)上解決問題,那么這幾乎總是正確的選擇:
“然而,機器學習是一個廣泛的術(shù)語。從計算的角度來看,機器學習有很多種。有些東西適用于某些問題,有些則不適用。很難做出一攬子陳述。
有很多問題擴展是非常自然的,并且?guī)缀鯖]有性能損失。在我們的社會中有一些關鍵應用真正需要大規(guī)模擴展才能取得進展(想想基因組學,氣候變化,成像)。理想情況下我們在小/中等數(shù)據(jù)上使用的工具一臺機器可以和我們在千節(jié)點集群上使用的工具相同。“
下一步IT轉(zhuǎn)型
在實現(xiàn)邊緣計算之前您需要了解的內(nèi)容
這些是您的公司在沿著邊緣分析和處理路線前應該問的問題。
閱讀更多
汽車,引擎和社交動態(tài):DASK作為PYTHON世界的調(diào)度程序
說到集群,并回到Dask和Spark之間的比較,在通過Dask API時會有另一個顯而易見的差異:它是一個較低級別的API。例如,調(diào)度任務等事情實施起來更加細微。它看起來像Dask可能是Python用戶分發(fā)其代碼(和數(shù)據(jù))的“快速而骯臟”的方式,但是這種權(quán)衡更傾向于使用細節(jié)。
再一次,就像PyTorch的情況一樣,答案就是這是一個功能,而不是一個bug。Rocklin表示,Dask的最初目標是提供Numpy和Pandas的高級并行實現(xiàn),需要一個相當復雜的任務調(diào)度器來處理負載平衡,彈性,任務放置,網(wǎng)絡通信等問題。
此外:
他們發(fā)現(xiàn),對于大約一半的用戶來說,這很棒。他們正在進行相當傳統(tǒng)的業(yè)務分析或科學工作負載,并且不需要任何其他工作。然而,另一半正在進行更加復雜的計算。對于他們來說,并行的Numpy / Pandas實現(xiàn)沒有用,但底層的任務調(diào)度器是:
“這就像我們制造了一輛豪華轎車,人們說”太棒了!我只需要引擎“。那是因為他們正在建造與預期完全不同的東西,比如火箭飛船或潛水艇或賽格威。他們想要內(nèi)部調(diào)度機器,但想把它插入他們自己的高度定制解決方案。這就是低級API的來源。
今天大多數(shù)用戶仍然從Dask的高級API開始,然后他們遇到了復雜的問題并轉(zhuǎn)向了低級API.Dask的設計使其易于來回切換,所以人們根據(jù)需要混合搭配。“
調(diào)度很難。Dask需要構(gòu)建調(diào)度功能,在某些情況下,人們選擇將其用作調(diào)度程序。
(圖片來源:Nvidia)
Rockin指出,今天的Python社區(qū)中有很大一部分的功能遠遠超出了傳統(tǒng)的商業(yè)智能領域。他們正在發(fā)明新的模型,并構(gòu)建以前沒有真正構(gòu)建過的復雜系統(tǒng)。引擎(任務調(diào)度程序)仍然有用,但車輪,轉(zhuǎn)向柱和傳輸(數(shù)據(jù)框算法)不適用于他們想去的地方。
這是與Dask結(jié)束時要記住的事情。由于Java世界在YARN中有調(diào)度程序,并且云原生世界有Kubernetes,因此Python世界似乎也在使用Dask。羅克林表示,在Dask上工作是一項偉大的社交和社區(qū)建設實驗:
“我們和其他幾個團體正試圖推動整個PyData生態(tài)系統(tǒng),這在范圍上都是巨大的,并且還分裂成數(shù)百個不同的群體。我們花了很多時間建立共識,弄清楚最終用戶需要什么,哪些機構(gòu)愿意參與,哪些機構(gòu)能夠并且愿意開展這項工作。過去幾年來,各種不同群體的籌備工作重新抬頭,令人興奮。 “
2016-2022 All Rights Reserved.平安財經(jīng)網(wǎng).復制必究 聯(lián)系QQ280 715 8082 備案號:閩ICP備19027007號-6
本站除標明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。