1. 程式人生 > 其它 >從大資料技術變遷猜一猜AI人工智慧的發展

從大資料技術變遷猜一猜AI人工智慧的發展

目前大資料已經成為了各家網際網路公司的核心資產和競爭力了,其實不僅是網際網路公司,包括傳統企業也擁有大量的資料,也想把這些資料發揮出作用。在這種環境下,大資料技術的重要性和火爆程度相信沒有人去懷疑。

而AI人工智慧又是基於大資料技術基礎上發展起來的,大資料技術已經很清晰了,但是AI目前還未成熟啊,所以本文就天馬行空一下,從大資料的技術變遷歷史中來找出一些端倪,猜一猜AI人工智慧未來的發展。


最近斷斷續續的在看《極客時間》中「 從0開始學大資料 」專欄的文章,受益匪淺,學到了很多。尤其是非常喜歡作者李智慧講的那句話“學習大資料最好的時間是十年前,其次就是現在”,把這句話改到AI也適用,“學習AI最好的時間是十年前,其次就是現在”,任何知識都是這樣。下面我們就來詳細聊一聊。


一、先聊一聊大資料技術發展史?
我們使用的各種大資料技術,最早起源於Google當年公佈的三篇論文,Google FS(2003年)、MapReduce(2004年)、BigTable(2006年),其實Google當時並沒有公佈其原始碼,但是已經把這三個專案的原理和實現方式在公佈的論文中詳細的描述了,這幾篇論文面世後,就引爆了行業的大資料學習和研究的浪潮。


隨後一個叫 Doug Cutting 的技術大牛(也就是寫 Lucene 的那位,做JAVA的同學應該都很熟悉)就開始根據Google公佈的論文去開發相關係統,後來慢慢發展成了現在的 Hadoop,包括 MapReduce 和 HDFS。


但是在當時,使用 MapReduce 進行資料分析和應用還是有很大門檻的,畢竟要編寫 Map 和 Reduce 程式。只能大資料工程師上馬,普通BI分析師還是一臉懵逼。所以那個時候都是些大公司在玩。


既然有這麼大門檻,就會有人勇於站出來去解決門檻,比如 Yahoo,他們開發一個叫做 Pig 的東西,Pig是一個指令碼語言,按照Pig的語法寫出來的指令碼可以編譯成 MapReduce 程式,然後直接在 Hadoop 上運行了。


這個時候,大資料開發的門檻確實降了一點。


不過,Pig大法雖好,但還是需要編寫指令碼啊,這還是碼農的活兒啊。人們就在想,有沒有不用寫程式碼的方法就能做大資料計算呢,還真有,這個世界的進步就是由一群善於思考的“懶人”推動的。


於是,Facebook公司的一群高智商傢伙釋出了一個叫做 Hive 的東西,這個 Hive 可以支援使用 SQL 語法直接進行大資料計算。原理其實就是,你只需要寫一個查詢的 SQL,然後 Hive 會自動解析 SQL 的語法,將這個SQL 語句轉化成 MapReduce 程式去執行。


這下子就簡單了,SQL 是BI/資料分析師們最為常用的工具了,從此他們可以無視碼農,開開心心的獨立去寫Hive,去做大資料分析工作了。Hive從此就火爆了,一般公司的大多數大資料作業都是由Hive完成的,只有極少數較為複雜的需求才需要資料開發工程師去編寫程式碼,這個時候,大資料的門檻才真真的降低了,大資料應用也才真正普及,大大小小的公司都開始在自己的業務上使用了。


但是,人們的追求不止如此,雖然資料分析便利了,但是大家又發現 MapReduce 程式執行效率不夠高啊,其中有多種原因,但有一條很關鍵,就是 MapReduce 主要是以磁碟作為儲存介質,磁碟的效能極大的限制了計算的效率。


在這個時候,Spark 出現了,Spark 在執行機制上、儲存機制上都要優於 MapReduce ,因此大資料計算的效能上也遠遠超過了 MapReduce 程式,很多企業又開始慢慢採用 Spark 來替代 MapReduce 做資料計算。


