從網際網路+角度看雲端計算的現狀與未來

網易雲社群發表於2018-04-26

本文由 網易雲 釋出。


作者:劉超

網際網路這個詞目前已經普遍化,這大概也歸功於羅振宇的羅輯思維對於網際網路概念的極力宣揚,似乎不加上網際網路三個字,企業宣傳都張不開嘴。於是網際網路+這個名詞就隨處可見了。

支撐網際網路化的一個重要的力量就是雲端計算。但現在的雲已經外延被擴大的不知道到哪裡去了,什麼財務雲,發票雲等等,讓我們這些做計算、網路、儲存、中介軟體、大資料的,都沒辦法和這些外延清晰的區分出來。

現在人工智慧火了,也加入到了雲端計算的範疇中來,因而各種智慧雲都出來了,智慧教育、智慧醫療、智慧交通等。

傳統行業中幹辛苦活的,眼睜睜的看著網際網路公司雙十一一天賺了一年的錢,於是紅著眼睛也想紛紛上船,踏上網際網路化、雲化、智慧化的浪潮。

我們來盤點一下當前的現狀,展望一下未來。

一、回望那些火過的網際網路應用,發現歷史竟如此相似

網際網路都火過啥,從最早興起的三大入口網站,Google退出後大家爭相追逐的搜尋引擎、社交網站、電商、微博、團購、互金、視訊網站、O2O、直播、單車等等,一波接著一波,長江後浪推前浪,前浪死在沙灘上。

他們都經歷著下面的這個迴圈。

從網際網路+角度看雲端計算的現狀與未來

首先要有個人有個創意,做一個沒有的產品或發明一種沒有的商業模式,當創意得到市場認可的時候,就迎來了市場的爆發,大家紛紛湧入,做同質化的產品,將一個新興的市場變成一個紅海,在紅海中進行生死較量,有的退出了,有的倒閉了,有的被兼併,最終只能剩下兩三家,或者成為巨頭,或者被巨頭收購。

前面所說的這樣浪潮,都沒有逃脫這個迴圈,唯一不同的是,這個迴圈越來越快,入口網站的角逐持續了好多年,而最近的這些浪潮一般十八個月就會見分曉。創業公司越來越發現,融的資看起來一輪比一輪大,但是都花不了太久時間。

市場沒有耐心,你不採取激進的市場策略,競爭對手會的,你便宜,對手更便宜,你免費,就有人敢補貼。

投資人沒有耐心,不在短期內拿出傲人的成績,你就不會有下一輪,所以不花錢,被對手的聲勢碾壓了,沒有下一輪,是個死,使勁花錢,把對手碾壓了,在勝出之前,沒有下一輪,還是個死。

核心員工沒有耐心,如果想公司有較快的發展,必須要找到牛的人,牛的人往往很貴,會讓你融的錢花的很快,當然有一部分創業者可以通過願景和期權留住牛人,但是這是有實效的,牛人往往社交面廣,有獨立的思維,不是那麼容易被忽悠住的,牛人往往身懷絕技,容易被挖,所以除了畫餅,你還需要不斷的兌現一些餅,例如你的生意要在較短的期限內有一個起色,或者到另外一個高度。

所以隨著這個迴圈越來越快,留給網際網路公司的時間越來越少,能勝出的網際網路公司往往具備快速的迭代速度,對傳統行業進行衝擊。而傳統行業的老闆們也想通過加上網際網路能力,獲取相同的競爭優勢。那到底什麼才叫網際網路化呢?

二、什麼才是網際網路公司,什麼才是AI公司

吳恩達在AI Conference的講座中,提到了他對什麼是網際網路公司,什麼是AI公司的理解,我覺得非常的深刻。

(1) 商場 + 網站 ≠ 網際網路公司

如果你是一個傳統的商場,僅僅是做了一個網站,那不叫網際網路化。

從網際網路+角度看雲端計算的現狀與未來

真正標識一個網際網路公司的,有以下幾點:

  • A/B測試,讓資料說話:當你有一個頁面需要改進,你的網站設計成什麼樣,你的APP設計成什麼樣,是你們一層層的回報,然後讓老大決策的麼?大老闆往往很危險,因為他不一定了解客戶的偏好,而主觀認為的偏好,在實際測試的時候,往往結果大相徑庭,所以不要讓老闆拍板,而是讓資料說話,通過線上測試兩種方案的結果,得出最後的結論,雖然做不到迅猛提升,但是可以保證每一次的修改,都是正向的。
  • 更短的週期:你的應用的迭代速度必須足夠的快,而且迭代是基於資料的,根據資料的反饋,不斷的小步快跑,這需要組織和流程有很強的適應能力。和傳統公司幾個月升一次級不同,網際網路公司幾乎每天都升級,當你開啟各種APP的時候,你會發現介面動不動就改了。
  • 工程師和PM做決策:如何才能快速上線呢?如果每次上線都要一百多人開大會,讓老大做決定,那肯定快不了,應該讓工程師和PM做決策,他們才是真正聽得到炮火的人,你需要讓他們獨立負責一塊內容,獨立決策,獨立上線,獨立負責,所有的PM並行工作,才使得更新速度飛快。

