數據庫

AI 數據中臺 Mega 及其應用

廣告
廣告

微信掃一掃,分享到朋友圈

AI 數據中臺 Mega 及其應用
0 0

隨著 AI 在各行業落地的進一步深化和應用數據量的飛速增長,越來越多的 AI 科學家痛苦地發現數據 ETL、數據倉庫和海量特征向量檢索等數據處理流程花費了他們大量寶貴的時間和精力。AI 數據中臺 Mega 打破了人工智能和數據處理之間的分界和壁壘,提供 GPU 加速的一站式 AI 數據科學解決方案,將數據 ETL、數據倉庫、模型訓練、推理和部署等多個流程進行融合。在實踐中,Mega 成功地幫助 AI 科學家將工作效率和產出提升5~8倍。

作者:星爵

編輯:王詩珊

星爵是ZILLIZ 的創始人兼 CEO,是數據庫、人工智能和高性能計算領域的專家。他曾長期就職于甲骨文(Oracle) 公司美國總部,負責其數據庫系統的核心研發工作。他作為奠基人之一研發的 Oracle 12c 多租戶數據庫(Oracle Multitenant)被譽為 Oracle 數據庫在過去10年中最具革命性的創新,迄今已經為公司創造了超過10億美金的營收。星爵畢業于華中科技大學,在美國威斯康星大學麥迪遜分校獲得計算機碩士學位。

本文根據星爵老師在DTCC 2019數據庫大會分享內容整理而成,介紹了AI 數據中臺 Mega及其應用,主要包括當下AI工程師的痛點分析、Mega系統的應用及解決方案等。

AI工程師的一天

在過去的幾年AI越來越火,AI的應用也越來越多。然而AI工程卻特別缺乏,一個公司里面很多事情都要用上AI,各種業務系統、推薦系統、業務的分析系統各方面都是用AI來做。導致現在AI工程師一天到晚都特別的忙。

下面是國外的一家AI工程師Robot的一天:

早上9點鐘開始上班,在前一天下班前他就將數據掛在后臺通宵下載的前提下,上班第一件事開始分析數據格式,做一些數據清理、排掉、去除等,光數據清理就要花費了他一上午的時間。

到了下午,ETL終于做完了!檢查一下數據,發現在數據清理的時,忘記拖進來一列數據,這時模型訓練里面可能會少一個維度,少一個維度模型就做不了了,沒辦法只能重新開始。下午4點鐘,重新做完一期,檢查過程中發現一個正則表達式寫錯了,AI的模型又無法訓練了。到下午5點鐘又要重新再做一次ETL,做到7點多的時候其實還沒有做完。

我們考慮一下如果日復一日的這樣工作,我們發現他的時間分配問題很大,大部分的時間都花在了數據的清洗的過程中、數據初步的分析等等,一天的工作里基本沒有碰到真正的模型跟訓練。

AI工程師工作中耗時占比最長的是什么?

這是美國的福布斯在2016年給出的一個調查。

ETL跟數據分析是在整個AI工程師的工作中耗時占比最長的一個部分。我們看到紅色的部分跟黃色的部分占比最大,紅色的部分是做數據ETL,黃色的部分是做初步的數據分析,這兩部分加起來,在AI工程師里面的工作時間占比高達79%。而實際,嚴格意義上的AI模型訓練跟模型推斷,加起來的時間一個是9%,一個是5%,加起來的話占比時間就區區14%。現在的AI工程、AI科學里面,大部分的時間都耗在了前面的數據清洗、數據的提取、數據的處理。

AI工程師最不喜歡的工作是什么?

這也是福布斯當時給出的一個調查問卷,他調查了700多名美國的AI工程師,他們最不喜歡的工作是什么?

他們最不喜歡的工作流程是ETL和數據分析,回答這兩個部分的分別占57%、21%。總體來說的話,大概有79%的AI科學家認為這兩部分工作是最煩,最不愿意做的,那怎么辦呢?在想怎么辦之前,我們看看這是什么原因呢?

問題的根源是什么?

AI是一個新興的產業,雖然AI的算法在上個世紀80年代已經比較完整了,但是AI作為一個新興的產業是過去3-5年才蓬勃發展的。AI的發展在3-5年有一個爆發性的增長,而我們看到數據處理的體系結構,不管是以前的關系型數據庫、大數據、文檔數據庫等等。其實在過去的40多年里,它實際上發展得不溫不火。一個新興的AI 產業爆發性的需求跟我們日益落后的數據處理基礎架構之間產生了一些根本矛盾。

這些矛盾體現在幾個方面:

第一個方面,因為AI產業的興起帶來了異構計算的資源,計算的資源越來越多的異構化。

