導(dǎo) 讀
本文作者憑借其天馬行空的腦回路魄幕,用最深入淺出,清晰化的文字邏輯颖杏,講明白了云計(jì)算纯陨、大數(shù)據(jù)和人工智能三者之間的關(guān)系。
故事里面三個(gè)角色:
兼具經(jīng)濟(jì)效益與情懷的云計(jì)算留储;努力把信息變?yōu)橹腔鄣拇髷?shù)據(jù)翼抠;模擬人類大腦工作方式,學(xué)會(huì)推理的人工智能获讳。
三個(gè)從出身開始就注定“量子糾纏”的伙伴阴颖,他們之間相親相愛,相輔相成的跌宕故事丐膝,獻(xiàn)給非專業(yè)技術(shù)背景量愧,但是需要了解行業(yè)的你。
今天跟大家講講云計(jì)算帅矗、大數(shù)據(jù)和人工智能偎肃。這三個(gè)詞現(xiàn)在非常火浑此,并且它們之間好像互相有關(guān)系累颂。
一般談云計(jì)算的時(shí)候會(huì)提到大數(shù)據(jù)、談人工智能的時(shí)候會(huì)提大數(shù)據(jù)尤勋、談人工智能的時(shí)候會(huì)提云計(jì)算……感覺三者之間相輔相成又不可分割喘落。
但如果是非技術(shù)的人員茵宪,就可能比較難理解這三者之間的相互關(guān)系,所以有必要解釋一下瘦棋。
云計(jì)算最初的目標(biāo)
我們首先來說云計(jì)算稀火。云計(jì)算最初的目標(biāo)是對(duì)資源的管理,管理的主要是計(jì)算資源赌朋、網(wǎng)絡(luò)資源凰狞、存儲(chǔ)資源三個(gè)方面。
管數(shù)據(jù)中心就像配電腦
什么叫計(jì)算沛慢、網(wǎng)絡(luò)赡若、存儲(chǔ)資源?
比如你要買臺(tái)筆記本電腦团甲,是不是要關(guān)心這臺(tái)電腦是什么樣的 CPU逾冬?多大的內(nèi)存?這兩個(gè)就被我們稱為計(jì)算資源躺苦。
這臺(tái)電腦要上網(wǎng)身腻,就需要有個(gè)可以插網(wǎng)線的網(wǎng)口,或者有可以連接我們家路由器的無線網(wǎng)卡匹厘。
您家也需要到運(yùn)營(yíng)商比如聯(lián)通嘀趟、移動(dòng)或者電信開通一個(gè)網(wǎng)絡(luò),比如 100M 的帶寬愈诚。然后會(huì)有師傅弄一根網(wǎng)線到您家來她按,師傅可能會(huì)幫您將您的路由器和他們公司的網(wǎng)絡(luò)連接配置好。
這樣您家的所有的電腦炕柔、手機(jī)酌泰、平板就都可以通過您的路由器上網(wǎng)了。這就是網(wǎng)絡(luò)資源汗唱。
您可能還會(huì)問硬盤多大宫莱?過去的硬盤都很小,大小如 10G 之類的哩罪;后來即使 500G授霸、1T、2T 的硬盤也不新鮮了际插。(1T 是 1000G)碘耳,這就是存儲(chǔ)資源。
對(duì)于一臺(tái)電腦是這個(gè)樣子的框弛,對(duì)于一個(gè)數(shù)據(jù)中心也是同樣的辛辨。想象你有一個(gè)非常非常大的機(jī)房,里面堆了很多的服務(wù)器,這些服務(wù)器也是有 CPU斗搞、內(nèi)存指攒、硬盤的,也是通過類似路由器的設(shè)備上網(wǎng)的僻焚。
這時(shí)的問題就是:運(yùn)營(yíng)數(shù)據(jù)中心的人是怎么把這些設(shè)備統(tǒng)一的管理起來的呢允悦?
靈活就是想啥時(shí)要都有,想要多少都行
管理的目標(biāo)就是要達(dá)到兩個(gè)方面的靈活性虑啤。具體哪兩個(gè)方面呢隙弛?
舉個(gè)例子來理解:比如有個(gè)人需要一臺(tái)很小的電腦,只有一個(gè) CPU狞山、1G 內(nèi)存全闷、10G 的硬盤、一兆的帶寬萍启,你能給他嗎总珠?
像這么小規(guī)格的電腦,現(xiàn)在隨便一個(gè)筆記本電腦都比這個(gè)配置強(qiáng)了伊约,家里隨便拉一個(gè)寬帶都要 100M姚淆。然而如果去一個(gè)云計(jì)算的平臺(tái)上孕蝉,他想要這個(gè)資源時(shí)屡律,只要一點(diǎn)就有了。
這種情況下它就能達(dá)到兩個(gè)方面的靈活性:
時(shí)間靈活性:想什么時(shí)候要就什么時(shí)候要降淮,需要的時(shí)候一點(diǎn)就出來了超埋。
空間靈活性:想要多少就有多少。需要一個(gè)空間很小的電腦佳鳖,可以滿足霍殴;需要一個(gè)特別大的空間例如云盤,云盤給每個(gè)人分配的空間動(dòng)不動(dòng)就很大很大系吩,隨時(shí)上傳隨時(shí)有空間来庭,永遠(yuǎn)用不完,也是可以滿足的穿挨。
空間靈活性和時(shí)間靈活性月弛,即我們常說的云計(jì)算的彈性。而解決這個(gè)彈性的問題科盛,經(jīng)歷了漫長(zhǎng)時(shí)間的發(fā)展帽衙。
物理設(shè)備不靈活
第一個(gè)階段是物理設(shè)備時(shí)期。這個(gè)時(shí)期客戶需要一臺(tái)電腦贞绵,我們就買一臺(tái)放在數(shù)據(jù)中心里厉萝。
物理設(shè)備當(dāng)然是越來越牛:
例如服務(wù)器,內(nèi)存動(dòng)不動(dòng)就是百 G 內(nèi)存。
例如網(wǎng)絡(luò)設(shè)備谴垫,一個(gè)端口的帶寬就能有幾十 G 甚至上百 G章母。
例如存儲(chǔ),在數(shù)據(jù)中心至少是 PB 級(jí)別的(一個(gè) P 是 1000 個(gè) T翩剪,一個(gè) T 是 1000 個(gè) G)胳施。
然而物理設(shè)備不能做到很好的靈活性:
-
首先是它缺乏時(shí)間靈活性。不能夠達(dá)到想什么時(shí)候要就什么時(shí)候要肢专。比如買臺(tái)服務(wù)器舞肆、買個(gè)電腦,都要有采購的時(shí)間博杖。
如果突然用戶告訴某個(gè)云廠商椿胯,說想要開臺(tái)電腦,使用物理服務(wù)器剃根,當(dāng)時(shí)去采購就很難哩盲。與供應(yīng)商關(guān)系好的可能需要一個(gè)星期,與供應(yīng)商關(guān)系一般的就可能需要采購一個(gè)月狈醉。
用戶等了很久電腦才到位才沧,這時(shí)用戶還要登錄上去慢慢開始部署自己的應(yīng)用淮椰。時(shí)間靈活性非常差。
-
其次是它的空間靈活性也不行。例如上述的用戶需要一個(gè)很小很小的電腦熔掺,但現(xiàn)在哪還有這么小型號(hào)的電腦蔓罚?不能為了滿足用戶只要一個(gè) G 的內(nèi)存眉踱、80G 硬盤的裂逐,就去買一個(gè)這么小的機(jī)器。
但是如果買一個(gè)大的逊桦,又會(huì)因?yàn)殡娔X大眨猎,需要向用戶多收錢,可用戶需要用的只有那么小一點(diǎn)强经,所以多付錢就很冤睡陪。
虛擬化靈活多了
有人就想辦法了。第一個(gè)辦法就是虛擬化匿情。用戶不是只要一個(gè)很小的電腦么兰迫?
數(shù)據(jù)中心的物理設(shè)備都很強(qiáng)大,我可以從物理的 CPU码秉、內(nèi)存逮矛、硬盤中虛擬出一小塊來給客戶,同時(shí)也可以虛擬出一小塊來給其他客戶转砖。
每個(gè)客戶只能看到自己的那一小塊须鼎,但其實(shí)每個(gè)客戶用的是整個(gè)大的設(shè)備上的一小塊鲸伴。
虛擬化的技術(shù)使得不同客戶的電腦看起來是隔離的。也就是我看著好像這塊盤就是我的晋控,你看著這塊盤就是你的汞窗,但實(shí)際情況可能我的這個(gè) 10G 和你的這個(gè) 10G 是落在同樣一個(gè)很大很大的存儲(chǔ)上。
而且如果事先物理設(shè)備都準(zhǔn)備好赡译,虛擬化軟件虛擬出一個(gè)電腦是非持倮簦快的,基本上幾分鐘就能解決蝌焚。所以在任何一個(gè)云上要?jiǎng)?chuàng)建一臺(tái)電腦裹唆,一點(diǎn)幾分鐘就出來了,就是這個(gè)道理只洒。
這樣空間靈活性和時(shí)間靈活性就基本解決了许帐。
虛擬世界的賺錢與情懷
在虛擬化階段,最牛的公司是 VMware毕谴。它是實(shí)現(xiàn)虛擬化技術(shù)比較早的一家公司成畦,可以實(shí)現(xiàn)計(jì)算、網(wǎng)絡(luò)涝开、存儲(chǔ)的虛擬化循帐。
這家公司很牛,性能做得非常好舀武,虛擬化軟件賣得也非常好拄养,賺了好多的錢,后來讓 EMC(世界五百強(qiáng)奕剃,存儲(chǔ)廠商第一品牌)給收購了衷旅。
但這個(gè)世界上還是有很多有情懷的人的,尤其是程序員里面纵朋。有情懷的人喜歡做什么事情?開源茄袖。
這個(gè)世界上很多軟件都是有閉源就有開源操软,源就是源代碼。也就是說宪祥,某個(gè)軟件做的好聂薪,所有人都愛用,但這個(gè)軟件的代碼被我封閉起來蝗羊,只有我公司知道藏澳,其他人不知道。
如果其他人想用這個(gè)軟件耀找,就要向我付錢翔悠,這就叫閉源业崖。但世界上總有一些大牛看不慣錢都讓一家賺了去的情況蓄愁。大牛們覺得双炕,這個(gè)技術(shù)你會(huì)我也會(huì);你能開發(fā)出來撮抓,我也能妇斤。
我開發(fā)出來就是不收錢,把代碼拿出來分享給大家丹拯,全世界誰用都可以站超,所有的人都可以享受到好處,這個(gè)叫做開源乖酬。
比如最近的蒂姆·伯納斯·李就是個(gè)非常有情懷的人顷编。2017 年,他因“發(fā)明萬維網(wǎng)剑刑、第一個(gè)瀏覽器和使萬維網(wǎng)得以擴(kuò)展的基本協(xié)議和算法”而獲得 2016 年度的圖靈獎(jiǎng)媳纬。
圖靈獎(jiǎng)就是計(jì)算機(jī)界的諾貝爾獎(jiǎng)。然而他最令人敬佩的是施掏,他將萬維網(wǎng)钮惠,也就是我們常見的 WWW 技術(shù)無償貢獻(xiàn)給全世界免費(fèi)使用。
我們現(xiàn)在在網(wǎng)上的所有行為都應(yīng)該感謝他的功勞七芭,如果他將這個(gè)技術(shù)拿來收錢素挽,應(yīng)該和比爾蓋茨差不多有錢。
開源和閉源的例子有很多:例如在閉源的世界里有 Windows狸驳,大家用 Windows 都得給微軟付錢预明;開源的世界里面就出現(xiàn)了 Linux。
比爾蓋茨靠 Windows耙箍、Office 這些閉源的軟件賺了很多錢撰糠,稱為世界首富,就有大牛開發(fā)了另外一種操作系統(tǒng) Linux辩昆。
很多人可能沒有聽說過 Linux阅酪,很多后臺(tái)的服務(wù)器上跑的程序都是 Linux 上的,比如大家享受雙十一汁针,無論是淘寶术辐、京東、考拉……支撐雙十一搶購的系統(tǒng)都是跑在 Linux 上的施无。
再如有 Apple 就有安卓辉词。Apple 市值很高,但是蘋果系統(tǒng)的代碼我們是看不到的猾骡,于是就有大牛寫了安卓手機(jī)操作系統(tǒng)瑞躺。
所以大家可以看到幾乎所有的其他手機(jī)廠商敷搪,里面都裝安卓系統(tǒng)。原因就是蘋果系統(tǒng)不開源隘蝎,而安卓系統(tǒng)大家都可以用购啄。
在虛擬化軟件也一樣,有了 VMware嘱么,這個(gè)軟件非常貴狮含。那就有大牛寫了兩個(gè)開源的虛擬化軟件,一個(gè)叫做 Xen曼振,一個(gè)叫做 KVM几迄,如果不做技術(shù)的,可以不用管這兩個(gè)名字冰评,但是后面還是會(huì)提到映胁。
虛擬化的半自動(dòng)和云計(jì)算的全自動(dòng)
要說虛擬化軟件解決了靈活性問題,其實(shí)并不全對(duì)甲雅。因?yàn)樘摂M化軟件一般創(chuàng)建一臺(tái)虛擬的電腦解孙,是需要人工指定這臺(tái)虛擬電腦放在哪臺(tái)物理機(jī)上的。
這一過程可能還需要比較復(fù)雜的人工配置抛人。所以使用 VMware 的虛擬化軟件弛姜,需要考一個(gè)很牛的證書,而能拿到這個(gè)證書的人妖枚,薪資是相當(dāng)高廷臼,也可見其復(fù)雜程度。
所以僅僅憑虛擬化軟件所能管理的物理機(jī)的集群規(guī)模都不是特別大绝页,一般在十幾臺(tái)荠商、幾十臺(tái)、最多百臺(tái)這么一個(gè)規(guī)模续誉。
這一方面會(huì)影響時(shí)間靈活性:雖然虛擬出一臺(tái)電腦的時(shí)間很短莱没,但是隨著集群規(guī)模的擴(kuò)大,人工配置的過程越來越復(fù)雜屈芜,越來越耗時(shí)郊愧。
另一方面也影響空間靈活性:當(dāng)用戶數(shù)量多時(shí),這點(diǎn)集群規(guī)模井佑,還遠(yuǎn)達(dá)不到想要多少要多少的程度,很可能這點(diǎn)資源很快就用完了眠寿,還得去采購躬翁。
所以隨著集群的規(guī)模越來越大,基本都是千臺(tái)起步盯拱,動(dòng)輒上萬臺(tái)盒发、甚至幾十上百萬臺(tái)例嘱。如果去查一下 BAT,包括網(wǎng)易宁舰、谷歌拼卵、亞馬遜,服務(wù)器數(shù)目都大的嚇人蛮艰。
這么多機(jī)器要靠人去選一個(gè)位置放這臺(tái)虛擬化的電腦并做相應(yīng)的配置腋腮,幾乎是不可能的事情,還是需要機(jī)器去做這個(gè)事情壤蚜。
人們發(fā)明了各種各樣的算法來做這個(gè)事情即寡,算法的名字叫做調(diào)度(Scheduler)。
通俗一點(diǎn)說袜刷,就是有一個(gè)調(diào)度中心聪富,幾千臺(tái)機(jī)器都在一個(gè)池子里面,無論用戶需要多少 CPU著蟹、內(nèi)存墩蔓、硬盤的虛擬電腦,調(diào)度中心會(huì)自動(dòng)在大池子里面找一個(gè)能夠滿足用戶需求的地方萧豆,把虛擬電腦啟動(dòng)起來做好配置奸披,用戶就直接能用了。
這個(gè)階段我們稱為池化或者云化炕横。到了這個(gè)階段源内,才可以稱為云計(jì)算,在這之前都只能叫虛擬化份殿。
云計(jì)算的私有與公有
云計(jì)算大致分兩種:一個(gè)是私有云膜钓,一個(gè)是公有云,還有人把私有云和公有云連接起來稱為混合云卿嘲,這里暫且不說這個(gè)颂斜。
-
私有云:把虛擬化和云化的這套軟件部署在別人的數(shù)據(jù)中心里面。使用私有云的用戶往往很有錢拾枣,自己買地建機(jī)房沃疮、自己買服務(wù)器,然后讓云廠商部署在自己這里梅肤。
VMware 后來除了虛擬化司蔬,也推出了云計(jì)算的產(chǎn)品,并且在私有云市場(chǎng)賺的盆滿缽滿姨蝴。
-
公有云:把虛擬化和云化軟件部署在云廠商自己數(shù)據(jù)中心里面的俊啼,用戶不需要很大的投入,只要注冊(cè)一個(gè)賬號(hào)左医,就能在一個(gè)網(wǎng)頁上點(diǎn)一下創(chuàng)建一臺(tái)虛擬電腦授帕。
例如 AWS 即亞馬遜的公有云同木;國(guó)內(nèi)的阿里云、騰訊云跛十、網(wǎng)易云等彤路。
亞馬遜為什么要做公有云呢?我們知道亞馬遜原來是國(guó)外比較大的一個(gè)電商芥映,它做電商時(shí)也肯定會(huì)遇到類似雙十一的場(chǎng)景:在某一個(gè)時(shí)刻大家都沖上來買東西洲尊。
當(dāng)大家都沖上買東西時(shí),就特別需要云的時(shí)間靈活性和空間靈活性屏轰。因?yàn)樗荒軙r(shí)刻準(zhǔn)備好所有的資源颊郎,那樣太浪費(fèi)了。但也不能什么都不準(zhǔn)備霎苗,看著雙十一這么多用戶想買東西登不上去姆吭。
所以需要雙十一時(shí),就創(chuàng)建一大批虛擬電腦來支撐電商應(yīng)用唁盏,過了雙十一再把這些資源都釋放掉去干別的内狸。因此亞馬遜是需要一個(gè)云平臺(tái)的。
然而商用的虛擬化軟件實(shí)在是太貴了厘擂,亞馬遜總不能把自己在電商賺的錢全部給了虛擬化廠商昆淡。
于是亞馬遜基于開源的虛擬化技術(shù),如上所述的 Xen 或者 KVM刽严,開發(fā)了一套自己的云化軟件昂灵。沒想到亞馬遜后來電商越做越牛,云平臺(tái)也越做越牛舞萄。
由于它的云平臺(tái)需要支撐自己的電商應(yīng)用眨补;而傳統(tǒng)的云計(jì)算廠商多為 IT 廠商出身,幾乎沒有自己的應(yīng)用倒脓,所以亞馬遜的云平臺(tái)對(duì)應(yīng)用更加友好撑螺,迅速發(fā)展成為云計(jì)算的第一品牌,賺了很多錢崎弃。
在亞馬遜公布其云計(jì)算平臺(tái)財(cái)報(bào)之前甘晤,人們都猜測(cè),亞馬遜電商賺錢饲做,云也賺錢嗎线婚?后來一公布財(cái)報(bào),發(fā)現(xiàn)不是一般的賺錢盆均。僅僅去年酌伊,亞馬遜 AWS 年?duì)I收達(dá) 122 億美元,運(yùn)營(yíng)利潤(rùn) 31 億美元缀踪。
云計(jì)算的賺錢與情懷
公有云的第一名亞馬遜過得很爽居砖,第二名 Rackspace 過得就一般了。沒辦法驴娃,這就是互聯(lián)網(wǎng)行業(yè)的殘酷性奏候,多是贏者通吃的模式。所以第二名如果不是云計(jì)算行業(yè)的唇敞,很多人可能都沒聽過了蔗草。
第二名就想,我干不過老大怎么辦呢疆柔?開源吧咒精。如上所述,亞馬遜雖然使用了開源的虛擬化技術(shù)旷档,但云化的代碼是閉源的模叙。
很多想做又做不了云化平臺(tái)的公司,只能眼巴巴的看著亞馬遜掙大錢鞋屈。Rackspace 把源代碼一公開范咨,整個(gè)行業(yè)就可以一起把這個(gè)平臺(tái)越做越好,兄弟們大家一起上厂庇,和老大拼了渠啊。
于是 Rackspace 和美國(guó)航空航天局合作創(chuàng)辦了開源軟件 OpenStack,如上圖所示 OpenStack 的架構(gòu)圖权旷,不是云計(jì)算行業(yè)的不用弄懂這個(gè)圖替蛉。
但能夠看到三個(gè)關(guān)鍵字:Compute 計(jì)算、Networking 網(wǎng)絡(luò)拄氯、Storage 存儲(chǔ)躲查。還是一個(gè)計(jì)算、網(wǎng)絡(luò)坤邪、存儲(chǔ)的云化管理平臺(tái)熙含。
當(dāng)然第二名的技術(shù)也是非常棒的,有了 OpenStack 之后艇纺,果真像 Rackspace 想的一樣怎静,所有想做云的大企業(yè)都瘋了,你能想象到的所有如雷貫耳的大型 IT 企業(yè):IBM黔衡、惠普蚓聘、戴爾、華為盟劫、聯(lián)想等都瘋了夜牡。
原來云平臺(tái)大家都想做,看著亞馬遜和 VMware 賺了這么多錢,眼巴巴看著沒辦法塘装,想自己做一個(gè)好像難度還挺大急迂。
現(xiàn)在好了,有了這樣一個(gè)開源的云平臺(tái) OpenStack蹦肴,所有的 IT 廠商都加入到這個(gè)社區(qū)中來僚碎,對(duì)這個(gè)云平臺(tái)進(jìn)行貢獻(xiàn),包裝成自己的產(chǎn)品阴幌,連同自己的硬件設(shè)備一起賣勺阐。
有的做了私有云,有的做了公有云矛双,OpenStack 已經(jīng)成為開源云平臺(tái)的事實(shí)標(biāo)準(zhǔn)渊抽。
IaaS,資源層面的靈活性
隨著 OpenStack 的技術(shù)越來越成熟议忽,可以管理的規(guī)模也越來越大懒闷,并且可以有多個(gè) OpenStack 集群部署多套。
比如北京部署一套徙瓶、杭州部署兩套毛雇、廣州部署一套,然后進(jìn)行統(tǒng)一的管理侦镇。這樣整個(gè)規(guī)模就更大了灵疮。
在這個(gè)規(guī)模下,對(duì)于普通用戶的感知來講壳繁,基本能夠做到想什么時(shí)候要就什么時(shí)候要震捣,想要多少就要多少。
還是拿云盤舉例子闹炉,每個(gè)用戶云盤都分配了 5T 甚至更大的空間蒿赢,如果有 1 億人,那加起來空間多大啊渣触。
其實(shí)背后的機(jī)制是這樣的:分配你的空間羡棵,你可能只用了其中很少一點(diǎn),比如說它分配給你了 5 個(gè) T嗅钻,這么大的空間僅僅是你看到的皂冰,而不是真的就給你了。
你其實(shí)只用了 50 個(gè) G养篓,則真實(shí)給你的就是 50 個(gè) G秃流,隨著你文件的不斷上傳,分給你的空間會(huì)越來越多柳弄。
當(dāng)大家都上傳舶胀,云平臺(tái)發(fā)現(xiàn)快滿了的時(shí)候(例如用了 70%),會(huì)采購更多的服務(wù)器,擴(kuò)充背后的資源嚣伐,這個(gè)對(duì)用戶是透明的糖赔、看不到的。
從感覺上來講纤控,就實(shí)現(xiàn)了云計(jì)算的彈性挂捻。其實(shí)有點(diǎn)像銀行,給儲(chǔ)戶的感覺是什么時(shí)候取錢都有船万,只要不同時(shí)擠兌,銀行就不會(huì)垮骨田。
總結(jié)
到了這個(gè)階段耿导,云計(jì)算基本上實(shí)現(xiàn)了時(shí)間靈活性和空間靈活性;實(shí)現(xiàn)了計(jì)算态贤、網(wǎng)絡(luò)舱呻、存儲(chǔ)資源的彈性。
計(jì)算悠汽、網(wǎng)絡(luò)箱吕、存儲(chǔ)我們常稱為基礎(chǔ)設(shè)施 Infranstracture, 因而這個(gè)階段的彈性稱為資源層面的彈性。
管理資源的云平臺(tái)柿冲,我們稱為基礎(chǔ)設(shè)施服務(wù)茬高,也就是我們常聽到的 IaaS(Infranstracture As A Service)。
云計(jì)算不光管資源假抄,也要管應(yīng)用
有了 IaaS怎栽,實(shí)現(xiàn)了資源層面的彈性就夠了嗎?顯然不是宿饱,還有應(yīng)用層面的彈性熏瞄。
這里舉個(gè)例子:比如說實(shí)現(xiàn)一個(gè)電商的應(yīng)用,平時(shí)十臺(tái)機(jī)器就夠了谬以,雙十一需要一百臺(tái)强饮。你可能覺得很好辦啊,有了 IaaS为黎,新創(chuàng)建九十臺(tái)機(jī)器就可以了啊邮丰。
但 90 臺(tái)機(jī)器創(chuàng)建出來是空的,電商應(yīng)用并沒有放上去碍舍,只能讓公司的運(yùn)維人員一臺(tái)一臺(tái)的弄柠座,需要很長(zhǎng)時(shí)間才能安裝好的。
雖然資源層面實(shí)現(xiàn)了彈性片橡,但沒有應(yīng)用層的彈性妈经,依然靈活性是不夠的。有沒有方法解決這個(gè)問題呢?
人們?cè)?IaaS 平臺(tái)之上又加了一層吹泡,用于管理資源以上的應(yīng)用彈性的問題骤星,這一層通常稱為 PaaS(Platform As A Service)。
這一層往往比較難理解爆哑,大致分兩部分:一部分筆者稱為“你自己的應(yīng)用自動(dòng)安裝”洞难,一部分筆者稱為“通用的應(yīng)用不用安裝”。
-
自己的應(yīng)用自動(dòng)安裝:比如電商應(yīng)用是你自己開發(fā)的揭朝,除了你自己队贱,其他人是不知道怎么安裝的。
像電商應(yīng)用潭袱,安裝時(shí)需要配置支付寶或者微信的賬號(hào)柱嫌,才能使別人在你的電商上買東西時(shí),付的錢是打到你的賬戶里面的屯换,除了你编丘,誰也不知道。
所以安裝的過程平臺(tái)幫不了忙彤悔,但能夠幫你做得自動(dòng)化嘉抓,你需要做一些工作,將自己的配置信息融入到自動(dòng)化的安裝過程中方可晕窑。
比如上面的例子抑片,雙十一新創(chuàng)建出來的 90 臺(tái)機(jī)器是空的,如果能夠提供一個(gè)工具幕屹,能夠自動(dòng)在這新的 90 臺(tái)機(jī)器上將電商應(yīng)用安裝好蓝丙,就能夠?qū)崿F(xiàn)應(yīng)用層面的真正彈性。
例如 Puppet望拖、Chef渺尘、Ansible、Cloud Foundary 都可以干這件事情说敏,最新的容器技術(shù) Docker 能更好的干這件事情鸥跟。
-
通用的應(yīng)用不用安裝:所謂通用的應(yīng)用,一般指一些復(fù)雜性比較高盔沫,但大家都在用的医咨,例如數(shù)據(jù)庫。幾乎所有的應(yīng)用都會(huì)用數(shù)據(jù)庫架诞,但數(shù)據(jù)庫軟件是標(biāo)準(zhǔn)的拟淮,雖然安裝和維護(hù)比較復(fù)雜,但無論誰安裝都是一樣谴忧。
這樣的應(yīng)用可以變成標(biāo)準(zhǔn)的 PaaS 層的應(yīng)用放在云平臺(tái)的界面上很泊。當(dāng)用戶需要一個(gè)數(shù)據(jù)庫時(shí)角虫,一點(diǎn)就出來了,用戶就可以直接用了委造。
有人問戳鹅,既然誰安裝都一個(gè)樣,那我自己來好了昏兆,不需要花錢在云平臺(tái)上買枫虏。當(dāng)然不是斩个,數(shù)據(jù)庫是一個(gè)非常難的東西钾腺,光 Oracle 這家公司,靠數(shù)據(jù)庫就能賺這么多錢力惯。買 Oracle 也是要花很多錢的饮潦。
然而大多數(shù)云平臺(tái)會(huì)提供 MySQL 這樣的開源數(shù)據(jù)庫燃异,又是開源,錢不需要花這么多了继蜡。
但維護(hù)這個(gè)數(shù)據(jù)庫,卻需要專門招一個(gè)很大的團(tuán)隊(duì)逛腿,如果這個(gè)數(shù)據(jù)庫能夠優(yōu)化到能夠支撐雙十一稀并,也不是一年兩年能夠搞定的。
比如您是一個(gè)做單車的单默,當(dāng)然沒必要招一個(gè)非常大的數(shù)據(jù)庫團(tuán)隊(duì)來干這件事情碘举,成本太高了,應(yīng)該交給云平臺(tái)來做這件事情搁廓。
專業(yè)的事情專業(yè)的人來做引颈,云平臺(tái)專門養(yǎng)了幾百人維護(hù)這套系統(tǒng),您只要專注于您的單車應(yīng)用就可以了境蜕。
要么是自動(dòng)部署蝙场,要么是不用部署,總的來說就是應(yīng)用層你也要少操心粱年,這就是 PaaS 層的重要作用售滤。
雖說腳本的方式能夠解決自己的應(yīng)用的部署問題,然而不同的環(huán)境千差萬別台诗,一個(gè)腳本往往在一個(gè)環(huán)境上運(yùn)行正確完箩,到另一個(gè)環(huán)境就不正確了。
而容器是能更好地解決這個(gè)問題拉队。
容器是 Container弊知,Container 另一個(gè)意思是集裝箱,其實(shí)容器的思想就是要變成軟件交付的集裝箱粱快。集裝箱的特點(diǎn):一是封裝秩彤,二是標(biāo)準(zhǔn)叔扼。
在沒有集裝箱的時(shí)代,假設(shè)將貨物從 A 運(yùn)到 B呐舔,中間要經(jīng)過三個(gè)碼頭币励、換三次船。
每次都要將貨物卸下船來珊拼,擺得七零八落食呻,然后搬上船重新整齊擺好。因此在沒有集裝箱時(shí)澎现,每次換船仅胞,船員們都要在岸上待幾天才能走。
有了集裝箱以后剑辫,所有的貨物都打包在一起了干旧,并且集裝箱的尺寸全部一致,所以每次換船時(shí)妹蔽,一個(gè)箱子整體搬過去就行了椎眯,小時(shí)級(jí)別就能完成,船員再也不用上岸長(zhǎng)時(shí)間耽擱了胳岂。
這是集裝箱“封裝”编整、“標(biāo)準(zhǔn)”兩大特點(diǎn)在生活中的應(yīng)用。
那么容器如何對(duì)應(yīng)用打包呢乳丰?還是要學(xué)習(xí)集裝箱掌测。首先要有個(gè)封閉的環(huán)境,將貨物封裝起來产园,讓貨物之間互不干擾汞斧、互相隔離,這樣裝貨卸貨才方便什燕。好在 Ubuntu 中的 LXC 技術(shù)早就能做到這一點(diǎn)粘勒。
封閉的環(huán)境主要使用了兩種技術(shù):
看起來是隔離的技術(shù),稱為 Namespace秋冰,也即每個(gè) Namespace 中的應(yīng)用看到的是不同的 IP 地址仲义、用戶空間、程號(hào)等剑勾。
用起來是隔離的技術(shù)埃撵,稱為 Cgroups,也即明明整臺(tái)機(jī)器有很多的 CPU虽另、內(nèi)存暂刘,而一個(gè)應(yīng)用只能用其中的一部分。
所謂的鏡像捂刺,就是將你焊好集裝箱的那一刻谣拣,將集裝箱的狀態(tài)保存下來募寨,就像孫悟空說:“定”,集裝箱里面就定在了那一刻森缠,然后將這一刻的狀態(tài)保存成一系列文件。
這些文件的格式是標(biāo)準(zhǔn)的贵涵,誰看到這些文件都能還原當(dāng)時(shí)定住的那個(gè)時(shí)刻宾茂。將鏡像還原成運(yùn)行時(shí)的過程(就是讀取鏡像文件,還原那個(gè)時(shí)刻的過程)欧聘,就是容器運(yùn)行的過程怀骤。
有了容器晒喷,使得 PaaS 層對(duì)于用戶自身應(yīng)用的自動(dòng)部署變得快速而優(yōu)雅访敌。
大數(shù)據(jù)擁抱云計(jì)算
在 PaaS 層中一個(gè)復(fù)雜的通用應(yīng)用就是大數(shù)據(jù)平臺(tái)。大數(shù)據(jù)是如何一步一步融入云計(jì)算的呢衣盾?
數(shù)據(jù)不大也包含智慧
一開始這個(gè)大數(shù)據(jù)并不大寺旺。原來才有多少數(shù)據(jù)?現(xiàn)在大家都去看電子書势决,上網(wǎng)看新聞了阻塑,在我們 80 后小時(shí)候,信息量沒有那么大果复,也就看看書陈莽、看看報(bào),一個(gè)星期的報(bào)紙加起來才有多少字虽抄?
如果你不在一個(gè)大城市走搁,一個(gè)普通的學(xué)校的圖書館加起來也沒幾個(gè)書架,是后來隨著信息化的到來迈窟,信息才會(huì)越來越多私植。
首先我們來看一下大數(shù)據(jù)里面的數(shù)據(jù),就分三種類型:
結(jié)構(gòu)化的數(shù)據(jù):即有固定格式和有限長(zhǎng)度的數(shù)據(jù)车酣。例如填的表格就是結(jié)構(gòu)化的數(shù)據(jù)曲稼,國(guó)籍:中華人民共和國(guó)索绪,民族:漢贫悄,性別:男唤反,這都叫結(jié)構(gòu)化數(shù)據(jù)曙博。
非結(jié)構(gòu)化的數(shù)據(jù):現(xiàn)在非結(jié)構(gòu)化的數(shù)據(jù)越來越多般哼,就是不定長(zhǎng)杆融、無固定格式的數(shù)據(jù)蒋腮,例如網(wǎng)頁,有時(shí)候非常長(zhǎng),有時(shí)候幾句話就沒了竭讳;例如語音,視頻都是非結(jié)構(gòu)化的數(shù)據(jù)呐芥。
半結(jié)構(gòu)化數(shù)據(jù):是一些 XML 或者 HTML 的格式的荸百,不從事技術(shù)的可能不了解,但也沒有關(guān)系女嘲。
其實(shí)數(shù)據(jù)本身不是有用的停蕉,必須要經(jīng)過一定的處理菇晃。例如你每天跑步帶個(gè)手環(huán)收集的也是數(shù)據(jù),網(wǎng)上這么多網(wǎng)頁也是數(shù)據(jù)册着,我們稱為 Data鞭执。
數(shù)據(jù)本身沒有什么用處,但數(shù)據(jù)里面包含一個(gè)很重要的東西估脆,叫做信息(Information)付材。
數(shù)據(jù)十分雜亂,經(jīng)過梳理和清洗富寿,才能夠稱為信息银萍。信息會(huì)包含很多規(guī)律贰锁,我們需要從信息中將規(guī)律總結(jié)出來,稱為知識(shí)(Knowledge)锣险,而知識(shí)改變命運(yùn)压鉴。
信息是很多的击蹲,但有人看到了信息相當(dāng)于白看,但有人就從信息中看到了電商的未來类咧,有人看到了直播的未來,所以人家就牛了。
如果你沒有從信息中提取出知識(shí)柿隙,天天看朋友圈也只能在互聯(lián)網(wǎng)滾滾大潮中做個(gè)看客螟炫。
有了知識(shí)掸屡,然后利用這些知識(shí)去應(yīng)用于實(shí)戰(zhàn)盏求,有的人會(huì)做得非常好,這個(gè)東西叫做智慧(Intelligence)荆烈。
有知識(shí)并不一定有智慧,例如好多學(xué)者很有知識(shí)斗遏,已經(jīng)發(fā)生的事情可以從各個(gè)角度分析得頭頭是道枚碗,但一到實(shí)干就歇菜,并不能轉(zhuǎn)化成為智慧。
而很多的創(chuàng)業(yè)家之所以偉大,就是通過獲得的知識(shí)應(yīng)用于實(shí)踐掰烟,最后做了很大的生意九孩。
所以數(shù)據(jù)的應(yīng)用分這四個(gè)步驟:數(shù)據(jù)、信息顾患、知識(shí)番捂、智慧。
最終的階段是很多商家都想要的江解。你看我收集了這么多的數(shù)據(jù)设预,能不能基于這些數(shù)據(jù)來幫我做下一步的決策,改善我的產(chǎn)品犁河。
例如讓用戶看視頻的時(shí)候旁邊彈出廣告,正好是他想買的東西退客;再如讓用戶聽音樂時(shí)刷允,另外推薦一些他非常想聽的其他音樂瓜贾。
用戶在我的應(yīng)用或者網(wǎng)站上隨便點(diǎn)點(diǎn)鼠標(biāo)仰禀,輸入文字對(duì)我來說都是數(shù)據(jù)烫扼,我就是要將其中某些東西提取出來囤攀、指導(dǎo)實(shí)踐叉信、形成智慧凤壁,讓用戶陷入到我的應(yīng)用里面不可自拔徒仓,上了我的網(wǎng)就不想離開秒咐,手不停地點(diǎn)、不停地買勉失。
很多人說雙十一我都想斷網(wǎng)了,我老婆在上面不斷地買買買砌烁,買了 A 又推薦 B堂氯,老婆大人說,“哎呀恕齐,B 也是我喜歡的啊乞娄,老公我要買”。
你說這個(gè)程序怎么這么牛显歧,這么有智慧补胚,比我還了解我老婆,這件事情是怎么做到的呢追迟?
數(shù)據(jù)如何升華為智慧
數(shù)據(jù)的處理分以下幾個(gè)步驟溶其,完成了才最后會(huì)有智慧:
數(shù)據(jù)收集
數(shù)據(jù)傳輸
數(shù)據(jù)存儲(chǔ)
數(shù)據(jù)處理和分析
數(shù)據(jù)檢索和挖掘
數(shù)據(jù)收集
首先得有數(shù)據(jù),數(shù)據(jù)的收集有兩個(gè)方式:
-
拿敦间,專業(yè)點(diǎn)的說法叫抓取或者爬取瓶逃。例如搜索引擎就是這么做的:它把網(wǎng)上的所有的信息都下載到它的數(shù)據(jù)中心,然后你一搜才能搜出來廓块。
比如你去搜索的時(shí)候厢绝,結(jié)果會(huì)是一個(gè)列表,這個(gè)列表為什么會(huì)在搜索引擎的公司里面带猴?就是因?yàn)樗褦?shù)據(jù)都拿下來了昔汉,但是你一點(diǎn)鏈接,點(diǎn)出來這個(gè)網(wǎng)站就不在搜索引擎它們公司了拴清。
比如說新浪有個(gè)新聞靶病,你拿百度搜出來会通,你不點(diǎn)的時(shí)候,那一頁在百度數(shù)據(jù)中心娄周,一點(diǎn)出來的網(wǎng)頁就是在新浪的數(shù)據(jù)中心了涕侈。
推送,有很多終端可以幫我收集數(shù)據(jù)煤辨。比如說小米手環(huán)裳涛,可以將你每天跑步的數(shù)據(jù),心跳的數(shù)據(jù)众辨,睡眠的數(shù)據(jù)都上傳到數(shù)據(jù)中心里面端三。
數(shù)據(jù)傳輸
一般會(huì)通過隊(duì)列方式進(jìn)行,因?yàn)閿?shù)據(jù)量實(shí)在是太大了鹃彻,數(shù)據(jù)必須經(jīng)過處理才會(huì)有用技肩。可系統(tǒng)處理不過來浮声,只好排好隊(duì),慢慢處理旋奢。
數(shù)據(jù)存儲(chǔ)
現(xiàn)在數(shù)據(jù)就是金錢泳挥,掌握了數(shù)據(jù)就相當(dāng)于掌握了錢。要不然網(wǎng)站怎么知道你想買什么至朗?
就是因?yàn)樗心銡v史的交易數(shù)據(jù)屉符,這個(gè)信息可不能給別人,十分寶貴锹引,所以需要存儲(chǔ)下來矗钟。
數(shù)據(jù)處理和分析
上面存儲(chǔ)的數(shù)據(jù)是原始數(shù)據(jù),原始數(shù)據(jù)多是雜亂無章的嫌变,有很多垃圾數(shù)據(jù)在里面吨艇,因而需要清洗和過濾,得到一些高質(zhì)量的數(shù)據(jù)腾啥。
對(duì)于高質(zhì)量的數(shù)據(jù)东涡,就可以進(jìn)行分析,從而對(duì)數(shù)據(jù)進(jìn)行分類倘待,或者發(fā)現(xiàn)數(shù)據(jù)之間的相互關(guān)系疮跑,得到知識(shí)。
比如盛傳的沃爾瑪超市的啤酒和尿布的故事凸舵,就是通過對(duì)人們的購買數(shù)據(jù)進(jìn)行分析祖娘,發(fā)現(xiàn)了男人一般買尿布的時(shí)候,會(huì)同時(shí)購買啤酒啊奄。
這樣就發(fā)現(xiàn)了啤酒和尿布之間的相互關(guān)系渐苏,獲得知識(shí)掀潮,然后應(yīng)用到實(shí)踐中,將啤酒和尿布的柜臺(tái)弄的很近整以,就獲得了智慧胧辽。
數(shù)據(jù)檢索和挖掘
檢索就是搜索,所謂外事不決問 Google公黑,內(nèi)事不決問百度邑商。內(nèi)外兩大搜索引擎都是將分析后的數(shù)據(jù)放入搜索引擎,因此人們想尋找信息的時(shí)候凡蚜,一搜就有了人断。
另外就是挖掘,僅僅搜索出來已經(jīng)不能滿足人們的要求了朝蜘,還需要從信息中挖掘出相互的關(guān)系恶迈。
比如財(cái)經(jīng)搜索,當(dāng)搜索某個(gè)公司股票的時(shí)候谱醇,該公司的高管是不是也應(yīng)該被挖掘出來呢暇仲?
如果僅僅搜索出這個(gè)公司的股票發(fā)現(xiàn)漲的特別好,于是你就去買了副渴,其時(shí)其高管發(fā)了一個(gè)聲明奈附,對(duì)股票十分不利,第二天就跌了煮剧,這不坑害廣大股民么斥滤?所以通過各種算法挖掘數(shù)據(jù)中的關(guān)系,形成知識(shí)庫勉盅,十分重要佑颇。
大數(shù)據(jù)時(shí)代,眾人拾柴火焰高
當(dāng)數(shù)據(jù)量很小時(shí)草娜,很少的幾臺(tái)機(jī)器就能解決挑胸。慢慢的,當(dāng)數(shù)據(jù)量越來越大宰闰,最牛的服務(wù)器都解決不了問題時(shí)嗜暴,怎么辦呢?
這時(shí)就要聚合多臺(tái)機(jī)器的力量议蟆,大家齊心協(xié)力一起把這個(gè)事搞定闷沥,眾人拾柴火焰高。
對(duì)于數(shù)據(jù)的收集:就 IoT 來講咐容,外面部署著成千上萬的檢測(cè)設(shè)備舆逃,將大量的溫度、濕度、監(jiān)控路狮、電力等數(shù)據(jù)統(tǒng)統(tǒng)收集上來虫啥;就互聯(lián)網(wǎng)網(wǎng)頁的搜索引擎來講,需要將整個(gè)互聯(lián)網(wǎng)所有的網(wǎng)頁都下載下來奄妨。
這顯然一臺(tái)機(jī)器做不到涂籽,需要多臺(tái)機(jī)器組成網(wǎng)絡(luò)爬蟲系統(tǒng),每臺(tái)機(jī)器下載一部分砸抛,同時(shí)工作评雌,才能在有限的時(shí)間內(nèi),將海量的網(wǎng)頁下載完畢直焙。
對(duì)于數(shù)據(jù)的傳輸:一個(gè)內(nèi)存里面的隊(duì)列肯定會(huì)被大量的數(shù)據(jù)擠爆掉景东,于是就產(chǎn)生了基于硬盤的分布式隊(duì)列,這樣隊(duì)列可以多臺(tái)機(jī)器同時(shí)傳輸奔誓,隨你數(shù)據(jù)量多大斤吐,只要我的隊(duì)列足夠多,管道足夠粗厨喂,就能夠撐得住和措。
對(duì)于數(shù)據(jù)的存儲(chǔ):一臺(tái)機(jī)器的文件系統(tǒng)肯定是放不下的,所以需要一個(gè)很大的分布式文件系統(tǒng)來做這件事情蜕煌,把多臺(tái)機(jī)器的硬盤打成一塊大的文件系統(tǒng)派阱。
對(duì)于數(shù)據(jù)的分析:可能需要對(duì)大量的數(shù)據(jù)做分解、統(tǒng)計(jì)幌绍、匯總,一臺(tái)機(jī)器肯定搞不定故响,處理到猴年馬月也分析不完傀广。
于是就有分布式計(jì)算的方法,將大量的數(shù)據(jù)分成小份彩届,每臺(tái)機(jī)器處理一小份伪冰,多臺(tái)機(jī)器并行處理,很快就能算完樟蠕。
例如著名的 Terasort 對(duì) 1 個(gè) TB 的數(shù)據(jù)排序贮聂,相當(dāng)于 1000G,如果單機(jī)處理寨辩,怎么也要幾個(gè)小時(shí)吓懈,但并行處理 209 秒就完成了。
所以說什么叫做大數(shù)據(jù)靡狞?說白了就是一臺(tái)機(jī)器干不完耻警,大家一起干。
可是隨著數(shù)據(jù)量越來越大,很多不大的公司都需要處理相當(dāng)多的數(shù)據(jù)甘穿,這些小公司沒有這么多機(jī)器可怎么辦呢腮恩?
大數(shù)據(jù)需要云計(jì)算,云計(jì)算需要大數(shù)據(jù)
說到這里温兼,大家想起云計(jì)算了吧秸滴。當(dāng)想要干這些活時(shí),需要很多的機(jī)器一塊做募判,真的是想什么時(shí)候要就什么時(shí)候要荡含,想要多少就要多少。
例如大數(shù)據(jù)分析公司的財(cái)務(wù)情況兰伤,可能一周分析一次内颗,如果要把這一百臺(tái)機(jī)器或者一千臺(tái)機(jī)器都在那放著,一周用一次非常浪費(fèi)敦腔。
那能不能需要計(jì)算的時(shí)候均澳,把這一千臺(tái)機(jī)器拿出來;不算的時(shí)候符衔,讓這一千臺(tái)機(jī)器去干別的事情找前?
誰能做這個(gè)事兒呢?只有云計(jì)算判族,可以為大數(shù)據(jù)的運(yùn)算提供資源層的靈活性躺盛。
而云計(jì)算也會(huì)部署大數(shù)據(jù)放到它的 PaaS 平臺(tái)上,作為一個(gè)非常非常重要的通用應(yīng)用形帮。
因?yàn)榇髷?shù)據(jù)平臺(tái)能夠使得多臺(tái)機(jī)器一起干一個(gè)事兒槽惫,這個(gè)東西不是一般人能開發(fā)出來的,也不是一般人玩得轉(zhuǎn)的辩撑,怎么也得雇個(gè)幾十上百號(hào)人才能把這個(gè)玩起來界斜。
所以說就像數(shù)據(jù)庫一樣,還是需要有一幫專業(yè)的人來玩這個(gè)東西『霞剑現(xiàn)在公有云上基本上都會(huì)有大數(shù)據(jù)的解決方案了各薇。
一個(gè)小公司需要大數(shù)據(jù)平臺(tái)的時(shí)候,不需要采購一千臺(tái)機(jī)器君躺,只要到公有云上一點(diǎn)峭判,這一千臺(tái)機(jī)器都出來了,并且上面已經(jīng)部署好了的大數(shù)據(jù)平臺(tái)棕叫,只要把數(shù)據(jù)放進(jìn)去算就可以了林螃。
云計(jì)算需要大數(shù)據(jù),大數(shù)據(jù)需要云計(jì)算俺泣,二者就這樣結(jié)合了治宣。
人工智能擁抱大數(shù)據(jù)
機(jī)器什么時(shí)候才能懂人心
雖說有了大數(shù)據(jù)急侥,人的欲望卻不能夠滿足。雖說在大數(shù)據(jù)平臺(tái)里面有搜索引擎這個(gè)東西侮邀,想要什么東西一搜就出來了坏怪。
但也存在這樣的情況:我想要的東西不會(huì)搜,表達(dá)不出來绊茧,搜索出來的又不是我想要的铝宵。
例如音樂軟件推薦了一首歌,這首歌我沒聽過华畏,當(dāng)然不知道名字鹏秋,也沒法搜。但是軟件推薦給我亡笑,我的確喜歡侣夷,這就是搜索做不到的事情。
當(dāng)人們使用這種應(yīng)用時(shí)仑乌,會(huì)發(fā)現(xiàn)機(jī)器知道我想要什么百拓,而不是說當(dāng)我想要時(shí),去機(jī)器里面搜索晰甚。這個(gè)機(jī)器真像我的朋友一樣懂我衙传,這就有點(diǎn)人工智能的意思了。
人們很早就在想這個(gè)事情了厕九。最早的時(shí)候蓖捶,人們想象,要是有一堵墻扁远,墻后面是個(gè)機(jī)器俊鱼,我給它說話,它就給我回應(yīng)畅买。
如果我感覺不出它那邊是人還是機(jī)器并闲,那它就真的是一個(gè)人工智能的東西了。
讓機(jī)器學(xué)會(huì)推理
怎么才能做到這一點(diǎn)呢皮获?人們就想:我首先要告訴計(jì)算機(jī)人類推理的能力焙蚓。你看人重要的是什么纹冤?人和動(dòng)物的區(qū)別在什么洒宝?就是能推理。
要是把我這個(gè)推理的能力告訴機(jī)器萌京,讓機(jī)器根據(jù)你的提問雁歌,推理出相應(yīng)的回答,這樣多好知残?
其實(shí)目前人們慢慢地讓機(jī)器能夠做到一些推理了靠瞎,例如證明數(shù)學(xué)公式。這是一個(gè)非常讓人驚喜的一個(gè)過程,機(jī)器竟然能夠證明數(shù)學(xué)公式乏盐。
但慢慢又發(fā)現(xiàn)這個(gè)結(jié)果也沒有那么令人驚喜佳窑。因?yàn)榇蠹野l(fā)現(xiàn)了一個(gè)問題:數(shù)學(xué)公式非常嚴(yán)謹(jǐn),推理過程也非常嚴(yán)謹(jǐn)父能,而且數(shù)學(xué)公式很容易拿機(jī)器來進(jìn)行表達(dá)神凑,程序也相對(duì)容易表達(dá)。
然而人類的語言就沒這么簡(jiǎn)單了何吝。比如今天晚上溉委,你和你女朋友約會(huì),你女朋友說:如果你早來爱榕,我沒來瓣喊,你等著;如果我早來黔酥,你沒來藻三,你等著!
這個(gè)機(jī)器就比較難理解了絮爷,但人都懂趴酣。所以你和女朋友約會(huì),是不敢遲到的坑夯。
教給機(jī)器知識(shí)
因此岖寞,僅僅告訴機(jī)器嚴(yán)格的推理是不夠的,還要告訴機(jī)器一些知識(shí)柜蜈。但告訴機(jī)器知識(shí)這個(gè)事情仗谆,一般人可能就做不來了∈缏模可能專家可以隶垮,比如語言領(lǐng)域的專家或者財(cái)經(jīng)領(lǐng)域的專家。
語言領(lǐng)域和財(cái)經(jīng)領(lǐng)域知識(shí)能不能表示成像數(shù)學(xué)公式一樣稍微嚴(yán)格點(diǎn)呢秘噪?例如語言專家可能會(huì)總結(jié)出主謂賓定狀補(bǔ)這些語法規(guī)則狸吞,主語后面一定是謂語,謂語后面一定是賓語指煎,將這些總結(jié)出來蹋偏,并嚴(yán)格表達(dá)出來不就行了嗎?
后來發(fā)現(xiàn)這個(gè)不行至壤,太難總結(jié)了威始,語言表達(dá)千變?nèi)f化。就拿主謂賓的例子像街,很多時(shí)候在口語里面就省略了謂語活箕,別人問:你誰啊伊履?我回答:我劉超涵紊。
但你不能規(guī)定在語音語義識(shí)別時(shí),要求對(duì)著機(jī)器說標(biāo)準(zhǔn)的書面語,這樣還是不夠智能,就像羅永浩在一次演講中說的那樣,每次對(duì)著手機(jī)户魏,用書面語說:請(qǐng)幫我呼叫某某某,這是一件很尷尬的事情挪挤。
人工智能這個(gè)階段叫做專家系統(tǒng)叼丑。專家系統(tǒng)不易成功,一方面是知識(shí)比較難總結(jié)扛门,另一方面總結(jié)出來的知識(shí)難以教給計(jì)算機(jī)鸠信。
因?yàn)槟阕约哼€迷迷糊糊,覺得似乎有規(guī)律论寨,就是說不出來星立,又怎么能夠通過編程教給計(jì)算機(jī)呢?
算了葬凳,教不會(huì)你自己學(xué)吧
于是人們想到:機(jī)器是和人完全不一樣的物種绰垂,干脆讓機(jī)器自己學(xué)習(xí)好了。
機(jī)器怎么學(xué)習(xí)呢火焰?既然機(jī)器的統(tǒng)計(jì)能力這么強(qiáng)劲装,基于統(tǒng)計(jì)學(xué)習(xí),一定能從大量的數(shù)字中發(fā)現(xiàn)一定的規(guī)律昌简。
其實(shí)在娛樂圈有很好的一個(gè)例子占业,可窺一斑:
有一位網(wǎng)友統(tǒng)計(jì)了知名歌手在大陸發(fā)行的 9 張專輯中 117 首歌曲的歌詞,同一詞語在一首歌出現(xiàn)只算一次纯赎,形容詞谦疾、名詞和動(dòng)詞的前十名如下表所示(詞語后面的數(shù)字是出現(xiàn)的次數(shù)):
如果我們隨便寫一串?dāng)?shù)字,然后按照數(shù)位依次在形容詞犬金、名詞和動(dòng)詞中取出一個(gè)詞念恍,連在一起會(huì)怎么樣呢?
例如取圓周率 3.1415926晚顷,對(duì)應(yīng)的詞語是:堅(jiān)強(qiáng)峰伙,路,飛音同,自由词爬,雨秃嗜,埋权均,迷惘顿膨。
稍微連接和潤(rùn)色一下:
堅(jiān)強(qiáng)的孩子
依然前行在路上
張開翅膀飛向自由
讓雨水埋葬他的迷惘
是不是有點(diǎn)感覺了?當(dāng)然叽赊,真正基于統(tǒng)計(jì)的學(xué)習(xí)算法比這個(gè)簡(jiǎn)單的統(tǒng)計(jì)復(fù)雜得多恋沃。
然而統(tǒng)計(jì)學(xué)習(xí)比較容易理解簡(jiǎn)單的相關(guān)性:例如一個(gè)詞和另一個(gè)詞總是一起出現(xiàn),兩個(gè)詞應(yīng)該有關(guān)系必指;而無法表達(dá)復(fù)雜的相關(guān)性囊咏。
并且統(tǒng)計(jì)方法的公式往往非常復(fù)雜,為了簡(jiǎn)化計(jì)算塔橡,常常做出各種獨(dú)立性的假設(shè)梅割,來降低公式的計(jì)算難度,然而現(xiàn)實(shí)生活中葛家,具有獨(dú)立性的事件是相對(duì)較少的户辞。
模擬大腦的工作方式
于是人類開始從機(jī)器的世界,反思人類的世界是怎么工作的癞谒。
人類的腦子里面不是存儲(chǔ)著大量的規(guī)則底燎,也不是記錄著大量的統(tǒng)計(jì)數(shù)據(jù),而是通過神經(jīng)元的觸發(fā)實(shí)現(xiàn)的弹砚。
每個(gè)神經(jīng)元有從其他神經(jīng)元的輸入双仍,當(dāng)接收到輸入時(shí),會(huì)產(chǎn)生一個(gè)輸出來刺激其他神經(jīng)元桌吃。于是大量的神經(jīng)元相互反應(yīng)朱沃,最終形成各種輸出的結(jié)果。
例如當(dāng)人們看到美女瞳孔會(huì)放大茅诱,絕不是大腦根據(jù)身材比例進(jìn)行規(guī)則判斷为流,也不是將人生中看過的所有的美女都統(tǒng)計(jì)一遍,而是神經(jīng)元從視網(wǎng)膜觸發(fā)到大腦再回到瞳孔让簿。
在這個(gè)過程中敬察,其實(shí)很難總結(jié)出每個(gè)神經(jīng)元對(duì)最終的結(jié)果起到了哪些作用,反正就是起作用了尔当。
于是人們開始用一個(gè)數(shù)學(xué)單元模擬神經(jīng)元莲祸。
這個(gè)神經(jīng)元有輸入,有輸出椭迎,輸入和輸出之間通過一個(gè)公式來表示锐帜,輸入根據(jù)重要程度不同(權(quán)重),影響著輸出畜号。
于是將 n 個(gè)神經(jīng)元通過像一張神經(jīng)網(wǎng)絡(luò)一樣連接在一起缴阎。n 這個(gè)數(shù)字可以很大很大,所有的神經(jīng)元可以分成很多列简软,每一列很多個(gè)排列起來蛮拔。
每個(gè)神經(jīng)元對(duì)于輸入的權(quán)重可以都不相同述暂,從而每個(gè)神經(jīng)元的公式也不相同。當(dāng)人們從這張網(wǎng)絡(luò)中輸入一個(gè)東西的時(shí)候建炫,希望輸出一個(gè)對(duì)人類來講正確的結(jié)果畦韭。
例如上面的例子,輸入一個(gè)寫著 2 的圖片肛跌,輸出的列表里面第二個(gè)數(shù)字最大艺配,其實(shí)從機(jī)器來講,它既不知道輸入的這個(gè)圖片寫的是 2衍慎,也不知道輸出的這一系列數(shù)字的意義转唉,沒關(guān)系,人知道意義就可以了稳捆。
正如對(duì)于神經(jīng)元來說酝掩,他們既不知道視網(wǎng)膜看到的是美女,也不知道瞳孔放大是為了看的清楚眷柔,反正看到美女期虾,瞳孔放大了,就可以了驯嘱。
對(duì)于任何一張神經(jīng)網(wǎng)絡(luò)镶苞,誰也不敢保證輸入是 2,輸出一定是第二個(gè)數(shù)字最大鞠评,要保證這個(gè)結(jié)果茂蚓,需要訓(xùn)練和學(xué)習(xí)。
畢竟看到美女而瞳孔放大也是人類很多年進(jìn)化的結(jié)果剃幌。學(xué)習(xí)的過程就是聋涨,輸入大量的圖片,如果結(jié)果不是想要的結(jié)果负乡,則進(jìn)行調(diào)整牍白。
如何調(diào)整呢?就是每個(gè)神經(jīng)元的每個(gè)權(quán)重都向目標(biāo)進(jìn)行微調(diào)抖棘,由于神經(jīng)元和權(quán)重實(shí)在是太多了茂腥,所以整張網(wǎng)絡(luò)產(chǎn)生的結(jié)果很難表現(xiàn)出非此即彼的結(jié)果,而是向著結(jié)果微微地進(jìn)步切省,最終能夠達(dá)到目標(biāo)結(jié)果最岗。
當(dāng)然,這些調(diào)整的策略還是非常有技巧的朝捆,需要算法的高手來仔細(xì)的調(diào)整般渡。正如人類見到美女,瞳孔一開始沒有放大到能看清楚,于是美女跟別人跑了驯用,下次學(xué)習(xí)的結(jié)果是瞳孔放大一點(diǎn)點(diǎn)脸秽,而不是放大鼻孔。
沒道理但做得到
聽起來也沒有那么有道理晨汹,但的確能做到,就是這么任性贷盲!
神經(jīng)網(wǎng)絡(luò)的普遍性定理是這樣說的淘这,假設(shè)某個(gè)人給你某種復(fù)雜奇特的函數(shù),f(x):
不管這個(gè)函數(shù)是什么樣的巩剖,總會(huì)確保有個(gè)神經(jīng)網(wǎng)絡(luò)能夠?qū)θ魏慰赡艿妮斎?x铝穷,其值 f(x)(或者某個(gè)能夠準(zhǔn)確的近似)是神經(jīng)網(wǎng)絡(luò)的輸出。
如果在函數(shù)代表著規(guī)律佳魔,也意味著這個(gè)規(guī)律無論多么奇妙曙聂,多么不能理解,都是能通過大量的神經(jīng)元鞠鲜,通過大量權(quán)重的調(diào)整宁脊,表示出來的。
人工智能的經(jīng)濟(jì)學(xué)解釋
這讓我想到了經(jīng)濟(jì)學(xué)贤姆,于是比較容易理解了榆苞。
我們把每個(gè)神經(jīng)元當(dāng)成社會(huì)中從事經(jīng)濟(jì)活動(dòng)的個(gè)體。于是神經(jīng)網(wǎng)絡(luò)相當(dāng)于整個(gè)經(jīng)濟(jì)社會(huì)霞捡,每個(gè)神經(jīng)元對(duì)于社會(huì)的輸入坐漏,都有權(quán)重的調(diào)整,做出相應(yīng)的輸出碧信。
比如工資漲了赊琳、菜價(jià)漲了、股票跌了砰碴,我應(yīng)該怎么辦躏筏、怎么花自己的錢。這里面沒有規(guī)律么呈枉?肯定有寸士,但是具體什么規(guī)律呢?很難說清楚碴卧。
基于專家系統(tǒng)的經(jīng)濟(jì)屬于計(jì)劃經(jīng)濟(jì)弱卡。整個(gè)經(jīng)濟(jì)規(guī)律的表示不希望通過每個(gè)經(jīng)濟(jì)個(gè)體的獨(dú)立決策表現(xiàn)出來,而是希望通過專家的高屋建瓴和遠(yuǎn)見卓識(shí)總結(jié)出來住册。但專家永遠(yuǎn)不可能知道哪個(gè)城市的哪個(gè)街道缺少一個(gè)賣甜豆腐腦的婶博。
于是專家說應(yīng)該產(chǎn)多少鋼鐵、產(chǎn)多少饅頭荧飞,往往距離人民生活的真正需求有較大的差距凡人,就算整個(gè)計(jì)劃書寫個(gè)幾百頁名党,也無法表達(dá)隱藏在人民生活中的小規(guī)律。
基于統(tǒng)計(jì)的宏觀調(diào)控就靠譜多了挠轴,每年統(tǒng)計(jì)局都會(huì)統(tǒng)計(jì)整個(gè)社會(huì)的就業(yè)率传睹、通脹率、GDP 等指標(biāo)岸晦。這些指標(biāo)往往代表著很多內(nèi)在規(guī)律欧啤,雖然不能精確表達(dá),但是相對(duì)靠譜启上。
然而基于統(tǒng)計(jì)的規(guī)律總結(jié)表達(dá)相對(duì)比較粗糙邢隧。比如經(jīng)濟(jì)學(xué)家看到這些統(tǒng)計(jì)數(shù)據(jù),可以總結(jié)出長(zhǎng)期來看房?jī)r(jià)是漲還是跌冈在、股票長(zhǎng)期來看是漲還是跌倒慧。
如果經(jīng)濟(jì)總體上揚(yáng),房?jī)r(jià)和股票應(yīng)該都是漲的包券。但基于統(tǒng)計(jì)數(shù)據(jù)纫谅,無法總結(jié)出股票,物價(jià)的微小波動(dòng)規(guī)律溅固。
基于神經(jīng)網(wǎng)絡(luò)的微觀經(jīng)濟(jì)學(xué)才是對(duì)整個(gè)經(jīng)濟(jì)規(guī)律最最準(zhǔn)確的表達(dá)系宜,每個(gè)人對(duì)于自己在社會(huì)中的輸入進(jìn)行各自的調(diào)整,并且調(diào)整同樣會(huì)作為輸入反饋到社會(huì)中发魄。
想象一下股市行情細(xì)微的波動(dòng)曲線盹牧,正是每個(gè)獨(dú)立的個(gè)體各自不斷交易的結(jié)果,沒有統(tǒng)一的規(guī)律可循励幼。
而每個(gè)人根據(jù)整個(gè)社會(huì)的輸入進(jìn)行獨(dú)立決策汰寓,當(dāng)某些因素經(jīng)過多次訓(xùn)練,也會(huì)形成宏觀上統(tǒng)計(jì)性的規(guī)律苹粟,這也就是宏觀經(jīng)濟(jì)學(xué)所能看到的有滑。
例如每次貨幣大量發(fā)行,最后房?jī)r(jià)都會(huì)上漲嵌削,多次訓(xùn)練后毛好,人們也就都學(xué)會(huì)了。
人工智能需要大數(shù)據(jù)
然而苛秕,神經(jīng)網(wǎng)絡(luò)包含這么多的節(jié)點(diǎn)肌访,每個(gè)節(jié)點(diǎn)又包含非常多的參數(shù),整個(gè)參數(shù)量實(shí)在是太大了艇劫,需要的計(jì)算量實(shí)在太大吼驶。
但沒有關(guān)系,我們有大數(shù)據(jù)平臺(tái),可以匯聚多臺(tái)機(jī)器的力量一起來計(jì)算蟹演,就能在有限的時(shí)間內(nèi)得到想要的結(jié)果风钻。
人工智能可以做的事情非常多,例如可以鑒別垃圾郵件酒请、鑒別黃色暴力文字和圖片等骡技。
這也是經(jīng)歷了三個(gè)階段的:
依賴于關(guān)鍵詞黑白名單和過濾技術(shù),包含哪些詞就是黃色或者暴力的文字羞反。隨著這個(gè)網(wǎng)絡(luò)語言越來越多布朦,詞也不斷地變化,不斷地更新這個(gè)詞庫就有點(diǎn)顧不過來苟弛。
基于一些新的算法喝滞,比如說貝葉斯過濾等阁将,你不用管貝葉斯算法是什么膏秫,但是這個(gè)名字你應(yīng)該聽過,這是一個(gè)基于概率的算法做盅。
基于大數(shù)據(jù)和人工智能缤削,進(jìn)行更加精準(zhǔn)的用戶畫像、文本理解和圖像理解吹榴。
由于人工智能算法多是依賴于大量的數(shù)據(jù)的亭敢,這些數(shù)據(jù)往往需要面向某個(gè)特定的領(lǐng)域(例如電商,郵箱)進(jìn)行長(zhǎng)期的積累图筹。
如果沒有數(shù)據(jù)帅刀,就算有人工智能算法也白搭,所以人工智能程序很少像前面的 IaaS 和 PaaS 一樣远剩,將人工智能程序給某個(gè)客戶安裝一套扣溺,讓客戶去用。
因?yàn)榻o某個(gè)客戶單獨(dú)安裝一套瓜晤,客戶沒有相關(guān)的數(shù)據(jù)做訓(xùn)練锥余,結(jié)果往往是很差的。
但云計(jì)算廠商往往是積累了大量數(shù)據(jù)的痢掠,于是就在云計(jì)算廠商里面安裝一套驱犹,暴露一個(gè)服務(wù)接口。
比如您想鑒別一個(gè)文本是不是涉及黃色和暴力足画,直接用這個(gè)在線服務(wù)就可以了雄驹。這種形勢(shì)的服務(wù),在云計(jì)算里面稱為軟件即服務(wù)淹辞,SaaS (Software AS A Service)
于是工智能程序作為 SaaS 平臺(tái)進(jìn)入了云計(jì)算荠医。
基于三者關(guān)系的美好生活
終于云計(jì)算的三兄弟湊齊了,分別是 IaaS、PaaS 和 SaaS彬向。所以一般在一個(gè)云計(jì)算平臺(tái)上兼贡,云、大數(shù)據(jù)娃胆、人工智能都能找得到遍希。
一個(gè)大數(shù)據(jù)公司,積累了大量的數(shù)據(jù)里烦,會(huì)使用一些人工智能的算法提供一些服務(wù)凿蒜;一個(gè)人工智能公司,也不可能沒有大數(shù)據(jù)平臺(tái)支撐胁黑。
所以废封,當(dāng)云計(jì)算、大數(shù)據(jù)丧蘸、人工智能這樣整合起來漂洋,便完成了相遇、相識(shí)力喷、相知的過程刽漂。
** # 今日互動(dòng) # **
** 用一句話證明你看懂了?**
** 留言給我們弟孟,我們將送出《量化技術(shù)最新軟件“量T”》贝咙。**