(2) 傳統科技公司 + 機器學習/神經網路 ≠ AI公司

如果你是一家傳統公司,只是其中的一個部門用上了機器學習和神經網路技術,那你不是一家AI公司。

從網際網路+角度看雲端計算的現狀與未來

一家真正的AI公司,應該有如下的特點:

  • AI公司傾向於戰略性地獲取資料:資料是一家AI公司的基石,所以如果想讓您的公司智慧化,獲取資料要放到戰略高度。其實很多公司已經這樣做了,那些所謂的一切都要電子化,一切都要APP化,不接受現金和線下購買和支付,通過各種終端滲透到你的生活中,你覺得很方便,一會兒開啟一個APP幹這個,一會兒開啟另一個APP幹別的,你的整個畫像就被勾勒的一清二楚了。所以你會經常受到各種廣告,這說明他們已經大資料化了,但是還沒智慧化,做到了精準的畫像,但是沒有做到智慧的推送,還是演算法有點愣,但是戰略,你是能夠感受到的。
  • AI公司通常有統一的資料倉儲:資料是應該打通的,如果在你的公司裡面獲取全量的資料,需要和50個部門溝通,那說明還沒有大資料化,更別提智慧化。你們公司應該有統一的使用者中心,統一的商品中心,統一的大資料平臺,你的使用者無論是用你的哪一款產品,應該感覺到產品之間是互通的,而非孤立的,這對組織的架構,系統的架構,資料的架構都有要求。

在AI公司裡,產品經理在和工程師溝通的時候,需要學會運用資料,要求精確的反饋。產品經理除了有客戶思維,應該有資料思維,就像吳恩達說的一樣,做一個人工對話機器人,產品經理畫一個框,裡面一個小人,是沒有意義的,要知道資料從哪裡來,如何獲取這些資料,如何利用這些資料,如何定量的評估人工對話機器人的效果是否有提升,這不能感性的來,也是要有資料。

三、傳統公司網際網路化所應該考慮的三大架構

從網際網路+角度看雲端計算的現狀與未來

要想讓你的公司儘快的實現網際網路化,需要從三大架構考慮。

  • 第一個是IT架構,如何降低CAPEX和OPEX,如何減輕運維的負擔。IT架構越來越複雜,能夠把一個IT架構玩的很好,團隊需要越來越大,招聘的人會越來越貴,如果你不是一個搞IT行業的,而是一個做金融的,製造的,醫療的,你會發現這一塊成本越來越大。雲化就是一個必然的趨勢,所謂讓專業的人幹專業的事情。
  • 第二個是應用架構,如何實現快速迭代,如何抗住網際網路化後的高併發的流量。服務化是必須的趨勢。每個小團隊負責一個獨立的服務,迭代速度就快了。每個模組一個獨立的服務,可以獨立擴充套件,就能夠抗住來自網際網路上的高併發。例如傳統的金融支付遇到網際網路支付,頻率突然高了N倍,不服務化就搞不定。
  • 第三個是資料架構,如何形成統一的資料平臺,並給予資料進行數字化運營。服務化另一個有利的方面是可以將類似的資料集中,而有了資料後,如何進行運營,向客戶提供精準的推薦,實現大資料化,進一步實現智慧化,是必須要考慮的。

四、IT架構趨勢一:從資源彈性向架構彈性轉變,網際網路公司和傳統公司差距越來越大

當前雲化已經成為業內的共識,但是雲端計算的目前的狀態還處於雲端計算1.0時期,也即僅僅實現了資源層面的彈性。

從網際網路+角度看雲端計算的現狀與未來

什麼叫彈性呢?

說的通俗一點就是靈活性,主要包含兩個方面的靈活性,一個是時間靈活性,也即想什麼時候要就什麼時候要,一個是空間靈活性,也即想要多少,就要多少。

人們之所以雲化,是因為物理機是無法實現這種靈活性的。物理機有四個方面的不靈活,一是採購不靈活,採購期短則一兩週,長則一兩個月,二是粒度不靈活,無法採購一個1核1G1M頻寬的機器,三是複用不靈活,同樣一臺物理機,一個人用過了,很難復原成原樣,讓另外一個人使用,除非重灌系統,四是運維不靈活,很多事情要去機房才能搞定,而機房往往在最偏的地方。

