亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行Mars的應用與實踐

發布時間:2022-01-06 17:33:15 來源:億速云 閱讀:130 作者:柒染 欄目:云計算

這篇文章給大家介紹如何進行Mars的應用與實踐,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一、Mars簡介

Mars是統一的數據科學平臺,它用來加速傳統的Python數據科學技術棧,在單機中也可以用多核加速,或用分布式來加速。Mars可以部署在單機的分布式集群,或者Kubernetes和Hadoop Yarn上。

Mars整個框架構建在單機的并行和分布式的這兩個調度的基礎之上,它的數據科學基礎包括三個核心部分,Tensor、DataFrame和Remote。而構建在這個基礎之上的,是Mars Learn模塊,它可以兼容Scikit-learn API,能簡單地進行更大數據規模的分布式處理。此外,Mars還支持深度學習和機器學習的框架,比如能輕松運行TensorFlow、PyTorch等,而且可視化也可以在Mars上完成。除此之外,Mars還支持了豐富的數據源。

從傳統Python技術棧到Mars也非常簡單,比如在NumPy和Pandas里要變成Mars,只需要替換import,然后后面變為延遲執行即可。

普通的Python函數,在調用的時候變成mr.spawn來延遲這個過程,最后通過execute來并發執行,不用擔心Mars是運行在單機上還是分布式運行。

而Mars上的TensorFlow大部分也一樣,區別在于main函數部分的變化。最后,我們需要通過run_tensorflow_script的方式把腳本運行到Mars中。

二、典型場景

場景1. CPU和GPU混合計算

在安全和金融領域可以用Mars做CPU和GPU的混合計算,加速現有的工作流。

在這個領域,因為傳統大數據平臺挖掘周期長,資源緊張,需要很久來執行任務,不能達到客戶需求。所以能用Mars DataFrame來加速數據處理,它可以做大規模數據排序,并幫助用戶做高階統計和聚合分析。

另外在安全領域有很多無監督學習的算法,Mars learn能加速無監督學習,同時拉起分布式深度學習計算加速現有的深度學習訓練。之后,對于某些計算任務也可以利用GPU來加速。

場景2. 可解釋性計算

在廣告領域,在廣告歸因和洞察特征的解釋算法中,因為本身計算量大,所以耗時很長。這種情況下,單機加速是比較困難的,基于傳統大數據平臺的分布式也不太靈活,但是通過Mars remote,可以很輕松地把計算分布到幾十臺機器上來加速,達到百倍的性能提升。

場景3. 大規模K-最鄰近算法

Mars非常廣泛地應用在K-最鄰近算法中,因為Embedding越來越流行,它讓向量表述實體非常常見。另外,Mars的NearestNeighbors算法兼容scikit-learn,它里面有暴力算法,而用戶也需要暴力算法來進行大規模計算,可以通過多個worker來完成,從而讓性能提升百倍。最后,Mars支持分布式的方式加速Faiss和Proxima,達到千萬級別和上億級別的規模。

三、Demo

Demo1. 分析豆瓣電影數據

我們從這個Demo看一下Mars如何加速pandas數據處理及其可視化。

如何進行Mars的應用與實踐

開始演示之前我們需要安裝Mars。這里已經創建了Jupyter,然后 pip install pymars。

如何進行Mars的應用與實踐

安裝之后,我們可以到IPython進行驗證,可以看到下面的結果沒有問題,接下來我們就可以進入到Jupyter notebook里。

如何進行Mars的應用與實踐

我們開始demo。這個數據可以在GitHub地址下載,然后我們用pandas來分析電影的數據,使用ipython memory usage來查看內存使用。

如何進行Mars的應用與實踐

我們的數據主要用到4個CSV文件,分別是movies、ratings、users和comments。

如何進行Mars的應用與實踐

接下來根據上映日期統計有多少電影發布。這里先處理一下數據,讓發行日期只取到年份,去掉日期,并對年份做聚合。

如何進行Mars的應用與實踐

數據出來后,可以用pandas bokeh把圖繪制出來,并通過交互式的方式查看。

如何進行Mars的應用與實踐

接下來看電影評分的統計。首先把有評分的電影篩選出來,然后把豆瓣評分的數值數量從大到小進行排序。可以看到,最多的評分是6.8分。

如何進行Mars的應用與實踐

同樣,通過pandas bokeh把它畫成柱狀圖,評分差不多呈現正態分布。

如何進行Mars的應用與實踐

接下來做一個標簽詞云,看電影哪個標簽詞最多,這里從movies取出tags,用斜杠分割,然后max words是50。

如何進行Mars的應用與實踐

接下來我們再對電影的Top K進行分析。首先按電影ID進行聚合,求出評價的平均值和個數。然后我們對評價個數進行過濾,從高到低,算出top20的電影。

如何進行Mars的應用與實踐

