摘要:昇騰AI提供了全棧技術和產品,構築人工智慧的算力基座,賦能上層應用
本文分享自華為雲社群《昇騰CANN:為你開啟機器人開發的Buff 加成》,作者:華為雲社群精選 。
昇騰AI基礎軟硬體平臺
人類在最近1萬多年的發展中,經歷了農耕時代、蒸汽機時代、電力時代、網際網路時代,21世紀,進入了人工智慧時代。
每一次科技浪潮都透過某一項先進生產力要素的突破,進而引起大多數行業的變革:以資訊科技為核心的第三次科技革命迄今已逾70年,整個將全球GDP提升約60倍,其中1950年-1990年,是半導體產業迅猛發展的時代,推動了大型計算機向個人PC的小型化;1990年至今是近30年的網際網路全球化時代,網際網路技術作為過去30年最先進的生產力要素,改變了全球的所有人、所有產業、社會經濟,甚至是政治、軍事、宗教。
那麼接下來到底什麼樣的革命性技術可以引領人類社會,推動全球經濟向上增長?
我們的答案是,我們早已處於人工智慧時代之中。
就像直到2010年iphone4釋出,絕大多數人也並未意識到移動網際網路革命早已開始一樣,如今人工智慧其實也已廣泛應用,比如到處遍佈的攝像頭和手機人臉識別,微信語音和文字轉換,抖音動態美顏特效、推薦演算法,家庭掃地機器人和餐廳送餐機器人,背後都是人工智慧核心技術在過去十年不斷取得的巨大突破。
機器人作為人工智慧的實體化,也將擁有廣泛的產業應用
機器人普遍存在的意義是“為人類服務”的可運動智慧裝置,包括機器人對於人類勞動的替代、完成人類所無法完成任務的能力延伸以及情感陪伴等價值。
面對人類對於物質及精神永不停止的需求增長,相比於元宇宙,機器人將會是“現實宇宙”中的最佳供給方案。
今年,各科技巨頭都推出了機器人方案,比如馬斯克推出人形機器人,並表示可以把特斯拉堪稱世界上最大的機器人公司,百度也釋出了汽車機器人概念車,並計劃量產,其他各公司也在各自垂直領域推出自己的機器人產品。
AI加持,將會帶給機器人兩大質變。
(1)智慧化大幅提升
可軟體升級:智慧化機器人能夠透過軟體演算法的迭代持續提升效能;這讓機器人的能力理論上是沒有上限的
規模效應:機器人應用規模越大,收集資料越多,演算法迭代越完善,機器人越好用
可適用性大幅增加:機器人智慧程度線性增加,可適用的場景及價值將會指數增加
(2)智慧化帶來的場景適用性提升
其中AI技術將會是機器人全面爆發的最大變數,機器人產業的爆發極有可能是新物種引領;例如近三年全面爆發的機器人專案,在10年前幾乎不存在(例如九號公司、石頭科技、普渡、擎朗、雲跡、高仙、梅卡曼德、極智嘉等)。
如何評判一個新技術是否能引領未來的發展方向?我們要看它能否從本質上解放生產力、發展生產力。
蒸汽機之所以推動了第一次科技革命,是因為其極大的提升了勞動生產力,並將大量勞動人口從第一產業農業的低階勞動中解放出來,進入第二產業工業。電力加速了這一過程,並推動了第三產業服務業的出現和發展。資訊科技將更多的人口從第一、二產業中釋放,進入第三產業,於是形成了如今全球第三產業GDP佔比55%,中國第三產業勞動人口占比50%的格局。
機器人即是人工智慧技術的硬體形態,在可見的未來,將第一二三產業的勞動人口從低階勞動中大比例釋放和替代,並在這個過程中推動全球GDP繼續百倍增長。
人工智慧從模組上可分為 感知、計算 和 控制 三大部分,由表及裡可分為 應用層、資料層、演算法層、算力層 。對此,我們昇騰AI提供了全棧技術和產品。
我們昇騰AI提供了全棧技術和產品,構築人工智慧的算力基座,賦能上層應用:
1、作為算力的基礎,昇騰AI提供了一系列的硬體產品,這些硬體覆蓋端、邊、雲場景。
2、在硬體之上,就是AI異構架構CANN,它是昇騰AI硬體的使能層,也是晶片澎湃算力得以釋放的關鍵。CANN對下適配不同形態的硬體,提供統一的程式設計介面,並將多樣化的計算模式分配到不同特性的處理器上(CPU/NPU),充分發揮硬體的計算效能;CANN對上適配不同的AI框架,以使能多樣的演算法和應用需求,發揮著承上啟下的關鍵作用。
3、在AI框架這一層,華為提供了昇思MindSpore框架,更好的適配昇騰硬體架構;此外,還支援TensorFlow、PyTorch等第三方框架。
4、在AI框架之上,昇騰AI全棧中提供了供應用使用的各類SDK,以便應用到各行各業,例如面向智慧製造、工業質檢等場景的Mind X SDK,優選的訓練和推理模型庫Model Zoo,和AI雲服務ModelArts,等。
5、最後,昇騰AI全棧軟體也提供了全流程的工具鏈MindStudio,全方位輔助開發者進行業務開發、模型開發、運算元開發,以及相關的除錯調優;在昇騰社群,可以獲取更多的文件和資源。
在昇騰全棧中,提供了適配訓練、推理場景的昇騰AI處理器,基於不同的昇騰AI處理器,使能了一系列的昇騰產品,包括面向資料中心的叢集、訓練伺服器、推理伺服器等,面向邊緣場景的AI加速模組、智慧小站等。
透過這些昇騰系列產品,使能全場景AI,包括AI計算中心、智慧巡檢等。
昇騰AI異構計算架構CANN
有了昇騰AI的硬體,還需要有相應的軟體使能層,才能將計算系統有效運轉起來。接下來介紹一下昇騰AI異構計算架構 CANN(Compute Architecture for Neural Networks)。
CANN作為最接近昇騰AI系列硬體產品的一層,透過軟硬體聯合設計,打造出適合昇騰AI處理器的軟體架構,充分使能和釋放昇騰的澎湃算力。
我們把CANN內部結構開啟來看:
首先,整個異構計算架構對上要提供統一的面向應用的程式語言,充分暴露昇騰AI基礎軟硬體的能力,滿足上層的業務開發需求,如深度學習框架對接、推理應用開發等。為此,CANN提供了一套標準的AscendCL(昇騰計算語言)開發介面,覆蓋運算元開發、圖開發、應用開發的需求。它可以遮蔽底層多種晶片的差異,提升整個程式設計的易用性,也使得程式碼在不同型號的昇騰AI處理器上可以得到最大程度的複用,降低開發者的重複勞動。
介面層之下是昇騰計算服務層(Ascend Computing Service Layer)。這一層提供了高效能的運算元庫AOL,以及昇騰調優引擎AOE,是昇騰AI處理器能夠支援多種多樣的人工智慧演算法、並最佳化執行效能的基礎。
再往下是昇騰計算編譯層(Ascend Computing Compilation Layer)。這一層完成計算圖和運算元的編譯,將使用者的模型和運算元編譯成可以在昇騰AI處理器上執行的格式。
編譯的結果由昇騰計算執行層(Ascend Computing Execution Layer)執行,透過Runtime和圖執行器,實現各硬體單元的高效呼叫,完成計算任務。
最後是昇騰計算基礎層(Ascend Computing Base Layer),提供作業系統、SVM共享虛擬記憶體、主從通訊等基礎服務。
在一個推理業務的典型開發流程中,往往會先進行模型壓縮處理,再進行模型編譯最佳化,然後是程式碼開發,最後在硬體平臺執行。CANN對整個開發過程提供了完備的支援。
• 對於模型壓縮需求,CANN提供壓縮工具AMCT,實現模型的瘦身。
• 在模型編譯階段,CANN提供編譯工具ATC和智慧調優引擎AOE,完成模型的編譯和自動調優
• 在程式碼開發階段,基於CANN的ACL統一開發介面,實現多樣算力的呼叫
• 最後到了執行環境,CANN透過ACE執行引擎,排程異構資源,高效執行業務
發應用、構建模型、開發運算元。
1、在應用開發場景下,透過AscendCL的應用開發介面,可呼叫深度學習推理計算、影像影像預處理、單運算元計算加速能力,實現業務邏輯。
典型的場景是,使用者可以基於訓練好的模型,呼叫AscendCL提供的介面,開發各類推理應用,簡單的如目標檢測、影像分類,複雜的如自動駕駛、影片智慧解析。
除此之外,基於AscendCL的應用開發介面,還能透過單運算元呼叫的方式,實現Pytorch等第三方框架的對接;使用者也可以基於AscendCL的介面,開發第三方lib庫和外掛,呼叫昇騰AI處理器的能力加速業界流行的計算庫。
需要指出的是,AscendCL程式設計介面遮蔽了不同型號的昇騰AI處理器的差異,使得一套應用程式碼可以執行在多款昇騰AI硬體上,最大限度的保護使用者開發的資產。當然,針對昇騰AI處理器硬體的演進,AscendCL介面也會有相應的演進,包括在不同硬體上有規格的差異,在不同款型的硬體上遷移時可能需要進行一些調優工作,以取得最佳的效能表現。
2、在模型構建場景下,AscendCL提供了統一的中間表達和網路構圖介面,可以表達多種框架的計算圖,支援使用者在昇騰晶片上快速部署神經網路業務。
例如,使用者可基於這套構圖介面和運算元原型進行構圖,並編譯為離線模型,用於在昇騰AI處理器上進行離線推理。
另外,也可以透過框架解析功能將主流的模型格式轉換成CANN模型格式,從而隔離上層框架的差異,當前主要支援對Caffe/Tensorflow/ONNX原始框架模型的解析。
3、在運算元開發場景下,AscendCL提供了多種運算元開發方式,包括DSL( Domain-Specific Language ,基於特性域語言)、TIK( Tensor Iterator Kernel, 張量巢狀核心)、AI CPU等,基於不同的開發語言,滿足不同開發者的需求。這一部分將在後續的關鍵特性介紹章節詳細說明。
對典型應用,可以抽象出主要的介面和呼叫流程,如圖所示。其中模型推理、單運算元呼叫走不同的介面呼叫流程。
- 首先是呼叫初始化介面,完成系統初始化;然後申請記憶體等必備的執行資源;
- 對於模型的推理,需要呼叫介面載入事先轉換好的離線模型om檔案;
- 如果模型對輸入圖片的寬高要求與使用者提供的源圖不一致,則需要媒體資料處理,將源圖裁剪成符合模型的要求;
- 對於模型推理的輸出,需要從推理結果中查詢最大置信度的類別標識對圖片分類,這裡可以用單運算元呼叫介面進行加速;
- 工作結束後,需要解除安裝模型、釋放執行資源,最後是呼叫介面實現系統的去初始化
透過前面的介紹,相信大家對於CANN提供的推理開發工具、開發流程 已經有了瞭解。而對於人工智慧的訓練任務,CANN也提供了完備的工具和支援。
包括開源模型下載,自動化模型遷移,高度工具化調測,智慧效能調優,最終在昇騰上執行。
經過長期積累,CANN 5.0已經全面支援了業界的主流AI模型,並在昇騰社群的Model Zoo提供500多個經過效能最佳化的模型下載。
對於使用者私有的網路,CANN也提供了模型遷移工具,可以自動完成指令碼的遷移轉換,而不需要手工修改程式碼。
此外,CANN還提供了多種自動化的調測工具,支援資料異常檢測、融合異常檢測、整網資料比對,幫助開發者定位問題。
再結合前面提到的AOE工具,可以對運算元和模型進行自動化的搜尋最佳化,幫助使用者取得極致效能。
昇騰CANN機器人開發專案
接下來我們分享一些基於昇騰軟硬體開發的機器人專案。
(輪式巡檢機器人 入住公司展廳、參展WAIC、MWC、HC、HDC)
(沙漠植樹機器人 CCTV、上海電視臺報導、外交部發言人趙立堅微博影片釋出)
(華為研究所室外機器狗送咖啡場景)
(層規劃控制演算法 跨越不連續地形)
基於昇騰AI,我們做了一些機器人專案。
(四足機器人+ 機械臂複合機器人 危險場景巡檢處置 江蘇電視臺報導 )
昇騰創想日的機器狗+機械臂的複合機器人現場直播展示,這裡面我們是模擬了一個發行險情的封閉室內環境,機器狗進入室內,檢視險情,並用機械臂切斷電源的一個演示。
(石子路地形)
(上斜坡 下階梯)
(草地 石板路 停車場)
目前我們正在推進的是強化學習機器狗控制這塊,這個專案的來源也是來自廖博,在我們做傳統控制方法,並給廖博做了相關的彙報。
還有一個是我們在南京,昇騰創想日的機器狗+機械臂的複合機器人的現場展示,可能線上有一些朋友是在現場看過,這裡面我們是模擬了一個發行險情的封閉室內環境,機器狗進入室內,檢視險情,並用機械臂切斷電源的一個演示。
(四足機器人硬體)
好的,看完這幾個影片的演示,我們就進入今天的正式的內容,說到機器人,肯定離不了和硬體打交道,首先從機器人的硬體開始介紹,大家可以有一個基礎的瞭解。其中感測器、執行器、通訊模組、計算單元。
(計算控制單元)
(基於昇騰CANN的智慧複合機器人方案)
機器人控制演算法
接下來我以四足機器人的控制為主,分享相關演算法。
(基於模型機器狗運動控制系統演算法框圖)
(上層定位、導航資料流圖)
(傳統運動控制流程)
(基於事件的步態排程器)
(擺動腿規劃與控制)
(四足機器人動力學模型)
其中,一個是平移動力學模型,一個是角動量模型。表示機器人位置:fi表示機器人受到反作用力,cg表示機器人重力,m是機器人的身體質量,nc是接觸的數量,I是轉動慣量張量,w是軀幹的角速度,ri是第i個接觸點相對於到機器人的CoM,相當於接觸力的臂。
(站立腿控制器)
(位姿調整)
根據接觸模式切換,預測支撐域,並調整質心位置。多邊形質心偏離接近其結束的stance腿,和朝向即將觸地的腿。
(Whole Body Control)
WBC 的英文全稱為 Whole Body Control。為了降低運動控制演算法的複雜性,控制任務通常會被分解為一組較為簡單的任務,如保持平衡的軀幹姿態控制,擺動相的足底軌跡跟隨,或者用於防止滑動的接觸力約束。每一個任務往往都需要多個驅動關節配合完成,同時每一個驅動關節又同時服務於多個任務,適應這種任務分解的理論框架是全身控制(WBC)。一般來說,為實現一組任務,所有驅動關節都能得到控制訊號的控制系統都可以稱作全身控。
(端到端強化學習機器狗運動控制系統演算法框圖)
同時 我們也在嘗試端到端的強化學習機器狗控制方法。
(強化學習+模仿學習)
用RL訓練一個在隨機生成地形上受隨機擾動仍能以隨機目標速度行走的教師策略。
訓練一個能在不用特權資訊下復現教師策略動作的學生策略。學生策略使用迴圈編碼器構造一個信念狀態來捕獲未觀察到的資訊,並基於該信念狀態輸出一個動作。將學習到的學生策略轉移到物理機器人上,並在現實世界中使用機載感測器。
(Policies Modulating Trajectory Generators)
(域隨機化)
(課程學習機制)
(傳統 vs RL機器人底層控制對比)
同時 我們也在嘗試端到端的強化學習機器狗控制方法。
CANN訓練營目前正在火熱進行中,大咖講堂、超能大賽、互動好禮等各種精彩等你來。