虛擬化技術解決了這個問題,點即可得解決採購靈活性問題,可大可小解決粒度靈活性問題,即創即銷解決複用靈活性問題,介面運維解決運維靈活性問題。唯一沒有解決的問題是排程靈活性,需要手動運維,因而規模有限。

雲端計算的排程技術使得叢集規模非常的大,並且可以自動排程,從而從客戶的角度,真正實現資源彈性。

從網際網路+角度看雲端計算的現狀與未來

但如果雲端計算不管應用,則會是什麼樣呢?例如平時我們只需要十臺虛擬機器,但是雙11的秒殺場景,我們需要一百臺虛擬機器,有了雲端計算資源層面的彈性,我們只要在雲平臺上一點,很快90臺虛擬機器就建立出來了,但是裡面的應用呢?

還是需要我們的運維人員一臺一臺去安裝,實在是太複雜了,無法實現真正的彈性。

從網際網路+角度看雲端計算的現狀與未來

於是我們開始想雲端計算如何來管理應用。

我們把應用分成兩種,一種叫做通用的應用,例如這裡面寫的Spark,Mysql,Hadoop,這些應用的特點是通用,誰安裝都一樣,但是運維起來又相對比較複雜,應該交給雲平臺去運維和擴容。另一種叫自己的應用,這些應用的安裝雲平臺無法幫到你,因為你自己的應用只有你自己知道怎麼安裝,所以雲平臺往往提供了一些基於指令碼的工具來做這些事情,例如Chef、Puppet、Ansible等。但是指令碼有一個最大的弱點,一旦環境有差異,指令碼就很難順利執行成功,所以導致基於指令碼的安裝工具,實現跨雲遷移非常困難。

於是容器應運而生。


從網際網路+角度看雲端計算的現狀與未來

容器的英文是Container,Container另一個意思是集裝箱,其實容器的思想就是要變成軟體交付的集裝箱。集裝箱的特點,一是打包,二是標準

在沒有集裝箱的時代,假設將貨物從A運到B,中間要經過三個碼頭、換三次船。每次都要將貨物卸下船來,擺的七零八落,然後搬上船重新整齊擺好。因此在沒有集裝箱的時候,每次換船,船員們都要在岸上待幾天才能走。

有了集裝箱以後,所有的貨物都打包在一起了,並且集裝箱的尺寸全部一致,所以每次換船的時候,一個箱子整體搬過去就行了,小時級別就能完成,船員再也不能上岸長時間耽擱了。

這是集裝箱“打包”、“標準”兩大特點在生活中的應用。

部署任何一個應用,也包含很多零零散散的東西,許可權,使用者,路徑,配置,應用環境等!這就像很多零碎地貨物,如果不打包,就需要在開發、測試、生產的每個環境上重新檢視以保證環境的一致,有時甚至要將這些環境重新搭建一遍,就像每次將貨物解除安裝、重灌一樣麻煩。中間稍有差池,都可能導致程式的執行失敗。

那麼容器如何對應用打包呢?還是要學習集裝箱,首先要有個封閉的環境,將貨物封裝起來,讓貨物之間互不干擾,互相隔離,這樣裝貨卸貨才方便。

另外就是如何將這個集裝箱標準化,從而在哪艘船上都能運輸。這裡的標準一個是映象,一個是容器的執行環境。

所謂的映象,就是將你焊好集裝箱的那個時刻,將集裝箱的狀態儲存下來,就像孫悟空說定,集裝箱裡面就定在了那一刻,然後將這一刻的狀態儲存成一系列檔案。這些檔案的格式是標準的,誰看到這些檔案,都能還原當時定住的那個時刻。將映象還原成執行時的過程(就是讀取映象檔案,還原那個時刻的過程)就是容器的執行的過程。

有了容器,雲端計算才真正實現了應用層和資源層的完全彈性。

從網際網路+角度看雲端計算的現狀與未來


從網際網路+角度看雲端計算的現狀與未來


在這裡暫時總結一下,雖然從技術角度來講,容器已經成為一個趨勢,然而在真正的實施過程中,雲端計算1.0時代,將應用雲化的過程,很多傳統公司尚未完成。然而,在大型的網際網路公司,基於容器的雲端計算2.0技術實現架構的全彈性伸縮,已經在大規模使用。容器的三大平臺戰役已經落下帷幕,Kubernetes已經全面勝出,現在在網際網路公司的論壇中,再講容器技術,已經感覺是很老套的技術了,然而在很多傳統企業,雲化卻尚未完成,這中間鴻溝巨大,利用容器技術的快速迭代,將是對還未進行雲化的公司的降維打擊。

