一、微軟Custom Vision
2017年微軟Build開發者大會上,微軟高階專案經理Cornelia Carapcea展示了一項技術:
使用者建立的自定義視覺API模型只需要一個訓練資料樣例(只有幾十個攝影樣本),而Custom Vision則可以完成其餘的工作。
一旦建立了這個模型(只需幾分鐘),使用者就可以透過安裝在微軟伺服器上的REST API訪問。Carapcea說它可以用於識別食物和地標,甚至是應用在零售環境中。
Custom Vision可以選擇最可能為模型增加最大增益的影像,允許使用者手工標記影像,然後繼續改進總體的準確性和可靠性。
微軟亞洲研究院副院長、人工智慧系統聯合中心負責人周禮棟博士在接受AI前線記者採訪時說:Microsoft Custom Vision和Google Cloud AutoML都是針對視覺識別領域裡的AutoML(自動學習)的一個應用,都非常的簡單易用。透過把複雜的模型選取、引數調優的過程掩藏在了產品的背後,Microsoft Custom Vision可以給使用者提供一個非常簡單易用的體驗,使非專業人士也能零門檻的定製自己的模型。
同時,Microsoft Custom Vision也是微軟認知服務(Cognitive Services)中的一部分,微軟推出的認知服務包括視覺、語音、語言、知識和搜尋等五大類別的二十多個API,如人臉識別、情緒識別、語音識別、拼寫檢查、語言理解等等。微軟認知服務的側重點是為使用者提供一個通用的服務,使用者可以直接呼叫現成的智慧API來開發出更智慧、更有吸引力的產品,而不需要花費大量時間來自己訓練模型。
而對於最近剛剛興起的AutoML技術,周博士也發表了一些自己的看法:
近年來,“AutoML(自動學習)”已經成為了一個研究熱點。透過自動化的方式,機器試圖學習到最優的學習策略,從而避免機器學習從業者低效的手動調整。經典的AutoML方法包括用於超引數調節的貝葉斯最佳化(Bayesian Optimization),以及用於最佳化器和網路結構調整的元學習技術(Meta learning/Learning-to-Learn)。除了在學術界引起了廣泛研究興趣,AutoML在工業界也已經得到了實際應用,例如此前提到的微軟Azure提供的自定義影像(Custom Vision)服務,它能夠方便雲端計算使用者自動訓練用於計算機視覺的機器學習模型。
AutoML讓使用者在沒有專業知識的情況下使用機器學習的門檻大大地降低,甚至可謂是零門檻。在沒有機器學習專家指導的情況下,使用者透過AutoML就能在一定情況下得到高質量的模型,這使機器學習的行業應用更加容易可行。周博士說,微軟亞洲研究院希望把這類技術的使用和研究更加普及化。微軟正在著力打造一款用於深度學習的專案,名曰:深度學習智慧探索(Neural Network Intelligence),簡稱叫NNI。
開發NNI工具包的目的是為使用者提供智慧化、自動化的深度學習工具包,可以幫助使用者或者開發者自動地進行資料分析,自動的幫他們搜尋模型,進行引數除錯和效能分析,透過這樣自動迭代的準備過程,使用者可以節省更多的時間,將精力放在探索更有深度的機器學習的道路上。
周禮棟博士表示,NNI整合了AutoML演算法,是一個支援不同作業系統的,在本地也可以雲端執行的工具包。它特別適合有一定人工智慧基礎的科研人員更加有針對性、精準的選取模型。微軟為此制定了全新的語言,使得定義和描述搜尋空間只需幾行程式碼,所有的底層通訊等複雜問題都被封裝起來,對使用者完全透明。NNI著重解決了一系列支援AutoML的系統問題,以開放的方式有效加速AutoML演算法研究者在這一領域的創新。為了鼓勵更多人工智慧的科研工作者一起加強這項研究,NNI計劃將在近期開源。
二、另闢行徑,打造智慧系統
然而,微軟對降低人工智慧門檻,提升深度學習普及化的想法可不止於此,AutoML技術只是其中的一環,微軟要做的是智慧系統。
周博士表示,AutoML是人工智慧系統的一部分,它也對人工智慧系統提出了包括資源管理、任務分配等一系列挑戰。簡單的說:靈活可擴充套件的好的人工智慧系統能夠更好的支撐AutoML,使其更好更快的生成結果。而好的AutoML則能夠使人工智慧系統更加完備,更方便使用。
三、智慧時代,系統為先
周禮棟博士首先表示:人工智慧如果沒有系統的話,就只是一個海市蜃樓——看上去很美,但一點都不真實。
他認為,系統就是把複雜的東西變得有序易用。而在計算機領域,系統的重要性是不言而喻的,在整個計算機發展的過程當中,我們感受到的每一次大的突破,背後實際上都有很多計算機系統的理論和設計作為推動力。
周博士分析了每一個時代下,系統的重要性:
網際網路時代,有很多非常新的系統出現在我們的生活中,其中最有代表性的一個系統就是搜尋引擎。大家很多人都用搜尋引擎搜尋網上的資訊,而搜尋引擎背後就有很多系統領域的技術、理論。其中一個典型的系統理論就是分散式系統理論。
在大資料或者說大家都熟知的雲端計算時代,雲端計算的系統就是非常典型的系統。現在我們看到很多公司都在提供雲端計算的服務。這裡就用到了一些新的計算機系統的技術,其中有虛擬機器技術、容錯技術等,因為這些技術才使得這樣的服務和系統成為了可能。
如今的人工智慧時代,我們看到越來越多深度學習在計算機視覺、語音識別、自然語言等領域都取得了突破,這就對系統產生了更大的需求。我們研究開發了很多大規模深度學習的平臺,這其中也依託了最近在系統方面的進展和研究成果,包括怎麼利用異構的硬體高效地執行這些深度學習的任務,也包括怎麼進行高效能的平行計算。這些使得深度學習,特別是非常有深度的模型的處理成為可能。
周博士說:“我們還可以設想,未來量子計算將成為主流的技術。但是我們也可以看到,現在在系統方面的發展還沒有到能夠讓它付諸實用的階段。雖然理論上很成熟了,但若要變成現實,還需要在系統方面進行很多創新、研究、實踐,才能促成這一步大的變革。”
四、深度學習的瓶頸
在演講中,周博士提到了深度學習目前已經取得進一步的發展,但還是會遇到一些瓶頸,而且很多瓶頸還是產生在系統方面。他說:“現在,即便我們有很多不同的硬體加速,有很多不同的模型,我們能怎麼解決把這個模型非常高效地對映到相應的硬體上,並且有不同定製的最佳化呢?整個深度學習領域裡面的工作目前其實都是人工去做的,而不是用系統化的方法去完成的。”
此外,進行深度學習模型訓練的時候,開發者們一般使用GPU來進行加速,當訓練樣本只有百萬級別的時候,單卡GPU通常就能滿足我們的需求,但是當訓練樣本量達到上千萬、上億級別之後,單卡訓練的耗時會很長,所以這個時候通常需要採用多機多卡進行加速。在這種情況或者一些更復雜的情況下,我們就需要很多系統方面的設計和考慮。人工智慧的實踐者不用再擔心是不是需要自己架一個GPU叢集才可以做人工智慧的事情。因為這是系統應該完成的事情,周博士說:“我們應該把這些事情都做了,那麼人工智慧方面的研究者就能被解放出來專注研究人工智慧的問題了。”
人工智慧領域的門檻非常高,所以人工智慧從業者的身價也非常高。這也是因為系統層面的很多工作還不夠深入。周博士表示,他們推進自己的工作,就希望能夠把這個門檻降低,真正做到“人工智慧普及化”。這將是非常可行、且必行的下一步工作。
五、微軟的智慧系統
周博士認為:系統最關鍵的創新,就是把抽象實現的非常完美。使用者其實“看不到”系統,大家談起來,似乎看到的都是視覺等上層的突破,永遠看不到下面底層的進步。所以我們一直說,系統的最高境界就是完全不可見的,是隱形的。
他告訴我們:微軟一直認為,未來,整個世界就是一臺計算機。現實世界也好,虛擬世界也罷,所有這些部分都將連線在一起。
周博士說:“微軟亞洲研究院對系統這個領域的理解是:首先,系統是一個跨領域、有廣度的研究,我們需要對從底層的硬體一直到上層的應用,包括人工智慧這樣新的應用,都有非常廣博的瞭解,這樣才能夠設計出適合應用的系統。其次,編譯器原理、編譯最佳化、資料庫系統這些領域,我們也都需要有深入瞭解,這樣才能夠透過合理的系統設計充分利用硬體的能力,也就是說,系統方面的研究也一定要有深度,這也是非常重要的。”
據介紹,微軟亞洲研究院系統領域的研究成果在現實的商業場景中已經有了廣泛的應用,併產生了實際的商業效能,例如:
GraM分散式並行圖處理引擎,能夠在記憶體裡面透過叢集處理具有超過10億條邊的圖;
Apollo大資料任務排程系統,可以直接部署在10萬臺機器上,每天能夠排程幾百萬條的任務,用來支援搜尋引擎、廣告等部門的日常業務;
StreamScope分散式流資料處理平臺,能夠實時處理數十億的廣告資訊;
KV-Direct Key/Value系統,可處理每秒12億次以上的操作,相比同類最前沿的研究系統有至少一個數量級的提升。雖然這個系統還沒有得到部署,但它是微軟目前研究的最前沿的一個代表,發表在計算機系統的頂級會議SOSP 2017。這些只是冰山一角,據說微軟在智慧系統方面的探索遠不止於此,智慧時代的微軟似乎擁有著更多的可能性。
六、智慧系統的未來
最後,周博士表達了他個人對智慧系統發展趨勢的一些看法:
首先,現在很多深度學習的框架,將來都將互通統一。其實資料庫就是一個很好的例子——很久以前有各種各樣的資料庫,但最後大家發明了所謂的以Relational algebra(關係代數)為基礎的資料庫,讓所有資料庫模型都成為一種統一的模型。在人工智慧方面,這種互通的統一性,從系統角度來說也是肯定會發生的一件事情。
其次,系統的能力會越來越強,會有無界的資源。整個世界就是一臺計算機,所以我們最後希望能夠達到的目標就是,在資源無界的環境裡,你所使用的資源,無論是來自於計算中心還是來自於自己的計算機,甚至是來自於一個不知道是什麼的地方,都會被系統很好地隱藏起來。你只要把事情做好,而不用關心資源是從哪裡來的。
最後,也是需要再強調的一點,在系統研究裡最關鍵的創新在於要提出一種更簡約的抽象,並且用全新的工具和平臺來支援這個抽象,從而讓大家各方面的工作效率得到提升。
為了推進人工智慧普及化、降低開發門檻,微軟正在不斷地努力和嘗試,相信使用者很快就能享受到這些努力的成果。就像周禮棟博士所說:系統的最高境界是無形的。也許技術的最高境界就是無形的,好的技術就是這樣在潛移默化中改變了我們的生活,雖然我們沒有感覺,但是它的確發生了。