Martin Heller 陳琳華
在我2020年8月份發(fā)表的文章《如何選擇云機(jī)器學(xué)習(xí)平臺(tái)》中,我認(rèn)為選擇平臺(tái)的首要原則是“靠近數(shù)據(jù)”。讓代碼靠近數(shù)據(jù)是保持低延遲的必要條件。
機(jī)器學(xué)習(xí),特別是深度學(xué)習(xí)往往會(huì)多次遍歷所有數(shù)據(jù)(遍歷一次被稱為一個(gè)epoch)。對(duì)于非常大的數(shù)據(jù)集來(lái)說(shuō),理想的情況是在存儲(chǔ)數(shù)據(jù)的地方建立模型,這樣就不需要大量的數(shù)據(jù)傳輸。目前已經(jīng)有部分?jǐn)?shù)據(jù)庫(kù)在一定程度上支持這種功能。我們會(huì)很自然地問(wèn)到一個(gè)問(wèn)題,即哪些數(shù)據(jù)庫(kù)支持內(nèi)部機(jī)器學(xué)習(xí),它們又是如何做到的?下面我將對(duì)這些數(shù)據(jù)庫(kù)進(jìn)行探討。
Amazon Redshift為托管的PB級(jí)數(shù)據(jù)倉(cāng)庫(kù)服務(wù),旨在讓使用現(xiàn)有商業(yè)智能工具對(duì)數(shù)據(jù)進(jìn)行分析的工作變得更加簡(jiǎn)單且經(jīng)濟(jì)高效。其專門針對(duì)數(shù)據(jù)集進(jìn)行了優(yōu)化,成本合算下來(lái)每年每TB不到1000美元。
Amazon Redshift ML可讓SQL用戶能夠更加輕松地使用SQL命令創(chuàng)建、訓(xùn)練和部署機(jī)器學(xué)習(xí)模型。Redshift SQL中的CREATE MODEL命令可定義用于訓(xùn)練和目標(biāo)列的數(shù)據(jù),然后通過(guò)同一區(qū)域中加密的Amazon S3 bucket將數(shù)據(jù)傳輸給Amazon SageMaker Autopilot以用于訓(xùn)練。
在AutoML訓(xùn)練之后,Redshift ML將編譯最佳模型并將其注冊(cè)為Redshift集群中的預(yù)測(cè)函數(shù)。隨后,用戶可以通過(guò)在SELECT語(yǔ)句中調(diào)用預(yù)測(cè)函數(shù)的方式調(diào)用模型進(jìn)行推測(cè)。
總結(jié):通過(guò)SQL語(yǔ)句,Redshift ML可使用SageMaker Autopilot利用指定數(shù)據(jù)自動(dòng)創(chuàng)建預(yù)測(cè)模型。在這過(guò)程中,SQL語(yǔ)句會(huì)被提取到S3 bucket中。最佳的預(yù)測(cè)函數(shù)會(huì)被注冊(cè)在Redshift集群中。
BlazingSQL是一個(gè)建立在RAPIDS生態(tài)系統(tǒng)頂層上的由GPU加速的SQL引擎,雖然是開(kāi)源項(xiàng)目,但是提供付費(fèi)服務(wù)。RAPIDS為一套得到了Nvidia支持的開(kāi)源軟件庫(kù)和API,其使用了CUDA并且采用了Apache Arrow列式內(nèi)存格式。作為RAPIDS的一部分,cuDF為一個(gè)類似于Pandas的GPU數(shù)據(jù)幀庫(kù),主要用途是對(duì)數(shù)據(jù)進(jìn)行加載、連接、聚合、過(guò)濾等操作。
開(kāi)源工具Dask可將Python套件擴(kuò)展到多臺(tái)機(jī)器上。此外,Dask還可在同一系統(tǒng)或多節(jié)點(diǎn)集群中通過(guò)多個(gè)GPU分發(fā)數(shù)據(jù)和計(jì)算。整合了RAPIDS cuDF、XGBoost和RAPIDS cuML的Dask可用于GPU加速的數(shù)據(jù)分析和機(jī)器學(xué)習(xí)當(dāng)中。
總結(jié):BlazingSQL可以在Amazon S3的數(shù)據(jù)湖上運(yùn)行GPU加速的查詢,然后將生成的數(shù)據(jù)幀傳輸給cuDF進(jìn)行數(shù)據(jù)操作,最后再使用RAPIDS XGBoost和cuML執(zhí)行機(jī)器學(xué)習(xí),或是使用PyTorch和TensorFlow執(zhí)行深度學(xué)習(xí)。
BigQuery是谷歌Cloud托管理的PB級(jí)數(shù)據(jù)倉(cāng)庫(kù)。用戶可以通過(guò)BigQuery對(duì)大量數(shù)據(jù)進(jìn)行近實(shí)時(shí)分析。BigQuery ML允許用戶使用SQL查詢?cè)贐igQuery中創(chuàng)建和執(zhí)行機(jī)器學(xué)習(xí)模型。
BigQueryML支持用于預(yù)測(cè)的線性回歸、用于分類的二元多類邏輯回歸、用于數(shù)據(jù)分割的K-均值聚類、用于創(chuàng)建產(chǎn)品推薦系統(tǒng)的矩陣分解、用于執(zhí)行時(shí)間序列預(yù)測(cè)的時(shí)間序列、XGBoost分類和回歸模型、分類和回歸模型專用的基于TensorFlow的深度神經(jīng)網(wǎng)絡(luò)、AutoML Tables、TensorFlow模型導(dǎo)入。用戶可以使用來(lái)自多個(gè)BigQuery數(shù)據(jù)集的數(shù)據(jù)模型進(jìn)行訓(xùn)練和預(yù)測(cè)。雖然BigQuery ML不會(huì)從數(shù)據(jù)倉(cāng)庫(kù)中提取數(shù)據(jù),但是用戶可以使用CREATE MODEL語(yǔ)句中的TRANSFORM子句,通過(guò)BigQuery ML執(zhí)行特征工程。
總結(jié): BigQuery ML通過(guò)SQL語(yǔ)法將谷歌Cloud機(jī)器學(xué)習(xí)引入到了BigQuery數(shù)據(jù)倉(cāng)庫(kù),從而不從數(shù)據(jù)倉(cāng)庫(kù)中提取數(shù)據(jù)。
雖然IBM Db2 Warehouse一個(gè)托管的公有云服務(wù),但是用戶可以在本地或在私有云中部署它們。作為一個(gè)數(shù)據(jù)倉(cāng)庫(kù),IBM Db2 Warehouse包含有內(nèi)存數(shù)據(jù)處理和用于在線分析處理的列式表格等功能。其Netezza技術(shù)提供了強(qiáng)大的分析功能,可高效查詢數(shù)據(jù)。此外,IBM Db2 Warehouse的大量的庫(kù)和函數(shù)可以幫助用戶獲得所需的精確洞察力。
Db2 Warehouse支持Python、R和SQL中的數(shù)據(jù)庫(kù)機(jī)器學(xué)習(xí)。IDAX模塊中有分析存儲(chǔ)程序,包括方差分析、關(guān)聯(lián)規(guī)則、數(shù)據(jù)轉(zhuǎn)換、決策樹、診斷、K均值聚類、K近鄰、線性回歸、元數(shù)據(jù)管理、na?ve貝葉斯分類、主要素分析、概率分布、隨機(jī)抽樣、回歸樹、序列模式與規(guī)則,以及參數(shù)和非參數(shù)統(tǒng)計(jì)等等。
總結(jié):IBM Db2 Warehouse包含一系列數(shù)據(jù)庫(kù)內(nèi)SQL分析,例如一些基本的機(jī)器學(xué)習(xí)功能。此外,IBM Db2 Warehouse對(duì)R和Python也提供數(shù)據(jù)庫(kù)內(nèi)支持。
Kinetica 流數(shù)據(jù)倉(cāng)庫(kù)(Streaming Data Warehouse)將以往的流數(shù)據(jù)分析與本地的智能和人工智能整合在了一個(gè)單一的平臺(tái)上,所有這些都可以通過(guò)API和SQL進(jìn)行訪問(wèn)。Kinetica為GPU加速數(shù)據(jù)庫(kù)不僅具有快速、分布式、柱狀和內(nèi)存優(yōu)先等特點(diǎn),還整合了過(guò)濾、可視化和聚合等功能。