五、IT架構趨勢二:雲化容器化不可逆轉,IT人員越來越貴,只有規模大才能降低成本,通過自動化和智慧化,讓少數的高薪IT人員管理大規模叢集

也有人會說,你老說雲化,雲化怎麼好,能夠降低成本,可真正實踐下來,雲的技術雖然在不斷的進行迭代,然而我的運維成本,還越來越高。


從網際網路+角度看雲端計算的現狀與未來

原來用物理機的時候,其實我只需要懂基本的Linux知識就可以運維了,後來你們忽悠我上虛擬化軟體,虛擬化軟體非常非常的貴,能夠會使用虛擬化軟體證書的人更貴。後來虛擬化軟體存在繫結的問題,於是你們忽悠我用開源的虛擬化軟體OpenStack,誰知道開源並沒有免費,如果不進行適配和定製,基本上沒辦法在生產環境中使用,但如果一旦定製,又變成了一個私有化的軟體,這時候我的運維人員,不但要會用虛擬化軟體,還需要去開發虛擬化軟體,能開發虛擬化軟體的實在是非常貴,而且如果自己運維OpenStack沒有五十甚至一百人的團隊,根本搞不定,後來你們說應該用容器,可是用了容器以後,計算網路儲存的技術一樣不能少,而且還要懂應用,全棧工程師就更加貴了。

雲端計算真的能夠降低成本嗎?難道我用了假的雲端計算?

接下來我們詳細分析一下雲端計算的使用方式。

從網際網路+角度看雲端計算的現狀與未來

最簡單的使用方式,當然是使用公有云,公有云就相當於你買了一個公寓房,成本非常的低廉,同時隔離也是邏輯的,在高峰期的時候,不免有爭搶資源的現象。

從網際網路+角度看雲端計算的現狀與未來

如果你想不被爭搶資源,可以使用專屬主機,就相當於買了一整棟單元樓,這臺物理機上的所有的虛擬機器都是你的,然而很多PaaS服務如資料庫還是在公用叢集上的。

從網際網路+角度看雲端計算的現狀與未來

於是有很多公司就想建設自己的私有云,把這比喻成為住別墅,其實這頂多是農村自建房,因為你可能需要去別人的資料中心裡面租一塊地,然後或者自建雲平臺,或者招標雲平臺。沒有人會去想住別墅的時候,自己拿地自己去蓋,自己出了問題自己去修,這樣部署運維更新,成本非常的高,你需要自己養一個專業的運維團隊來做這件事情。

這種方式往往只能解決心理上的安全問題,真的安全嗎?不一定。就像農村自建房,沒有完善的物業,也沒有完善的保安一樣,託管在別人資料中心中的雲平臺,很難保證不被鄰居機架上不專業的運維行為威脅你的安全。你搭建了雲平臺,你的鄰居機架上直接用物理機,我們經常見到有的小公司在公司裡面一個VPN,將辦公網路和機房的物理機連通起來,辦公網的wifi非常不安全,如果有黑客能夠到達鄰居的物理機,很可能就能黑到你的物理機上面來。

從網際網路+角度看雲端計算的現狀與未來

除非你是大土豪,例如電信銀行電力,自己拿地,自己建資料中心,自己,有成百上千人的運維團隊,有非常完善的機房運維流程,就相當於川普自己拿塊地自己蓋別墅,自己招聘物業,自己僱保安,當然是最最安全的。可能大部分的傳統企業,都不能享受這樣的待遇。

從網際網路+角度看雲端計算的現狀與未來

網易雲專屬雲服務,商業別墅型雲服務。地網易來拿,房子網易來蓋,物業網易來管,保安網易來招。相當於在網易的機房裡面,劃出一塊地方來,這個地方上面部署的雲平臺資源全是你自己的,但是硬體、網路、安全、安裝、升級、修復,你都不用來管,有非常專業的運維團隊來做這件事情,這些運維操作保證安全合規,你只需要關注自己的應用就可以了。

從網際網路+角度看雲端計算的現狀與未來

網易為什麼要推出專屬雲呢?因為我們認為雲化容器化的趨勢是一定的,前面所敘述的道路本身沒有錯誤,能懂OpenStack和Docker的技術牛人越來越貴是必然的,只有規模越來越大,才能體現雲的成本優勢。例如谷歌,谷歌裡面的運維工程師相當相當貴,有幾十萬,甚至上百萬美金的年薪,他們掌握這些最先進的技術是沒有任何問題的,但是他們會通過各種自動化,甚至智慧化的技術,管理全球的幾百萬臺機器,這樣成本攤下來就不是很高了,所以谷歌完全養得起。如果你只是運維一個幾十個節點,最多幾百個節點的雲平臺,同樣需要招一些這麼貴的人,一般的企業肯定受不了,所以對於大部分企業來說,應該將IT架構交給最專業的牛人。

