基礎層基礎層實現 AI 框架最基礎核心的功能,具體包括編程開發、編譯優化以及硬件使能三個子層。編程開發層是開發者與 AI 框架互動的窗口,為開發者提供構建 AI 模型的 API 接口。編譯優化層是 AI 框架的關鍵部分,負責完成 AI 模型的編譯優化并調度硬件資A
根據技術所處環節及定位,當前主流 AI 框架的核心技術可分 為基礎層、組件層和生態層。
1.基礎層
基礎層實現 AI 框架最基礎核心的功能,具體包括編程開發、編譯優化以及硬件使能三個子層。編程開發層是開發者與 AI 框架互動的窗口,為開發者提供構建 AI 模型的 API 接口。編譯優化層是 AI 框架的關鍵部分,負責完成 AI 模型的編譯優化并調度硬件資源完成計算。硬件使能層是 AI 框架與 AI 算力硬件對接的通道,幫助開發者屏蔽底層硬件技術細節。
編程開發-編程接口 API:開發者通過調用編程接口來描述算法的計算過程。對于開發者來說,編程接口的易用性以及接口的表達能力非常重要,對算法的描述會映射到計算圖上。編程接口主要可以分為 3 類:一類是基于數據流圖的編程接口,流行的基于數據流圖的機器學習編程框架包括 TensorFlow、MXNet、Theano、Torch7等;另一類是基于層的編程接口,如 Caffe;還有一類是基于算法的編程接口,主要用于傳統機器學習算法的實現,如 Scikit-Learn。編程開發-編碼語言:人工智能應用場景眾多,人工智能開發者基于不同場景選擇使用的編程語言多樣,完善的 AI 框架應支持多種不同的語言,例如 Python/倉頡/Julia 等。面向使用不同編程語言的開發者,AI 框架需要提供功能相同、性能可比的開發服務和技術支持。
編譯優化-分布式并行:指數據流并行、模型并行、Pipeline 并行、優化器并行等策略。隨著模型規模的增大,傳統的數據并行無法有效處理,自動并行技術的使用將會是常態。需要將大模型切分到不同的設備上,切分就是將不同大塊計算切分成小塊計算,并將小塊計算發送到不同的計算資源進行計算,最后將小塊計算的結構進行規約合并。而切分策略尋優是很困難的,不同的切分產生的通信量差異巨大,計算利用率也很不一樣,比如 Pipeline 并行往往在計算利用率方面存在較大的挑戰,算子切分的并行則在通信量方面存在較大的挑戰,需要 AI 框架來支持。
編譯優化-自動微分:自動微分是將一個復雜的數學運算過程分解為一系列簡單的基本運算,每一項基本運算都可以通過查表得出來。自動微分有兩種形式,包括前向模式(forward mode)和反向模式(reverse mode),前向模式是在計算圖前向傳播的同時計算微分,反向模式需要對計算圖進行一次正向計算,得出輸出值,再進行反向傳播。因此反向模式的內存開銷要大一點,它需要保存正向傳播中的中間變量值,這些變量值用于反向傳播的時候計算導數。
編譯優化-動靜轉換:靜態圖在定義執行前的所有操作和網絡結構,并將其呈現給傳感器流,在訓練期間提供了更高的性能,但這樣做的代價是不易于使用、不夠靈活。動態圖計算是即時執行的,提供了更大的靈活性和更容易的調試,但這樣做的代價是性能較低。TensorFlow2.0、MindSpore 等均支持動態圖和靜態圖的轉換技術,可以實現計算效率和靈活性的平衡。
編譯優化-模型輕量化:輕量化是指為滿足 AI 模型尺寸小、計算復雜度低、電池耗電量低、下發更新部署靈活等要求下,AI 框架所配置的輕量化技術。一般來說,模型輕量化就是指模型壓縮和加速,其中壓縮重點在于減少網絡參數量,加速則側重在降低計算復雜度、提升并行能力等。算法層壓縮加速主要包括結構優化(如矩陣分解、分組卷積、小卷積核等)、量化與定點化、模型剪枝、模型蒸餾等;框架層加速主要包括編譯優化、緩存優化、稀疏存儲和計算、NEON 指令應用、算子優化等。
編譯優化-圖算融合:通過自動分析和優化現有網絡計算圖邏輯,并結合目標硬件能力,對計算圖進行計算化簡和替代、算子拆分和融合、算子特例化編譯等優化,以提升設備計算資源利用率,實現對網絡性能的整體優化。相比傳統優化技術,圖算融合具有多算子跨邊界聯合優化、與算子編譯跨層協同、基于 Polyhedral 的算子即時編譯等獨特優勢。另外,圖算融合只需要開發者打開對應配置,整個優化過程即可自動完成,不需要網絡開發人員進行其它額外感知,使得開發者可以聚焦網絡算法實現。
編譯優化-內存優化:由于硬件系統的內存資源有限,特別是AI 芯片的內存資源有限,需要有高效的內存優化策略降低 AI 網絡對系統內存的消耗。一般常用的內存優化技術有:靜態內存復用優化和動態內存分配機制。靜態內存復用優化會分析計算圖的數據流關系,基于數據的內存占用大小、數據間的生命周期重疊關系,規劃數據的內存復用策略,從而最小化內存占用。動態內存分配機制是在運行時創建大塊內存,并按照實際算子執行過程中需要的內存進行內存切片提供,當算子執行完且相關數據的引用均已結束時,釋放內存切片,從而實現內存的有效復用。
編譯優化-算子生成:AI 框架會提供基礎常用的算子,但是這些算子往往不能滿足開發者算法不斷演進的需求。因此,需要 AI框架具備針對不同算力設備的統一算子生成和優化的能力,使得開發人員只需要編寫高層編程語言(如 DSL)就可以通過 AI 框架提供的算子編譯生成能力,生成高質量的底層算子,極大降低 AI 框架和硬件平臺的開發和維護成本,拓展應用范圍。
編譯優化-中間表示:中間表示(Intermediate Representation,簡稱 IR)是對計算圖和算子格式的定義。完備的中間表示需要支持不同硬件設備算子定義和計算圖的性能優化,支持不同類型的 AI模型網絡結構的靈活表達,支持不同設備間的模型中轉和遷移。硬件接入-計算算子:在深度學習領域計算算子特指計算圖中的一個函數節點,一個在張量上執行的計算操作,它接受零或多個張量作為輸入,得到零或多個張量作為輸出,利用梯度、散度、旋度的表達方式進行計算。
硬件接入-通信算子:用于分布式節點通信的函數節點。
2.組件層
組件層主要提供 AI 模型生命周期的可配置高階功能組件,實現細分領域性能的優化提升,包括編譯優化組件、科學計算組件、安全可信組件、工具組件等,對人工智能模型開發人員可見。
并行及優化組件-自動并行:指對自動并行技術的多樣化組合支持。AI 框架支持開發者進行多種不同并行進行組合,根據需要形成混合并行策略,例如數據流并行和模型并行的組合、數據流和Pipeline 并行的組合等,支持開發者個性化的選擇自己的并行策略,以更靈活的姿態支持人工智能模型訓練、應用適配。
并行及優化組件-高階優化器:AI 框架支持多種不同的一階/二階優化器,能為開發者提供靈活方便的接口,例如 SGD 優化器、SGDM 優化器、NAG 優化器、AdaGrad 優化器、AdaDelta 優化器、Adam 優化器、Nadam 優化器等。
科學計算組件-科學計算(數值方法):人工智能發展的重要方向之一是科學計算,因此要求 AI 框架向開發者提供科學計算相關的功能支持,通過函數式編程范式為 AI+科學計算提供融合的表達方式,使得開發者以更加接近數學計算的方式進行編程,以緩解當前 AI 框架的編程接口主要面向深度神經網絡設計,但是科學計算中需要大量的數學公式的表達(例如微分方程求解)的情況。
科學計算組件-科學計算(AI 方法):針對 AI 方法直接替代數值方法取得計算結果的形式,AI 框架需要具備“AI+科學計算”統一的數據底座,將傳統科學計算的輸入數據(如傳統科學計算軟件生成的仿真數據)轉換為 AI 框架的輸入數據(即張量)。針對 AI 方法與數值方法配合取得計算結果形式,除了需要具備統一的數據引擎之外,AI 框架需要支持傳統數值計算的方法,例如高階微分求解、線性代數計算等,并通過計算圖對傳統數值方法和 AI 方法的混合計算優化,從而實現“AI+科學計算”端到端加速。
安全可信組件-AI 可解釋:AI 框架需要具備三個層面的能力支持可解釋人工智能。建模前的“數據可解釋”,分析數據分布,找出代表性的特征,在訓練時選擇需要的特征進行建模。構建“可解釋人工智能模型”,通過與傳統機器學習(如貝葉斯概率編程)結合的方式,對人工智能結構進行補充,平衡學習結果的有效性和學習模型的可解釋性。對已構筑模型進行“解釋性分析”,通過分析人工智能模型的輸入、輸出、中間信息的以來關系分析(如TB-Net的方式)及驗證模型的邏輯。
安全可信組件-數據安全:人工智能領域的數據安全問題不僅僅涉及到原始數據本身的保護,還要防止通過模型推理結果反推出數據隱私關鍵信息。因此,AI框架本身除了要提供數據資產保護能力,還需要通過差分隱私等方式,保護模型數據的隱私。同時,為了源頭保護數據安全,AI框架通過聯邦學習等方式進行模型訓練,使得數據不出端的情況下模型得到訓練更新。
安全可信組件-模型安全:訓練模型時樣本訓練不足,使得模型泛化能力不足,導致模型面對惡意樣本時,無法給出正確的判斷結果。為此,AI框架首先需要提供豐富的人工智能魯棒性檢測工具,通過黑盒、白盒、灰盒測試等對抗檢測技術測試人工智能模型的魯棒性,如靜態結構分析,動態路徑分析等;其次,AI框架可以通過支持網絡蒸餾、對抗訓練等方式幫助開發者提高模型的魯棒性。
工具組件-訓練可視化:支持訓練過程可視化,可通過頁面直接查看訓練過程中的核心內容,包括訓練標量信息、參數分布圖、計算圖、數據圖、數據抽樣等模塊。
工具組件-調試器:神經網絡訓練中經常出現數值誤差情況,如無窮大等,開發者希望分析訓練無法收斂的原因。但是,由于計算被封裝為黑盒,以圖的方式執行,開發者很難定位其中的錯誤。調試器是訓練調試的工具,開發者可以在訓練過程中查看圖的內部結構以及節點的輸入/輸出,例如查看一個張量的值,查看圖中的節點對應的Python代碼等。此外,開發者還可以選擇一組節點設置條件斷點,實時監控節點的計算結果。
3.生態層
生態層主要面向應用服務,用以支持基于AI框架開發的各種人工智能模型的應用、維護和改進,對于開發人員和應用人員均可見。
套件/模型庫:AI框架應對領域通用任務提供預訓練模型或者定義好的模型結構,方便開發者獲取和開展人工智能模型訓練和推理,如CV、NLP等。
AI領域擴展庫:AI框架要能夠提供豐富的領域任務支持,并為相關任務提供典型案例,從而提供更好的應用服務,如GNN、強化學習、遷移學習等。
AI+科學計算:與CV、NLP等傳統信息領域不同,科學計算問題的求解需要具備相對專業的領域知識。為了加速AI+科學計算融合的研究和落地,AI框架需要面向不同的科學計算領域(如電磁仿真、科學制藥、能源、氣象、生物、材料等)提供簡單易用的科學計算套件,這些套件包含高質量的領域數據集、高精度的基礎AI模型和用于前后處理的工具集合。
文檔:AI框架應提供完善的文檔體系,包括但不限于框架說明文檔、框架API文檔、框架版本變更文檔、框架常見問題文檔、框架特性文檔等。
社區:人工智能服務發展需要社區支持,AI框架應該經營或者維護良好的社區環境,好的AI框架具備較好的維護性和易用性,同時AI框架社區中應該有代表性項目并長期支持基于該框架的項目和應用。
欲了解更多AI行業的未來發展前景,可以點擊查看中研普華產業院研究報告《2022年版5G通信技術背景下邊緣計算+AI發展趨勢及應用專項研究報告》
關注公眾號
免費獲取更多報告節選
免費咨詢行業專家
2023-2028年中國警用軟件系統行業市場前瞻與未來投資戰略分析報告
在激烈的市場競爭中,企業及投資者能否做出適時有效的市場決策是制勝的關鍵。警用軟件系統行業研究報告就是為了解行情、分析環境提供依據,是企業了解市場和把握發展方向的重要手段,是輔助企業...
查看詳情
冰箱是家庭中不可或缺的家電之一,它可以將食物和飲料保持在新鮮狀態。隨著技術進步和消費者需求變化,冰箱行業也在不...
一、進入和退出壁壘較低,市場競爭同質化嚴重團餐行業也是進出壁壘雙低的行業,想要做強做大需要投入巨大的資本,需要...
當前各個行業及省市都在抓緊制定轉型升級戰略,零售百貨行業也應抓住當前有利時機,培育和健全企業創新機制。同時,加...
近年來,隨著時代的發展和生活水平的提高,人們對醋的需求及研究也越來越多。醋作為傳統的調味品,同時還具有保健、藥...
今年8月,特斯拉端到端AI自動駕駛系統FSD Beta V12首次公開亮相,完全依靠車載攝像頭和神經網絡來識別道路和交通情9...
滌綸是最重要的紡織原料。我國滌綸工業始于1958年,經過多年的發展,產量持續增長;前幾年國內滌綸產能產量處于快速發...
微信掃一掃