在以前,所有的處理基本上都是由CPU來進行處理的,而現在AI的產品里面,基本上都是用GPU和類似于GPU的一些綜合的處理架構進行處理的。我們發現以前的數據處理架構和流程框架都以CPU為核心,而現在AI的整個處理流程是以GPU為核心。如果領導說要上一個AI的項目,要做深度學習、人工智能。第一步大家肯定說:“先去買一臺GPU的服務器”。

計算的資源越來越差異化、異構化的同時,數據處理的框架其實是有一個很明顯斷層的。

第二個方面,在AI的時代,產生了越來越多的新興的數據類型。不管是說數據庫,還是數據處理系統也好,處理的類型、種類、范疇、外延是在不斷擴展的。以前文件的數據、關系的數據、劣勢的數據、文檔的數據等等,而最近的幾年AI最常見的幾種數據類型,比如圖片、視頻、語音、還有文本等,這些文本本身就是一些結構化的對象服務數據類型。它跟以前的各種結構化的類型已經有很大的不同了,但是這些類型通過AI的訓練、神經網絡、各種網絡的訓練以后,一般會得出一個特征向量。

特征向量有一個特點,在文本和圖片方面都會變成一個特征向量表達。另外一方面特征向量的維度,從幾百維到幾萬維是很大的一個跨度。人臉識別現在是200多的維度,如果說一個文本跟識別的模型,可能會達到幾萬甚至幾十萬的一個維度,是一個很寬向量。在很寬的向量處理的同時,傳統的數據模型里面都有一個困擾,256個維度的一個向量,我把它放到數據庫里面,應該怎么去存呢?

把它存成256列,訪問的時候性能都特別低。因為傳統數據庫在處理高危數據的時候就有問題,包括劣勢數據。如果說要處理到幾千維幾萬維的東西,也有一個難的性能問題。

另外一方面,其實在向量上深度學習、定義一系列預算,比如現在的轉換變化,還有最后面的人臉識別、視頻識別。相似性對相似度模型算相似度。假設我們在一個大的人臉庫里面,像中國的人臉庫大概有16到18億的靜態的人臉庫。來一個新的圖片,過去要匹配每一個人臉,現在其實是一個向量在18億條的256維的向量里面計算最近的相似度,我們還希望能夠一個秒級甚至毫秒的一個項目。所以AI在數據類型,還有數據操作方面,已經達到我們心理的需求。

作為一個AI科學家,我需要不斷的切換我的工具集。同時我還要在每個工具集之間寫很多的連接器,要寫很多數據處理的流程。如果我們有一天,有一個完美的工具集。只要指定數據來源,指定幾個模型,指定幾個數據清洗的規則,按一個鍵,從頭到尾全部幫我們做完,這樣的話我們就輕松了,那就不用做完ETL后要等一下它有沒有出錯,因為整個自動化就可以像數據下載一樣,在下班之前把東西提交了,第二天早上過來看結果。

Mega是什么?

在這里面還有一個更優勝者,在過去的幾年里面AI的火熱,大量的研發的精力、大量的科研、模型訓練,使我們知道現在不管是哪個模型,在過去的五年有一個飛速的提高。AI的發展模型跟算法有一個飛躍的成長,但是包括ETL數據倉庫,包括大客戶的部署框架、基礎架構落后于AI的需求。在過去的三年里面,ZILLIZ一直專注做GPU加速、AI數據中臺的研發,我們耗時三年,大概花了接近200個人員,我們研發出來的一套系統叫做Mega。Mega理念是什么呢?Mega理念是將所有的資源,包括計算資源,還有存儲資源進行一個統一的管理和調度。

在中間我們看到,在所有的計算資源里面包括了CPU、GPU,還包括在云端可以用到谷歌的CPU,包括FPGA一些計算資源進行訓練。如果把這些存儲異構的計算,用一種統一的接口進行管理,把原數據、邏輯、資源等占用的時間進行一個統一的調度。在整個的A I生命周期里面進行ETL、模型訓練和推理部署時,其實不是一個單線條,而是一個不斷循環迭代的過程,通過數據提取以后,拿到一些數據集合訓練,訓練完以后一個模型作為驗證的記錄不怎么好,就需要拿另外一些數據,或者把數據清洗規則進行修改,這是一個市場的迭代的過程。迭代過程中,我們希望根據下面的資源,不論是計算資源還是數據資源,他們的異構性、存在性、可獲得性進行高效的調度。

在之上的話,ZILLIZ希望給各行各業的應用,不管是人臉識別、語音識別、視頻的分析,還是自然語言處理等等,提供統一接口。

Mega優勢是什么?