我個人甚至認為,將來只有兩種雲平臺,一個是大規模公有云平臺,一個是土豪的自建雲平臺,其他的形式都會隨著技術的越來越先進,運維人員的要求越來越高,運維人員的年薪越來越貴,而消失。

六、業務架構趨勢一:網際網路衝擊已成必然,快速變更成為核心競爭力,DevOps重構組織架構,流程,文化是必然選擇

在業務架構方面,我這裡強調的是服務化。是解決如何避免開發和運維的黑天鵝問題。

從網際網路+角度看雲端計算的現狀與未來

所謂黑天鵝,就是遇到了原來沒有遇到過的問題,原來我們想象應用不改,從而穩定,已經因為網際網路的衝擊而成為了泡影。

網際網路要求你的應用變化快,所以你不得不改。你的傳統的應用,例如傳統的刷卡支付,一旦對接到網際網路平臺,例如線上支付,你所面臨的吞吐量,比原來大很多倍,這是一個新問題,不改比改風險更大。

所以,如上面那個圖中所說,因為變化快,所以我們要把應用,拆成微服務,每一個模組獨立迭代,獨立釋出,這樣才能應對變化。因為扛不住,所以我們還是要用微服務,原來一個程式去扛,現在多個應用一起去扛,才可能扛住。

然而拆成了微服務,服務多了,版本也多了,運維就變成了一個大難題,一般的傳統公司,開發和運維的比例相當高,讓如此少的運維去運維如此多的服務和版本,運維壓力非常大,而且會非常的不穩定。

所以這個時候是應該使用容器,使得對於環境的部署這件事情提前到開發階段來做,開發人員不能做甩手掌櫃,而從開發完程式碼的時候,就要關心環境的配置,生成容器映象。

這個時候,雖然每個開發都多了一些工作,但是每個模組的開發人員,僅僅維護自己模組的容器映象,工作量不是特別大,而如果把所有的環境部署全部交給少數的運維,則非常容易出錯,這其實是相當於每個開發多了5%的工作量,從而減少了運維人員200%的工作量。

有人說這樣運維部開心了,開發部不願意打映象怎麼辦呢,所以這就需要DevOps的文化,將開發和運維中間的牆打通,才能加快迭代速度,保障系統的穩定性。

從網際網路+角度看雲端計算的現狀與未來

網易有一個專門做DevOps的質量管理平臺,將整個過程打通。

從網際網路+角度看雲端計算的現狀與未來


這裡面還有一個故障演練平臺,是利用故意的方式,模擬一些系統錯誤,從而測試系統的穩定性和容錯性,只有經過了故障演練系統還不出問題,才是真正的穩定,而不是不動它,因為你不動它,不知道什麼原因,突然他掛了整個系統就不可用了,如果你時常故障演練,在演練的過程中,還能保持系統可用,這才是避免黑天鵝的主動出擊的方法。

從網際網路+角度看雲端計算的現狀與未來

所以網際網路化的衝擊,使得原來所有不變就相當於穩定的幻想破滅了,快速變更,成為核心競爭力,DevOps的文化成為必然的選擇,這就是我們常說的高頻打低頻。

七、業務架構趨勢二:服務化形成能力複用中心,快速推出產品,打通資料平臺,佔領新產業生物鏈的高階

服務化的第二個作用,就是可以形成能力複用的中心。

如果像原來那樣煙囪式的系統建設,會使得資訊之間彼此是獨立的,而且每當開發一個新應用,成本都會非常的高,每個系統都有自己的使用者管理,每個系統都有自己的商品管理。其實應該有一個使用者中心,有一個商品中心,並且使用者中心和商品中心全部做成服務,這樣當你要開發一個新的系統的時候,你只要呼叫使用者中心的介面就可以了,不需要重新開發一個使用者中心繫統,當這樣的能力複用的中心越來越多的時候,你創新出來的新的應用會越來越薄,越來越輕便,推出的越來越快。而且這樣資訊也是彼此互通的,一個使用者聽了音樂,買了商品,坐了公交,買了海鮮,上了線上課程,這樣一個完整的使用者的畫像,就能夠勾勒出來。

從網際網路+角度看雲端計算的現狀與未來
從網際網路+角度看雲端計算的現狀與未來

只有資料打通,資料才能成為你的核心競爭力之一,只有能力複用,才能儘快推出新的產品。

