機器人計算發展現狀及展望
中國網/中國發展門戶網訊 在過去幾十年中,計算行業已經成為全球經濟的關鍵驅動力,在經歷了個人計算、移動計算及云計算等多個發展階段后,機器人計算逐漸嶄露頭角。本文提出機器人計算的擴展和成長有其明確的軌跡,并將成為推動世界經濟的新引擎。
機器人計算系統的軟件與硬件統稱為機器人計算。隨著機器人計算的發展,機器人在執行復雜任務和覆蓋廣泛應用場景方面的能力進一步提升,預示著生產力的新一輪飛躍。本文基于中國已形成的機器人產業鏈體系,聚焦于機器人計算這一核心環節,以機器人應用軟件增長為驅動力,分析機器人產業增長點;從編程語言、編譯器到硬件架構,旨在設計全面的機器人計算系統,為中國機器人計算的發展提供引領性和基礎性參考。
機器人計算的發展現狀及不足
目前,中國已成為全球機器人市場的主要參與者之一。截至2022年,全球機器人市場總值達到513億美元,2017—2022年的平均年增長率為14%,而中國的機器人市場規模達到了174億美元,2017—2022年的平均年增長率更是高達22%;預計2024年,全球機器人市場將超過650億美元,其中工業機器人、服務機器人和特種機器人的市場都將突破百億美金規模。伴隨大模型帶來更強大的智能決策和規劃能力,機器人計算將成為未來最重要的計算范式之一。針對機器人產業定義機器人計算范式,將成為未來10年內主導該產業的關鍵:①機器人計算像移動計算和云計算一樣,將開拓數以萬億的新市場,這一市場的潛力將通過更多智能化應用軟件得到激活;②機器人計算的迅猛發展將依賴于研究者對編程語言和硬件的端到端開發和創新。
機器人計算概述
機器人通常由本體和計算系統組成。本體是機器人與物理世界交互的組件;計算系統包括機器人上運行的算法與執行算法的計算硬件,是機器人完成任務的核心系統,計算系統的智能化決定了機器人的能力上限。其中,廣義的計算系統通常由3個部分組成: 感知模塊,由多種傳感器組成,負責采集環境信息; 計算模塊,通過感知信息的輸入對機器人行動進行決策; 控制模塊,將計算模塊的決策輸出到機器人本體并與環境進行交互。機器人應用軟件在機器人計算系統上運行,多種多樣的機器人應用軟件構成了機器人生態。本文主要關注以計算模塊為主的機器人計算領域,但是感知模塊與控制模塊同樣是機器人計算中重要的研究問題,將感知、計算與控制集成到同一款芯片上,形成“感—算—控”一體的解決方案,也是當前的一個趨勢。
機器人計算的目的在于通過使用多種形態的機器人替代人類完成任務。當前,因為機器人的成本進一步降低,各行業使用機器人的意愿大大增強,機器人已在汽車制造、電子制造、倉儲運輸、醫療康復等多個行業被使用,并逐漸從傳統的單一簡單固定場景向長序列復雜場景進行應用轉換。
算力是機器人計算產業爆發式增長的關鍵
無論是個人計算、移動計算或者云計算的爆發,都起源于算力的增長,而算力的增長則源于半導體技術的發展。半導體技術的進步帶來了更多有趣、有意義的應用軟件,再由應用軟件拓展出更大的市場。以移動計算為例,盡管移動電話在20世紀初已經成為一種商品,但其功能單一,有超過90%的算力都被用于通信相關的編碼、解碼計算,可被用于應用軟件的算力不足10%,整個移動計算的市場也僅有100億美元左右;隨著智能手機的發展,算力不斷被提升,更充沛的算力得以支持搜索、觀看視頻、游戲等更多應用軟件,移動計算生態系統的市場規模如今已經達到8 000億美元(圖1)。
一個計算范式在步入成熟期之后,其市場規模遠超其對應的半導體市場。以移動計算為例,2022年,移動端處理器的市場規模約為350億美元,對應的手機市場規模為2 700億美元,而滋生的移動計算市場規模則達到了8 000億美元,是移動處理器市場的23倍。同理,個人計算處理器的市場規模為550億美元,個人電腦的市場規模約為1 500億美元,而個人計算生態系統的市場規模達到了9 000億美元,是其對應半導體市場的16倍。
機器人計算的發展遠遠沒有達到上述移動計算和個人計算的規模,而重要瓶頸在于當前機器人計算系統的絕大部分算力仍被用于基礎功能。據筆者研究分析,機器人計算系統設計將機器人計算能力的50%用于感知、20%用于定位、25%用于規劃,僅有5%用于應用軟件,這與移動計算時代初期的移動電話情況非常相似。在上述計算能力分配情況下,機器人無法執行智能任務,即機器人計算的生態系統幾乎不存在。
釋放軟件開發人員的想象力,形成機器人應用軟件的生態系統。本文認為包括感知、定位和規劃在內的基本操作應消耗不到20%的計算能力,從而將80%的計算能力留給應用軟件,還可定義更多有趣的機器人應用軟件,擴展機器人計算生態系統。例如,機器人計算的一個有趣應用軟件是自主移動診所,它將能夠解決醫療服務的獲取和公平問題,根據病人的指令將醫療服務送到病人家門口。
機器人計算系統發展前景
機器人計算系統的發展與機器人應用軟件的豐富程度是相輔相成的。對比火熱的人工智能應用軟件,機器人計算系統從編程語言到硬件架構都存在極好的發展潛力,但當前機器人計算系統的不足也是全棧的、多層次的。
提供開發者更容易理解與操作的編程語言和框架,允許應用軟件層面更靈活開發,解放軟件開發者的限制,催生更多有趣的應用軟件。人工智能應用軟件在編程語言層面有著非常成熟且易于使用的框架,例如開源深度學習框架Pytorch學習成本低且開發者可以較低成本開發多種應用軟件。而對于機器人應用軟件而言,尚未出現類似Pytorch的編程語言或框架。對于開發者來說,機器人應用軟件的編程難度極高,需要掌握大量關于機器人本身的獨特信息,如傳感器參數、機器人物理模型等。促進機器人應用軟件的爆發,首先需要一套簡潔的、可編程的、面向對象的編程語言或框架,方便開發者對機器人進行編程。
促成機器人產業爆發式增長的關鍵在于通過機器人專用架構的設計,提供更多算力。類比通用圖形處理器(GPGPU)、神經網絡處理器(NPU)、張量處理器(TPU)之于人工智能算法,機器人的專用架構尚未被明確定義和提出,絕大多數機器人仍在使用通用硬件,導致大量算力被用于提供感知、定位、控制等機器人基礎計算上,無法支持高智能化的應用軟件。
機器人編程語言
由于缺乏良好的系統抽象與運行時系統來管理實時約束和系統資源分配,程序員必須掌握機器人應用軟件、機器人算法和計算系統方面的知識,導致機器人的編程工作極具挑戰性。為了將程序員從系統細節中解放出來,應該在已定義的架構之上開發一個編程和運行系統(圖2),讓程序員只需幾行代碼就能開發出擁有不同功能的機器人。
目前,機器人根據其需要執行的各種任務依賴于大量的專用組件,包括定位和導航、目標檢測和規避等與外部環境相關的(硬)實時任務。每個任務都在嚴格的性能范圍內與其他任務進行數據通信,但同時很可能依賴的是截然不同的硬件目標,如使用中央處理器(CPU)進行調度、使用圖形處理器(GPU)進行神經網絡處理、使用現場可編程邏輯門陣列(FPGA)或數字信號處理技術(DSP)芯片進行圖像處理等。因此,應該有一些具有表現力的“語言”,在高層次上描述每項任務應包含的內容、適當的(特定領域的)語義,同時描述“語言”之間的接口。
機器人作為一個整體,實時和運行時上下文可以自由決定在目標任務運行過程中的某個特定時刻使用底層硬件的哪個部分來運行。為此,設計一套新的領域專用語言(DSL)是必要的,但還不足夠。由于這些機器人至少有部分任務會嚴重依賴機器學習技術,因此還應該有一種方法將高級描述降低到中間表示形式,從而使編譯器能夠為異構設備系列生成代碼。
基于數據流圖的機器人編程語言
傳統機器人編程語言的設計,其目的并非為了方便開發者進行開發,而是為了保證通用且方便底層硬件的執行。絕大多數機器人的定位、控制等模塊都基于傳統的面向過程的語言進行開發,較差的封裝性給應用軟件開發者帶來了極高的難度。盡管面向整體機器人應用軟件的編程語言或框架尚不存在,但研究人員已經針對機器人計算系統中的不同模塊進行了編程語言或框架的開發,典型例子如面向視覺感知模塊中的圖像處理專用語言Halide、面向視覺感知模塊中常用算法深度神經網絡訓練與推理的專用框架Pytorch。
為解決機器人應用軟件缺乏一個編程語言框架問題,研究人員開發了一種簡潔精確的高級語言,用于表示機器人的計算圖,即一種原型語言。由于機器人計算可以用數據流圖來表示,因此函數式編程范式自然為描述機器人的行為提供了一種有效的方法,有了函數式編程,程序員與開發者只需幾行說明和代碼就能描述應用軟件(圖3)。
基于因子圖的機器人編程框架
研究人員根據前文描述的原型語言進行了實例化,提出了一個利用Python等高級語言形成的基于因子圖的機器人編程框架。這一編程框架解決了針對應用軟件開發者通常對機器人傳感器的物理模型與參數了解很少、但編程的時候常常需要使用的問題。將相機、激光雷達、慣性里程計等傳感器模型使用編程框架進行封裝,構成不同的因子,開發者根據需求對不同的因子進行拼接和組裝,形成因子圖。例如,開發者希望機器人使用相機和激光雷達進行自我定位,那么開發者只需要通過選取相機因子和激光雷達因子構建定位的因子圖,即可描述應用軟件(圖4)。
無論是面向單一模塊或面向整體機器人應用軟件,研究人員的工作都在嘗試解決機器人編程難這一問題。目前,機器人計算系統研究者的共識是試圖通過面向對象的編程框架對機器人編程中常見又難以被開發者掌握的傳感器模型進行封裝,從而大幅降低機器人編程難度。開發者使用機器人專用編程語言和框架可以大幅提高編程效率。然而,當前的編程模型仍然與頂層應用軟件和算法存在一定的差距,研究人員在目前的研究工作基礎上,對機器人編程語言和編輯框架進一步完善,降低開發者在開發機器人應用軟件時的難度。
機器人計算專用架構
賦能機器人多樣能力的關鍵在于機器人芯片算力的提升,而硬件架構的專用化則是實現這一目標的手段。以移動計算為例,移動手機的處理器從功能非常簡單的英國ARM公司生產的芯片,逐漸進步到當前功能復雜的專用計算片上系統,包括了信號處理專用電路、圖像處理專用電路、視頻編解碼電路、神經網絡推理電路等多種移動計算領域獨有的定制電路。定制電路是為機器人設計專用化、高算力的片上系統與解決機器人應用算力不足的最好途徑。以下將探索并介紹3種不同的專用架構設計思路,包括基于數據流的加速器架構,基于因子圖的加速器架構和基于學習的加速器架構。
基于數據流的加速器架構
基于數據流的加速器架構的核心思想是摒棄傳統的按照控制流指定的明確順序執行指令的傳統架構。控制流限制了可以利用指令級并行性(ILP)的窗口,人為地設置了性能障礙。在數據流架構中,指令的執行是由數據驅動的,原則上只要指令的所有輸入可用,指令就會執行,而不是在控制流到達指令時執行。
研究人員通常可將傳統程序中的瓶頸與機器人軟件中的瓶頸進行類比,兩者都可以通過數據流原理加以解決,這種抽象的關鍵在于機器人的軟件棧。例如,將自主車輛計算圖(圖5)視為宏數據流圖(M-DFG),其中每個節點代表定位和運動規劃等單個高級任務。這種實現方式催生了數據流加速器架構(DAA)的概念,在這種架構中,加速器通過專用的片上緩沖器直接相互通信,并自主協調。這種架構模式有2個優勢:提供了更高水平的并行性,只要輸入數據準備就緒,每個加速器就會啟動;通過讓消費者更容易獲得操作數來加快加速器的啟動速度,即通過允許生產者和消費者使用每個加速器的片上緩沖區直接通信而不是通過主存儲器來實現的。
基于因子圖的加速器架構
機器人專用架構設計的一大難點在于系統的分散性和多樣性。不同于所有智能手機都具有的功能類似的通信、編解碼、圖像處理等模塊,機器人根據其形態、作用等方面的區別,功能模塊差距極大。以定位算法為例,室內服務機器人與室外的自動駕駛汽車的定位算法區別極大;以定位模塊為例,研究人員提出了大量針對某一種定位算法的專用加速芯片。因此,設計機器人的專用架構設計并不缺少點到點的解決方案,而是缺少系統級的通用設計方法。
研究人員探索使用因子圖來對不同機器人算法進行統一設計,因子圖是一種表示概率分布函數因子化的圖形,已被用于定位、跟蹤、規劃和控制等許多機器人模塊中。使用因子圖作為一個通用的抽象模板有3個優勢:①為機器人優化問題提供了簡潔的表示方法,便于機器人程序員構建程序;②圖結構有利于稀疏數據的存儲;③機器人優化問題可以根據歷史信息逐步求解,從而保證高精度和低計算延遲。
研究人員首先嘗試使用以因子圖為模版對多個機器人的模塊進行架構設計,設計了定位、規劃的因子圖加速器結構(圖6),都得到了遠超于通用架構如英特爾(Intel)桌面處理器的性能和能效表現。同時,由于多個不同應用都可以通過因子圖進行求解,研究人員也設計了一款通用的涵蓋定位、規劃、控制算法的機器人專用架構。
基于學習的加速器架構
越來越多的機器人計算任務都是利用基于Transformer模型等的機器學習完成的,機器人計算正在從模塊化方法(機器人計算1.0)向基于機器學習的端到端方法(機器人計算2.0)發展。機器人計算2.0中,任何機器人都要執行感知模塊和行動模塊這2項主要任務,這反映了過去和未來的自然對立:① 感知模塊,通過監督學習和自我監督學習進行訓練,以推斷出世界狀態的唯一基本事實;② 行動模塊,需要從許多可接受的行動序列中進行搜索和選擇,同時還要預測其他代理的行為,故行動模塊利用了強化學習、模仿學習和模型預測控制等方法。
感知模塊和行動模塊在機器人計算領域中的實現越來越趨同。最近,大語言模型(LLM)在理解大量信息以執行多個子任務方面取得了成功,由于Transformer模型具有泛化能力,因此對于感知模塊和行動模塊都是很好的算法基底,表明這2個模塊都可以使用基于Transformer模型的類似架構來實現:① 在感知方面,Transformer模型能有效地將來自多個傳感器和多個時刻的感知數據融為統一的表示,避免稀疏化和模塊序列化造成的信息損失;② 在行動方面,變換器的順序性使其非常適合處理和生成時態數據,尤其是對多種可能的未來路徑進行采樣,因此一種常見的架構抽象是將重點放在加速變換器的工作負載上,并將感知和動作任務簡化為不同形式的變換計算,從而大大簡化編程接口。
機器人計算技術展望與發展建議
隨著半導體技術的不斷進步,機器人在傳感、計算和通信方面的能力得到顯著擴展,為多種新興應用提供支持(圖7)。① 在傳感方面。先進的芯片堆疊式圖像傳感器允許在傳感器內部直接進行高級計算,例如深度神經網絡(DNN)處理后有效減少了數據傳輸成本,單光子雪崩二極管(SPAD)技術能捕捉實時的三維場景信息從而克服傳統機械式激光雷達的諸多局限。② 在計算領域。設計機器人計算系統的關鍵在于處理來自不同類型機器人的復雜計算圖,同時滿足實時性能、成本和能源效率的要求。結合已定義的機器人計算架構和多芯片設計、異構集成、內存處理以及“光—模—數”協同設計等新興技術,能夠實現真正的實時機器人應用。③ 在通信方面。未來的機器人將更多地依賴于機器人本體、邊緣服務器和云基礎設施之間的協作。合作式機器人模式的成功,依賴于高效的通信技術。磷化銦/基銦鎵砷(InP/InGaAs)材料的應用可能會顯著提高通信帶寬,并解決延遲問題。④ 在算法層面。大模型的成功將“具身智能”的實現變得可能,機器人的理解能力,長期規劃能力都因為大模型而顯著增長。機器人將可以被用于執行更復雜更高難度的任務,為人類提供更好的服務。
預計在未來10年,機器人將廣泛滲透到各個行業,對全球經濟產生重大影響。① 商業領域。機器人已成為商業領域的重要參與者,帶來創新,提高效率,開拓新的商業機遇;智能家居和服務機器人在日常生活中扮演關鍵角色,提高家庭自動化水平、輔助家務,為老年人和兒童提供關懷。② 工業領域。將繼續推動自動化和生產效率的提升,在裝配線、物流和倉儲等領域發揮作用,降低成本、提高產品質量、縮短交付周期,提升企業競爭力,為機器人制造商創造新的商業機遇。③ 醫療保健領域。機器人在手術、診斷和康復方面的應用提升手術精度,縮短患者恢復時間,能進一步推動醫療創新、改善醫療服務、降低醫療費用。④ 農業領域。將提高生產效率,減少人力成本,緩解農民的體力勞動,有助于滿足全球不斷增長的食品需求,減少食品浪費。
機器人生態的發展,就像個人計算和移動計算一樣,將依賴于標準化的計算環境。如果說英特爾公司1978年推出的16位微處理器x86架構及其軟件生態系統推動了個人計算時代的發展,那么基于精簡指令集的處理器架構(ARM)及其軟件生態系統則推動了移動計算時代的發展。因此,現在迫切需要定義一個全球化的機器人計算架構及其軟件生態系統,以推動機器人計算時代的發展。筆者認為機器人計算是賦能智能機器人的關鍵,誰定義了這一計算架構,在傳感、計算、通信和算法層面產生新的突破,誰就將在未來10年內主導機器人產業的重大突破和發展。
前文曾提到,機器人計算發展的瓶頸在于應用層面的突破,而大模型與機器人有機結合的“具身智能”就是一個可見的應用層面的突破。當前學術界與產業界都十分關注“具身智能”這一話題,那么“具身智能”是否就是機器人計算,亦或是在傳統的機器人計算上產生新的內容,這一點還有很大爭論。但可以確定的是,“具身智能”的產生和發展,不僅離不開本文所述的機器人計算的生態系統,更是對這一生態系統的反哺,對其提出了新的需求。在應用層面,“具身智能”試圖突破傳統的機器人應用模式,將機器人融入人類社會,更多地與人類交互,完成更復雜的任務。在算力層面,“具身智能”應用往往涉及更復雜的計算,也因此具有更高的算力需求。具身智能將給機器人計算帶來新的發展點和突破點,是機器人領域、人工智能算法領域、半導體領域都需要關注的課題。
(作者:劉少山,深圳人工智能與機器人研究院;甘一鳴、韓銀和,中國科學院計算技術研究所 ; 《中國科學院院刊》供稿)