這是一個系統的動態示意圖,我們看到在ETL框架里面,MegaETL跟傳統ETL工具,生態做了一個很好的總和。我們看看它的優勢在什么地方,在整個環節里面,不管從ETL、數據倉庫、訓練、以及部署跟決策整個流程,是跟現有的工具集 、生態做了更完整的一個整合。我們希望從第一天開始,大家不管是使用的界面,還是編程的方法,都跟以前使用的東西比較熟悉,減少學習的曲線。

Mega特點是什么?

整個流程都在統一的框架下面,用GPU新一代的、更快的、更好的、更高性價比的資源來進行處理。

那ZILLIZ怎么做的呢?我們知道ETL是大家都公認的臟活和累活,本質上來說就是把一類的數據進行提取,根據使用的規則進行轉換,轉換后加載到下游的一個目標系統。整個ETL的過程耗時特別長,大家可能都有過同樣的經歷,像有一些客戶,他們如果處理幾個TB的數據,可能就以天為單位計算它的ETL周期的;如有幾十個TB的話,大概是幾個小時為單位;有幾百個TB的話,那一般都是以月為單位,衡量ETL保障完成。

有沒有辦法去加速呢?這個時候GPU的優勢就體現出來了,數據的ETL前面是數據提取,提取到轉換的過程,本質上來說是一個計算的過程。在過程上它有一個特別明顯的優勢,在數據的提取的過程中,其實可以高并發的。

舉個例子來說,我們在系統里面有110條的記錄,對每一條記錄用一個規則,要把一個字符串的最后五位把它扔掉,只留前面的十位。這個規則對于每一套記錄都是一樣的。這個時候對11條規則的每一條規則,我可以進行一個很好的處理。我們知道GPU它的強項就是算力特別強,任務如果是能夠并行的,就能夠特別好的鎖定更高的性能。

在實際中,我們有幾個案例,比如多個數據源規劃的案例。在金融方面從多個交易所或者多個第三方機構會拿到不同的數據源。在用之前會做一個統一的數據視圖或者是統一數據源的過程,這個時候就是要把多個數據源,進行去重、規劃。這個過程我們用的MegaETL、GPU來加速,性能提升50到60倍之間的提速。50到60倍,可能大家還沒有特別好的概念。50個小時,基本可以把兩天兩夜的工作,在一個小時內干完,三個小時之內的工作量在10分鐘之內干完。

第二,我們來說說MegaWise,MegaWise是用GPU來加速數據分析的,數據分析過程,也是各個的數據源。將有些數據,做一些復雜的查詢,不管是多張表關聯,還是比較簡單的數據過濾,又或者做數據的聚合。這些數據量比較大的時候,它的性能就會成為一個瓶頸。在10年前有一種叫大數據方案,用集群來做的,集群的本質上來說,一臺服務器如果處理不了,那么就用多臺服務器來做并行。前提是數據分析過程做工作可以很好運行情況下。

如果有100個T的數據,把數據切成很小的一片,每一片10個G或者是100個G,每一臺服務器上面就處理10個G或者100個G的數據。因為100臺服務器并行處理,所以就提高了性能處理的響應時間。那么既然是并行的,在數據處理分析里有個并行的理論技術,這個時候就變成GPU處理的數據了。GPU它對所有關系,包括對并行計算是特別有優勢的。當我們通過GPU來進行高并發的數據處理,我們在一個節點里面,總共大概有17萬個處理核心。也就意味著在任何一個時刻,任何一個施工周期,其實是有17萬個核心已經在并發的處理。如果說傳統的CPU上運行的各種數據,雖然也可以開動多線程、超線程,但它的線程的數量,一般來說是幾十到小一百為單位。而我們在這個GPU的處理框架有一個節點處理的并行度能夠達到十幾萬,這就大大的提高了數據處理的效率。

第三個,MegaLearning是做什么事情的呢?我們看到,在過去的十年里每一個企業每一個行業,陳列了很多的大數據的資產。而這些數據如果要訓練的話,是沒有一個特別直接的一個接口,分為兩方面分析。

一方面來說,這些數據系統是跑在CPU之上;另一方面來說,AI的新需求包括它們調度的一些機制數據,獲取的只有機制,跟這些傳統的做大數據資產端、大數據系統端,是相互獨立的并且是不知道需求的。那么讓所有的用戶能夠更好地利用好自己的大數據資產,同時讓大數據資產以直接的方式,把AI系統、AI的訓練、AI的推理,能夠構建在現有的大數據系統之上。

舉一個簡單的例子來說,我想大家都喝過咖啡。有一家企業,它用的是一個大數據系統,數據文件的沉淀,上百個T它可以整。現在在這里面做一些訓練,比如說過去的20年里面的一個用戶交易有一個關鍵信息。我說在這里面我要去提取用戶的特征,或者說看哪些用戶的有哪些異常的特征把它提出來,并且希望用一種深度學習的模型訓練。顯卡的顯存一般在十個G,如果是分布式的計算大概幾百個G,那么數據加載會更多,那么就會在python程序里面先寫一個緩沖詞做一個調度,先把數據分片,這一百個數據分片的數據里面,根據目標系統的總量,十個G十個G的去拿。