現在所謂的新零售,和第四方物流,都是要建立這樣的資料中心和能力中心。最苦最累的活兒,比如說最終端的送快遞,平臺不會去做,然而物流怎麼流通,到底送到哪裡,倉儲如何分配,這個卻在能力中心和資料中心已完成。新零售也是同樣的道理,你的供應鏈,到底應該進哪些貨,進多少,什麼時候送到哪裡,這些統一的資料中心和能力中心都會幫你計算,你只要老老實實開你自己的小店就可以。這樣,無論你是一個開店的,還是一個終端物流,你的喉嚨就在別人的手中,苦活都是你來幹,鈔票都是別人賺。

八、資料架構趨勢一:戰略性的資料收集,整合,反饋使得公司成為AI時代牌桌上的競爭者的基礎

從網際網路+角度看雲端計算的現狀與未來

對於資料的收集和資料的應用的頻率和實時性,是網際網路公司和傳統公司的一大區別。很多傳統的公司也有自己的運營平臺,然而它的運營工作是從各個終端收集資料,然後用Excel表格進行整理,每兩週做一次整合,寫成報告,然後反饋給高層,高層根據這些報告,作出下一個階段的運營策略,從而指導下一個階段的運營。

這種運營方式在傳統行業是沒有問題的,然而對於網際網路公司是不可能的。大家可能想象,對於一家電商來講,618和雙11是多麼的重要,一年中大部分的營業額都是在這兩天完成的,而最關鍵的就是凌晨過後的四個小時,在雙11的凌晨的四個小時中,所有的運營都要在現場,他們看著大資料平臺發出來的實時資料,需要迅速的推出營銷策略,保證在這四個小時之內能夠大賣,如果這四個小時完不成,很可能他一年的業績指標就會完不成,這種實時性和靈敏度是傳統行業無法想象的。

從網際網路+角度看雲端計算的現狀與未來

所以戰略性的資料整合,是數字化運營的一個前提,所以說你的所有的終端的資料都要收集起來,這裡面有交易的資料,可以存放在資料庫裡面,也有埋點的瀏覽的資料,可以放在日誌庫裡面,另外還有客服的資料,也可以統一收集起來,放到大資料平臺中,進行統一的分析,並通過BI實時反饋給運營。

從網際網路+角度看雲端計算的現狀與未來

今年有一個非常火的節目,就是羅永浩和羅振宇進行了九個小時的長談,在這裡面,羅永浩說了一個牌桌理論,就是他想從事最大的計算平臺——手機,使得下一次浪潮的時候,先不說勝出,至少能上牌桌。這個理論同樣適用於AI,先不談AI時代的勝出問題,戰略性的收集資料,實時的反饋資料,還能成為AI公司牌桌上的競爭者。

九、資料架構趨勢二:人工智慧雖然如火如荼,概念多,落地少,人工智慧模型通用性差,試用範圍小,需要場景化落地,通用人工智慧任重道遠。

從網際網路+角度看雲端計算的現狀與未來

人工智慧主要經歷了三個階段,第一個階段,我們稱為專家系統階段,希望專家能夠把一些知識總結出來,告訴機器。但是知識這個事兒,一般人可能就做不來了,可能專家可以,比如語言領域的專家,或者財經領域的專家。語言領域和財經領域知識能不能表示成像數學公式一樣稍微嚴格點呢?例如語言專家可能會總結出主謂賓定狀補這些語法規則,主語後面一定是謂語,謂語後面一定是賓語,將這些總結出來,並嚴格表達出來不久行了嗎?後來發現這個不行,太難總結了,語言表達千變萬化。就拿主謂賓的例子,很多時候在口語裡面就省略了謂語,別人問:你誰啊?我回答:我劉超。但是你不能規定在語音語義識別的時候,要求對著機器說標準的書面語,這樣還是不夠智慧,就像羅永浩在一次演講中說的那樣,每次對著手機,用書面語說:請幫我呼叫某某某,這是一件很尷尬的事情。

人工智慧這個階段叫做專家系統。專家系統不易成功,一方面是知識比較難總結,另一方面總結出來的知識難以教給計算機。因為你自己還迷迷糊糊,似乎覺得有規律,就是說不出來,就怎麼能夠通過程式設計教給計算機呢?

於是人們想到,看來機器是和人完全不一樣的物種,乾脆讓機器自己學習好了。機器怎麼學習呢?既然機器的統計能力這麼強,基於統計學習,一定能從大量的數字中發現一定的規律。

其實在娛樂圈有很好的一個例子,可見一斑。

有一位網友統計了知名歌手在大陸發行的 9 張專輯中 117 首歌曲的歌詞,同一詞語在一首歌出現只算一次,形容詞、名詞和動詞的前十名如下表所示(詞語後面的數字是出現的次數):

從網際網路+角度看雲端計算的現狀與未來

