隨着全球新一輪科技革命的到來,人工智能已經成爲企業發展的新焦點和互聯網變革浪潮的新引擎。程序員
若是說 2017 年是人工智能技術爆發的「元年」,那麼 2018 年則是人工智能技術的「落地之年」。人們的關注點也會從下圍棋等比賽型活動慢慢轉移到利用人工智能真正解決世界面臨的問題。在這個背景下,很多人工智能創業公司面臨挑戰,但大浪淘沙後活下來的公司和成功轉型的傳統企業可能會成爲將來人工智能產業的領導者。算法
5 月 15 日,TIC 大會「當 AI 趕上 Cloud:人工智能的應用實踐專場」聚焦人工智能的實際應用和實踐,來自 UCloud、馭勢科技、第四範式、北京褚時科技的資深專家和技術負責人,現場探討了如何利用雲計算技術助推機器學習、深度學習、視覺計算等 AI 技術和應用迅速落地。本文整理了講師現場演講的乾貨內容,但願爲你們提供一些思考和借鑑。docker
隨着人工智能產業的興起,人工智能技術已經逐漸被運用於各行各業。可是不管是對初涉人工智能應用的傳統互聯網企業,亦或人工智能領域創業公司,如何快速、高效地落地 AI 應用都成爲了巨大的挑戰。UCloud 人工智能技術專家宋翔結合 UCloud 在公有云領域多年的積累,提出 UCloud 的 AI 落地解決方案,經過提供簡單易用、穩定、高性價比的 AI PaaS 平臺來幫助快速調研、開發和部署 AI 應用。數據庫
如何將 AI 技術與具體的產業應用結合起來,找到實際場景落地對於企業的發展來講很是關鍵,宋翔結合 UCloud 實際經驗提出了 AI 落地的技術挑戰。後端
第一,基礎環境。基礎環境不只涉及到 AI 的框架,還涉及到算法庫、各類各樣的硬件設備及多類存儲。這些方面的選擇交叉會產生一個很是複雜的環境。如何控制基礎環境,並使開發人員更方便地使用環境,是第一個挑戰。安全
第二,AI 系統的建設。AI 的落地須要一個成體系的 AI 系統,可否更好地兼容各種 AI 框架和算法,可否使平臺具有橫向拓展能力,支持業務規模的不斷擴大,以及是否具有彈性伸縮能力和容災能力等,這都對算法的兼容性、平臺的擴展性、分佈式化、縱向拓展系統提出更高的要求。服務器
第三,投入產出。怎樣以較小的投入獲得較高的回報,是 AI 投資商都要考慮的問題。好比在調研階段怎麼以較輕的資源和較少的投入去驗證想法,在開展 AI 應用時怎麼壓縮研發的成本,使研發人員更專一於算法,以及怎麼下降資源成本和運營成本等。網絡
針對 AI 落地技術面臨的問題,宋翔提出了 UCloud 的解決思路。在 UCloud 看來,最核心的方法是平臺化。實現平臺化則須要作到環境分離、分佈式化、可擴展性和資源共享四個維度共同發展。架構
首先是環境分離,環境分離分爲 3 個主要的方向:負載均衡
第一,經過容器的封裝把 AI 軟件層的軟件棧和基礎資源進行隔離,其次經過 CPU 雲主機、GPU 雲主機、物理雲主機和底層的 GPU 資源或者 CPU 資源進行隔離,最後經過軟件接入層把存儲和計算進行隔離,讓更多的存儲資源接入到 AI 環境中去。
其中,環境分離的基礎想法涉及兩個核心的技術,第一個爲容器技術,第二個爲數據接入技術。
容器技術以層層隔離的方式進行分離。如下圖的軟件棧爲例,最底層爲基礎環境,中間層爲計算庫,例如 CPU 或 GPU,而後在此基礎上累加不一樣的 AI 框架,增長 AI 算法和代碼的實現。
由此,容器技術能夠帶來五個方面的好處:
封裝。運行環境徹底隔離,不一樣任務之間不會產生軟件衝突。
預裝。基礎鏡像內置各種基礎軟件環境,減小使用者環境準備開銷。
自由。能夠自由安裝各種軟件包,封裝各種算法。
可重用。算法的容器鏡像能夠重複使用。
兼容性。GPU 容器鏡像能夠在任意類型 GPU 節點運行。 CPU 容器鏡像能夠在任意類型 CPU 節點運行。
數據接入技術則需提供本地存儲和 NFS 兩種接口,使得上層的計算節點訪問各種的數據層,經過數據接入層作接口轉移、帶寬控制甚至權限控制等功能。
一樣,數據接入技術能夠帶來多方面的好處:
封裝。計算節點邏輯不須要支持各類存儲接口,僅須要經過 2-3 種(例如本地存儲、NFS)接口就能夠對接各種存儲類型。
靈活。經過拓展數據接入層可接入的存儲類型,也就能夠拓展 AI 平臺的數據接入類型。
穩定。數據接入層能夠作數據流量控制,確保各個任務的 SLA,同時對後端的數據存儲系統進行帶寬、流量保護。
安全。數據訪問權限控制,確保數據安全性。
進行軟件分離後,就能夠考慮搭建一個訓練平臺,包括任務調度、資源管理、容災容錯的能力。
同時,也能夠搭建一個在線推理平臺,經過此平臺快速的部署本身分佈式的在線任務。
當平臺搭建完成後,就很容易作橫向拓展和縱向拓展。好比縱向拓展,能夠經過平臺的管理系統管理 CPU 集羣、GPU 集羣,並可快速的增長本身的資源池。
在搭建完成的平臺上能夠統一的管理 CPU、GPU 還有存儲的集羣,在不一樣的業務組或者不一樣的公司之間共享這些資源,使得資源的使用率變得更高。
做爲國內最先成立的一批公有云創業公司,AI 的發展對於 UCloud 能夠說是大勢所趨,也是水到渠成。那麼,公有云在 AI 落地環境重扮演什麼樣的角色呢?
整體來講,利用公有云來作 AI 落地,首先享受到的是 IaaS 的服務
資源。充足的計算資源、存儲資源、網絡資源, 下降 AI 研發過程資源採購、維護的成本
基礎環境。提供虛擬機鏡像、容器鏡像等服務。 下降 AI 研發、應用過程當中 AI 環境部署的難度。
基礎服務。提供諸如負載均衡(ULB)、分佈式存儲等基礎服務。 下降 AI 應用產品化過程的研發成本。
其次還能夠享受以用公有云的 PaaS 服務:
環境封裝。提供預置 AI 基礎環境,包括 NV GPU 驅動、Cuda、TensorFlow/MXNet 等框架,用戶無需進行復雜的環境安裝、配置工做;
分佈式。提供 AI 訓練平臺和 AI 在線服務平臺,提供一站式 AI, 用戶無需自行搭建複雜的 AI 平臺;
橫向拓展。提供充足 CPU/GPU 資源,可自由橫向拓展,用戶無需擔憂資源問題;
縱向拓展。經過多種計算、存儲網絡資源類型,用戶可自由選擇合適組合;
計費靈活。基於秒級分鐘級的計費規則,按需收費, 用戶無需擔憂資源浪費。
除了軟件技術,人工智能的落地應用,也必然離不開硬件設備的支持。馭勢科技的人工智能技術負責人潘爭,現場講解了嵌入式設備上的實時深度學習方法實踐,包括視覺識別在自動駕駛中的需求和挑戰以及效率精度平衡的卷積網絡。
隨着汽車自動駕駛技術的發展,車載光學系統和車載雷達系統在保證行車安全上顯得尤其重要。
當前,提到自動駕駛汽車環境感知技術,不少人會首先想到激光雷達。的確,相較於攝像頭、毫米波雷達等車載傳感器,激光雷達具備高精度、高分辨率的優點,但受制於價格高昂的因素還沒有普及開來。所以,在已有激光雷達方案之餘,如何找到一種成本更低的環境感知解決辦法成了不少企業關心的問題。針對這個難題,視覺感知應運而生。
視覺感知包含如下的特色:
一,信息更豐富。以激光雷達爲主的傳感器,主要作一些雲的感知和深度的感知,可是物體的顏色、紋理它是沒法感知的。好比前方有一個障礙物,激光雷達傳感器沒法判斷究竟是一輛車仍是一我的,只是知道一個形狀信息,並不知道一些紋理的信息。可是經過視覺感知,就可知道它具體的顏色屬性及具體的紋理表現,潛在的獲得更多的信息,輔助決策和控制。
二,視野更寬闊。激光雷達的上下視野爲 30 度到 60 度,並且最多隻有 64 個像素的感知。能夠想象,若是一個圖片上下只有 64 個象素,這張圖片則是很是模糊的。可是經過攝像頭來感知周圍的環境,上下則有 720 個像素感知周圍的世界,可以幫助你捕捉更多的信息。
三,基建更配合。道路設計、障礙物、各類各樣的信號燈、交通標誌其實都是爲了視覺信息而設計傳達的。
四,硬件更便宜。激光雷達是一個很是昂貴的設備,相對於一個攝像頭,它的成本是幾十倍,甚至上百倍的價格,少則幾萬塊,動輒幾十萬。而視覺感知則可擁有民用級、夠實用的產品需求。
基於視覺感知的特色,馭勢科技很是重視視覺識別算法的開發,但願用嵌入式的 GPU 平臺去完成全部視覺感知所須要的計算。這就須要作不少網絡壓縮優化的工做,使效率和精度可以取得一個比較平衡的網絡選擇。
比較近幾年比較有名的網絡會發現,若想提升大概 10% 的正確率,就要付出大幾十倍的計算量,那麼必須使用精度最高的網絡才能達到自動駕駛的精度需求麼?
潘爭介紹了兩個速度較快的網絡,第一個爲 PVANet,以下圖所示:
PVANet 把原來的標準卷積變成了兩部分,一部分是正常卷積,另外一部分則把卷積結果取反再和原來卷積結果進行拼湊。這樣既省了一半的計算量,又能獲得兩倍計算量維度的特徵圖。由此馭勢科技在 PVANet 網絡上進行了人車檢測的性能測試,測試發現,對於比較密集的場景,PVANet 能夠把全部的人、車檢測出來,而不須要幾百層,甚至上千層的網絡。因此,把像 PVANet 級別的網絡應用到自動駕駛中完成實時的人車檢測是徹底可行的。
第二個爲 MobileNet,以下圖所示:
它的基本原理是把三維的卷積和分解成兩個部分。第一部分對每一個輸出的 map 進行二維的卷積,使三維卷積變成二維卷積,下降計算量。圖中列了計算量下降的倍數,分子是 MobileNet 的分解後的計算量,分母是原始的標準卷積的計算量,能夠發現,它的計算量是原來基礎上的 DK 方之一,再加 N 分之一,也就是說,若用一個 3×3 的卷積,經過 MobileNet 方式,就會變成原來九分之一的計算量,同時它還可以保證達到和原來一樣精度的效果。
雲計算的發展加快機器學習的落地,機器學習除了對雲計算有算力的需求以外,如何基於雲計算構建一個可靠的機器學習系統是每一個企業都須要考慮的。UCloud 高級研發總監葉理燈,以在線推測系統爲例,展現一套機器學習平臺的設計及實現方案,包括資源的管理,架構設計及實現。
Serverless 指的是由開發者實現的服務端邏輯運行在無狀態的計算容器中,它由事件觸發, 徹底被第三方管理,其業務層面的狀態則被開發者使用的數據庫和存儲資源所記錄。以下圖所示:
圖中上半部分描述的是互聯網應用傳統架構的模型:用戶客戶端 APP 與部署在服務器端的常駐進程通訊,服務端進程處理該應用的大部分業務邏輯流程。下半部分則描述了 Serverless 架構模型。與傳統架構模型最大的不一樣在於,互聯網應用的大部分業務邏輯流程被轉移到客戶端上,客戶端經過調用第三方服務接口來完成諸如登陸、鑑權、讀取數據庫等通用業務場景;高度定製化的業務邏輯則經過調用第三方 FaaS 平臺執行自定義代碼來完成。整體上看,Serverless 架構將傳統架構中的服務器端的整串後臺流程拆分紅在客戶端上執行一個個第三方服務調用或 FaaS 調用。
在 Serverless 架構中,軟件開發者和運維工程師們再也不須要關心服務器的部署、架設、伸縮,這些問題交給雲平臺商來解決,程序員們得以將精力投入用代碼來實現業務邏輯中,而不是管理服務器。Serverless 並不意味着再也不須要服務器了,只是服務器資源的申請、使用、調度、伸縮由雲服務商自動實現,應用開發者無需關心。
基於 Serverless 不用管理,可彈性擴用、高可用和按需付費的四個方面的特性,能夠構建一個公司 AI 的系統,主要分爲三步:
第一步,建設一個底層的計算平臺。
第二步,上層 APP 管理,方便用戶去管理模型。
第三步,提供 SDK。方便用戶在不一樣的框架上使用系統。
那麼怎麼構建一個知足 Serverless 的計算平臺呢,首先須要考慮兩個問題。
第一,但願用戶使用這個計算平臺時,是不用運維這個計算平臺的。
第二,但願用戶使用這個計算平臺的時候,是按照實際消耗的計算資源來計費的,而不是按照配置來計費。
下圖是一個簡單的 PUC 的示意圖:
假設在構建這個系統時,對外提供兩個能力,一個能力是容許用戶經過把算法打包成 docker 上傳,另外一個能力是容許用戶提交任務、計算任務。指定 API 上傳到 docker 倉庫的路徑,而後把計算的結果經過 API 返回。
下圖爲中央平臺的詳細架構:
這是個徹底基於 IaaS 平臺搭建出來的計算平臺的架構,具有跨可用區容災、按 Set 部署、灰度發佈及全部模塊能夠平行擴展的優勢。
搭建這個系統以後,須要在計算平臺上面加 APP Engine 層,利用這層,能夠去建立一個 APP,這個 APP 對應的算法就是你的 docker 鏡像,能夠經過它來管理,也能夠切換不一樣的版本的訪問。
有了計算平臺和 APP Engine 這兩層服務以後,其實機器學習的 Inference 的系統基本上就出來了,下圖爲整個框架的系統最後的示意圖,當請求過來後,但願 Inference 代碼的 AI 模型是直接打包進來放到計算平臺,業務能夠經過 APP Engine 提供的路口直接訪問,也能夠訪問一個 model。
強 AI 時代,人們對活躍於各行各業的智能客服的期待也愈來愈高。第四範式智能客服負責人邢少敏介紹第四範式人工智能技術在客服領域的應用實踐,包括分享智能客服工做原理,使用的相關天然語言處理、機器學習、深度學習等技術以及研發智能客服的技術難點。
爲何要有客服呢?爲何要有智能客服呢?相信你們都會有了解。在不少行業裏面,其實都有一個客服問題,不管是受權的諮詢仍是售後的服務等等,大量的問題都具備重複性,這些重複性的問題則會浪費大量人的成本。而大量有價值的數據例如聊天記錄、歷史記錄是閒置的,沒有被利用起來。因此這種狀況下就有了智能客服。
智能客服比較典型的常見功能,總結一下爲三類:
第一類,單輪問答。
第二類,多輪對話。
第三類,人機協做。
而智能客服的工做原理,基本上各家智能客服廠商的作法都大同小異,都是相似的方向,以下圖所示:
首先須要語音識別模塊,把客戶的語音識別成文字,而後作文字的理解,接着作意圖識別,最後再在對話管理系統裏面進行分配。
具體來講,智能客服的工做原理分爲如下幾個模塊:
一、天然語音處理,好比說分詞、分句、詞性標註、句法分析、指代消解,句子的權重,語意類似度等,還有問句的類型、句型等。這些會在第一步對用戶的問題作一個全面的分析,而後保存下來。
二、意圖識別,藉助前面天然語言處理的一些結果,分爲兩種方式,一個是模板方式,另外一個是分類器的方式。模板的方式很簡單,經過與模板的對比進行意圖分析。而分類器的方式,是經過收藏某個領域大量的數據後,進行人工標註,再訓練成爲一個分類器進行意圖識別。這兩種方式各有優劣,模板方式的問題在於,它雖然很精準,但它的畫畫能力比較弱,分類器的方式畫畫能力強,但缺乏不少數據。
三、知識庫,知識庫實際上是智能客服系統最主要的一種模式,它的作法基本上與作一個搜索引擎比較相似,基本上分兩步。
第一步是侯選集的召回。從知識庫裏召回一些可能跟問題類似的一些侯選集。
第二步是重排序。用文本類似度、句子類似度解鎖相關度,或者用神經網絡的類似度模型或者用多模型融合。
四、知識圖譜,知識圖譜與知識庫的區別是,知識庫是一種問答的結構或者是一種樹形的結構,而知識圖譜是一種圖狀的結構。
知識圖譜常見的工具備 Neo4j、OrientDB、Titan 等等。
五、對話技術,對話技術也有 3 種方式,第一種是有限狀態機填槽,第二種是 MDP 的方式,第三種是學術界常常用的端到端的模型,但願用一個巨大的模型解決出現的全部問題。
以下圖所示:
左邊是裝載機的一個示意圖,右邊這張是 MDP,就是馬爾可夫決策過程的示意圖。
六、聊天機器人。實際上也是兩種作法,一種是用神經網絡的方式,主流的是用神經網絡,或者說用統計模型之類的,經過收集大量的語料訓練出模型,只要語料足夠多,它的效果就足夠好。另外一種是模型的方式,但所帶來的問題是不精準且須要大量的語料。
多數狀況下,沒有足夠數據訓練模型
SaaS 服務涉及到不一樣領域,數據不足問題更加突出
通用語科訓練模型,數據增加後再優化模型
先用規則系統,數據到了必定量,在用模型
多領域對話仍然是難題:
逐個領域作對話成本過高
通用對話管理效果不理想
場景切換沒法平滑進行
不容許切換場景顯得死板
容許切換場景複雜度大幅度提高
現有方式仍然是機器人爲輔
機器人回答不了,人回答
機器人推薦答案給人
探索讓機器人爲主,人工爲輔
提升機器人回答準確率
提升機器人自學習能力
除了常見的智能客服,AI 近年來在教育領域也大放異彩,北京褚時科技 CEO 李曙光現場經過 AI 在口語測評和做業批改等領域的解決方案分享,深刻淺出解析了「圖像」、「語音」、「天然語言處理」等技術在應用層的技術實踐。
如今市面上廣泛能夠看到的產品,基於的評測技術主要是兩類。
基於 GOP(Goodness of Pronunciation):(例如英語流利說、少兒領域的英語趣配音)
其主要技術爲:
強制對齊, 語音模型分數對比,發現有問題讀音;韻律,語速和流利度;
加入語音識別;
深度學習:CNN,DNN;
移動端。
Freetalk 口語評測技術:(應用於託福或者雅思的開放式題目)
其主要技術爲:
語音分析:對發音,重音,語調,語速和流利度等方面進行分析和特徵提取。
語音識別:針對英語非母語者的語音識別,使用深度學習方法,識別準確率對於提取口語內容關鍵。
天然語言處理分析:對識別內容在話題相關性,語義連貫性,語法錯誤,詞彙使用,用詞搭配等多維度上進行分析和特徵提取。
自動打分:多模型融合,大量口語訓練語料。
應用場景:
一、託福和雅思口語考試自動打分和批改: 目前在打分上能夠取代人工,平均偏差在 2 分左右(30 分滿分),大幅下降教師重複勞動。二、斬託福和斬雅思:流量題庫產品,覆蓋 80% 以上的出國考生。累計百萬學生使用,
主要的評測技術爲:
語法錯誤檢查:主謂一致,動詞形式的使用,詞組的搭配,冠詞使用、詞性、選詞、介詞用法,動詞時態等方面,Spelling,專有名詞大小寫和句首字母大小寫等。
天然語言處理分析特徵提取:分析和統計學生做文中的文本特徵,包括用詞複雜度,用詞搭配使用,語篇組織結構,論述連貫性和是否離題,對於議論文可否支持論點論述等等。
自動打分引擎:針對特定的考試類型,咱們使用機器學習算法(分類,排序),動態調整以上各個方面所佔權重和最終的評分標準,訓練相應的打分模型,最終系統能夠在多個緯度給出詳細的分析報告和反饋;
CNN 等方法融合。
應用場景:
一、初高中,託福雅思等做文自動打分和批改: 取代人工打分,平均偏差在 2 分左右(30 分滿分),相似 ETS 的 e-rater;
二、基於海量人工批改數據研發;在語法錯誤檢測數量和精準度上遠遠領先於同類產品,能夠和全球用戶量最大的的批改引擎 Grammarly 媲美。
知識點創建知識圖譜。
試題標籤:知識點,難度,題型,考察能力等。
根據模考結果的數據分析,能夠更精準的爲不一樣能力的學生提供個性化備考計劃,推送和及時調整學習路徑。
自適應測試:Item Response Theory(IRT),根據難度,區分度等建模,比較少的題目,測的更準。
如下幾個領域是褚時科技一直關注的幾個方向(目前還不能很好的產品化,預計將來突破)。須要和 K12 培訓機構或者公立學校合做。
手寫公式識別:能夠參考美國 MyScript 這個公司,已經趨於成熟。可是存在換行等問題。
數學等主觀題識別:手寫公式,字母識別還有漢字識別準確度提高,趨於成熟。
數學應用題解題和批改:趨於成熟。
初高中數學幾何題目解題和批改:解題準確度還有提高空間,目前準確度已經超過 70%;批改趨於成熟。