新的一年,來看看大數據與AI的未來展望

本文由雲+社區發表

作者:堵俊平

在數據爆炸與智能革命的新時代,新的平臺與應用層出不窮,開源項目推動了前沿技術和業界生態快速發展。本次分享將以技術和生態兩大視角來看大數據和人工智能技術的發展,通過分析當下熱門的開源產品和技術,來梳理未來的行業生態以及技術趨勢。

img

我們今天的主題分爲三塊,第一是從開源的角度看技術、產品和生態,第二,我們從騰訊雲大數據的角度梳理開源的實踐,並跟大家分享一下我們最近一段時間或者最近一年以來我們的貢獻和成果。最後會跟大家一起探討一下開源的大數據以及AI這個生態當中的一些熱點和趨勢。

開源:技術、產品與生態

最近在大數據這個圈子裏,開源圈或者是整個大數據的圈子裏有一個公共性的事件,做發行版的廠商,大數據領域兩大技術巨頭 Cloudera和Hortonworks突然宣佈合併,這兩個公司其實從開源界從商業界,都是互相打的不可開交的兩個公司。從歷史上去觀察這兩個公司,我們當時認爲是完全不可能合併的兩個公司,爲什麼呢會突然合併?

開源大數據的危機?

我之前曾經在其中一家公司工作過,長達4年時間。當時從我的觀察,這兩個公司在這段時間裏面到了老死不相往來的地步,四年的時間只有一個工程師跳到了對方公司。但這樣的公司在今天這樣一個時代,大數據、AI或者雲時代,這兩個公司合併了。合併意味着什麼?外界有很多猜想,這是強強聯手,還是抱團取暖,是主動求變,還是來自資本的壓力,一千個人有一千個答案。我們從外部角度可以看出一些端倪,或者說從整個開源的運動或者開源的社區,生態發展可以看出一些端倪。

第二個開源重要的消息就是說有些開源的廠商在最近這段時間裏面,從完全開源的許可證協議轉向了部分開源,或者說有條件的開源,把一個完全開放的生態變成了變更的許可證協議,mongoDB更改開源協議是可以繼續用我的代碼,如果把它作爲一個服務開放出來的話,要開放所有的支撐服務代碼。Redis加了一個規定是可以正常使用分發,但不能銷售這個產品。我們看到這些曾經樂於開源的廠商,現在對開源的許可證加了很多限制和條款。

img

開源產品的“冰山困境”

總體來說,站在支持純開源的、個人的角度來看,這是從開源到部分限制性的一種倒退。造成倒退的原因是什麼呢?對於基於開源項目的產品,我的總結是可能面臨所謂的冰山困境。什麼意思?就是說從用戶視角去看開源產品也好,或者說非開源的產品也好,可能很多時候關注的是產品的功能和性能。冰山下面的這些技術的複雜性、成熟度可能關注不足,可能在挑選類似功能產品的時候往往從功能、性能、價格等外部的維度角度來考慮。

基於用戶對於功能、性能以及性價比的追求,軟件供應商可能更加放大或者專注於這些差異化的軟件的開發和研發。對於冰山底部的大開源平臺,這個開源部分的能力,他本質上是屬於同質化的。很多軟件供應商會去想:如果我在這裏投入大規模的研發,實際上與市場上的競爭對手的產品之間就體現不出差異性。所以這裏的冰山困境是指對開源產品,不管是用戶還是商業組織,會更多的關注水面以上的部分。造成的結果會是什麼呢?如果大家真的只關注水面上的部分,只關心上層建築是否搭的越來越高,越來越好看,而不注意維護冰山底座的部分,會造成底部消融,如果底部不穩,整座冰山都會出現問題,圍繞開源項目所構建的生態體系就會垮掉。這樣的事情發生的多了,會影響公衆對開源項目與軟件的信心,我們這樣一個開源大發展的時代又會回退到閉源的狀態。

img

開源的產品發展到今天,我們一起要反思一下,爲什麼會出現所謂的冰山困境,怎麼樣突破這些冰山困境。我覺得從一個開源軟件的整個生命週期來看,我們可能有不一樣的觀點。對於開源軟件供應商來說,開發階段用所謂的拿來主義,基於現成的軟件來構建,可以降低他的開發成本,包括在社區裏面利用一些社區外部的資源來促進開發流程或者開發的進度,這些都是很好的佈局。