如果我們隨便寫一串數字,然後按照數位依次在形容詞、名詞和動詞中取出一個詞,連在一起會怎麼樣呢?

例如取圓周率 3.1415926,對應的詞語是:堅強,路,飛,自由,雨,埋,迷惘。稍微連線和潤色一下:

堅強的孩子,
依然前行在路上,
張開翅膀飛向自由,
讓雨水埋葬他的迷惘。

是不是有點感覺了?當然真正基於統計的學習演算法比這個簡單的統計複雜的多。

然而統計學習比較容易理解簡單的相關性,例如一個詞和另一個詞總是一起出現,兩個詞應該有關係,而無法表達複雜的相關性,並且統計方法的公式往往非常複雜,為了簡化計算,常常做出各種獨立性的假設,來降低公式的計算難度,然而現實生活中,具有獨立性的事件是相對較少的。

於是人類開始從機器的世界,反思人類的世界是怎麼工作的。

從網際網路+角度看雲端計算的現狀與未來

人類的腦子裡面不是儲存著大量的規則,也不是記錄著大量的統計資料,而是通過神經元的觸發實現的,每個神經元有從其他神經元的輸入,當接收到輸入的時候,會產生一個輸出來刺激其他的神經元,於是大量的神經元相互反應,最終形成各種輸出的結果。例如當人們看到美女瞳孔放大,絕不是大腦根據身材比例進行規則判斷,也不是將人生中看過的所有的美女都統計一遍,而是神經元從視網膜觸發到大腦再回到瞳孔。在這個過程中,其實很難總結出每個神經元對最終的結果起到了哪些作用,反正就是起作用了。

於是人們開始用一個數學單元模擬神經元:

從網際網路+角度看雲端計算的現狀與未來

這個神經元有輸入,有輸出,輸入和輸出之間通過一個公式來表示,輸入根據重要程度不同(權重),影響著輸出。

從網際網路+角度看雲端計算的現狀與未來

於是將n個神經元通過像一張神經網路一樣連線在一起,n這個數字可以很大很大,所有的神經元可以分成很多列,每一列很多個排列起來,每個神經元的對於輸入的權重可以都不相同,從而每個神經元的公式也不相同。當人們從這張網路中輸入一個東西的時候,希望輸出一個對人類來講正確的結果。例如上面的例子,輸入一個寫著2的圖片,輸出的列表裡面第二個數字最大,其實從機器來講,它既不知道輸入的這個圖片寫的是2,也不知道輸出的這一系列數字的意義,沒關係,人知道意義就可以了。正如對於神經元來說,他們既不知道視網膜看到的是美女,也不知道瞳孔放大是為了看的清楚,反正看到美女,瞳孔放大了,就可以了。

對於任何一張神經網路,誰也不敢保證輸入是2,輸出一定是第二個數字最大,要保證這個結果,需要訓練和學習。畢竟看到美女而瞳孔放大也是人類很多年進化的結果。學習的過程就是,輸入大量的圖片,如果結果不是想要的結果,則進行調整。如何調整呢,就是每個神經元的每個權重都向目標進行微調,由於神經元和權重實在是太多了,所以整張網路產生的結果很難表現出非此即彼的結果,而是向著結果微微的進步,最終能夠達到目標結果。當然這些調整的策略還是非常有技巧的,需要演算法的高手來仔細的調整。正如人類見到美女,瞳孔一開始沒有放大到能看清楚,於是美女跟別人跑了,下次學習的結果是瞳孔放大一點點,而不是放大鼻孔。

聽起來也沒有那麼有道理,但是的確能做到,就是這麼任性。

神經網路的普遍性定理是這樣說的,假設某個人給你某種複雜奇特的函式,f(x):

從網際網路+角度看雲端計算的現狀與未來


不管這個函式是什麼樣的,總會確保有個神經網路能夠對任何可能的輸入x,其值f(x)(或者某個能夠準確的近似)是神經網路的輸出。

如果在函式代表著規律,也意味著這個規律無論多麼奇妙,多麼不能理解,都是能通過大量的神經元,通過大量權重的調整,表示出來的。

這讓我想到了經濟學,於是比較容易理解了。

我們把每個神經元當成社會中從事經濟活動的個體。於是神經網路相當於整個經濟社會,每個神經元對於社會的輸入,都有權重的調整,做出相應的輸出,比如工資漲了,菜價也漲了,股票跌了,我應該怎麼辦,怎麼花自己的錢。這裡面沒有規律麼?肯定有,但是具體什麼規律呢?卻很難說清楚。

