Wednesday, March 11, 2009

Google’s innovations and cultures (iis@sinica taiwan)

(http://antbsd.twbbs.org/~ant/wordpress/?p=127, April 28th, 2006)

Google’s mission is to organize the world’s information and make it universally accessible and useful.

很高興 Google 來中研院舉辦了這一場演講,雖然沒有辦法去聽星期三,李開復博士在台大的演講,也沒辦法聽星期四,李開復博士在交大的演講,但至少可以聽到翟本喬博士、沈修平博士在中研院的演講。翟本喬博士是台灣第一位跳級生。主持人是簡立峰博士。

翟本喬博士、沈修平博士都是 Google 美國總部的工程師,演講完後又要回到美國工作了,在兩位博士身上我看到了Google 的活力,他們總是很快樂的介紹Google,很快樂的工作。

翟本喬博士主演「Building systems for scalability」部分。談到Google早期在stanford大學時,需要跟各教授與實驗室取得舊的、不要用的機器來組點以及實驗。在公司成立 之初,布林和佩吉自己用手工組裝了 cluster 的機器,沒有機殼,完全都是真正的裸機,拆裝方便。只是看起來不是很穩定,因為機器與機器間的隔板是軟性的,有下凹現象。後來逐漸賺錢後,開始租了自己的 機房,有了正式的機櫃和機器,但由於維修費用太高,一顆HD就要$500,外面買一顆只要$200,於是Google就自己買來裝。可是廠商賺不到錢後, 又要求每個機櫃要$1000。於是Google轉而自己擁有機房、機櫃與機器,機櫃的設計有些回到最早時間的裸機,只是這次是經過專人設計,美觀方便外, 也避免了下凹情形,而且因此申請了七項專利。這就是Google的「Data Server Center」。

為何Google不使用高階伺服器,而使用一般PCs?翟本喬博士開始談「Consider the Different Dimensions of Scalability」。高階伺服器常有保證長年不當機,但這種功能可以用多部PCs來解決。因此各舉了下列項目說明,「Hardware and networking」、「Distributed systems」、「Algorithms, data structures」、「Manchine learning, information retrieval」及「User interfaces」。

翟本喬博士接著說,硬體方式解決後,還有軟體問題。Google利用的技術是自己開發的三種:「Google file system」、「Global Work queue」及「MapReduce」。GFS解決分散式處理底層的問題,GWQ解決分散式處理排程的問題,而MapReduce則是讓開發人員可以不用 了解分散式處理如何運作,而只要專心開發自己的程式,即可自動幫你處理分散問題。

翟本喬博士也展示了幾張有趣的Google query 的圖。X軸是時間、Y軸是量。例如Operton的query,可以看出在未有消息時,Y是零,而在產品有點風聲時,Y開始維持一定的量,在產品發表時, 量會狂升,而後馬上掉下來回復到一定的數量,這個數量比產品有點風聲來的高。也展示了世足的比賽,通常在星期天,query量都差不多,但在世足比賽時, 會有明顯的下降,進球時會突然上升,而後又比較還低,比賽完後,才會回到一般星期天的量。還有query 「earthquake」,平常幾乎是零,但當美國某次大地震時,突然高起,幾乎呈垂直情形,而後又馬下降到最低。翟本喬博士說,可以從query的量, 來看出某事件的發展情形。這真是太有趣了。

翟本喬博士也說,有一次一個員工向他要求一個大實驗,他說有多大,員工說要500台電腦,馬上就有現成可利用。因為Google負責電腦利用配額的 主管說,除非是超過$1000萬,否則不用他考慮。因此彈性是很大的。翟本喬博士說,基本上他們採購時,記憶體是用Terabytes為單位,硬碟是以 Petabytes為單位,PC則是以萬台為單位採買的。

沈修平博士主題為「Harnessing the poer of data」。簡單來說,「Data is king」,他以Page rank為例,若資料量不足大到一種程度,這個功能根本作不出來。他說以前老師常說「想像你有十倍的CPU,你能做什麼」,而現在他認為「想像你有十倍的 Data,你能做什麼」,這完全是不一樣的問題,會有不一樣的想法。以前會想algorithms 如何最快,在Google中是algorithms如何能夠找到最正確的資料。以Spelling checks來說,古典方法(classic methodology)是使用字典的方法,通常字數 ~100K words。這種方法不好,也不正確,因為有很多語意是模糊的。因此 Google認為可以從使用者怎麼使用來修正,其中的觀念是「正確不一定是使用者要的,因為有時使用者也不確定是這樣拼,所以不堅持Google一定是對 的」。如Kofi Annan,很多人都會以為這是拼錯的名字,所以常用不同的方法來搜尋,因此Google必須要能夠建議這些使用者,以導入他們想要的資訊,而不是說使用 者錯了,而找不到,所以輸入Kofee Annan時,可以導到Kofi Annan,輸入Kofee Shop這種模糊詞時,會導到Coffee Shop 而不會到Kofi Annan。

沈修平博士也提到 2003年時,第一名的查詢是「super bowl」,但2004年時,第一名是「janet jackson」,第二名是「superbowl halftime」(笑)。使用者會因事件不同而要求不同的資料回應,所以2004年必須有不同的結果顯示。到了2005年時,第一名又是「super bowl」了。所以,沈修平博士說「有資料比有頭腦來的重要」。

在Machine Translation領域中,大師說這個領域已經走到死胡同了,因為傳統該領域的研究認為瓶頸在於CPU不夠快,但現在CPU已經夠了。此 時,Google卻又投入了這個領域的研究中,Google認為有大量的資料就足以解進這個問題。於是當Google投入時,馬上在這個領域的準確性得到 了第一名。不管在Chinese-English Translation 或在Arabic-English Translation中都是第一名。別人問,「那你們system學到了什麼?」,Google不清楚,因此演算法非常簡單,只是它擁有了大量的資料, 於是答,「不知道,只知道效果非常好」。

總結一下三位博士的名言:

翟本喬博士:「Google只考慮怎麼對user有用,而不考慮市場,只管興趣。因為Google有專門的 team 去考慮市場。」

翟本喬博士:「Google只想怎麼對user有用,而不是如何打敗微軟或其它廠商。」

沈修平博士:「Data is king。」

沈修平博士 :「發現把 program 丟到有 data 的地方,對於解決分散式處理來說是最有效率的。」

沈修平博士 :「Super computer與 Grid 的界限愈來愈模糊。」

翟本喬博士:「Google很透明,每項資訊大家都知道。員工提出 ideas,大家會評分,有興趣的就加入,不分區域、不分職稱、不分部門。如果老問有異議的話,則老問要說服你不要用。所以不需要寫專案報告,不需要說服老闆。」

簡立峰博士:「Google重視 R & D & Distribution,要兼具,這樣最有效率。Google只找最好的人,避免留下bugs,或跟不上brain storming。」

可惜,最後有發 Google 台灣的 T-shirt ,因為數量有限,我沒拿到。(泣)

No comments:

Post a Comment