1. 程式人生 > >微軟牛津計劃,輕松打造自然語言應用

微軟牛津計劃,輕松打造自然語言應用

訓練 業界 很難 ransac 根據 沒有 過程 畢業 北京大學

由微軟主辦的為期一個月的“牛津計劃. Docker在線黑客松”活動已經圓滿結束了,此次活動參賽者們根據主辦方公布的開發需求以及免費提供的牛津計劃APIs,為我們帶了各種各樣有趣好玩、腦洞大開的應用。此項活動再次將人們的目光聚焦在了這個可能孕育著未來核心科技萌芽的項目:“牛津計劃”。

技術分享

還記得不久前火過的那個測年齡應用 how-old 嗎?用戶只要將照片上傳到網上,這個應用就可以識別出照片裏有幾個人,他們的年齡分別是幾歲。這項有趣的應用正是基於牛津計劃人臉技術的其中一個應用,與此相類似的還有TwinsOrNot 等。牛津計劃就像一個“黑科技”的雜貨鋪,用戶只要註冊一個免費的秘鑰,即可使用這些API輕松地打造自己個性化的應用,而不需深刻理解其背後復雜的算法和模型。牛津計劃的提出很大程度上得益於其新任CEO 薩蒂亞?納德拉 (Satya Nadella)。這位印度裔高管上臺初始就確定了微軟今後“移動為先雲為先”的戰略,而牛津計劃正是微軟雲平臺 Azure 的一部分。通過開放API和SDK的形式,將它借給第三方開發者使用,這也正體現了一個行業領導者所具有的責任與胸懷。

除了圖像視覺方面的技術,牛津計劃還開放了很多語音識別和語言理解方面的API供開發者調用,為人類與計算機進行輕松“對話”貢獻一份力量。例如聲紋識別(Speaker RecognitionAPIs)、自定義智能語音識別服務(CRIS)、語言理解智能服務(LUIS)以及拼寫檢查服務(Spell Check API)等等。不僅提供微軟最先進的雲端聲紋識別算法,可識別音頻流中的人聲;還能幫助開發者創建自定義語音識別端點的門戶,可根據應用的環境、用戶群體和詞匯表進行量身定制;更可以幫助開發者在應用中增加語言理解能力,讓應用具備網絡級語言模型的強大處理能力。

那麽牛津計劃中語音識別和語言理解領域的技術服務究竟是什麽樣的,它們是如何被研發出來的呢?近日,InfoQ就該問題采訪了微軟中國雲計算與企業首席項目經理李京梅女士。首先對李女士做一個介紹:

李京梅女士,本科畢業於北京大學並在美國取得紐約州立大學碩士學位。現任微軟中國雲計算與企業首席項目經理,負責微軟牛津計劃(Project Oxford)平臺的開發工程及運營。她擁有18年軟件開發及IT行業經驗,其間在美國和中國微軟公司任職近十年,先後在咨詢服務和研發部門擔任技術架構師和產品項目經理職務。

InfoQ:您好,李女士。首先請您對微軟的牛津計劃做一個介紹。

李京梅:牛津計劃最早是在4月29日的全球 “Build 2015”大會上公布的,當時公布的時候有4款API。“牛津計劃”僅僅是一個代號,在正式商用之前便於大家記住。牛津計劃現階段還處於公測階段,我們希望有更多的用戶去使用,尤其是第三方的開發者,並提供反饋,以便我們不斷更新和叠代,並最終形成對外發布的版本。牛津計劃是一系列API,剛剛推出的時候僅有4款:人臉識別、語音識別、計算機視覺和語言理解智能服務;今天牛津計劃已經發展到11款API了。

在這背後有很多微軟的大型團隊進行支持,例如以沈向陽博士為領導者的微軟研究院以及將算法變成現實產品的工程團隊。這些團隊在牛津計劃之前都已經存在了很多年了,但之前的這些所謂的“黑科技”都是存在與微軟的現有產品或應用服務中的,例如Windows、Bing.com等;但當開發者真正想要用到這些核心技術時,除了購買產品幾乎別無他法,因此微軟想要將這些核心技術開放給廣大的開發者。這些開放給廣大開發者的API具有以下特點:

  • 基於雲平臺,API服務都放置於Windows Azure雲。

  • 無需安裝。

  • 跨平臺、跨語言、跨設備,只要開發者可以調用REST API,都可以輕松使用。