因為Tensorflow之前的表,其實不是為了這個集群是定制的,只是以前的用戶的行為交易表,這個交易表里面有上千個,而訓練時,你會發現在這個3000個維度里面,只用拿里面的幾十個緯度訓練就好了,其它根本都跟這次訓練目標沒有關系,此時就需要寫很多的邏輯。在你的python代碼里面要去拿哪一類的數據,做這種ORM定制,然后關聯數據,當有些數據缺失的時候,我還要把它去刪掉。而這些工作對于AI工程師來說,在整個的Tensorflow模型里面,其實模型的代碼是很經典的,就算是一些復雜的模型,它的模型的代碼其實不會超過300行代碼,用python寫是很高效的,大概就兩三百行代碼。為什么說我們的一個機器學習的完整系統,大概會有幾千萬以上的一個代碼,其實里面80%的代碼是做數據訪問的,所以我們在這個MegaLearning的一個設計的目標,我們希望能夠打通底層數據的資產與上一層的AI和訓練的系統之間的隔閡。以后再做一個AI的訓練的時候,再也不用寫幾千萬行代碼了。其實只要寫300行代碼,數據預處理,可以獲取圖片、數據緩存、數據調度的臟活累活,應該是由這些系統去自動的完成。

MegaSearch是什么?

MegaSearch是用GPU來加速海量特征向量。特征向量,它其實是在AI里面對數據倉庫,對數據處理提出了一個全新的數據類型,它的寬度從幾百個到幾千甚至幾萬,并且整個的深度學習里面,特征向量是一個至關重要一個樞紐般的存在。不管是我們下面講的相似度,還是要找到跟它最相近的一個人臉、語音又或是文本等等,MegaSearch是就是完完全全為這種新興的AI對特征向量新的需求量身定做的。

MegaSearch是能達到一個什么性能?

第一,MegaSearch能做到百億條特征向量的秒級檢索。第二,MegaSearch是用GPU加速,所以成本低。相對于說之前用CPU的方案來說,MegaSearch大概一臺服務器可以替換掉以前10到20臺服務器,所以在特征向量檢索方面,MegaSearch能提供一個超高的性價比,同時還能將投入產出比提高十倍以上。第三,MegaSearch支持自動分區分表,具備高可用、多副本。第四,MegaSearch對各種的模型,不管是為了聲音訓練的,還是圖片視頻來訓練都有一個良好的趨勢,并且是多個學習的框架。在應用的場景里面,無論是不同的一些文件類型,還是人臉識別、機器翻譯、文本查重等等。MegaSearch所有的系統,都支持私有部署、公有部署,在公有部署上面的一個Paas服務。

Mega業務領域

之前提到數據中臺,它其實是一個跨越了各行各業數據的技術中臺,Mega是為了AI對數據處理的一些要求去量身定做的一套端到端的數據處理流水線。那么它不管是在金融、電信、安防等各個領域都有一些廣泛的應用場景。

最后舉幾個例子,比如說我們說實時風控,當實時風控時,有很多的數據源越多越好,但之后就會發現這個數據清洗ETL又變成一個很重要的工作。這個時候的話用我們的這個GPU的加速這個MegaETL解決方案,能夠實現前面的速度清洗有幾十倍的一個提升。同時在風控模型的訓練這一塊,很多現有的機構沉淀的數據都在現有的大數據倉庫之上,那么我們直接用MegaLearning,可以加速訓練,減少開發的難度。

比如說在智慧城市這個領域,智慧城市它的數據量是很大的,各種攝像頭、各種傳感器產生的各種數據,要進行一個同步的數據清洗,因為這個數據特別大,一個城市可能都是幾億條的規模。那么在這么大的一個數據里面,如果說有效的組織這些數據,可以加速這個數據的分析和處理。最后面在訓練好的一些模型里面,不管是說車輛監控、人臉識別、自動的安防等等,我們用的那個MegaSearch,能夠支持海量數據檢索。

以上就是我的分享,謝謝大家的觀看!

我還沒有學會寫個人說明!

MySQL:死鎖一例

上一篇

網絡故障排除的五個簡單步驟

下一篇

你也可能喜歡

AI 數據中臺 Mega 及其應用

長按儲存圖像,分享給朋友

ITPUB 每周精要將以郵件的形式發放至您的郵箱


微信掃一掃

微信掃一掃
重庆时时彩官网直播开奖