Tengine AIFramework框架
Tengine AIFramework框架
在開源大勢下,以數據、算力、算法為三駕馬車的人工智能實現了初級階段的產業化落地。任何一個技術領域成熟的標志是從應用到平臺的成功迭代,AI 也不例外,最終引導 AI 走向成熟的必將是軟件平臺。
以史為鑒,回看過往 PC 時代,Windows 的普及,帶來海量差異化業務應用的繁榮,迎來了互聯網的快速發展;移動互聯網時代,Android、iOS 二分天下,讓移動應用開發者得以乘風破浪,千萬級的 APP 充實了生活的各個場景,便捷愉悅的同時,業態升級隨之而來。那么,在萬億級的 AIoT 時代,在視覺智能、語音智能等邊緣 AI 應用爆發之際,AI 業務的平臺化之路該如何走,行業的分工協同產業鏈的加速繁榮何時到來,海量的差異化場景智能化如何高效實現?
可以從 OPEN AI LAB 邊緣 AI 計算框架 Tengine 中找到答案。
人工智能的下一“戰”——平臺框架
OPEN AI LAB(開放智能),這家成立于 2016 年的 AI 初創企業,研發團隊主要分布在上海、北京、深圳、南京等城市,專注于邊緣智能計算及應用,推動邊緣 AI 芯片算力、算法、產品工程化、行業方案等環節的深度協作,加速 AI 技術在差異化場景的高效商業化落地。
經過近 4 年的快速發展, OPEN AI LAB 的 Tengine 在前端及邊緣 AI 應用開發者中已經小有名氣。OPEN AI LAB 推出的邊緣 AI 計算框架 Tengine 是開發者最喜愛的本土 AI 框架工具之一。
AI 開源浪潮背景之下,與近年來 AI 面臨的落地挑戰息息相關。如何為紛繁復雜的實際應用場景提供有效的 AI 解決方案,AI 框架和平臺無疑被承載了最大期望,向上要承載不同的算法模型和應用程序,向下要兼容各類芯片和計算機操作系統。
環顧周邊,Google 開源 TensorFlow、Facebook 推出 PyTorch、微軟開源 Cognitive Tookit(曾用名 CNTK)、百度推出深度學習開源平臺 PaddlePaddle,到華為全場景 AI 計算框架 MindSpore 正式開源、清華大學人工智能研究院開源“天授”強化學習平臺Jittor、曠視開源深度學習框架天元(MegEngine)。Tengine 能夠獲得開發者如此追捧,事實上并非偶然。
在成立伊始,OPEN AI LAB 就帶著“致力于做最接地氣的人工智能算力框架平臺”的初衷,希望打破傳統。其中的“接地氣”,這意味著需要幫助開發者真正解決產業化的全棧工作難題,整體提升體系化生產力,讓AI場景落地不再困難重重。作為開源邊緣 AI 計算框架,Tengine 不僅能幫助開發者在開發過程中,進一步提升算法移植和部署效能;從長期看,它的開源也將為打破 AIoT 產業壁壘,快速整合上下游以實現 AIoT 產業的落地和應用,為豐富全球 AI 開源生態提供了重要的推動力。
回顧過去,在 2016 年 AI 爆發之際,吸引 AI 創業者乃至投資者的主要有兩大方向,一個是 AI 應用(算法),二是 AI 芯片(算力)。兩大方向都與 AI 落地有著密不可分的關系,前者解決業務落地、后者解決成本及部署最優。在過去幾年,很多公司為了快速實現業務落地,在應用層面上采用了如 TensorFlow、 PyTorch 等框架,但這些框架更多是關注云端推理,這也決定了當時 AI 的產業化落地傾向于服務器集群化部署。產業方向聚焦平安城市、智慧城市等大型綜合平臺。
隨著 AI 產業鏈的逐漸成熟,海量差異化場景出現,AI 賦能百業成為風口浪尖,從 2018 年開始,越來越多的應用場景要求 AI 計算從云端向邊緣乃至終端設備遷移。而做到這一點并不容易,涉及到邊緣/終端芯片種類復雜、異構算力利用率低,軟件開發環境繁雜、算法框架兼容性差、精度損失、性能低下等關鍵問題。Tengine 作為邊緣 AI 計算框架,正在助力開發者解決 AI 產業化落地中遇到的各個瓶頸難題。
對于當下 AI 數據、算法、算力三駕馬車的產業化瓶頸,大平臺,或全棧生產力賦能平臺,成為 AI 發展繁榮的下一步關鍵所在?;凇按笃脚_”,能夠幫助企業及開發者利用其自身生態具備的數據,在落地場景中,基于平臺持續訓練打磨算法,面向嵌入式智能硬件,一鍵式算法業務下發/升級,從而幫助 AI 應用開發者大大地提升效率,完成自主迭代閉環。
不過,理想狀態下的大平臺想要讓 AIoT 萬億級設備實現互聯、互通,可能還需要 5-10 年乃至更久的時間去投入才能實現,但時下邊緣 AI 計算框架 Tengine 正在這條披滿荊棘的道路之不斷前行,并為 AIoT 的產業繁榮持續做出貢獻。
Tengine——為邊緣 AI 計算而生
Tengine 面對的是一個 AIoT 的萬億級市場,比早期的 PC 時代、移動互聯網時代,要更具規模,各種互聯設備類型越來越多將是大勢所趨。場景及業務的差異化直接導致 SoC 等芯片的種類會越來越多,且具有不同的架構(如 Arm、X86 等),同時每種芯片本身的計算的模式也是一種異構計算,即多種計算單元混合在一起(如 CPU、GPU、DSP、NPU 等多種計算單元),如何做到跨芯片及底層算力單元的統一支持與高效實用,Tengine 在設計之初就充分考慮的 IoT 場景特性。
Tengine 采用了輕量級模塊化的高性能神經網絡推理引擎,便于擴展和裁剪,最小體積程序可以做到 300KB,在 MCU 上甚至能夠做到 20KB。專門針對 Arm 嵌入式設備優化,無需依賴第三方庫,可跨平臺使用支持 Android、Linux、RTOS。
除此之外,Tengine 一方面可以通過異構計算技術能夠同時調用 CPU、GPU、DSP、NPU 等不同計算單元來完成 AI 網絡計算。另一方面,和 TensorFlow、Caffe、MXNet 等訓練框架相互配合,通過 ONNX 模型實現了對 Pytorch、PaddlePaddle 的支持,完成了對業內主流框架的整體支持。因此,Tengine 對下需要覆蓋各種各樣的芯片,對上要兼容各種各樣的訓練框架。
細分來看,在 Tengine 架構上,分為三個部分:
中間表示層:想要全面支持主流的 Caffe、TensorFlow、MXNet 等框架,Tengine 自身具備兼容的 IR —— Tengine NNIR。底層硬件抽象層:針對不同架構計算單元的 HAL,以便于硬件的接入。OPEN AI LAB 專門開發了針對 Arm CPU 的高性能計算庫 HCL 庫,通過調用針對不同 CPU 微架構優化的 HCL 庫,可以將 Arm CPU 的性能充分挖掘出來。與此同時,Tengine 也支持業界常見的 OpenBLAS、Arm Compute Library 庫。用戶也可以通過插件擴展自己的算子庫。通過HAL 適配 GPU、DSP、NPU 等各類硬件加速器。Graph 計算層:實現對 Graph 的解釋、調度和部署執行。Tengine 的 Graph 計算層可以針對不同的異構計算單元,進行 Graph 拆解、融合等優化,調度不同的計算單元來執行。
Tengine 的落地與挑戰
Tengine 作為 AI 的基礎框架,但凡有 AI 能夠落地的地方,都能夠提供價值。
如今經過了多年的沉淀,通過面向企業的持續快速迭代,Tengine 已經在很多場景中助力產業化落地,如安防、交通、農牧、冶煉、水利、教育等行業,生活息息相關的智能座艙、智能家居、消費電子等層面,Tengine 也均有落地。
成功的背后,必定是艱辛的付出。
平臺的創建周期更長、投入更大,變現周期也由此變長,其中的困難可謂難以想象。
作為一款嵌入式的 AI 框架,首先需要解決的難題是兼容性問題。在眾多的 AI 訓練框架中,其模型的結構是相互獨立的,這也導致其自身并不兼容,這就需要定義一個 IR 去和它們相互兼容。至于這一點,Tengine 即將發布其 IR 定義。
第二點,Tengine 需要解決性能問題。在嵌入式端,每個芯片都有所不同,但是應用需要把每個芯片的性能發揮到極致。如果想要做到這一點,需要針對每種計算單元進行特殊的優化,譬如 ARM 的 CPU,需要針對指令集優化,且對于每一個型號,它的微架構不同,需要進一步優化,這就要求優化工程師需要了解其計算原理、微架構設計特點等,進而才可以針對性能優化。
此外,Tengine 支持異構計算模式,AI 計算不是僅僅由 CPU 組成,可能是由幾種異構的計算單元協同來完成一些工作,如何能夠把協同的工作達到性能最高,這些都是挑戰。這些問題的解決需要依靠工程師對于系統的理解、優化的經驗,這也意味著需要工程師去了解每一種新出現的計算框架。
AI 人才的成長之路
在 AI 產業化浪潮之下,由于全鏈路的高度復雜及快速演進,對 AI 的人才提出了更高的要求。
對于企業而言,可以將 AI 業務對人才的需求拆成很多環節,如算法工程師、框架優化工程師、AI 應用工程師等等,結合企業的業務模式,這些工程師可能偏向算法亦或是底層優化。
站在開發者的角度,以算法工程師為例,如果是一名初級算法工程師,在具備的技能方面,至少可以針對一個應用的問題,在開源社區當中找到相應的算法,以及一些開源數據和自身數據,基于 TensorFlow、Pytorch 等工具訓練出針對應用場景的算法。想要成為高級 AI 算法工程師,需要具備模型調優能力,對數據的建模能力,以及對部署平臺的理解。
全棧 AI 工程師,相較前幾年而言,擁有著少部分的 AI 相關業務卻并非是專業 AI 企業的需求可能更為明顯,產業化快速場景落地成為各家企業的關鍵。對于全棧 AI 工程師而言,需要具備業務理解、算法訓練、模型調優、硬件適配等一系列能力,要求更高,人才培養周期也會很長。
不過,在 AI 的軟件平臺進一步發展之下,企業對于 AI 全棧工程師的需求也會有所降低,各種各樣的軟件框架平臺正在幫助企業解決人才欠缺等問題,平臺化也正助力帶來 AI 門檻的降低。
Tengine 開發
2017 年,Tengine 在 GitHub(https://github.com/OAID/Tengine)上開源。Tengine 產品重心是服務行業,結合客戶的 AI 落地場景需求進行快速迭代演進。
如今的 Tengine 在已經趟平很多的實際應用的坑后以商用級產品化的質量奉獻給開發者,并以開源的方式誠邀開發者參與、為產業繁榮貢獻力量。
日前,Tengine 與 OpenCV 社區進行了深度的合作,在最新發布的 OpenCV 4.3.0 版本中,基于 ARM 的 CPU,Tengine 憑借嵌入式端的高性能,攜手為 OpenCV 的深度學習模塊 DNN 在 Arm CPU 上帶來了性能顯著提升。
Tengine 也進入到 ONNX 官方支持列表。2020 年,OPEN AI LAB 將攜手開發者,聯合開源社區,共同完成Tengine的的下一階段使命,服務 AI 應用的普及和普惠。
總結
以上是生活随笔為你收集整理的Tengine AIFramework框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tvm一些基本技术
- 下一篇: NNVM Compiler,AI框架的开