但是對於測試部分和維護部分,不管是開源軟件的發行商或是雲廠商,可能都有關注不足的部分。什麼意思?剛剛我們說到基於開源可以做開發,可以降低所謂的開發成本,但相應的測試成本並沒有太多的降低,因爲測試的複雜度很高,這些開源軟件都是獨立的社區去開發的。它們之間在版本發佈的時間點上無法做到同步,所以這些不同步造成了很多時候版本之間有版本或者時間點上的衝突,需要你去測試不同軟件之間的邊界與協同。

所以在這個層面上,雖然使用基於開源的軟件去打造一個企業化的軟件,我們可以降低一些開發成本,但是在測試成本這塊,不要輕易降低這部分的成本和投入。在這塊,需要廠商並且清醒的認識和嚴謹的態度。如果測試不到位,對用戶的感覺是開源軟件很不穩定,實際上這不是開源軟件的錯,而是軟件提供商沒有經過嚴格意義上的測試。不管是開源還是閉源,沒有經過充分測試的軟件是不穩定的。

img

不管是開源的,還是閉源產品。重要的不是代碼,重要的是後面的社區、後面的人,如果沒有後面精通這些代碼的人,拿了這些代碼也沒用,因爲有些技術債,是遲早要還的。對於維護階段的技術債,現在的開源軟件提供商、尤其是開源社區投入資源不足的發行商,完全沒有這個概念。如果從軟件整個生命週期來看這個問題,如果在用戶側和軟件提供商側達成這樣一個共識,就自然不僅會專注冰山上面的一層,冰山下的廣大的底座也會相應的重視和加強投入。這樣整個開源生態就會走一個正向、積極的循環。

從維護開源生態健康的角度來說,騰訊雲也有一些相關的嘗試,這裏以雲上的大數據產品爲例,做一些分享,包括後面的一些實際的成果。

騰訊雲大數據的開源實踐與貢獻

舉一款產品,我們叫騰訊雲數據倉庫產品Sparkling,是基於很多開源的技術,打造了一款雲倉庫,它可以對雲上多種數據源進行存儲,比如說雲對象存儲COS,雲數據庫,彈性MapReduce等等,還有傳統的關係型數據庫也可以對接。後面通過數據集成來構建數倉,數據集市來滿足BI等數據應用。它基於非常強大的Hadoop以及Spark開源大數據技術,並進行了相應的一些優化。這些優化已經以patch的方式回饋給社區。同時它提供一個數據開發IDE,這樣用戶可以寫傳統的數據分析SQL,也可以支持機器學習常用的python,R等語言。除此之外,對於數據資產管理、數據門戶、數據質量控制這塊也都有相應的解決方案。

img

值得一提的是,因爲它是一款針對雲的特性而設計的一款數倉產品,所以對於雲特性的利用已經到了一個比較高的階段。我們把所有的節點分爲三種,主節點、核心節點和彈性計算節點。主節點是一些重要的控制性節點,核心節點包含數據節點和計算節點,而彈性計算節點只有計算節點,所以支持可伸縮的部署。我們對開源的項目做了很多改進,比如說支持一些企業級的安全特性,包括對於數據授權和鑑權的支持等等,我們還跟英特爾一起合作,在社區裏面持續優化SparkSQL的任務執行器,在執行的時候可以動態調整執行計劃。我們對於數倉的列式存儲層,也做了很多優化工作,包括我們也回饋到Parquet社區裏的bloomfliter功能來支持更快速的數據掃描。我們當前也在針對於列存做基於MVCC的ACID支持,也有計劃把相應的方案和代碼回饋給社區。我們的這款產品會在開源的基礎上把相應的技術優化提升之後,再回饋給開源社區。

img

所以我們試圖爲這些開源項目做更多的貢獻,如果每一個雲廠商都能夠積極主動的貢獻技術力量、技術資源給開源社區,這對開源的生態健康是非常有意義的。我們還是Apache開源軟件基金會的白金贊助商,這個組織有很多大廠來支持它,爲什麼會有這些大廠來支持?因爲它是很多軟件,包括大數據,包括人工智能等核心軟件背後的一個很重要的源泉,是水源地,我們做這些貢獻和贊助不是因爲有相應的權利保障,而是爲了保護好這個水源地,這對開源生態是非常重要的。我們是國內第一家白金贊助商,我們以後也會持續贊助下去。我們今年也幫助Hadoop,Spark社區發佈了最新的release,我們投入了團隊的committer和PMC在社區裏組織協調這些release的發佈,促進社區的健康發展,也開了國內大數據廠商的先河。我們還是很多開源項目的積極參與方之一,比如Hadoop社區的Ozone項目以及Spark社區的Hydrogen項目等,與社區裏的其他開發者一起協同開發這些項目,尤其把雲廠商的能力和經驗帶進來,最終會使整個社區受益。