目前牛津計劃的API服務可以分為:視覺、語音和語言三類領域。基本涵蓋了人類“聽(語音)、說(語言)、讀(視覺)、寫(拼寫檢查)”的各個方面。

InfoQ:那麽牛津計劃中的語音識別和語言理解這兩款API是怎樣的?

李京梅:至於語音功能則是來自於Cortana(微軟小娜)的核心技術,還是比較成熟的,只不過將Cortana當中核心技術拿出來做成了API提供給大家而已。在第一款語音API中,僅能實現語音轉文字(語音識別)和文字轉語音(語音合成)的功能,這兩項技術與Cortana是完全一樣的。在語言理解的API——即LUIS中,與語音識別不同的是它包括模型訓練的過程,現在LUIS已經對公共開放測試,通過訪問https://www.luis.ai/ 即可參與測試。語言理解更多的針對文字,會幫助我們標註“intent(意圖)”和“entity(實體)”;與此同時還提供一些現有的模型,例如“小娜”語言理解模型,也提供了自定義模型的功能,目的是為使用者提供方便。

“小娜”語言理解模型中有很多現成的功能,例如“幫我設置一個明早7點的鬧鐘”這樣的語言命令可以直接調用。如果開發者想要建立一個“鍛煉身體”的語言模型,卻沒有現成的語言模型可以調用,可以自己訓練諸如“追蹤我的自行車訓練”這樣的語言命令,並進行標註其語義(intent)和實體(entity)。語言理解背後很多模型都用到了深度神經網絡,我們將基本的數據進行訓練後,被訓練的模型就會根據使用而變得越來越“聰明”,這即是學習的過程。

LUIS——語言理解智能服務在標註了自定義的意圖和實體之後,開發者可以將其對外發布成自己的“Runtime”——即自己的服務。就像微軟提供的一些語音識別、人臉識別服務,都是前期訓練好的Runtime,只不過用的是微軟自己收集的數據集來訓練出來的。

InfoQ:這些微軟收集到的,用於訓練模型的數據集會有多大體量呢?

李京梅:不同API有所不同。這些API都是由不同的研發團隊研發而成的,不同服務的研發團隊所收集數據的方式、收集數據的體量都各有不同。例如Cortana的美國研發團隊與負責人臉識別的國內研發團隊收集數據的方式與體量是不一樣的。牛津計劃涉及到很多團隊的工作,但並不存在一個專門為此提供數據的部門。

這些研究團隊都在不斷進行前沿技術的研究,當一些前沿技術變得比較成熟、適合做產品化、並且適合從戰略角度進行技術開放時,研究團隊就會和“雲計算與企業事業部”相合作,將該技術變成“雲服務”、可以“擴展”、被成千上萬開發者去調用。我們“雲計算與企業事業部”就是將算法變成產品、在線的服務;也會負責後期的維護與運營;以及商用的“端到端”打理。

InfoQ:目前市面上存在很多其他廠家的語音識別API,牛津計劃的語音識別API相較於它們有什麽特色或者創新之處嗎?

李京梅:凡是進入到“牛津計劃”中的API,目前在微軟中的技術一定是相對有競爭力的。從研究領域來說,計算機視覺和語音在業界是有不同的衡量標準的,大家進行測試和排名的標準也不一樣。從技術上來說,業界彼此所提供的功能也不同。以計算機視覺為例,人們可以簡單地講:“我這是一款計算機視覺的API。”但是每一款API裏面可能還包括很多細分的項目,在每一個細分項目上會有自己不同的衡量和排名。

另外,在研究領域上,如果我們某個研究團隊的研究成果獲得了一些排名,精確度有所提高,但也僅僅是在該研究領域的技術層面來看,不等於我們的API與該研究成果是等同的。從API的角度很難去做比較,很難簡單地從數字指標的方式去評判優劣。

微軟希望大量地從用戶體驗的角度去了解用戶的反饋,也是為了讓開發者在寫代碼之前去https://www.projectoxford.ai/觀看API的在線演示窗口。這樣無需開發者填寫拿到的密鑰,很好地提升了用戶體驗。以圖片分析和人臉識別為例,開發者只需將想要分析的圖片上傳上來,該頁面的代碼只是進行分析功能代碼的調用,返回結果與開發者自己編寫程序返回的JSON結果是一樣的,開發者可以查看返回結果精確度等等,不需要自己寫代碼去實現。