然后做評論數據分析。因為評論是中文的,所以需要做一個分詞,然后對每一句話做切分,在統計的時候進行排序。這里可以加一個進度條,在處理數據的時候方便看到進程。這個過程大概花了20分鐘,所以在單機上跑大任務的時候對機器的壓力還是比較大。

如何進行Mars的應用與實踐

這是最終的詞云圖。

如何進行Mars的應用與實踐

接下來我們用Mars做同樣的分析任務。首先是對Mars環境進行部署,然后這里有5個worker,每個worker是8個CPU和32G內存。還是一樣,我們打開內存的監控,做一些import,這里把import Pandas替換成import mars.dataframe,然后Numpy是import mars.tensor。

如何進行Mars的應用與實踐

隨后我們在SDK里來創建to mars dataframe,這一步幾乎沒有用到內存,最終得到的結果也和之前一樣。

如何進行Mars的應用與實踐

我們用同樣的方式來分析上映日期的電影個數和電影評分。得益于Mars跟Pandas的高度兼容,我們也能用Pandas bokeh來呈現結果。

如何進行Mars的應用與實踐

電影評論的分析也一樣,但是在顯示的時候,Mars只會拉取頭幾條和最后幾條,所以客戶端幾乎沒有內存使用。而且整個running過程只用了45秒,與之前的20分鐘相比提升了幾十倍性能。

如何進行Mars的應用與實踐

接下來我們用Mars做一個地區的統計,讓它有一個動態的效果。首先我們看一下剛剛計算過的已經released的電影dataframe,然后取1980-2019這幾年的電影,而regions部分可能有多個,所以用斜杠分割開,最后執行排出top10地域電影。

如何進行Mars的應用與實踐

然后我們通過bar chart race來生成動態效果。

如何進行Mars的應用與實踐

Demo2. 豆瓣電影推薦

第二個demo我們會基于剛才豆瓣電影的數據來做一個推薦。我們首先會用TensorFlow Mars來進行訓練,接著用Mars分布式KNN算法來加速召回計算。

我們先使用單機的技術棧,這個數據已經分成了訓練和測試集,所以我們先to pandas把它下載到本地,接著來對用戶和電影做一個label encode,把它變成一個數字,而不是字符串的值。隨后我們對數據進行處理,先按照時間排序,然后按照用戶進行分組,生成分組聚合的結果。

如何進行Mars的應用與實踐

接下來開始訓練,我們需要用TensorFlow訓練出代表user的embedding。之前說過embedding,可以對任一實體用向量描述,所以得到embedding之后,我們在給用戶推薦電影時就可以查找在這個向量空間里面跟這個用戶比較接近的電影embedding。

如何進行Mars的應用與實踐

訓練后我們可以保存向量,這里的搜索規模是60萬乘7萬,單機花費了22分鐘,但如果達到千萬乘千萬級別,搜索耗時要超過800小時,這是不可接受的。

如何進行Mars的應用與實踐

接下來我們看如何用Mars來實現這一過程。首先創建一個Mars集群,這里有8個worker。然后和上面一樣,對數據進行預處理,做label encode,按時間排序,按user分組生成分組聚合。

如何進行Mars的應用與實踐

這里唯一的區別是Mars會自動推斷DataFrame的結果,如果推斷失敗就需要用戶自己提供dtypes和output type。

如何進行Mars的應用與實踐

然后是執行和訓練。這里TensorFlow可以寫Python文件,不用寫到notebook里。

如何進行Mars的應用與實踐

接著我們用Mars的run tensorflow script來跑這個腳本,然后指定worker是8。可以看到,執行的時間縮小到了23分鐘。同時,我們也拿到了最終的embedding,用Mars做embedding只需1分25秒,比剛剛的時間提升個十倍左右。1400萬乘1400萬也可以穩定在1小時左右,與單機800個小時相比提升是非常巨大的。

如何進行Mars的應用與實踐

四、最佳實踐

首先盡量不要使用to pandas和to numpy,因為這會把Mars的分布式數據變成單機的數據,失去了Mars本身的優勢,除非這個操作不能用Mars實現;其次,Mars tensor、DataFrame和learn由于本身受限于API的原因需要自己寫一些函數,所以可以考慮用Mars remote來加速,把操作抽象成函數;第三,Pandas的加速技巧在Mars DataFrame依然適用,比如可以使用更高效的數據類型,可以優先使用內建操作,使用apply取代循環。

如何進行Mars的應用與實踐

關于如何進行Mars的應用與實踐就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玉门市| 东山县| 陇西县| 天柱县| 滨海县| 镇沅| 桂林市| 阳信县| 南召县| 绵竹市| 肇东市| 罗城| 临颍县| 泸水县| 慈溪市| 南召县| 阳春市| 汉寿县| 大关县| 左贡县| 珠海市| 辰溪县| 枝江市| 宝丰县| 无锡市| 平定县| 杭锦后旗| 满洲里市| 互助| 绵竹市| 石门县| 汽车| 遂宁市| 阳新县| 汉中市| 宁波市| 甘肃省| 康定县| 东阳市| 海丰县| 东莞市|