一、 人工智能技術發展概述
(一) 人工智能技術流派發展簡析
讓機器實現人的智能,一直是人工智能學者不斷追求的目標,不同學科背景或應用領域的學者,從不同角度,用不同的方法,沿著不同的途徑對智能進行了探索。其中,符號主義、連接主義和行為主義是人工智能發展歷史上的三大技術流派。
符號主義又稱為邏輯主義,在人工智能早期一直占據主導地位。該學派認為人工智能源于數學邏輯,其實質是模擬人的抽象邏輯思維,用符號描述人類的認知過程。早期的研究思路是通過基本的推斷步驟尋求完全解,出現了邏輯理論家和幾何定理證明器等。上世紀70年代出現了大量的專家系統,結合了領域知識和邏輯推斷,使得人工智能進入了工程應用。PC機的出現以及專家系統高昂的成本,使符號學派在人工智能領域的主導地位逐漸被連接主義取代。
連接主義又稱為仿生學派,當前占據主導地位。該學派認為人工智能源于仿生學,應以工程技術手段模擬人腦神經系統的結構和功能。連接主義最早可追溯到1943年麥卡洛克和皮茨創立的腦模型,由于
受理論模型、生物原型和技術條件的限制,在20世紀70年代陷入低潮。直到1982年霍普菲爾特提出的Hopfield神經網絡模型和 986年魯梅爾哈特等人提出的反向傳播算法,使得神經網絡的理論研究取得了突破。2006年,連接主義的領軍者 Hinton 提出了深度學習算法,使神經網絡的能力大大提高。2012年,使用深度學習技術的AlexNet模型在 ImageNet 競賽中獲得冠軍。
行為主義又稱為進化主義,近年來隨著AlphaGo取得的突破而受到廣泛關注。該學派認為人工智能源于控制論,智能行為的基礎是“感知—行動”的反應機制,所以智能無需知識表示,無需推斷。智能只是在與環境交互作用中表現出來,需要具有不同的行為模塊與環境交互,以此來產生復雜的行為。
在人工智能的發展過程中,符號主義、連接主義和行為主義等流派不僅先后在各自領域取得了成果,各學派也逐漸走向了相互借鑒和融合發展的道路。特別是在行為主義思想中引入連接主義的技術,從而誕生了深度強化學習技術,成為AlphaGo戰勝李世石背后最重要的技術手段。
(二) 深度學習帶動本輪人工智能發展
深度學習已經在語音識別、圖像識別等領域取得突破。深度學習全稱深度神經網絡,本質上是多層次的人工神經網絡算法,即從結構上模擬人腦的運行機制,從最基本的單元上模擬了人類大腦的運行機制。深度學習已經開始在計算機視覺、語音識別、自然語言理解等領域取得了突破。在語音識別領域,2010年,使用深度神經網絡模型的語音識別相對傳統混合高斯模型識別錯誤率降低超過 20%,目前所有的商用語音識別算法都基于深度學習。在圖像分類領域,目前針對ImageNet數據集的算法分類精度已經達到了 95%以上,可以與人的分辨能力相當。深度學習在人臉識別、通用物體檢測、圖像語義分割、自然語言理解等領域也取得了突破性的進展。
海量的數據和高效的算力支撐是深度學習算法實現的基礎。深度學習分為訓練(training)和推斷(inference)兩個環節。訓練需要海量數據輸入,訓練出一個復雜的深度神經網絡模型。推斷指利用訓練好的模型,使用待判斷的數據去“推斷”得出各種結論。大數據時代的到來,圖形處理器(Graphics Processing Unit,GPU)等各種更加強大的計算設備的發展,使得深度學習可以充分利用海量數據(標注數據、弱標注數據或無標注數據),自動地學習到抽象的知識表達,即把原始數據濃縮成某種知識。當前基于深度學習的人工智能技術架構如圖1所示。
二、基于深度學習的人工智能技術現狀
(一)基于深度學習的人工智能技術體系綜述
當前,基于深度學習的人工智能算法主要依托計算機技術體系架構實現,深度學習算法通過封裝至軟件框架1的方式供開發者使用。軟件框架是整個技術體系的核心,實現對人工智能算法的封裝,數據的調用以及計算資源的調度使用。為提升算法實現的效率,其編譯器及底層硬件技術也進行了功能優化。具體架構請見圖1中的基礎硬件層、深度神經網絡模型編譯器及軟件框架三層。
本章所探討的人工智能技術體系主要包含三個維度,一是針對人工智能算法原理本身的探討,二是對算法實現所依托的技術體系進行概述,三是針對深度學習所需的數據進行分析。
1. 基礎硬件層
基礎硬件層為算法提供了基礎計算能力。硬件層涵蓋范圍除了中央處理器(Central Processing Unit,CPU)及GPU外,還包括為特定場景應用而定制的計算芯片,以及基于計算芯片所定制的服務器,包括 GPU 服務器集群,各類移動終端設備以及類腦計算機等。
2. 深度神經網絡模型編譯器
深度神經網絡模型編譯器是底層硬件和軟件框架、以及不同軟件框架之間的橋梁。該層旨在為上層應用提供硬件調用接口,解決不同上層應用在使用不同底層硬件計算芯片時可能存在的不兼容等問題。其涵蓋范圍包括針對人工智能計算芯片定向優化的深度神經網絡模型編譯器,以及針對不同神經網絡模型表示的規定及格式。
3. 軟件框架層
軟件框架層實現算法的模塊化封裝,為應用開發提供集成軟件工具包。該層涵蓋范圍包括針對算法實現開發的各類應用及算法工具包,為上層應用開發提供了算法調用接口,提升應用實現的效率。
1. 基礎應用技術
當前人工智能的商業化實現主要是基于計算機視覺、智能語音、自然語言處理等基礎應用技術實現,并形成了相應的產品或服務。本部分將在第三章進行詳細討論。
(二) 算法發展趨勢
當前,人工智能算法已經能夠完成智能語音語義、計算機視覺等智能化任務,在棋類、電子游戲對弈,多媒體數據生成等前沿領域也取得了一定進展,為人工智能應用落地提供了可靠的理論保障。
1. 算法的設計邏輯
人工智能算法的設計邏輯可以從“學什么”、“怎么學”和“做什么”三個維度進行概括。
首先是學什么。人工智能算法需要學習的內容,是能夠表征所需 完成任務的函數模型。該函數模型旨在實現人們需要的輸入和輸出的映射關系,其學習的目標是確定兩個狀態空間(輸入空間和輸出空間) 內所有可能取值之間的關系;其次是怎么學。算法通過不斷縮小函數 模型結果與真實結果誤差來達到學習目的,一般該誤差稱為損失函數。損失函數能夠合理量化真實結果和訓練結果的誤差,并將之反饋給機 器繼續作迭代訓練,最終實現學習模型輸出和真實結果的誤差處在合 理范圍;最后是做什么。機器學習主要完成三件任務,即分類、回歸
和聚類。目前多數人工智能落地應用,都是通過對現實問題抽象成相應的數學模型,分解為這三類基本任務進行有機組合,并對其進行建模求解的過程。
2. 算法的主要任務
人工智能實際應用問題經過抽象和分解,主要可以分為回歸、分類和聚類三類基本任務,針對每一類基本任務,人工智能算法都提供了各具特點的解決方案:
一是回歸任務的算法。回歸是一種用于連續型數值變量預測和建模的監督學習算法。目前回歸算法最為常用的主要有四種,即線性回歸(正則化)、回歸樹(集成方法)、最鄰近算法和深度學習。二是分類任務的算法。分類算法用于分類變量建模及預測的監督學習算法,分類算法往往適用于類別(或其可能性)的預測。其中最為常用的算法主要有五種,分別為邏輯回歸(正則化)、分類樹(集成方法)、支持向量機、樸素貝葉斯和深度學習方法。三是聚類任務的算法。聚類算法基于數據內部結構來尋找樣本集群的無監督學習任務,使用案例包括用戶畫像、電商物品聚類、社交網絡分析等。其中最為常用的算法主要有四種即 K 均值、仿射傳播、分層/ 層次和聚類算法
(Density-Based Spatial Clustering of Applications with Noise,DBSCAN)。
1. 新算法不斷提出
近年來,以深度學習算法為代表的人工智能技術快速發展,在計算機視覺、語音識別、語義理解等領域都實現了突破。但其相關算法目前并不完美,有待繼續加強理論性研究,也不斷有很多新的算法理論成果被提出,如膠囊網絡、生成對抗網絡、遷移學習等。
膠囊網絡是為了克服卷積神經網絡的局限性而提出的一種新的網絡架構。卷積神經網絡存在著難以識別圖像中的位置關系、缺少空間分層和空間推理能力等局限性。受到神經科學的啟發,人工智能領軍人物 Hinton 提出了膠囊網絡的概念。膠囊網絡由膠囊而不是由神經元構成,膠囊由一小群神經元組成,輸出為向量,向量的長度表示物體存在的估計概率,向量的方向表示物體的姿態參數。膠囊網絡能同時處理多個不同目標的多種空間變換,所需訓練數據量小,從而可以有效地克服卷積神經網絡的局限性,理論上更接近人腦的行為。但膠囊網絡也存在著計算量大、大圖像處理上效果欠佳等問題,有待進一步研究。
生成對抗網絡(GAN: Generative Adversarial Networks)是于 2014 年提出的一種生成模型。該算法核心思想來源于博弈論的納什均衡,通過生成器和判別器的對抗訓練進行迭代優化,目標是學習真實數據的分布,從而可以產生全新的、與觀測數據類似的數據。與其他生成模型相比,GAN 有生成效率高、設計框架靈活、可生成具有更高質量的樣本等優勢,2016 年以來研究工作呈爆發式增長,已成為人工智能一個熱門的研究方向。但GAN 仍存在難以訓練、梯度消失、模式崩潰等問題,仍處于不斷研究探索的階段。
遷移學習是利用數據、任務或模型之間的相似性,將學習過的模型應用于新領域的一類算法。遷移學習可大大降低深度網絡訓練所需的數據量,縮短訓練時間。其中,Fine-Tune 是深度遷移學習最簡單的一種實現方式,通過將一個問題上訓練好的模型進行簡單的調整使其適用于一個新的問題,具有節省時間成本、模型泛化能力好、實現簡單、少量的訓練數據就可以達到較好效果的優勢,已獲得廣泛應用。
(三) 軟件框架成為技術體系核心
當前,人工智能基礎性算法已經較為成熟,各大廠商紛紛發力建設算法模型工具庫,并將其封裝為軟件框架,供開發者使用,可以說軟件框架是算法的工程實現。企業的軟件框架實現有閉源和開源兩種形式:蘋果公司等少數企業選擇閉源方式開發軟件框架,目的是打造技術壁壘;目前業內主流軟件框架基本都是開源化運營。本篇主要關注開源軟件框架的技術特點,對閉源軟件框架不做過多討論。
1. 開源軟件框架百花齊放各具特點
人工智能國際巨頭企業將開源深度學習軟件框架作為打造開發及使用生態核心的核心。總體來說開源軟件框架在模型庫建設及調用功能方面具有相當共性,但同時又各具特點。業界目前主要有深度學習訓練軟件框架和推斷軟件框架兩大類別。
1) 深度學習訓練軟件框架
基于深度學習的訓練框架主要實現對海量數據的讀取、處理及訓練,主要部署在 CPU 及 GPU 服務集群,主要側重于海量訓練模型實
現、系統穩定性及多硬件并行計算優化等方面的任務。目前主流的深度學習訓練軟件框架主要有 TensorFlow,MXNet,Caffe/2+PyTorch 等。
TensorFlow 以其功能全面,兼容性廣泛和生態完備而著稱。該軟件框架由谷歌大腦(Google Brain)團隊主要支撐,實現了多 GPU 上運行深度學習模型的功能,可以提供數據流水線的使用程序,并具有模型檢查,可視化和序列化的配套模塊。其生態系統已經成為深度學習開源軟件框架最大的活躍社區。
MXNet 以其優異性能及全面的平臺支持而著稱。該軟件框架是由亞馬遜公司(Amazon)主導的深度學習平臺,目前已經捐獻到阿帕奇軟件基金會(Apache)進行孵化。其主要特點包括:一是可以在全硬件平臺(包括手機端)運行,提供包括 Python、R 語言、Julia、C++、Scala、Matlab 以及 Java 的編程接口;二是具有靈活的編程模型,支持命令式和符號式編程模型;三是從云端到客戶端可移植,可運行于多 CPU、多 GPU、集群、服務器、工作站及移動智能手機;四是支持本地分布式訓練,在多 CPU/GPU 設備上的分布式訓練,使其可充分利用計算集群的規模優勢。
Caffe/2+PyTorch 以其在圖像處理領域的深耕和易用性而著稱。該軟件框架是由臉書公司(Facebook)主導的平臺,目前 Caffe 1/2 兩個項目已經合并到 PyTorch 統一維護。在圖像處理領域Caffe 有著深厚的生態積累,結合 PyTorch 作為一個易用性很強的軟件框架,越來越受到數據科學家的喜愛。我國很多人工智能圖像處理團隊選擇PyTorch 作為主要工作平臺。
Microsoft Cognitive Toolkit (CNTK)以其在智能語音語義領域的優勢及良好性能而著稱。該軟件框架由微軟公司于2016 年基于 MIT 協議開源,它具有速度快、可擴展性強、商業級質量高以及 C++和Python 兼容性好等優點,支持各種神經網絡模型、異構及分布式計算,依托于微軟的產品生態,在語音識別、機器翻譯、類別分析、圖像識別、圖像字幕、文本處理、語言理解和語言建模等領域都擁有良好應用。
PaddlePaddle 以其易用性和支持工業級應用而著稱。該軟件框架是百度旗下的深度學習開源平臺,是我國自主開發軟件框架代表。其最大特點就是易用性,得益于其對算法的封裝,對于現成算法(卷積神經網絡 VGG、深度殘差網絡 ResNet、長短期記憶網絡 LSTM 等) 的使用可以直接執行命令替換數據進行訓練。非常適合需要成熟穩定的模型來處理新數據的情況。
除上之外,業界及學術界還存在著多個機器學習及深度學習軟件框架,如 Scikit-learn,Theano 等。這些軟件框架在其專長領域仍然發揮重要作用。但由于各軟件框架的維護力量及發展思路不同,同時缺少貢獻人員,導致軟件框架發展水平略顯滯后,存在著包括算法庫擴展不及時,API 水平較低以及不支持分布式任務等問題。
2) 深度學習推斷軟件框架基于深度學習的推斷的計算量相對訓練過程小很多,但仍涉及到大量的矩陣卷積、非線性變換等運算,為了滿足在終端側限定設備性能及功耗等因素的場景下,業界也開發了眾多開源的終端側軟件框架。
Caffe2go 是最早出現的終端側推斷軟件框架,能夠讓深層神經網絡在手機上高效的運行。由于終端側的GPU 設備性能有限,Caffe2go 是基于 CPU 的優化進行設計。TensorFlow Lite 可以運行在 Android 和 iOS 平臺,結合 Android 生態的神經網絡運行時能夠實現較為高效的 AI 移動端應用速度。NCNN 是騰訊開源的終端側 AI 軟件框架, 支持多種訓練軟件框架的模型轉換,是主要面向CPU 的AI 模型應用, 無第三方依賴具有較高的通用性,運行速度突出,是國內目前較為廣泛使用的終端側 AI 軟件框架。Core ML 是蘋果公司開發的 iOS AI 軟件框架,能夠對接 Caffe、PyTorch、MXNet、TensorFlow 等絕大部分 AI 模型,并且自身提供了常用的各種手機端 AI 模型組件,目前也匯集了眾多開發者及貢獻力量。Paddle-mobile 是百度自研的移動端深度學習軟件框架,主要目的是將 Paddle 模型部署在手機端,其支持 iOS GPU 計算。但目前功能相對單一,支持較為有限。TensorRT 是英偉達(NVIDIA)開發的深度學習推斷工具,已經支持 Caffe、Caffe2、TensorFlow、MXNet、PyTorch 等主流深度學習庫,其底層針對NVIDIA 顯卡做了多方面的優化,可以和 CUDA 編譯器結合使用。
目前主要產業巨頭均推出了基于自身技術體系的訓練及推斷軟件框架,但由于目前產業生態尚未形成,深度學習模型表示及存儲尚未統一,訓練軟件框架及推斷軟件框架尚未形成一一對應關系,技術生態爭奪將繼續持續。
2. 巨頭以開源軟件框架為核心打造生態
人工智能開源軟件框架生態的核心,是通過使用者和貢獻者之間的良好互動和規模化效應,形成現實意義的標準體系和產業生態,進而占據人工智能核心的主導地位。開源軟件框架的用戶包括最終服務及產品的使用者和開發者。當前開源軟件框架的技術發展呈現出以下幾方面的特點:
一是谷歌與其他公司間持續競爭。巨頭公司在技術上將積極探尋包括模型互換,模型遷移等技術聯合,以對抗谷歌公司。例如臉書
(Facebook)和微軟已經合作開發了一個可互換的人工智能軟件框架解決方案。二是開源軟件框架在向統一和標準化方向發展。隨著人工智能應用的爆發,開發人員在不同平臺上創建模型及部署模型的需求愈發強烈,在各類軟件框架間的模型遷移互換技術研發已經成為重點。三是更高級的 API2逐漸占據主導地位。以Keras 為例,它是建立在TensorFlow、Theano、CNTK、MXNet 和 Gluon 上運行的高級開源神經網絡庫,以其高級 API 易用性而得到了廣泛的使用。四是模型的集群并發計算成為業界研究熱點。當前人工智能網絡對于單計算節點的 算力要求過高,但當前主流開源軟件框架對于模型分割進行計算并沒有實現,而這個問題也將隨著應用場景的不斷豐富而不斷引起重視,成為開源軟件框架下一個核心競爭點。
(四) 編譯器解決不同軟硬件的適配問題
在實際工程應用中,人工智能算法可選擇多種軟件框架實現,訓練和開發人工智能模型也可有多種硬件選項,這就開發者帶來了不小
的挑戰。原因一是可移植性問題,各個軟件框架的底層實現技術不同,導致在不同軟件框架下開發的模型之間相互轉換存在困難;二是適應性問題,軟件框架開發者和計算芯片廠商需要確保軟件框架和底層計算芯片之間良好的適配性。解決以上兩個挑戰的關鍵技術之一就是深度神經網絡模型編譯器,它在傳統編譯器功能基礎上,通過擴充面向深度學習網絡模型計算的專屬功能,以解決深度學習模型部署到多種設備時可能存在的適應性和可移植性問題。
1. 深度學習網絡模型編譯器解決適應性問題
傳統編譯器缺少對深度學習算法基礎算子(卷積、殘差網絡及全連接計算等)的優化,且對人工智能多種形態的計算芯片適配缺失,針對人工智能底層計算芯片及上層軟件框架進行適配優化的編譯器需求強烈。目前業界主要采用依托傳統編譯器架構進行演進升級的方式來解決這個問題。當前業界主流編譯器主要包括英偉達公司的CUDA 編譯器,英特爾公司開發的 nGraph 以及華盛頓大學團隊開發的 NNVM 編譯器。
目前產業界絕大多數編譯器都是按照 LLVM 體系架構設計的。LLVM 全稱 Low Level Virtual Machine,是一種應用廣泛的開源編譯器架構。該項目由伊利諾伊大學發起,由于其開源特性,目前已有基于這個軟件框架的大量工具可以使用,形成了具有實際標準意義的生態。
英偉達通過提供針對 LLVM 內核的 CUDA 源代碼及并行線程執行后端打造了 CUDA 編譯器。該編譯器可支持C、C++以及 Fortran
語言,能夠為運用大規模并行英偉達 GPU 的應用程序加速。英特爾基于 LLVM 架構打造 nGraph 計算庫,為深度學習提供優化方法,可以處理所有的計算芯片抽象細節,目前已經開發了 TensorFlow/XLA、MXNet 和 ONNX 的軟件框架橋梁;華盛頓大學基于LLVM 架構打造了 NNVM/TVM 編譯器,能夠直接從多個深度學習前端將工作負載編譯成為優化的機器代碼。實現端到端的全面優化。
2. 中間表示層解決可移植性問題
在工程實踐中,人工智能軟件框架訓練完成的模型將按照中間表示層的規定進行表達和存儲。中間表示層(Intermediate Representation, IR)是編譯器用來表示源碼的數據結構或代碼,可以看作是不同中間件的集合,在性能優化及通信方面有著非常重要的作用。上文介紹的LLVM 架構最大優點之一就是其有一個表達形式很好的中間表示層語言,這種模塊化設計理念能夠支撐各種功能擴充,三大主流深度學習網絡模型編譯器均是通過在中間表示層中增加專屬優化的中間件 來實現功能演進創新的。
擴充性能的中間表示層是打通深度學習計算中多種不同前端訓練軟件框架和多種不同后端的表達橋梁,使深度學習網絡模型編譯器更有效實現二者之間的優化和影射。在深度學習網絡模型編譯器中, 中間表示層的核心思想借鑒了 LLVM 架構設計,新增加的專屬中間件是解決推斷側模型運行在不同硬件平臺的重要描述方法。當前深度學習網絡模型編譯器的中間表示層主要分為 NNVM/TVM 和TensorFlow XLA 兩大陣營,但實際上類似 ONNX、NNEF 等模型交換格式也是各種對中間層表示的定義。業界共識“IR”的競爭,將是未來軟件框架之爭的重要一環。
3. 未來亟需模型轉換及通用的模型表示
在工程實踐上,除了上文提到使用統一的中間表示層對模型進行表達及存儲外,輸入數據格式以及模型表示規范也同樣是重要的影響因素。
主流軟件框架輸入數據集格式各有不同。由于在訓練中已經過清洗和標注的數據依然面臨著多線程讀取、對接后端分布式文件系統等實際操作問題,各主流人工智能軟件框架均采用了不同的技術和數據集格式來實現此類數據操作。如TensorFlow 定義了 TFRecord、MXNet 及 PaddlePaddle 使用的是 RecordIO 等。
深度學習網絡模型的表示規范分為兩大陣營。第一陣營是 Open Neural Network Exchange(ONNX,開放神經網絡交換),是一個用于表示深度學習模型的標準,可使模型在不同軟件框架之間進行轉移。ONNX 由微軟和 Facebook 聯合發布,該系統支持的軟件框架目前主要包括 Caffe2,PyTorch,Cognitive Toolkit 和 MXNet,而谷歌的TensorFlow 并沒有被包含在內。第二陣營是 Neural Network Exchange Format(NNEF,神經網絡交換格式),是由 Khronos Group 主導的跨廠商神經網絡文件格式,計劃支持包括 Torch, Caffe, TensorFlow, 等 幾乎所有人工智能軟件框架的模型格式轉換,目前已經有 30 多家計算芯片企業參與其中。
(五) AI 計算芯片提供算力保障
現有深度神經網絡需要用更短的時間、更低功耗完成計算,這就給深度學習計算芯片提出了更高的要求。
1. 深度學習對 AI 計算芯片的需求
總體來看,深度神經網絡對計算芯片的需求主要有以下兩個方面:一是計算芯片和存儲間海量數據通信需求,這里有兩個層面,一個是緩存(Cache)和片上存儲(Memory)的要大,另一個是計算單元和存儲之間的數據交互帶寬要大。二是專用計算能力的提升,解決對卷積、殘差網絡、全連接等計算類型的大量計算需求,在提升運算速度的同時實現降低功耗。總的來說,AI 計算芯片的發展過程可以總結為一直在圍繞如何有效解決存儲與計算單元的提升這兩個問題而展 開,成本問題則作為一個舵手控制著最終的航向。
2. 典型 AI 計算芯片的使用現狀
在深度學習訓練環節,除了使用 CPU 或 GPU 進行運算外,現場可編程門陣列( Field——Programmable Gate Array,FPGA)以及專用集成電路(Application Specific Integrated Circuit,ASIC)也發揮了重大作用;而用于終端推斷的計算芯片主要以ASIC 為主。
CPU 在深度學習訓練場景下表現不佳。最初的深度學習場景是使用CPU 為架構搭建的,如最初 GoogleBrain 就是基于CPU 組成的。但由于 CPU 其本身是通用計算器,大量芯片核心面積要服務于通用場景的元器件,導致可用于浮點計算的計算單元偏少,無法滿足深度學習特別是訓練環節的大量浮點運算需求,且并行計算效率太低,很快被具有數量眾多的計算單元、具備強大并行計算能力的 GPU 代替。
GPU 成為目前深度學習訓練的首要選擇。GPU 的關鍵性能是并行計算,適合深度學習計算的主要原因一是高帶寬的緩存有效提升大量數據通信的效率。GPU 的緩存結構為共享緩存,相比于 CPU,GPU 線程(Thread)之間的數據通訊不需要訪問全局內存,而在共享內存中就可以直接訪問。二是多計算核心提升并行計算能力。GPU 具有數以千計的計算核心,可實現 10-100 倍于CPU 的應用吞吐量。同時,基于由 NVIDIA 推出的通用并行計算架構 CUDA,使 GPU 能夠解決復雜的計算問題。其包含的 CUDA 指令集架構(ISA)以及 GPU 內部的并行計算引擎可針對當前深度學習計算進行加速,但是由于深度學習算法還未完全穩定,若深度學習算法發生大的變化,則 GPU 存在無法靈活適配問題。
FPGA 在深度學習加速方面具有可重構、可定制的特點。因 FPGA 沒有預先定義的指令集概念,也沒有確定的數據位寬,所以可以實現應用場景的高度定制。但FPGA 的靈活性(通用性)也意味著效率的損失。由于FPGA 應用往往都需要支持很大的數據吞吐量,這對于內存帶寬和I/O 互連帶寬要求很高。同時由于邏輯利用率低,引發無效功耗大。
FPGA 市場化的主要阻礙是成本高昂,價格在幾十到幾萬美元一片不等,且應用者必須具備電路設計知識和經驗。由于FPGA 省去了流片過程,在深度學習發展初期成為計算芯片主要解決方案之一, 在GPU 和ASIC 中取得了權衡,很好的兼顧了處理速度和控制能力。
ASIC(專用集成電路,Application Specific Integrated Circuit)是不可配置的高度定制專用計算芯片。ASIC 不同于 GPU 和 FPGA 的靈活性,定制化的 ASIC 一旦制造完成將不能更改,所以初期成本高、開發周期長,使得進入門檻高。但ASIC 作為專用計算芯片性能高于FPGA,相同工藝的ASIC 計算芯片比FPGA 計算芯片快5-10 倍,同時規模效應會使得 ASIC 的成本降低。但高昂的研發成本和研發周期是未來廣泛應用的阻礙。ASIC 主要生產企業包括如 Google 的TPU 系列計算芯片,以及國內的寒武紀、地平線等公司。
TPU 的核心為脈動陣列機,其設計思想是將多個運算邏輯單元(ALU)串聯在一起,復用從一個寄存器中讀取的結果,從而有效平衡了運算和 I/O 的需求。但其只適合做信號處理的卷積、信號和圖像處理(signal and image processing),矩陣算術(matrix arithmetic) 和一些非數值型應用(non-numeric application)。
另一類 ASIC 代表企業為國內寒武紀,其 DianNao 系列核心思想為結合神經網絡模型的數據局部性特點以及計算特性,進行存儲體系以及專用硬件設計,從而獲取更好的性能加速比以及計算功耗比。
(六) 數據為算法模型提供基礎資源
基于深度學習的人工智能技術,核心在于通過計算找尋數據中的規律,運用該規律對具體任務進行預測和決斷。源數據需要進行采集、標注等處理后才能夠使用,標注的數據形成相應數據集。業務類型主要包括數據采集、數據處理、數據存儲以及數據交易等環節。
當前,人工智能數據集的參與主體主要有以下幾類:一是學術機構,為開展相關研究工作,自行采集、標注,并建設學術數據集。這類數據集以 ImageNet 為代表,主要用于算法的創新性驗證、學術競賽等,但其迭代速度較慢,難用于實際應用場景。二是政府,等中立機構,他們以公益形式開放的公共數據,主要包括政府、銀行機構等行業數據及經濟運行數據等,數據標注一般由使用數據的機構完成。三是人工智能企業,他們為開展業務而自行建設數據集,企業一般自行采集,標注形成自用數據集,或采購專業數據公司提供的數據外包服務。四是數據處理外包服務公司,這類公司業務包括出售現成數據,訓練集的使用授權,或根據用戶的具體需求提供數據處理服務(用戶提供原始數據、企業對數據進行轉寫、標注),具體業務服務形式包括且不限于提供數據庫資源、提供數據采集服務,提供數據轉寫標注服務等。
當前,人工智能基礎數據類型主要包括語音語言類(包括聲音、文字、語言學規則)、圖像識別類(包括自然物體、自然環境、人造物體、生物特征等)以及視頻識別類三個大類,從世界范圍來看,數據服務商總部主要分布在美國、歐洲等發達國家。但其數據處理人員則大多數分布在第三世界國家;我國語音、圖像類資源企業機構正處于快速發展階段,為產業發展增添了動力。
(七) 高性能計算服務器和服務平臺快速發展
深度學習使用GPU 計算具有優異表現,催生了各類GPU 服務器, 帶動了 GPU 服務器的快速發展;同時,也帶動了以服務的形式提供人工智能所需要的能力,如深度學習計算類的計算平臺,以及語音識別,人臉識別等服務,這也成為人工智能企業打造生態的重要抓手。
1. GPU 服務器服務器廠商相繼推出了專為 AI 而設計的、搭載 GPU 的服務器。GPU 服務器是基于GPU 應用于視頻編解碼、深度學習、科學計算等多種場景的計算服務設備。GPU 服務器為 AI 云場景對彈性配置能力予以優化,以增強 PCI-E 拓撲和數量配比的彈性,增加適配多種軟件框架的運算需求,可以支持 AI 模型的線下訓練和線上推理兩類場景, 能夠讓 AI 模型訓練性能最大化或 AI 在線推斷效能最大化,一般分為4 卡,8 卡,10 卡等多種類型。
另外,英偉達等公司推出了專用的 GPU 一體機。例如DGX-1 系列深度學習一體機,采用定制的硬件架構,并使用 NVlink 提升了CPU、GPU 以及內存之間的通信速度和帶寬;同時搭載了集成了NVIDIA 開發的操作系統,NVIDIA docker 環境和很多常用的 Framework 的Docker 鏡像,實現了從底層硬件到上層軟件的緊密耦合。類似的產品還有浪潮的 AGX-1 系列服務器。
2. 以服務的形式提供人工智能能力成為趨勢
為了解決企業自行搭建 AI 能力時遇到的資金、技術和運維管理等方面困難,人工智能企業紛紛以服務的形式提供 AI 所需要的計算資源、平臺資源以及基礎應用能力。這類服務的意義在于一是有效推動社會智能化水平的提升,降低企業使用人工智能的成本,推動人工智能向傳統行業融合。二是人工智能服務化轉型的重要基礎。服務平臺使人工智能服務和應用不再封裝于具體產品中,而可以在以線、隨用隨取的服務形式呈現。三是服務平臺成為垂直行業落地的重要基礎。近兩年,教育、醫療、金融等傳統行業對人工智能相關技術和應用需求的不斷提升,而服務平臺是解決技術和應用的基礎。
以服務形式提供人工智能服務主要有兩類,即平臺類的服務和軟件 API 形式的服務。平臺類服務主要包含 GPU 云服務,深度學習平臺等,類似云服務的基礎設施即服務(Infrastructure as a Service,IaaS)和平臺即服務(Platform as a Service,PaaS)層。GPU 云服務是以虛擬機的形式,為用戶提供 GPU 計算資源,可適用于深度學習、科學計算、圖形圖像渲染、視頻解碼等應用場景。
深度學習平臺是以TensorFlow、Caffe、MXNet、Torch 等主流深度學習軟件框架為基礎, 提供相應的常用深度學習算法和模型,組合各種數據源、組件模塊,讓用戶可以基于該平臺對語音、文本、圖片、視頻等海量數據進行離線模型訓練、在線模型預測及可視化模型評估。軟件 API 服務主要分為智能語音語類服務和計算機視覺服務。其中智能語音語類服務主要提供語音語義相關的在線服務,可包括語音識別、語音合成、聲紋識別、語音聽轉寫等。計算機視覺類服務主要提供物體檢測、人臉識別、人臉檢測、圖像識別、光學字符識別(Optical Character Recognition, OCR)識別、智能鑒黃等服務。
三、 基于深度學習的基礎應用技術現狀
目前隨著深度學習算法工程化實現效率的提升和成本的逐漸降低,一些基礎應用技術逐漸成熟,如智能語音,自然語言處理和計算機視覺等,并形成相應的產業化能力和各種成熟的商業化落地。同時,業界也開始探索深度學習在藝術創作、路徑優化、生物信息學相關技術中的實現與應用,并已經取得了矚目的成果。
本章主要分析目前商業較為成熟的智能語音、自然語言處理和計算機視覺技術的情況,如圖 2 所示,每個基礎應用技術各分為若干應用類別。
(一) 智能語音技術改變人機交互模式
智能語音語義技術主要研究人機之間語音信息的處理問題。簡單來說,就是讓計算機、智能設備、家用電器等通過對語音進行分析、理解和合成,實現人“能聽會說”、具備自然語言交流的能力。
1. 智能語音技術概述
按機器在其中所發揮作用的不同,分為語音合成技術、語音識別技術、語音評測技術等。語音合成技術即讓機器開口說話,通過機器自動將文字信息轉化為語音,相當于機器的嘴巴;語音識別技術即讓機器聽懂人說話,通過機器自動將語音信號轉化為文本及相關信息, 相當于機器的耳朵;語音評測技術通過機器自動對發音進行評分、檢錯并給出矯正指導。此外,還有根據人的聲音特征進行身份識別的聲紋識別技術,可實現變聲和聲音模仿的語音轉換技術,以及語音消噪和增強技術等。
2. 智能語音產品和服務形態多樣
智能語音技術會成為未來人機交互的新方式,將從多個應用形態成為未來人機交互的主要方式。
智能音箱類產品提升家庭交互的便利性。智能音箱是從被動播放音樂,過渡到主動獲取信息、音樂和控制流量的入口。當前智能音箱以語音交互技術為核心,成為作為智能家庭設備的入口,不但能夠連接和控制各類智能家居終端產品,而且加入了個性化服務,如訂票、查詢天氣、播放音頻等能力。
個人智能語音助手重塑了人機交互模式。個人語音助手,特別是嵌入到手機、智能手表、個人電腦等終端中的語音助手,將顯著提升這類產品的易用性。如蘋果虛擬語音助手Siri 與蘋果智能家居平臺Homekit 深度融合,用戶可通過語音控制智能家居。Google Now 為用戶提供關心的內容,如新聞、體育比賽、交通、天氣等等。微軟的Cortana 主要優勢在于提升個人計算機的易用性。
以 API 形式提供的智能語音服務成為行業用戶的重要入口。智能語音 API 主要提供語音語義相關的在線服務,可包括語音識別、語音合成、聲紋識別、語音聽轉寫等服務類型,并且可以嵌入到各類產品,服務或 APP 中。在商業端,智能客服、教育(口語評測)、醫療(電子病歷)、金融(業務辦理)、安防、法律等領域需求強烈;在個人用戶領域,智能手機、自動駕駛及輔助駕駛、傳統家電、智能家居等領域需求強烈。
(二) 計算機視覺技術已在多個領域實現商業化落地
計算機視覺識別這一人工智能基礎應用技術部分已達商業化應用水平,被用于身份識別、醫學輔助診斷、自動駕駛等場景。
1. 計算機視覺概述
一般來講,計算機視覺主要分為圖像分類、目標檢測、目標跟蹤和圖像分割四大基本任務。
圖像分類是指為輸入圖像分配類別標簽。自2012 年采用深度卷積網絡方法設計的 AlexNet 奪得 ImageNet 競賽冠軍后,圖像分類開始全面采用深度卷積網絡。2015 年,微軟提出的 ResNet 采用殘差思想,將輸入中的一部分數據不經過神經網絡而直接進入到輸出中,解決了反向傳播時的梯度彌散問題,從而使得網絡深度達到 152 層,將
錯誤率降低到 3.57%,遠低于 5.1% 的人眼識別錯誤率,奪得了ImageNet 大賽的冠軍。2017 年提出的 DenseNet 采用密集連接的卷積神經網絡,降低了模型的大小,提高了計算效率,且具有非常好的抗過擬合性能。
目標檢測指用框標出物體的位置并給出物體的類別。2013 年加州大學伯克利分校的 Ross B. Girshick 提出 RCNN 算法之后,基于卷積神經網絡的目標檢測成為主流。之后的檢測算法主要分為兩類,一是基于區域建議的目標檢測算法,通過提取候選區域,對相應區域進行以深度學習方法為主的分類,如 RCNN、Fast-RCNN、Faster-RCNN、SPP-net 和 Mask R-CNN 等系列方法。二是基于回歸的目標檢測算法,如 YOLO、SSD 和DenseBox 等。
目標跟蹤指在視頻中對某一物體進行連續標識。基于深度學習的跟蹤方法,初期是通過把神經網絡學習到的特征直接應用到相關濾波或 Struck 的跟蹤框架中,從而得到更好的跟蹤結果,但同時也帶來了計算量的增加。最近提出了端到端的跟蹤框架,雖然與相關濾波等傳統方法相比在性能上還較慢,但是這種端到端輸出可以與其他的任務一起訓練,特別是和檢測分類網絡相結合,在實際應用中有著廣泛的前景。
圖像分割指將圖像細分為多個圖像子區域。2015 年開始,以全卷積神經網絡(FCN)為代表的一系列基于卷積神經網絡的語義分割方法相繼提出,不斷提高圖像語義分割精度,成為目前主流的圖像語義分割方法
2. 計算機視覺技術應用領域廣闊
在政策引導、技術創新、資本追逐以及消費需求的驅動下,基于深度學習的計算機視覺應用不斷落地成熟,并出現了三大熱點應用方向。
一是人臉識別搶先落地,開啟“刷臉”新時代。目前,人臉識別已大規模應用到教育、交通、醫療、安防等行業領域及樓宇門禁、交通過檢、公共區域監控、服務身份認證、個人終端設備解鎖等特定場景。從2017 年春運,火車站開啟了“刷臉”進站,通過攝像頭采集旅客的人臉信息,與身份證人臉信息進行驗證;2017 年 9 月蘋果公司發布的iPhone X 第一次將 3D 人臉識別引入公眾視線,迅速引發了“移動終端+人臉解鎖”的布局風潮。
二是視頻結構化嶄露頭角,擁有廣闊應用前景。視頻結構化就是將視頻這種非結構化的數據中的目標貼上相對應的標簽,變為可通過某種條件進行搜索的結構化數據。視頻結構化技術的目標是實現以機器自動處理為主的視頻信息處理和分析。從應用前景看,視頻監控技術所面臨的巨大市場潛力為視頻結構化描述提供了廣闊的應用前景,很多行業需要實現機器自動處理和分析視頻信息,提取實時監控視頻或監控錄像中的視頻信息,并存儲于中心數據庫中。用戶通過結構化視頻合成回放,可以快捷的預覽視頻覆蓋時間內的可疑事件和事件發生時間。
三是姿態識別讓機器“察言觀色”,帶來全新人機交互體驗。在視覺人機交互方面,姿態識別實際上是人類形體語言交流的一種延伸。它的主要方式是通過對成像設備中獲取的人體圖像進行檢測、識別和跟蹤,并對人體行為進行理解和描述。從用戶體驗的角度來說,融合姿態識別的人機交互能產品夠大幅度提升人機交流的自然性,削弱人們對鼠標和鍵盤的依賴,降低操控的復雜程度。從市場需求的角度來說,姿態識別在計算機游戲、機器人控制和家用電器控制等方面具有廣闊的應用前景,市場空間十分可觀。
(三) 自然語言處理成為語言交互技術的核心
自然語言處理(Natural Language Processing ,NLP)是研究計算機處理人類語言的一門技術,是機器理解并解釋人類寫作與說話方式的能力,也是人工智能最初發展的切入點和目前大家關注的焦點。
1. 自然語言處理技術現狀
自然語言處理主要步驟包括分詞、詞法分析、語法分析、語義分析等。其中,分詞是指將文章或句子按含義,以詞組的形式分開,其中英文因其語言格式天然進行了詞匯分隔,而中文等語言則需要對詞組進行拆分。詞法分析是指對各類語言的詞頭、詞根、詞尾進行拆分,各類語言中名詞、動詞、形容詞、副詞、介詞進行分類,并對多種詞義進行選擇。語法分析是指通過語法樹或其他算法,分析主語、謂語、賓語、定語、狀語、補語等句子元素。語義分析是指通過選擇詞的正確含義,在正確句法的指導下,將句子的正確含義表達出來。
2. 自然語言處理技術的應用方向
自然語言處理的應用方向主要有文本分類和聚類、信息檢索和過濾、信息抽取、問答系統、機器翻譯等方向。其中,文本分類和聚類主要是將文本按照關鍵字詞做出統計,建造一個索引庫,這樣當有關鍵字詞查詢時,可以根據索引庫快速地找到需要的內容。此方向是搜索引擎的基礎。信息檢索和過濾是網絡瞬時檢查的應用范疇,在大流量的信息中尋找關鍵詞,找到后對關鍵詞做相應處理。信息抽取是為人們提供更有力的信息獲取工具,直接從自然語言文本中抽取事實信息。機器翻譯是當前最熱門的應用方向,目前微軟、谷歌的新技術是翻譯和記憶相結合,通過機器學習,將大量以往正確的翻譯存儲下來。谷歌使用深度學習技術,顯著提升了翻譯的性能與質量。
四、 問題和趨勢展望
(一) 主要問題
在算法層面,深度學習算法模型存在可靠性及不可解釋性問題。首先是可靠性問題,深度學習模型離開訓練使用的場景數據,其實際效果就會降低。由于訓練數據和實際應用數據存在區別,訓練出的模型被用于處理未學習過的數據時,表現就會降低。其次是不可解釋性問題,深度學習計算過程為黑盒操作,模型計算及調試的執行規則及特征選取由機器自行操作,目前尚無完備理論能夠對模型選取及模本身做出合理解釋,隨著相關算法在實際生產生活中的融合應用,存在產生不可控結果的隱患。
在數據層面,主要存在流通不暢、數據質量良莠不齊和關鍵數據集缺失等問題。
具體來看,一是數據流通不暢。目前人工智能數據集主要集中在政府和大公司手里,受制于監管、商業門檻等問題,數據無法有效流動;部分有價值數據,如監控、電話客服等數據目前沒有合法渠道獲得;二是數據質量良莠不齊。數據標注主要通過外包形式,勞動力水平決定了產出的標注數據質量。三是關鍵領域和學術數據集不足。計算機視覺、自然語言處理等領域的數據資源嚴重不足,同時目前我國產業數據主要供給給產業界,目前學術界數據集數量較少, 可能影響科研及前瞻性的技術研究。
在軟件框架層面,實現深度學習應用落地的推斷軟件框架質量參差不齊,制約了業務開展。由于深度學習應用場景眾多,相關應用呈現碎片化特點,用于實現最后應用落地的開源推斷軟件框架無論在功能還是性能層面距離實際需求還存在相當距離,與訓練軟件框架趨同趨勢不同,產業界所使用的推斷軟件框架需要聚力研發,尚未形成具有實際標準意義的優秀實例。
在編譯器層面,各硬件廠商的中間表示層之爭成為技術和產業發展的阻礙。目前業界并沒有統一的中間表示層標準,并且模型底層表示、存儲及計算優化等方面尚未形成事實標準,導致各硬件廠商解決方案存在一定差異,導致應用模型遷移不暢,提高了應用部署難度。
在 AI 計算芯片層面,云側和終端側對計算芯片提出了不同的要求。對于云側芯片,隨著深度學習計算需求的逐漸增加,業界希望在提升云側芯片運算效能的前提下,希望針對不同網絡實現更優化的性能表現,而功耗比則不是首要關注的因素;對于終端側芯片,在功耗為首要要求的情況下,更加注重的推斷運算的性能,并且不同終端應用場景對芯片提出了更多個性化需求,如在人臉識別攝像頭、自動駕駛汽車等場景。
(二) 趨勢展望
遷移學習的研究及應用將成為重要方向。遷移學習由于側重對深度學習中知識遷移、參數遷移等技術的研究,能夠有效提升深度學習模型復用性,同時對于深度學習模型解釋也提供了一種方法,能夠針對深度學習算法模型可靠性及不可解釋性問題提供理論工具。
深度學習訓練軟件框架將逐漸趨同,開源推斷軟件框架將迎來發展黃金期。隨著人工智能應用在生產生活中的不斷深入融合,對于推斷軟件框架功能及性能的需求將逐漸爆發,催生大量相關工具及開源推斷軟件框架,降低人工智能應用部署門檻。
中間表示層之爭將愈演愈烈。以計算模型為核心的深度學習應用, 由于跨軟件框架體系開發及部署需要投入大量資源,因此模型底層表 示的統一將是業界的亟需,未來中間表示層將成為相關企業的重點。
AI 計算芯片朝云側和終端側方向發展。從云側計算芯片來看, 目前 GPU 占據主導市場,以 TPU 為代表的ASIC 只用在巨頭的閉環生態,未來 GPU、TPU 等計算芯片將成為支撐人工智能運算的主力器件,既存在競爭又長期共存,一定程度可相互配合;FPGA 有望在數據中心中以 CPU+FPGA 形式作為有效補充。從終端側計算芯片來看,這類芯片將面向功耗、延時、算力、特定模型、使用場景等特定需求,朝著不同發展。
來源:物聯網報告中心
評論