基於專家系統的經濟屬於計劃經濟,整個經濟規律的表示不希望通過每個經濟個體的獨立決策表現出來,而是希望通過專家的高屋建瓴和遠見卓識總結出來。專家永遠不可能知道哪個城市的哪個街道缺少一個賣甜豆腐腦的。於是專家說應該產多少鋼鐵,產多少饅頭,往往距離人民生活的真正需求有較大的差距,就算整個計劃書寫個幾百頁,也無法表達隱藏在人民生活中的小規律。

基於統計的巨集觀調控就靠譜的多了,每年統計局都會統計整個社會的就業率,通脹率,GDP等等指標,這些指標往往代表著很多的內在規律,雖然不能夠精確表達,但是相對靠譜。然而基於統計的規律總結表達相對比較粗糙,比如經濟學家看到這些統計資料可以總結出長期來看房價是漲還是跌,股票長期來看是漲還是跌,如果經濟總體上揚,房價和股票應該都是漲的。但是基於統計資料,無法總結出股票,物價的微小波動規律。

基於神經網路的微觀經濟學才是對整個經濟規律最最準確的表達,每個人對於從社會中的輸入,進行各自的調整,並且調整同樣會作為輸入反饋到社會中。想象一下股市行情細微的波動曲線,正是每個獨立的個體各自不斷交易的結果,沒有統一的規律可循。而每個人根據整個社會的輸入進行獨立決策,當某些因素經過多次訓練,也會形成巨集觀上的統計性的規律,這也就是巨集觀經濟學所能看到的。例如每次貨幣大量發行,最後房價都會上漲,多次訓練後,人們也就都學會了。

網易將人工智慧這個強大的技術,應用於反垃圾工作中,從網易1997年推出郵箱產品開始,我們的反垃圾技術就在不停的進化升級,並且成功應用到各個億量級使用者的產品線中,包括影音娛樂,遊戲,社交,電商等產品線。比如網易新聞、部落格相簿、雲音樂、雲閱讀、有道、BOBO、考拉、遊戲等產品。總的來說,反垃圾技術在網易已經積累了19年的實踐經驗,一直在背後默默的為網易產品保駕護航。現在作為雲平臺的SaaS服務開放出來。

回顧網易反垃圾技術發展歷程,大致上我們可以把他分為三個關鍵階段,也基本對應著人工智慧發展的三個時期:

第一階段主要是依賴關鍵詞,黑白名單和各種過濾器技術,來做一些內容的偵測和攔截,這也是最基礎的階段,受限於當時計算能力瓶頸以及演算法理論的發展,第一階段的技術也能勉強滿足使用。

第二個階段時,基於計算機行業裡有一些更新的演算法,比如說貝葉斯過濾(基於概率論的演算法),一些膚色的識別,紋理的識別等等,這些比較優秀成熟的論文出來,我們可以基於這些演算法做更好的特徵匹配和技術改造,達到更優的反垃圾效果。

最後,隨著人工智慧演算法的進步和計算機運算能力的突飛猛進,反垃圾技術進化到第三個階段:大資料和人工智慧的階段。我們會用海量大資料做使用者的行為分析,對使用者做畫像,評估使用者是一個垃圾使用者還是一個正常使用者,增加使用者體驗更好的人機識別手段,以及對語義文字進行理解。還有基於人工智慧的影象識別技術,更準確識別是否是色情圖片,廣告圖片以及一些違禁品圖片等等。

從網際網路+角度看雲端計算的現狀與未來
從網際網路+角度看雲端計算的現狀與未來


從網際網路+角度看雲端計算的現狀與未來

網易人工智慧的第二個應用就是七魚全智慧雲客服,也是從第一代的關鍵字匹配,到後來基於概率的NLP,和基於深度學習神經網路的第三代,逐漸發展到今天的。

從網際網路+角度看雲端計算的現狀與未來

AlphaGo事件,讓人工智慧開始如火如荼,我們發現很多領域都是這樣子的,當大牛沒有拿出相應的方案來講,大部分都是幹看著沒有辦法,自從TensorFlow出來,大大降低了機器學習和人工智慧的門檻,所以說很多號稱人工智慧的公司開始冒了出來,這裡面往往概念多,落地少,外延無限擴大。

其實目前深度學習形成的模型,適用範圍非常小,通用性相對比較差,往往只能幹某一件特殊的事情,例如我們如果有很多電商的資料,我們就可以用來做客服,但是客服性質的模型不能用來反垃圾,我們有很多郵箱反垃圾的資料,可以訓練出檢測垃圾資料的模型,但是這個模型就不能用於推薦音樂,所以通用的人工智慧還任重道遠,當前在工業界需要找到非常聚焦的場景化落地,才能讓人工智慧儘快應用起來


瞭解網易雲:

網易雲官網:www.163yun.com/

新使用者大禮包:www.163yun.com/gift

網易雲社群:sq.163yun.com/


相關文章