速記內(nèi)容有刪改,轉(zhuǎn)載具體要求見(jiàn)文末。 ◆ ◆ ◆導(dǎo)讀”大數(shù)據(jù)讓很多領(lǐng)域變得更智能,但是這些智能的應(yīng)用是跑在最“傻”的數(shù)據(jù)中心基礎(chǔ)架構(gòu)上?!?/span>什么領(lǐng)域用大數(shù)據(jù)用的最差?來(lái)自清華大學(xué)的徐葳表示,就是我們自己的領(lǐng)域,就是云計(jì)算管理的領(lǐng)域。徐葳教授是清華最受學(xué)生們歡迎的老師之一,在7月14、15日舉行的首屆大數(shù)據(jù)應(yīng)用大會(huì)上,自稱(chēng)“系統(tǒng)管理員”的徐葳教授在大會(huì)主論壇徐徐道來(lái)怎么利用大數(shù)據(jù)和人工智能讓云計(jì)算變得更智能,能夠讓大數(shù)據(jù)和人工智能幫上系統(tǒng)管理員,而不是我們只是幫助大數(shù)據(jù)和人工智能。大數(shù)據(jù)文摘作為大會(huì)戰(zhàn)略合作媒體,今日帶來(lái)徐葳老師的干貨內(nèi)容--《大數(shù)據(jù)與智能云計(jì)算》的演講。他用自己的一些科研和已經(jīng)部署的項(xiàng)目經(jīng)歷,希望給大家一些思路,探索怎么樣讓系統(tǒng)變得更加智能。 清華大學(xué)交叉信息研究院助理教授、清華大學(xué)數(shù)據(jù)科學(xué)研究院Rong講席教授徐葳在首屆中國(guó)大數(shù)據(jù)應(yīng)用大會(huì)上做了題為《大數(shù)據(jù)與智能云計(jì)算》的講座(大數(shù)據(jù)文摘記者 魏子敏攝)
以下為演講PPT和全文: 我叫徐葳,來(lái)自清華交叉信息研究院,我之前在清華上學(xué),之后去美國(guó),再之后去谷歌,2013年回到清華,主要研究方向是數(shù)據(jù)中心和大數(shù)據(jù)的系統(tǒng)架構(gòu)。我在清華有很多職務(wù),包括教學(xué)科研也包括行政的,跟今天有關(guān)系的是,我也是一個(gè)網(wǎng)管,工作包括夜里修服務(wù)器。 我們管的是什么? 我們管的是我們的科研生產(chǎn)雙重的集群,300臺(tái)服務(wù)器,里面有各種不同的機(jī)器,兩用的服務(wù)器,也有開(kāi)放計(jì)算項(xiàng)目,還有各種軟件,包括各種開(kāi)源軟件,我們搭建了一個(gè)平臺(tái),這個(gè)平臺(tái)上有100多個(gè)真實(shí)用戶(hù),每天都在跑各種任務(wù),絕大多數(shù)任務(wù)都跟大數(shù)據(jù)和人工智能相關(guān),白天這個(gè)機(jī)器有兩個(gè)管理員,晚上就是我,為什么晚上是我?因?yàn)閷W(xué)校不付教授加班工資,所以別人下班了就由我管。 我們跑的應(yīng)用是什么?
這是我們自己做的一些科研項(xiàng)目,比如這里是一些視頻,旁邊的字是自動(dòng)生成的,叫做視頻自動(dòng)加字幕。還有一個(gè)是醫(yī)療方面的,自動(dòng)判讀胸部CT,到底哪里有結(jié)節(jié)都可以讀出來(lái),都是智能的應(yīng)用。這些應(yīng)用和傳統(tǒng)企業(yè)IT不一樣,需求每天變,要的都是不一樣的架構(gòu)和計(jì)算能力,所以我們需要不斷調(diào)整系統(tǒng)。 我今天講的核心問(wèn)題是,我們有最智能的應(yīng)用,但是這些智能的應(yīng)用是跑在最“傻”的數(shù)據(jù)中心基礎(chǔ)架構(gòu)上。什么領(lǐng)域用大數(shù)據(jù)用的最差的?就是我們自己的領(lǐng)域,就是云計(jì)算管理的領(lǐng)域。為什么這么說(shuō)? 現(xiàn)在我們還在做云計(jì)算自動(dòng)化,它是什么?就是基于規(guī)則的專(zhuān)家系統(tǒng),這個(gè)專(zhuān)家系統(tǒng)80年代就說(shuō)過(guò),到現(xiàn)在再說(shuō),我就不用在這里講了。但是市面上號(hào)稱(chēng)很先進(jìn)的例如ANSIBLE,就是一些規(guī)則。還有Openstack云計(jì)算系統(tǒng),很流行,包含了一千萬(wàn)行代碼。這些代碼都是什么?它們告訴你如果發(fā)生了什么事,我需要干什么。這個(gè)叫做基于規(guī)則的系統(tǒng),不是智能。
為什么?我們需要太多的規(guī)則了。我們究竟需要多少規(guī)則呢?這張圖是我最喜歡的,我拿它解釋什么叫做復(fù)雜,看這里有多少組件?再看這個(gè)小圈里是什么?
進(jìn)去看這里面是這樣的,里面還有多少組件,這么復(fù)雜的系統(tǒng),你就靠一些規(guī)則,你就慢慢寫(xiě)吧,所以難怪寫(xiě)那么多代碼跑起來(lái)還是有很多BUG。 所以,我今天要講的主題就是說(shuō)怎么利用大數(shù)據(jù)和人工智能讓云計(jì)算變得更智能,能夠讓大數(shù)據(jù)和人工智能幫上我們系統(tǒng)管理員自己,而不是我們只是幫助大數(shù)據(jù)和人工智能。 我是一個(gè)做技術(shù)的人,下邊開(kāi)始講很技術(shù)的內(nèi)容。從大的方向上看,我認(rèn)為把一個(gè)全是用規(guī)則執(zhí)行的基礎(chǔ)架構(gòu),變成一個(gè)智能的架構(gòu),我們需要以下這幾個(gè)步驟和方法: 第一我們要看到系統(tǒng)里發(fā)生了什么,如果看不見(jiàn)就沒(méi)辦法讓它智能。 第二看到了這些信息之后,要把它們整理出來(lái),整理成人和機(jī)器能懂的信息。 再往下如果要能利用這些信息,硬件架構(gòu)必須是可以用軟件定義和控制的。然后你這種控制還需要還要提升可靠性和準(zhǔn)確性,才能讓大家放心。 再往后我們還做不到,但是我們正在朝著這個(gè)方向努力,就是怎么樣讓機(jī)器自主學(xué)習(xí)不同的事情應(yīng)該怎么做。 當(dāng)然,這個(gè)事到這里就組夠了,再往前了機(jī)器就會(huì)覺(jué)得,我都學(xué)會(huì)了要人干什么,然后終結(jié)者就出現(xiàn)了。。。 其實(shí)這里面每走一步都面臨很大的挑戰(zhàn),這也是為什么IT系統(tǒng)的智能化前進(jìn)的比較慢,我們需要看到的是大量非結(jié)構(gòu)化的資源,我們有多個(gè)層次的抽象。 最關(guān)鍵系統(tǒng)沒(méi)有模型,為什么飛機(jī)可以飛,一開(kāi)始它就有個(gè)空氣動(dòng)力學(xué)的模型。但是系統(tǒng)沒(méi)有模型沒(méi)有架構(gòu),是大家打補(bǔ)丁打出來(lái)的。而且很多系統(tǒng)是非常靈活的,有很多隨機(jī)行為,這種情況下怎么讓它變得更智能? 所以今天舉幾個(gè)例子,就是我們做的一些科研和已經(jīng)部署的項(xiàng)目,希望給大家一些思路,怎么樣讓系統(tǒng)變得更加智能。 首先是采集和處理數(shù)據(jù)中心的大數(shù)據(jù),我們要采集的全面、靈活、可靠、方便,且可以看到系統(tǒng)里很多的內(nèi)部信息,我非常贊賞(上邊)這句話(huà)。 30年之后,谷歌的工程師仍然說(shuō)“仔細(xì)思考和打印語(yǔ)句讓我們走到了現(xiàn)在”。打印出來(lái)的日志很有意思,它不是結(jié)構(gòu)化的,像自然語(yǔ)言,看著就是一大堆字。這些字怎么看?不知道,
大家要想辦法把它變得結(jié)構(gòu)化一點(diǎn),所以有很多結(jié)構(gòu)化收集數(shù)據(jù)的嘗試,但是這些嘗試因?yàn)橛刑嗑窒扌裕圆粫?huì)特別成功,所以文本日志還是很重要的。
一個(gè)重要的觀(guān)點(diǎn)是,我們認(rèn)為這種日志,也就是計(jì)算機(jī)跟你說(shuō)話(huà),都不是自然語(yǔ)言。計(jì)算機(jī)為什么說(shuō)這些話(huà)?是因?yàn)橛腥藢?xiě)了程序讓它說(shuō)的。 所以我們可以做這樣一個(gè)事情,就是通過(guò)分析程序的源代碼,來(lái)結(jié)構(gòu)化日志的文本。例如提取出日志中的結(jié)構(gòu)化變量來(lái)。分析出了日志中的結(jié)構(gòu)信息就好辦了,可以用各種機(jī)器學(xué)習(xí)方法來(lái)處理這些文本。處理大量的文本不是問(wèn)題,我們是做大數(shù)據(jù)的,每天處理幾十億行的文本日志毫無(wú)壓力,通過(guò)處理這些海量數(shù)據(jù),能分析出機(jī)器里到底哪里出了問(wèn)題。 但是采集這么多數(shù)據(jù)是很貴的,其實(shí)你用不到這么多數(shù)據(jù),你只要數(shù)據(jù)里邊能反映問(wèn)題的那一點(diǎn)點(diǎn)。 怎么才能降低采集日志文件的成本?首先我們看看這件事為什么很貴?因?yàn)槟愕孟劝殉绦虻臇|西變成一個(gè)文本,你再把這個(gè)文本用文本或者其他的方式展示給人看。如果用機(jī)器處理,你需要把信息變成文本再變回結(jié)構(gòu)化數(shù)據(jù),再審讀這些文件。為了節(jié)約存儲(chǔ),你還要壓縮,這些處理都是成本,所以大家不愿意采集非常詳細(xì)的日志,但是不采集詳細(xì)的日志系統(tǒng)出了事就麻煩了。 其實(shí)節(jié)約日志采集成本也很簡(jiǎn)單,日志這些都不是為了給人看的,日志是為了能讓機(jī)器處理它,讓機(jī)器自己變得更智能?;谶@個(gè)考慮,我們雖然打的還是一個(gè)非結(jié)構(gòu)化的日志,但是我們可以把這些日志存成非常小的二進(jìn)制的表示,等展示的時(shí)候,再重新把它轉(zhuǎn)化為人類(lèi)可讀的文本。如果是機(jī)器處理我們就不轉(zhuǎn)化了。通過(guò)這個(gè)改進(jìn),通過(guò)這個(gè)改造,可以把打印一行日志的開(kāi)銷(xiāo),從3微秒降低到200納秒。為什么這個(gè)事情重要?,因?yàn)橐粋€(gè)程序一秒鐘要打印數(shù)千行日志,這些資源節(jié)省積累起來(lái)是相當(dāng)可觀(guān)的。 這個(gè)改進(jìn)還不夠。你根本不應(yīng)該采取很多沒(méi)意義的數(shù)據(jù)。當(dāng)然,你不采你怎么知道它沒(méi)有意義?;跈C(jī)器學(xué)習(xí)算法,我可以提前告訴系統(tǒng)哪些日志是沒(méi)有用的,可以盡早扔掉,用來(lái)節(jié)省更多的計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源。 我們學(xué)到了什么?首先,系統(tǒng)監(jiān)控一定要做,如果覺(jué)得它太貴,我們可以詳細(xì)優(yōu)化每一個(gè)細(xì)節(jié),是不是做了壓縮,是不是做了所有可能的事情,來(lái)減少數(shù)據(jù)采集的開(kāi)銷(xiāo)。 第二系統(tǒng)監(jiān)控?cái)?shù)據(jù),系統(tǒng)跟你說(shuō)的話(huà)不是自然語(yǔ)言,這些語(yǔ)言不是給你分析的,而是給機(jī)器分析的,因此機(jī)器應(yīng)該分析得比人準(zhǔn)。 一個(gè)系統(tǒng),我們采集了數(shù)據(jù),這個(gè)數(shù)據(jù)怎么展示,怎么變成你要的知識(shí)?
這個(gè)可愛(ài)的動(dòng)物叫小白。我們通常管一些非技術(shù)用戶(hù)叫小白用戶(hù),他如果碰到了問(wèn)題,就會(huì)叫,例如會(huì)說(shuō)“我網(wǎng)絡(luò)不通了”,為啥不通了?他描述不出來(lái)。 再來(lái)說(shuō)什么叫專(zhuān)業(yè),你找到專(zhuān)業(yè)網(wǎng)絡(luò)工程師,他能想出來(lái)無(wú)數(shù)個(gè)問(wèn)題讓你去查,當(dāng)然怎么查有時(shí)候你還是不知道。為什么它至腦子里跟我們想的不一樣,能想到這些問(wèn)題?這是因?yàn)樗涀〉氖沁@些復(fù)雜的事情。這些東西他能教給我么?因?yàn)槲也皇翘焯旄蛇@件事的,我不可能記住這些。所以系統(tǒng)運(yùn)維的知識(shí)很難傳授。 當(dāng)然,系統(tǒng)知識(shí)很難傳授對(duì)于IT咨詢(xún)行業(yè)很好,能一直保持生意,但是對(duì)其他來(lái)說(shuō)是很搞笑的事。對(duì)于這種狀況,我們能做什么? 我們可以通過(guò)最最基本的規(guī)則和信息,就是大家都知道這個(gè)系統(tǒng)里有的信息,例如系統(tǒng)里有數(shù)據(jù)庫(kù)信息,有一些可以列出來(lái)的狀態(tài),還有些包括日志之類(lèi)的事件信息,通過(guò)這些信息,我們可以發(fā)現(xiàn)系統(tǒng)里存在哪些實(shí)體組件,以及最重要的是,這些組件之間的關(guān)系是什么?誰(shuí)使用了誰(shuí),誰(shuí)發(fā)生在誰(shuí)之前,通過(guò)這些我們可以知道系統(tǒng)組件在時(shí)間和空間上的關(guān)系。
再進(jìn)一步看這些關(guān)系,都是系統(tǒng)里最重要的東西。比如我硬盤(pán)壞了,哪一臺(tái)系統(tǒng)機(jī)會(huì)掛掉,這件事要用傳統(tǒng)方法解決,至少需要20條左右的命令,而且運(yùn)行在不同的機(jī)器。這些命令都是知識(shí),一般人不知道的。
而采用我們的方法,我們能夠把這些零散的信息整理成一個(gè)知識(shí)網(wǎng)絡(luò),這種知識(shí)不需要額外的信息,只需要用一些基本的操作(比如圖的遍歷),就能查詢(xún)了。
當(dāng)然這種數(shù)據(jù)很大,我們120多臺(tái)機(jī)器,運(yùn)行了三天多種狀態(tài)達(dá)到460萬(wàn)個(gè),每個(gè)狀態(tài)和每個(gè)狀態(tài)都有關(guān)系,這些關(guān)系你怎么刨出來(lái)。我們是做大數(shù)據(jù)處理系統(tǒng)的,這些數(shù)據(jù)對(duì)我們來(lái)說(shuō)很小,所以我們能夠主動(dòng)檢測(cè)出系統(tǒng)有什么問(wèn)題。這樣我們用機(jī)器的計(jì)算,代替了人類(lèi)的智能。 剛剛說(shuō)了“看”的問(wèn)題,假定我可以看到系統(tǒng)有什么問(wèn)題,有什么優(yōu)化的,下面我們看看,我們?cè)趺茨苡绊戇@個(gè)系統(tǒng),讓它運(yùn)行得更好? ◆ ◆ ◆ 一個(gè)必經(jīng)之路是,增強(qiáng)系統(tǒng)對(duì)于軟件定義的支持?
大家覺(jué)得軟件是軟的東西,但是硬件的東西不變,所以我們定義不了它。這不對(duì),這種狀況在改變,越來(lái)越多的硬件在支持軟件定義。下邊我們講一個(gè)網(wǎng)絡(luò)的例子。
數(shù)據(jù)中心一個(gè)最大的問(wèn)題是長(zhǎng)尾延遲,數(shù)據(jù)中心網(wǎng)絡(luò)大多數(shù)時(shí)候都很快。然而一個(gè)好的IT系統(tǒng)關(guān)心的是,有沒(méi)有千份之一的請(qǐng)求是非常慢的。為什么關(guān)心這個(gè)?因?yàn)槿绻阋幻腌娪幸话偃f(wàn)個(gè)用戶(hù)訪(fǎng)問(wèn),千份之一就意味著每一秒鐘有一個(gè)用戶(hù)覺(jué)得難以忍受。這個(gè)是不行的。然而為什么會(huì)有這種延遲?因?yàn)榫W(wǎng)絡(luò)游擁塞,不是持續(xù)擁塞,是偶然碰一下就擁塞了。怎么解決擁塞呢?繞著走是一個(gè)途徑,然而,有時(shí)候你繞不過(guò)去的,就像北京的交通,你往哪兒繞呢? 如果城市的路網(wǎng)是這樣的,就非常容易做了。在不擁塞的情況下,大家都高興?,F(xiàn)在,這條路太擁塞了,如果路網(wǎng)是可以變的,叫做逢山開(kāi)路、遇水搭橋,我們有很多路,如果哪里擁塞就把這些活動(dòng)的路搭到哪里去,這樣就不會(huì)擁塞了。當(dāng)然在物理世界里這是不可能的,但是在IT上是可以的,通過(guò)這種可變光網(wǎng)絡(luò)技術(shù),哪一條鏈路擁塞就把額外的帶寬加到這個(gè)鏈路上去。
這里是我們?cè)O(shè)計(jì)的物理層可控的數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)。通過(guò)對(duì)不同波長(zhǎng)的光的控制,我們可以動(dòng)態(tài)改變每條物理鏈路上的帶寬。我們搭建了這個(gè)12機(jī)架,180節(jié)點(diǎn)的實(shí)驗(yàn)平臺(tái)。 現(xiàn)在我們?cè)谖锢砭W(wǎng)絡(luò)上有一個(gè)非常靈活的可以軟件定義的方式,但是這種東西怎么用好?第一,我們需要實(shí)時(shí)監(jiān)控,如何看到現(xiàn)在流量到底是什么樣的?如何預(yù)測(cè)下一步的流量是什么樣的?第二,你既可以選擇繞路,也可以選擇搭一條路,如果一邊繞一邊搭路,怎么保證最后得到的結(jié)果是完美的結(jié)果,是一個(gè)非常有意思的問(wèn)題,在這方面我們做了很多的工作。
我們能達(dá)到的效果是,很多情況下可以把長(zhǎng)尾延遲降低近80%。 這個(gè)軟件定義是可以影響硬件的,未來(lái)的硬件將是可定制化的,有了這種軟件定義的靈活性,我們就又離智能運(yùn)維的系統(tǒng)更近了一步。 當(dāng)然,很多基礎(chǔ)架構(gòu)還沒(méi)有靈活的軟件定義,那么在一個(gè)傻的設(shè)施上,我們還能不能做一些精確的控制,或者至少加入一些影響,讓它變得更智能呢? 我舉一個(gè)例子,比網(wǎng)絡(luò)更加基礎(chǔ)的基礎(chǔ)設(shè)施就是供電。數(shù)據(jù)中心供電容量非常貴,你說(shuō)要建一個(gè)10兆瓦的數(shù)據(jù)中心就要找10兆瓦的電容量來(lái)。百度有那么多計(jì)算需求,本來(lái)想放更多機(jī)器進(jìn)到數(shù)據(jù)中心,但是它的數(shù)據(jù)中心平均功率利用率也就是72%就滿(mǎn)了,不敢再放了,浪費(fèi)了很多錢(qián)。
為什么?因?yàn)楣╇娫跁r(shí)間和空間上都是不均勻,會(huì)防止某一個(gè)時(shí)間段或者某一個(gè)閘下面造成跳閘,IT人員做事很保守,就不敢放了。當(dāng)然你仔細(xì)想,會(huì)發(fā)現(xiàn),其實(shí)我別處還有電可用,我可以用別處的電。比如下面這一組機(jī)器,我感覺(jué)它們電容量快滿(mǎn)了,我就說(shuō)不要再往里面放任務(wù),而上邊的機(jī)器還有電容量,就可以再多放任務(wù)進(jìn)去。 智能供電的挑戰(zhàn),一個(gè)是調(diào)度器的接口限制太大,例如我連我放的任務(wù)是什么都不知道。我不知道調(diào)度器還要用這個(gè)機(jī)器干什么,還要要用多少電。另外一個(gè)困難是,在生產(chǎn)系統(tǒng)上沒(méi)有辦法做系統(tǒng)模型。這種情況下,我們還能不能做任何的智能控制?我認(rèn)為也是能的,只要把問(wèn)題想清楚,可以用非常近似的模型,并且通過(guò)持續(xù)的反饋控制來(lái)補(bǔ)償誤差。
我們可以達(dá)到的結(jié)果是,它在用電量比較低的時(shí)候沒(méi)有控制,用電量比較高的時(shí)候會(huì)開(kāi)始準(zhǔn)確的控制,如果有控制的話(huà),你看這條綠線(xiàn)是不會(huì)跳閘的。藍(lán)線(xiàn)是沒(méi)有控制的,它時(shí)不時(shí)會(huì)超過(guò)了橙色的閾值線(xiàn),那時(shí)候就會(huì)跳閘。
是否有用?
我們可以在同一個(gè)數(shù)據(jù)中心里,多放17%服務(wù)器增加15%吞吐量,不影響供電安全,不影響業(yè)務(wù)性能。大大節(jié)約了成本。
學(xué)到了什么?
我們可以容忍有限的接口,不準(zhǔn)確的控制要比什么都沒(méi)有好。雖然接口上是不準(zhǔn)確的,我們可以通過(guò)反饋控制來(lái)提升控制結(jié)果的的可靠性和精度。 上面是我們?cè)跀?shù)據(jù)中心里做一些探索。 采集和處理數(shù)據(jù)中心的大數(shù)據(jù),從大數(shù)據(jù)中發(fā)掘關(guān)于系統(tǒng)的知識(shí),增強(qiáng)基礎(chǔ)設(shè)施的靈活性,增加操作的可靠性和精度。這些都是讓數(shù)據(jù)中心更加智能的基礎(chǔ)。
回到我們之前的問(wèn)題,我們到底離真正的智能系統(tǒng)還有多遠(yuǎn)?我認(rèn)為有了這些基礎(chǔ),下一步是通過(guò)加強(qiáng)學(xué)習(xí)和深度學(xué)習(xí)等方法,讓系統(tǒng)學(xué)習(xí)如何自動(dòng)處理各種事件。這也是我們正在探索的方向。鑒于目前系統(tǒng)方面和人工智能方面都已經(jīng)有了長(zhǎng)足的發(fā)展,我們相信在不久的將來(lái),我們會(huì)看到真正的智能數(shù)據(jù)中心基礎(chǔ)架構(gòu)。 |
|
來(lái)自: tgcici > 《教材編寫(xiě)》