至此,MapReduce 和 Spark 都已成型,這類計算框架一般都是按“天”為單位進行資料計算的,因此我們稱它們為“大資料離線計算”。既然有“離線計算”,那就必然也會有非離線計算了,也就是現在稱為的“大資料實時計算”。


因為在資料實際的應用場景中,以“天”為顆粒出結果還是太慢了,只適合非常大量的資料和全域性的分析,但還有很多業務資料,資料量不一定非常龐大,但它卻需要實時的去分析和監控,這個時候就需要“大資料實時計算”框架發揮作用了,這類的代表有:Storm、Spark Streaming、Flink 為主流,也被稱為 流式計算,因為它的資料來源像水流一樣一點點的流入追加的。


當然,除了上面介紹的那些技術,大資料還需要一些相關底層和周邊技術來一起支撐的,比如 HDFS 就是分散式檔案系統,用於負責儲存資料的,HBase 是基於HDFS的NoSQL系統、與 HBase類似的還有 Cassandra也都很熱門。


二、再看一看大資料技術架構?
瞭解大資料相關技術可以先看下圖:

(圖片來源網路)


這圖基本上很全面的展示了大資料的技術棧,下面將其主要的部分羅列一下,以便有個清晰的認知:


大資料平臺基礎:

  • MapReduce,分散式離線計算框架
  • Spark,分散式離線計算框架
  • Storm,流式實時計算框架
  • Spark Streaming,流式實時計算框架
  • Flink,流式實時計算框架
  • Yarn,分散式叢集資源排程框架
  • Oozie,大資料排程系統

分散式檔案系統:

  • HDFS,分散式檔案系統
  • GFS,分散式檔案系統

SQL引擎:

  • Spark SQL (Shark),將SQL語句解析成Spark的執行計劃在Spark上執行
  • Pig,Yahoo的釋出的指令碼語言,編譯後會生成MapReduce程式
  • Hive,是Hadoop大資料倉庫工具,支援SQL語法來進行大資料計算,把SQL轉化MapReduce程式
  • Impala,Cloudera釋出的執行在HDFS上的SQL引擎

資料匯入匯出:

  • Sqoop,專門用將關係資料庫中的資料 批量 匯入匯出到Hadoop
  • Canal,可以 實時 將關係資料庫的資料匯入到Hadoop

日誌收集:

  • Flume,大規模日誌分散式收集

大資料探勘與機器學習:

  • Mahout,Hadoop機器學習演算法庫
  • Spark MLlib,Spark機器學習演算法庫
  • TensorFlow,開源的機器學習系統

三、猜一猜AI人工智慧的發展?
通過上面的回顧,我們知道了,因為大量資料的產生導致大資料計算技術 MapReduce 的出現,又因為 MapReduce 的參與門檻問題,手機靚號拍賣地圖導致了 Pig、Hive的出現,正是因為這類上手容易的工具的出現,才導致大量的非專業化人員也能參與到大資料這個體系,因此導致了大資料相關技術的飛速發展和應用,又從而進一步推動了機器學習技術的出現,有了現在的AI人工智慧的發展。


但目前人工智慧技術的門檻還比較高,並不是任何企業都能入場的,需要非常專業化的高階技術人才去參與,普通人員只能望而卻步,因此AI技術的應用受到了極大的限制,所以也不斷的有人提出對人工智慧提出質疑。


講到這裡,有沒有發現點什麼問題?


歷史的規律總是那麼相似。可以猜測一下,人工智慧的門檻有一天也會像 MapReduce 的開發門檻一樣被打破,一旦人工智慧的參與門檻降低了,各類大小企業都能結合自己的業務場景進入AI領域發揮優勢了,那AI就真的進入高速發展的通道了,AI相關實際應用的普及就指日可待了。


恩,一定是這樣的,哈哈,現在就可以等著大牛們將AI的基礎平臺建設好,然後降低參與門檻,進一步就迎來了AI的一片光明,大家從此就可以過上AI服務人類的美好生活了(暢想中…)。


以上,就是從大資料技術變遷想到AI人工智慧發展的一些想法,歡迎大家留言交流,多多點選文章右下角的“好看”。