InfoQ:在語音識別過程中人們往往會碰到遠場識別和噪音環境下識別等特殊情況,微軟在這兩方面的應對方案是怎樣的?

李京梅:我們有“CRIS”---自定義智能語音識別服務。2015年4月份發布的語音識別服務是微軟提前訓練好的、通用的模型。通用模型只在正常環境下那些各方面都健全、各個年齡段都有的人群,其測試結果才會比較高。而我們有時候會涉及到特定人群:例如托福考試中非英語母語的人群,說出的英語往往帶有口音;老人院中的老人,說話往往不太清楚;比如迪斯尼遊樂場這樣的噪音環境。針對上述這些特殊環境,我們允許開發者使用自己的、適用於特殊環境的數據集來訓練出一個定制化的模型。由於這些數據是針對小範圍的、特殊人群(或特殊環境下)的,因此使用CRIS開發出的自定義服務在這些語音識別環境下的識別精確度比通用模型要好很多。CRIS要求我們的開發者具有自定義的數據集,目前還處於內測階段,開發者可以去申請使用。

InfoQ: 從API發布之後,微軟使用API收集用戶數據的過程是怎樣的?會涉及到用戶隱私嗎?

李京梅:在模型研究開發階段,各個研究團隊有他們自己的數據收集方式,無論是購買還是外包,都不盡相同,這一點我之前提到過。在API正式發布之後,各個API都會有用戶隱私聲明,還會有開發者行為準則,使用API的開發者需要在他開發的應用程序中向終端用戶做隱私聲明;從微軟門戶網站上的API在線演示來說,牛津計劃的算法和模型都是放在“雲”上的,它相當於一個“黑盒子”,用戶通過API將自己的數據上傳給微軟用於處理測試,處理完畢後微軟會將其刪除,並不做長期保留。

另外,微軟處理完用戶數據後還會通過頁面上的按鈕向用戶尋求反饋,用於檢驗在線演示的結果是否準確。如果用戶表示願意將自己的數據用於微軟的模型改善,僅在此種情況下微軟才會長期存儲該用戶的數據,並將用戶數據進行“去敏處理”---例如去除位置隱私信息、手機型號信息等。微軟雖然收集客戶的數據,但絕對會保護客戶的隱私並經過客戶本人同意。

如果這個數據是事務(transaction)所必須的,例如聲紋識別數據、人臉圖像數據。用戶需要提供這些數據來進行建檔/建模,微軟肯定需要收集這些數據,幫助用戶“註冊”。

InfoQ:語音識別API和語言理解API目前有成熟的產品應用嗎?

李京梅:現在說“成熟的產品應用”還有點早,因為整個牛津計劃發布到現在還不到一年。“微軟小冰”對我們來說就是一個應用,雖然它集結了微軟的各種技術,但其中語音部分就用了牛津計劃中的語音識別技術。現在也有很多用戶在使用牛津計劃API,但是暫時沒有多少用戶將其開發出的產品公布出來。

InfoQ:牛津計劃對於自然語言處理技術未來的期待是怎樣的?

李京梅:牛津計劃還是很註重各個技術領域的平衡。雖然剛開始自然語言處理技術在牛津計劃中所占的比重比較小,但是目前也開始慢慢上來了。後續還會有像“知識”、“字典”、“字庫”這樣偏向語言的服務出現。

就某項技術好不好是一方面,但適不適合做成API還要從“數字”來說話。之所以有一段時間給大家做私測和公測,也是希望用數字來說話。例如不同API,內部不同的功能被用戶調用的次數就是一項“硬指標”,有沒有人用對於評判API好壞很重要;另外從應用的角度我們也在不斷征集好的應用案例(AppGallery),靠外部的好的應用案例去放大API調用的實際效果,包括內部一些團隊搞“黑客松”這樣的活動,就是想更多地進行經驗分享、在應用上彼此激發靈感。關鍵是做出能“接地氣”的API。

最後,小編還有一個呼籲:

立即訪問http://market.azure.cn

微軟牛津計劃,輕松打造自然語言應用