2015年3月2日 星期一

Google小心了!揭開微軟加速Bing搜尋能力的秘密

Google小心了!揭開微軟加速Bing搜尋能力的秘密

Altera

我們搜尋Google的網頁索引時,大概只在約5,000億張網頁中的10%搜尋而已。許多內容還埋藏在可見的表層網路的深層(不要和黑暗網路搞混)。競爭搜尋引擎如Yahoo和Bing的索引(分別約為150億張)大概只有Google的一半。為了迎頭趕上,微軟最近開發了進階的「可程式化邏輯陣列(Field-Programmable Gate Array, FPGA)」技術,以便能更快、更有效進行大量網路爬梳。

Google的工程師之前估計一次0.2秒的網頁查詢時產生的索引與取回動作,大約耗用0.0003kWh的能量。以每個月Petabyte的索引量查詢高達1,000億次計算,優異的網頁排序成了他們難以超越的優勢。微軟改良Bing的方法則是將搜尋分成三部份—特徵萃取(feature extraction)、自由查詢語法(free-form expression)及機器學習評分。

FPGAworkflow

Bing的文件選擇服務汲取及過濾包含搜尋詞彙的文件,還是跑在Xeon處理器上。其排序服務是根據搜尋結果的相關性為過濾來的文件評分,最近也移植到稱為「Project Catapult」的FPGA系統上。微軟可能採用客製的應用特製積體電路(application-specific integrated circuits, ASIC)來加速Bing的排序功能。但因為軟體演算法變化速度之快,微軟不得不改採可程式化的FPGA硬體。

傳統上FPGA一向是特殊運算用途的裝置。因為它們的內部結構可輕易組態,所以經常被用在製作處理器原型。它們也很適合用以執行需要晶片大量輸入、輸出連接的應用系統。但還有另一處不惜任何代價會用到它,就是運算速度至上的地方。例如你的裝置需要計算衛星上偵測宇宙射線的閃爍陣列接觸到的射線總能量、判斷何時有反應,而且一切都得在數奈秒之間完成,這些光靠軟體就力有未逮。

Project Catapult源自於2011年PCI-Express Card的設計,它使用6個以一個控制器連結的Xilinx FPGA。然而將新的裝置整合到既有伺服器需要大幅重新設計,以滿足裝置能量耗用及熱量排放的嚴格限制。它們最新設計則是使用Altera的Stratix V GS D5 FPGA。為了滿足重度FPGA使用者需求,這項裝置具備1,590個數位訊號處理區塊、2,104個M20K記憶體區塊及36個14.1 Gb/sec收發器。如同Bing團隊在ISCA 2014上所宣佈,這項平台完成網頁排序只需過去一半的伺服器數量。

Catapult

微軟稱之為「旋積神經網路加速器(convolution neural network accelerator)」。旋積經常用於訊號處理應用,像是電腦視覺、語音辨識或任何需要用到特殊平均或交叉相關(cross-correlation)的地方。在電腦視覺中,2D旋積可使用鄰近資訊和每個像素混合以獲致多種過濾效果。旋積神經網路(convolutional neural network, CNN)是由人工神經元的小型集合組成,每個集合都只專注於一小部份影像,稱為接收域(receptive field)。在一些比賽如ImageNet 1000中,CNN已經在物件分類上超越人類了。為排序而分類文件也是類似情形,現在也是微軟希望以CNN解決的眾多課題之一。

此時微軟工程師已考慮開始使用Altera新的Arria 10 FPGA。這款晶片已為浮點大量運算的作業最佳化,傳統上為DSP擅長領域。由於它具備Teraflop執行速度,能源效率又是同等級GPU的3倍,因此微軟盼望可以靠它在網頁搜尋及排序市場上急起直追。

原文出處:Microsoft to accelerate Bing search with neural network
轉載自《網路資訊雜誌

沒有留言:

張貼留言