img

大數據與AI領域的熱點開源技術

開源大數據技術發展歷程

Apache Hadoop是在2006年左右成立的,這十幾年有了很大的發展,甚至可以說是如日中天的過程。近期的熱點主要在雲原生,包括與AI平臺的集成與協同。還有一個簡單的列表,列出大數據每個細分領域,比如:SQL,流計算等等,可以看到在每個領域都會有很多競品和精品,爲什麼會有這麼多出來?總有人對之前的項目不認同,或者認爲還有改進的空間。從研發資源的組織來說,開源這種跨企業和組織的協同和傳統的企業內組織是很不一樣的。但從結果來看,開源是一種很有效的資源組織方式,既避免了大量的重複車輪子的工作,又保證了更新、更好的輪子能及時出現。

img

大數據與AI技術相互融合

對於數據的訪問之間,我們計算和物理分離,有很強的優勢。數據平臺還會往外進展,可以把GPU能力集成,在這上面通過加強調度,統一數據的訓練以及推理。包括Spark社區也提出了氫計劃,在應用層把大數據和AI開源的框架全部串聯在一起,通過分佈式的調度方式,把這些框架調度到分佈式數據與AI平臺之上。

img

傳統的機器學習和大數據,兩個社區、兩套技術,能不能做一個融合,或者有沒有關聯?相對於傳統的機器學習,深度學習對於數據、大數據的利用,應該說效率更高。因爲傳統的機器學習到一定規模之後,訓練的指標和效果就上不去了,但是Deep Learning是不一樣的,海量的數據可以讓大規模神經網絡有更好的訓練效果。騰訊也開源了Angel的框架。所以在融合的基礎上,我們認爲未來的技術方向,會是AI與大數據技術相互融合的過程,從原始數據導入到數據準備、數據訓練到模型部署,整個是一套閉環,這是未來的一個趨勢。

img

總結

最後做一個簡單的總結,我們認爲開源項目屬於社會公共資源,就像是水,上善若水,水潤萬物,雖然需要有人來維護,但其核心屬性仍然是免費的公共品。在開源生態圈的利益相關方,包括我們的用戶,包括我們的軟件提供商,包括我們的開發者,我們都是有義務來投入資源,來維護這片水源地的。我們需要建設好社區生態,讓開發者可以對接用戶的需求。未來這個社區的開發方向和用戶實際的需求可以做直接的對接,而不一定通過軟件供應廠商,因爲廠商的優先級很多時候體現了付費客戶的需求,尤其是大客戶的優先需求。面對海量的開發者與社區用戶,我們需要這樣一個平臺,讓長尾的用戶能夠把聲音傳遞到社區,和社區長尾的開發者對接,這樣才有助於社區的健康發展。

我們要重視社區、重視人,而不是重視代碼本身。有些公司開源的代碼,會有人跳出來會說你這個代碼寫的不好,我覺得這是一個對開源非常不友好的行爲。不管是任何公司開放任何代碼,這都是值得鼓勵的一個現象。如果代碼寫的不好,你可以幫助它變好,哪怕是寫一個類似的東西開放出來和它競爭。開源在中國還是一個萌芽期,在這個情況下過分強調代碼質量,而不是開源本身的行爲,我覺得會有點拔苗助長。

最後一句話總結今天的演講,第一個是作爲我們的開發者來說應該大膽開源,把一些產品還有技術大膽的開源出去,開源有很多的商業模式,我覺得開源軟件的商業模式在雲時代下會越來越成功。第二個是對於用戶來說,要放心、大膽的使用開源軟件和技術,因爲這個時代基於開源技術的產品完全可以滿足大多數的場景和需求,而且能夠保證你不被少數的閉源軟件所綁架。

此文已由作者授權騰訊雲+社區在各渠道發佈

獲取更多新鮮技術乾貨,可以關注我們騰訊雲技術社區-雲加社區官方號及知乎機構號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章