目錄:
一、人工智能的核心是工程化,場(chǎng)景是工程化的關(guān)鍵
二、三類(lèi)場(chǎng)景化實(shí)踐
三、總結(jié)
持續(xù)關(guān)注我們公眾號(hào)的人可能會(huì)留心到我們?cè)谝苿?dòng)平臺(tái)和人工智能的結(jié)合上進(jìn)行過(guò)多方面的嘗試,也發(fā)布過(guò)兩篇專(zhuān)題文章。分別是《智能化的Conversational UI是移動(dòng)發(fā)展的一個(gè)趨勢(shì)》和《使用TensorFlow搭建智能開(kāi)發(fā)系統(tǒng),自動(dòng)生成App UI代碼》
本文主要是將我們?cè)?017年相關(guān)的實(shí)踐做個(gè)總覽式的分享,希望能夠給各位一定的啟發(fā)。
一、人工智能的核心是工程化,
場(chǎng)景是工程化的關(guān)鍵
首先總結(jié)一下,我們?cè)谧鋈斯ぶ悄芘c移動(dòng)互聯(lián)結(jié)合的時(shí)候,最重要的目標(biāo)是:人工智能工程化。
做GPU的英偉達(dá)、提供開(kāi)源的基礎(chǔ)框架TensorFlow的Google、研究各種算法的科學(xué)家,與我們分處人工智能產(chǎn)業(yè)鏈的不同環(huán)節(jié),而我們的目標(biāo)是尋找合適人工智能的場(chǎng)景,結(jié)合行業(yè)的一些經(jīng)驗(yàn),形成工程化的解決方案。
人工智能(AI)賦能企業(yè)移動(dòng)信息化建設(shè),其本質(zhì)上就是人工智能在企業(yè)移動(dòng)信息化過(guò)程中工程化落地。
支撐人工智能工程化的過(guò)程需要依賴(lài)與數(shù)據(jù)、技術(shù)、場(chǎng)景的三者結(jié)合,并結(jié)合軟件工程化的思想將其融合。而這三者之中,場(chǎng)景是關(guān)鍵。
人工智能與數(shù)據(jù)并非一定強(qiáng)相關(guān)
這里提到的是“數(shù)據(jù)”,而不是大家經(jīng)常提到的“大數(shù)據(jù)”,主要原因是“大數(shù)據(jù)”三個(gè)字很容易讓更多的技術(shù)團(tuán)隊(duì)束縛思想讓自己無(wú)法從事于人工智能的工程化中。
甚至早期的人工智能都被某些技術(shù)社區(qū)劃歸到了大數(shù)據(jù)頻道,當(dāng)然去年他們也剝離出來(lái)了,我認(rèn)為人工智能跟大數(shù)據(jù)沒(méi)有必然直接的關(guān)系。
后面我們的場(chǎng)景中,并沒(méi)有強(qiáng)調(diào)大數(shù)據(jù),而且從數(shù)據(jù)的角度可以通過(guò)主動(dòng)學(xué)習(xí)(Active Learning)的方式來(lái)部分解決。
特別是當(dāng)去年AlphaGo Zero 出現(xiàn)后,讓我也重新審視了我對(duì)人工智能的理解,數(shù)據(jù)到底是否還有原有的大家理解的價(jià)值。
AlphaGo Zero 在完全脫離人類(lèi)經(jīng)驗(yàn)的情況下,一盤(pán)棋譜也沒(méi)有學(xué)習(xí),完全超越以人類(lèi)經(jīng)驗(yàn)為基礎(chǔ)的AlphaGo,同時(shí)創(chuàng)造了很多人類(lèi)棋手原來(lái)未曾想到的棋局。以至與著名的棋手柯潔有意無(wú)意中都在模仿AlphaGo Zero的經(jīng)驗(yàn)來(lái)應(yīng)對(duì)人類(lèi)棋手。簡(jiǎn)單點(diǎn)說(shuō),人類(lèi)正在向機(jī)器學(xué)習(xí)。
AlphaGo Zero的出現(xiàn),對(duì)于人工智能界,我認(rèn)為最大的觸動(dòng)是證明了零數(shù)據(jù)的強(qiáng)化學(xué)習(xí)的巨大可能性和未來(lái)的空間。
我認(rèn)為,未來(lái)的人工智能,技術(shù)(模型)的價(jià)值遠(yuǎn)超數(shù)據(jù)(已有經(jīng)驗(yàn))的價(jià)值必將成為共識(shí)。
技術(shù)提升加速AI實(shí)踐
這就回到了技術(shù),技術(shù)離不開(kāi)軟件、硬件、算法的迅速發(fā)展,技術(shù)上的提升,讓人工智能(AI)加速落地。技術(shù)上,主要圍繞在框架、算法、算力幾個(gè)維度去組建。
在后續(xù)的場(chǎng)景中,我們主要采用的是基于Google TensorFlow的平臺(tái)上,一些成熟算法或者模型上的應(yīng)用,基于我們的算力和性價(jià)比,我們也會(huì)做出些取舍,比如用Faster-RCNN代替RCNN等。
客戶需要的是智能化應(yīng)用場(chǎng)景
在企業(yè)進(jìn)行移動(dòng)信息化/移動(dòng)互聯(lián)的建設(shè)中,都需要經(jīng)過(guò)建設(shè)期、運(yùn)維期、運(yùn)營(yíng)期等一系列階段,從用戶角度看,本質(zhì)上需要的是一個(gè)個(gè)的智能化的應(yīng)用Intelligent Apps(參見(jiàn)Gartner: Top 10 Strategic Technology Trends for 2018)。
對(duì)于工程化的落地,我們認(rèn)為場(chǎng)景更重要,我們到底需要什么樣的智能化,支持我們做什么事情。
基于上述的思考我們抽取了幾個(gè)場(chǎng)景采用機(jī)器學(xué)習(xí)的方式進(jìn)行了工程化實(shí)踐。
二、三類(lèi)場(chǎng)景化實(shí)踐
場(chǎng)景一:移動(dòng)智能開(kāi)發(fā)平臺(tái),讓工程師快速具備專(zhuān)家80%的開(kāi)發(fā)能力
(視頻:移動(dòng)智能開(kāi)發(fā)平臺(tái))
這部分工作在工程化過(guò)程中,我們分兩部分進(jìn)行實(shí)踐:
1、訓(xùn)練階段
2、應(yīng)用階段
如下圖所示:
探索:主要是確認(rèn)了場(chǎng)景后,結(jié)合框架、模型以及自有算力,尋求各種模型進(jìn)行研究和實(shí)踐。在這個(gè)場(chǎng)景中,我們最終選擇了基于CNN的分類(lèi)算法以及基于Faser-RCNN的目標(biāo)檢測(cè)算法。考慮到數(shù)據(jù)的標(biāo)簽工作量的問(wèn)題,我們采用了遷移學(xué)習(xí)的方式。
訓(xùn)練:根據(jù)探索確定的方向,構(gòu)造標(biāo)簽化的數(shù)據(jù)。在這個(gè)場(chǎng)景中,我們采用分類(lèi)的標(biāo)簽化工作和目標(biāo)檢測(cè)的標(biāo)簽化的工作。
推測(cè):采用訓(xùn)練后的結(jié)果,進(jìn)行推測(cè)以驗(yàn)證模型的效果。
關(guān)于為什么采用上述工具大家可瀏覽我上一篇文章《使用TensorFlow搭建智能開(kāi)發(fā)系統(tǒng),自動(dòng)生成App UI代碼》。上述過(guò)程中是一個(gè)不斷調(diào)整不斷循環(huán)的工程,最終我們會(huì)選取一個(gè)模型。用于人工智能服務(wù)化(AIaas)和產(chǎn)品化的工程。
這個(gè)工程中主要采用的軟件工程的方式進(jìn)行,需要考慮的是AIaas的工程中并發(fā)對(duì)算力的要求,我們采用的是AIaas之前增加了隊(duì)列和調(diào)度,這里就不贅述。
最終我們的大概的模型結(jié)構(gòu)如下:
如上圖,CNN(VGG)、Softmax、Faster-RCNN等都是基于Google TensorFlow的搭建的,并且主要的工作圍繞在基于GPU架構(gòu)下進(jìn)行。
Basic Component、Complex Component、DSL Generator、DSL Code、Compiler、Runtime等部分,是主要基于傳統(tǒng)的CPU架構(gòu)下的軟件思路整合。
通過(guò)AIaaS化,我們將基于TensorFlow的智能服務(wù)隱藏在基于Java 的SaaS服務(wù)之后,最終,開(kāi)發(fā)工程師可以通過(guò)IDE的方式進(jìn)行訪問(wèn),同時(shí)讓我們更新模型對(duì)于最終用戶無(wú)法感知,最終以“智能代碼助手”的試圖(view)在IDE中進(jìn)行體現(xiàn)。
(視頻:普元AI智能移動(dòng)平臺(tái)工程化版本)
場(chǎng)景二:智能的連接和呈現(xiàn),以智能化的CUI方式為最終用戶提供會(huì)話式交互體現(xiàn)。
CUI是移動(dòng)端最近比較看重的體驗(yàn)方式,相對(duì)于傳統(tǒng)的CUI,以純語(yǔ)音、文字的交互,已經(jīng)演變成語(yǔ)音、文字、事件、連接、視頻等多種體驗(yàn)方式。在這個(gè)范疇里,我還是比較認(rèn)可百度DuerOS的負(fù)責(zé)人說(shuō)的,有三個(gè)方面的工作:聽(tīng)清、聽(tīng)懂、滿足,并且對(duì)三方面有自身的理解:
聽(tīng)清:將在各種場(chǎng)景下的語(yǔ)音,結(jié)合上下文的情況,轉(zhuǎn)換成文字。
聽(tīng)懂:理解文字在特定領(lǐng)域的意義,這里要強(qiáng)調(diào)特定領(lǐng)域。我們遇到的一個(gè)客戶經(jīng)常提到“寄遞”,在該業(yè)務(wù)領(lǐng)域,這個(gè)詞語(yǔ)背后代表著一系列安全與法規(guī)相關(guān)的問(wèn)題。
滿足:為最終用戶提供強(qiáng)交互能力的體驗(yàn)。
針對(duì)企業(yè)市場(chǎng),“滿足”的解決方案沒(méi)有任何一個(gè)公有服務(wù)的方式能夠很好做支撐的,原因比較簡(jiǎn)單,企業(yè)中大量“滿足”最終是通過(guò)自身私有的服務(wù)得以提供,而這部分必須采用私有部署的解決方案才能做到,也正是我們需要關(guān)注的重點(diǎn)。
關(guān)于聽(tīng)清的解決方案,我們非常認(rèn)可現(xiàn)有很多解決方案,都很成熟,包括baidu,最終我們默認(rèn)的方案中優(yōu)先選擇了訊飛 。
而我們?cè)诠こ袒校饕獓@著“滿足”展開(kāi),主要尋求以下兩方面的的解決方案支撐:
如何能夠調(diào)用到最合理的服務(wù)。
如何能夠提供給最終用戶最友好的交互體驗(yàn)。
為此,我們基于關(guān)鍵字、語(yǔ)義等信息與后端Service的調(diào)用關(guān)系訓(xùn)練模型,支撐智能連接。
同時(shí),我們對(duì)服務(wù)調(diào)用的反饋結(jié)果以及移動(dòng)端UI模型庫(kù)信息進(jìn)行訓(xùn)練,以提供智能顯示。
UI模型庫(kù)采用完全動(dòng)態(tài)的方式,以支持各種復(fù)雜場(chǎng)景的支撐,從而達(dá)到高擴(kuò)展性的發(fā)展。
(視頻:移動(dòng)功能介紹)
在小小的手機(jī)屏幕下,容不下越來(lái)越多功能的時(shí)候,讓低頻的功能更方便的被使用,除了即用即走的二維碼入口的小程序外,CUI應(yīng)該是一種非O2O更好的選擇之一。
場(chǎng)景三:智能推薦和輔助決策,讓用戶在適當(dāng)?shù)臅r(shí)間、地點(diǎn),做“正確”的事情
聯(lián)系客服