基于人工智能場景的移動平臺工程化
本文主要是將我們在2017年相關(guān)的實踐做個總覽式的分享,希望能夠給各位一定的啟發(fā)。
一、人工智能的核心是工程化,場景是工程化的關(guān)鍵
首先總結(jié)一下,我們在做人工智能與移動互聯(lián)結(jié)合的時候,最重要的目標(biāo)是:人工智能工程化。
做GPU的英偉達、提供開源的基礎(chǔ)框架TensorFlow的Google、研究各種算法的科學(xué)家,與我們分處人工智能產(chǎn)業(yè)鏈的不同環(huán)節(jié),而我們的目標(biāo)是尋找合適人工智能的場景,結(jié)合行業(yè)的一些經(jīng)驗,形成工程化的解決方案。
人工智能(AI)賦能企業(yè)移動信息化建設(shè),其本質(zhì)上就是人工智能在企業(yè)移動信息化過程中工程化落地。
支撐人工智能工程化的過程需要依賴與數(shù)據(jù)、技術(shù)、場景的三者結(jié)合,并結(jié)合軟件工程化的思想將其融合。而這三者之中,場景是關(guān)鍵。
人工智能與數(shù)據(jù)并非一定強相關(guān)
這里提到的是“數(shù)據(jù)”,而不是大家經(jīng)常提到的“大數(shù)據(jù)”,主要原因是“大數(shù)據(jù)”三個字很容易讓更多的技術(shù)團隊束縛思想讓自己無法從事于人工智能的工程化中。
甚至早期的人工智能都被某些技術(shù)社區(qū)劃歸到了大數(shù)據(jù)頻道,當(dāng)然去年他們也剝離出來了,我認(rèn)為人工智能跟大數(shù)據(jù)沒有必然直接的關(guān)系。
后面我們的場景中,并沒有強調(diào)大數(shù)據(jù),而且從數(shù)據(jù)的角度可以通過主動學(xué)習(xí)(Active Learning)的方式來部分解決。
特別是當(dāng)去年AlphaGo Zero 出現(xiàn)后,讓我也重新審視了我對人工智能的理解,數(shù)據(jù)到底是否還有原有的大家理解的價值。
AlphaGo Zero 在完全脫離人類經(jīng)驗的情況下,一盤棋譜也沒有學(xué)習(xí),完全超越以人類經(jīng)驗為基礎(chǔ)的AlphaGo,同時創(chuàng)造了很多人類棋手原來未曾想到的棋局。以至與著名的棋手柯潔有意無意中都在模仿AlphaGo Zero的經(jīng)驗來應(yīng)對人類棋手。簡單點說,人類正在向機器學(xué)習(xí)。
AlphaGo Zero的出現(xiàn),對于人工智能界,我認(rèn)為***的觸動是證明了零數(shù)據(jù)的強化學(xué)習(xí)的巨大可能性和未來的空間。
我認(rèn)為,未來的人工智能,技術(shù)(模型)的價值遠超數(shù)據(jù)(已有經(jīng)驗)的價值必將成為共識。
技術(shù)提升加速AI實踐
這就回到了技術(shù),技術(shù)離不開軟件、硬件、算法的迅速發(fā)展,技術(shù)上的提升,讓人工智能(AI)加速落地。技術(shù)上,主要圍繞在框架、算法、算力幾個維度去組建。
在后續(xù)的場景中,我們主要采用的是基于Google TensorFlow的平臺上,一些成熟算法或者模型上的應(yīng)用,基于我們的算力和性價比,我們也會做出些取舍,比如用Faster-RCNN代替RCNN等。
客戶需要的是智能化應(yīng)用場景
在企業(yè)進行移動信息化/移動互聯(lián)的建設(shè)中,都需要經(jīng)過建設(shè)期、運維期、運營期等一系列階段,從用戶角度看,本質(zhì)上需要的是一個個的智能化的應(yīng)用Intelligent Apps(參見Gartner: Top 10 Strategic Technology Trends for 2018)。
對于工程化的落地,我們認(rèn)為場景更重要,我們到底需要什么樣的智能化,支持我們做什么事情。
基于上述的思考我們抽取了幾個場景采用機器學(xué)習(xí)的方式進行了工程化實踐。
二、三類場景化實踐
場景一:移動智能開發(fā)平臺,讓工程師快速具備專家80%的開發(fā)能力
這部分工作在工程化過程中,我們分兩部分進行實踐:
- 訓(xùn)練階段
- 應(yīng)用階段
如下圖所示:

- 探索:主要是確認(rèn)了場景后,結(jié)合框架、模型以及自有算力,尋求各種模型進行研究和實踐。在這個場景中,我們最終選擇了基于CNN的分類算法以及基于Faser-RCNN的目標(biāo)檢測算法??紤]到數(shù)據(jù)的標(biāo)簽工作量的問題,我們采用了遷移學(xué)習(xí)的方式。
- 訓(xùn)練:根據(jù)探索確定的方向,構(gòu)造標(biāo)簽化的數(shù)據(jù)。在這個場景中,我們采用分類的標(biāo)簽化工作和目標(biāo)檢測的標(biāo)簽化的工作。
- 推測:采用訓(xùn)練后的結(jié)果,進行推測以驗證模型的效果。
關(guān)于為什么采用上述工具大家可瀏覽我上一篇文章《使用TensorFlow搭建智能開發(fā)系統(tǒng),自動生成App UI代碼》。上述過程中是一個不斷調(diào)整不斷循環(huán)的工程,最終我們會選取一個模型。用于人工智能服務(wù)化(AIaas)和產(chǎn)品化的工程。
這個工程中主要采用的軟件工程的方式進行,需要考慮的是AIaas的工程中并發(fā)對算力的要求,我們采用的是AIaas之前增加了隊列和調(diào)度,這里就不贅述。
最終我們的大概的模型結(jié)構(gòu)如下:
如上圖,CNN(VGG)、Softmax、Faster-RCNN等都是基于Google TensorFlow的搭建的,并且主要的工作圍繞在基于GPU架構(gòu)下進行。
Basic Component、Complex Component、DSL Generator、DSL Code、Compiler、Runtime等部分,是主要基于傳統(tǒng)的CPU架構(gòu)下的軟件思路整合。
通過AIaaS化,我們將基于TensorFlow的智能服務(wù)隱藏在基于Java 的SaaS服務(wù)之后,最終,開發(fā)工程師可以通過IDE的方式進行訪問,同時讓我們更新模型對于最終用戶無法感知,最終以“智能代碼助手”的試圖(view)在IDE中進行體現(xiàn)。
場景二:智能的連接和呈現(xiàn),以智能化的CUI方式為最終用戶提供會話式交互體現(xiàn)。
CUI是移動端最近比較看重的體驗方式,相對于傳統(tǒng)的CUI,以純語音、文字的交互,已經(jīng)演變成語音、文字、事件、連接、視頻等多種體驗方式。在這個范疇里,我還是比較認(rèn)可百度DuerOS的負(fù)責(zé)人說的,有三個方面的工作:聽清、聽懂、滿足,并且對三方面有自身的理解:
- 聽清:將在各種場景下的語音,結(jié)合上下文的情況,轉(zhuǎn)換成文字。
- 聽懂:理解文字在特定領(lǐng)域的意義,這里要強調(diào)特定領(lǐng)域。我們遇到的一個客戶經(jīng)常提到“寄遞”,在該業(yè)務(wù)領(lǐng)域,這個詞語背后代表著一系列安全與法規(guī)相關(guān)的問題。
- 滿足:為最終用戶提供強交互能力的體驗。
針對企業(yè)市場,“滿足”的解決方案沒有任何一個公有服務(wù)的方式能夠很好做支撐的,原因比較簡單,企業(yè)中大量“滿足”最終是通過自身私有的服務(wù)得以提供,而這部分必須采用私有部署的解決方案才能做到,也正是我們需要關(guān)注的重點。
關(guān)于聽清的解決方案,我們非常認(rèn)可現(xiàn)有很多解決方案,都很成熟,包括baidu,最終我們默認(rèn)的方案中優(yōu)先選擇了訊飛 。
而我們在工程化中,主要圍繞著“滿足”展開,主要尋求以下兩方面的的解決方案支撐:
- 如何能夠調(diào)用到最合理的服務(wù)。
- 如何能夠提供給最終用戶最友好的交互體驗。
為此,我們基于關(guān)鍵字、語義等信息與后端Service的調(diào)用關(guān)系訓(xùn)練模型,支撐智能連接。
同時,我們對服務(wù)調(diào)用的反饋結(jié)果以及移動端UI模型庫信息進行訓(xùn)練,以提供智能顯示。
UI模型庫采用完全動態(tài)的方式,以支持各種復(fù)雜場景的支撐,從而達到高擴展性的發(fā)展。
在小小的手機屏幕下,容不下越來越多功能的時候,讓低頻的功能更方便的被使用,除了即用即走的二維碼入口的小程序外,CUI應(yīng)該是一種非O2O更好的選擇之一。
場景三:智能推薦和輔助決策,讓用戶在適當(dāng)?shù)臅r間、地點,做“正確”的事情
從業(yè)務(wù)場景角度看,推薦、輔助等模型在技術(shù)維度和互聯(lián)網(wǎng)公司的“猜你喜歡”等并沒有太多差異性,需要說明一點的是,在做企業(yè)市場的時候,我們建議的方式,不是基于用戶,而是基于組織機構(gòu)(比如崗位)去進行分析。原因很簡單,如果基于用戶習(xí)慣,會導(dǎo)致一個喜歡遲到的人,總是在遲到的時間點推薦其打卡,這顯然既不符合用戶的個人訴求,也不符合企業(yè)的利益。
為了支撐上述的場景,移動平臺需要的是能夠提供統(tǒng)一的數(shù)據(jù)收集能力。
采用統(tǒng)一前端技術(shù),讓自動埋點的越來越容易,更方便用戶行為數(shù)據(jù)的收集。
同時采用統(tǒng)一中臺的方式,更加方便進行收集。
四、總結(jié)
在移動互聯(lián)時代,越來越多的App正在智能化,越來越多的場景正在發(fā)生,這是一個大的趨勢,但并不是所有的場景對移動應(yīng)用本身沖擊都很大。很多AI場景對于移動平臺僅僅是一個SDK的問題,比如類似于生物識別(人臉識別),此外,蘋果/Andriod 也都提供了基于手機端的AI技術(shù)支撐,因此,作為移動應(yīng)用業(yè)者,需要重點考慮的是,如何將人工智能結(jié)合具體的場景,進行工程化實踐,讓AI迅速發(fā)揮業(yè)務(wù)價值。
關(guān)于作者:郝振明,現(xiàn)任普元信息移動集成產(chǎn)品部負(fù)責(zé)人,十多年IT從業(yè)經(jīng)驗,一直專注于企業(yè)信息化的工作,近五年間一直從事企業(yè)移動信息化、移動互聯(lián)網(wǎng)化的咨詢、產(chǎn)品工作,曾主持參與了Primeton Mobile產(chǎn)品研發(fā)、聯(lián)通集團、廣東農(nóng)信、諾亞財富、中信重工、索菲亞等公司的移動信息化工作。在移動平臺、微信解決方案、微信小程序、AI與移動的結(jié)合以及移動云方案等領(lǐng)域有豐富的經(jīng)驗和獨到的認(rèn)識。