王靜逸 熊健



摘要:為支持群體智能體系的結構和計算,智能核心采用內部線程通道分層結構、外部多節點分層、聯邦節點結合的3層模式,集成聯邦形式模型、集中化并行模型和博弈對抗模型,形成支持群體智能體系的多樣化分布式人工智能(artificial intelligence,AI)模型的計算系統。該系統可提高群體智能體系的底層能力,提供易用性高、兼容性好和能解決復雜多智能體問題的核心結構,提高分布式AI的系統水平。
關鍵詞:分布式人工智能;群體智能;HLA;Agent;博弈對抗;聯邦計算
中圖分類號:TP391.92;TP311.521文獻標志碼:B
0 引言
隨著神經網絡的突破,人工智能(artificialintelligence,AI)得到巨大的發展,特別在圖像、分析和推薦等領域。
在AI快速發展的同時,計算規模擴大、專家系統單一、神經網絡模型靈活性不足、應用領域復雜等問題也在不斷升級。在這樣的背境下,分布式AI的發展被眾多研究機構和大型企業提上日程。
1 分布式AI與智能核心
分布式AI可以解決集中化AI的主要問題:(1)規?;挠嬎?(2)計算模型的拆分訓練;(3)多智能專家系統的協作;(4)多智能體博弈和訓練演化,解決數據集不足問題;(5)群體智能決策和智能系統決策樹的靈活組織,適應復雜的應用場景,特別是在工業、生物、航天和經濟等研究領域;(6)適應物聯網和小型智能設備,可聯合更多的邊緣計算單元和移動設備。
1.1TensorFlow學習平臺的分布式方案
運用TensorFlow學習平臺的組件,可以形成2種主要的分布式進程:單進程和多進程。該方案出自ABADI等題名TensorFlow:Large-scale machinelearning On heterogeneous distributed systems的論文。該平臺的部署和運作模式見圖1。
根據TensorFlow的分布式機器學習方案可知其存在一些缺點,如:(1)分布式的計算方式提供訓練和參數更新服務,可極大擴展規?;挠嬎隳芰Γ窃跀祿w并和多級分層上沒有較好的計算模型,無法提供多層次的分布式結構;(2)在分布式的計算模型中,無較好的計算模型構造方式,因此無法提供分布式AI所需要的任務分發、數據歸并和模型更新等能力;(3)分布式組織方式使平級層次的分布式結構歸并成為最終模型,可完成集中化的單一專家系統,無法形成多群體博弈對抗的協調決策與多專家系統的兼容協調;(4)TensorFlow需要高性能計算機和高性能GPU,難以支持小型設備和物聯網等多設備的邊緣化集群計算。
1.2 Apache Spark分布式機器學習
在Aache Spark中,計算模型可以設計為有向無環圖(directed acyclic graph,DAG),無環圖的頂點是彈性分布式數據集(resilient distributed database,RDD),RDD是Spark的核心組件。通過RDD轉換,可形成模型的計算、轉換和聚合等過程,整體模型可以表示成一個DAG。DAG的頂點表示中間轉換,可存儲中間結果;DAG的邊表示計算過程,可以進行數據轉換和數據歸并等處理。比如,在分布式機器學習模型訓練中,多個計算節點共同訓練、平均更新模型規模是提高機器學習規?;柧毜闹匾椒?。Spark計算模型和Stage形成的DAG見圖2。
根據Spark的分布式機器學習機制,并結合參考文獻[2],可以總結Spark存在的缺點:(1)支持大規模的模型計算分層,但是計算過程消耗較大,不適用于較小規模的分布式方案;(2)節點與節點之間的數據路由不靈活;(3)難以在小型化設備間進行聯合學習運算,無法部署在小型化設備上;(4)其并行計算框架的模式是任務確認調度-模型劃分-分片計算-歸并總結,更適合大數據集的機器學習,不適合多節點博弈等強化學習方法。
1.3 Google聯合學習方案
針對小型化設備,Google在Federated learning:Collaborative machine learning without centralizedtraining data中提出聯邦聯合學習的概念。
聯邦聯合學習的工作原理為:(1)手機或者其他小型設備下載云端的共享模型;(2)每個小型設備的用戶通過自己的歷史數據訓練和更新模型;(3)將用戶個性化更新后的模型抽取成為一個小的更新文件;(4)提取模型的差異化部分進行加密處理并上傳到云端;(5)在云端將新用戶的差異化模型與其他用戶模型進行平均化(Average),然后優化更新現有的共享模型。
聯邦聯合學習的好處有:(1)聚合邊緣的小型化設備(如手機),增加AI的數據來源和計算能力來源;(2)機器學習的模型結果更適應廣泛用戶的行為數據模型;(3)不同群體之間可以產生博弈和不斷強化的模型結果,模型可以在廣泛的分布式基礎下不斷迭代更新。
1.4 技術問題的改善
1.4.1 核心功能點
以實現實時操作系統(real-time operatingsystem,RTOS)為目標,圍繞分布式AI和群體智能,參考Distributed and federated optimization for machinelearning中的聯邦學習、HLA evolved:Asummary ofmajor technical improvements中的HLA聯邦交互技術、DDS集中化仿真模型、Agent聯盟機器學習和大數據下的Multi-Agent智能模型等,進行計算核心設計,其主要核心能力如下。
(1)分布式多網絡節點。提供分布式智能節點,幫助隨時啟動計算節點,將單體計算平臺(包括計算機、智能硬件和移動設備等)連接起來,形成一個多網絡節點的分布式計算平臺。
(2)提供計算層接口。各個邏輯和算法可以通過計算層接口連接分布式節點,聲明和接受分布式任務,為群體智能決策,運算實體邏輯和AI算法。
(3)任務并行和數據同步。支持不同計算層分別聲明和相互訂閱,可以通過路由節點在不同運算層之間發布計算模型、訂閱部分模型任務、同步數據、歸并數據和并行計算等。
(4)多語言軟件開發工具包(softwaredevelopment kit,SDK)。包括C++、Java、C#、Python和Unreal等,使計算層可以支持TensorFlow深度學習、C++邏輯和智能仿真、Unreal圖形和物理計算等,支持多樣化的智能模型。
(5)多種模型定義和分布式規則。提供HLA、DDS和Multi-Agent等分布式體系,支持不同AI模型的定義,支持AI模型的并行計算、任務拆分、數據歸并和模型共享等。
(6)負載均衡。均衡計算層(worker)的計算實體(entity),有效分配和管理計算資源。
(7)中控管理。中心化的監控工具,可檢測和控制多個平臺、worker和entity等計算資源。
在實際應用中,要結合不同的應用場景和計算組合方式,通過其他人工智能庫(如TensorFlow)完成架構設計,實現大規模、分布式和多AI節點計算,完成集群AI的總體決策,并且實現互相激發、互相協作的目標。
1.4.2 核心組件支持的組織協議體系
核心組件是分布式智能計算核心,支持不同的分布式AI計算架構,需要多種分布式計算模型規則。多種體系可以相互協作,可適應復雜的智能環境需求。分布式組織協議體系主要有3種。
(1)HLA高層體系結構。類似Spark的多級模型分層結構,HLA高層體系結構可以通過路由節點和代理模型定義,形成多級分層并行計算的聯邦模型。
(2)DDS數據分發服務。類似聯合學習的分布式結構,DDS數據分發服務可以通過將核心節點作為云服務提供共享模型,結合大量設備聯合學習和更新模型。
(3)Multi-Agent多智能體代理結構。該結構可以形成多專家系統、多智能實體的獨立結構,形成多個系統的博弈協調,互相進行強化和激發分布式AI系統。
1.4.3 核心組件的優點及其解決的問題
基于核心組件目標,提供靈活的、高兼容性的分布式人工智能核心,為未來邊緣計算、萬物智能進行賦能,提供多智能系統的協作能力。該核心組件具有以下優點:(1)支持多級分層的聯邦模型,支持大規模并行計算;(2)SDK和分布式智能節點的小型化,支持Windows、Linux和Android等多種操作系統,支持小型化設備數據同步和計算賦能;(3)支持分布式多節點和多聯邦博弈強化的AI結構;(4)多語言SDK,支持了ensorFiow、C++、Java、C#、Python和Unreal等多種神經網絡、邏輯語言和物理仿真庫,支持復雜的AI場景;(5)節點和組織模型即插即拔,靈活支持各種節點和設備加入分布式AI場景。
2 核心組件的分布式智能節點原理
2.1 分布式智能的3層節點原理
核心組件的關鍵是分布式智能節點,節點原理有3種理解方式。
(1)在單個智能節點中,通過多線程的方式在單進程中運行多個節點同步處理。
(2)在局域網絡或小規模網絡中,根據HLA、DDS和Multi-Agent等體系,形成自己的小型網絡聯邦,并且組成獨立的分布式計算模型。
(3)在開放性網絡中,不同聯邦、區域計算的節點,通過開放性網絡與其他聯邦、區域代表形成跨域的分布式模型。在這種網絡中,可以把獨立聯邦、獨立區域劃分成大型節點。相關的結構原理見圖3。
基于多級需求,在組件結構中進行5個設計。
(1)AbstractNode:抽象節點相關的功能,包括數據隊列和異構處理等。
(2)AbstractServer:抽象相關智能節點,處理節點服務的功能,包括連接、操作、數據推送、消息分發、數據隊列和數據壓縮等。
(3)ThreadSever:第一層分布式節點,繼承AbstractServer,實現進程內節點功能,提供單節點內部的分布式結構,可以通過進程間的管道進行通信,充分發揮單節點的多CPU計算核心,賦予單節點、多體系智能模型的兼容能力。
(4)RTOSNode:核心組件中分布式智能節點的標準單位,通過分布式聯邦模型進行數據同步、并行計算和智能決策等,通過小規模網絡在一個聯邦集團中形成小規模集團計算。
(5)聯邦網絡:通過核心組件中的聯邦模型,聯合公共網絡的、外部的聯邦單位,進行多聯邦模型之間的協調計算和數據通信。
在實際運行當中,可通過不同方式的啟動和連接發揮3層分布式節點模式的作用。
2.2 分布式智能節點多分布式體系模型兼容性
智能節點最核心的能力是在多個分布式體系下可以通過單節點內部多分層的方式兼容多個分布式體系。通過智能節點的3層原理和能力,智能節點可以支持外部網絡分布式和內部線程分布式。單節點同時加載FED模型和IDL模型,對外支持多體系,具體運行原理見圖4。單節點對多分布式體系兼容的原理為:(1)智能節點通過單節點內部分布式方法,在一個節點中形成多體系任務;(2)在內部分布式節點中加載各自負責的分布式體系模型文件;(3)多體系之間通過節點中的數據管道進行信息交換和同步;(4)各自的分布式節點與外部節點聯合,處理當前所在體系的模型加載、任務分發和計算層處理等工作。
3 系統架構和核心組件模塊
參考HLA、DDS和Agent等體系的RTI通信架構模式,基于RTOS組件、3種分布式體系結構、常用的AI算法庫、第三方功能庫等,形成以計算核心、多分布式體系為基礎的分布式群體智能生態系統架構,見圖5。
生態系統架構主要有4層結構。
(1)Refrence lib層。該層為底層庫,主要以網絡通信協議TCP/UDP和網絡協議Protobuf、GRPC等相互輔助。
(2)Core Soft Plateform層。該層為核心軟件平臺層,主要為系統的核心組件,包括RTOSNode分布式智能節點、多語言計算層SintolSDK。計算模型和分布式體系包括HLA、DDS、Multi-Agent和DIS等。
(3)Open Soft Plateform層。該層為開放軟件層,結合其他開源框架,用于提高系統核心組件的適用范圍,比如深度學習平臺TensorFlow、Mesh Engine網格引擎(三維點云庫PCL)、Physics Engine物理引擎和數據庫(MySQL、MongoDB)等,并結合SintolSDK開放的API和SDK,加入SintolRTOS的計算模型和分布式節點。
(4)Cloud Server Plateform,即云平臺。該平臺包括仿真平臺、智能大數據平臺、網絡中控節點管理平臺和智能硬件(邊緣計算)平臺。
整體生態系統架構是一個大型的、高兼容性的架構體系,其核心層次的架構和原理如下。
3.1 Core Soft Plateform
Core Soft Hateform是系統的核心組件層,其構成可以分為3層:計算核心層SintolRTOS、體系協議層Runtime Framework和計算模型模板(objectmoudle temple,OMT)層。
核心模塊SintolRTOS負責處理智能計算、數據路由、負載均衡和操作系統兼容等,主要由分布式智能節點組件RTOSNode(多操作系統版本)和計算層組件SintolSDK(多語言、多操作系統版本)組成。SintolRTOS具體架構見圖6。
SintolRTOS核心架構可以分為4層,其功能組成如下。
(1)System OS Layer層,即操作系統層,是RTOS的底層,適配操作系統底層模塊,支持大型服務器(Windows、Linux)和小型智能硬件(Android)。
(2)SintolRTI層,即運行支撐環境,是公共基礎服務支撐框架,包括支持加鎖策略、單節點內部分布式、消息壓縮和多分布式體系數據分發等。
(3)Distributed Node層,即分布式節點層。在SintolRTOS所組成的計算網絡中,計算實體、路由節點和聯邦中央節點等都屬于分布式節點,SintolRTOS中的節點組件RTOSNode是該層的重要產出,還負責處理不同體系下的負載均衡、消息代理和模型加載等。
(4)SintolSDK層。SintolSDK對外提供SDK,包括接人AI計算層、物理計算層、數據計算層和三維仿真計算層等。開發者可以使用對應的SDK成為SintolRTOS的一個節點或者成為系統功能計算層。SDK提供多種語言的支持,包括Python、C++、C#、Java和圖形引擎Unreal等。
SintolRTOS核心是一個高性能的計算核心,可以充分調動不同系統平臺的計算資源,是一個高兼容性的核心,可以支持多種分布式體系、多數據一致性算法和多種計算層模型等。
Runtime Framework主要支持整個SintolRTOS運行的分布式體系,以及相關的HLA、DDS和Multi-Agent等體系。
OMT是模型模板層,可提供不同分布式體系中計算模型的定義、分層和交互等,與相關的分布式體系相對應。
3.2 Open Soft Plateform
Open Soft Plateform是開放平臺層,結合許多開源的系統框架,使SintolRTOS能夠融合多種計算方式。Open Soft Plateform又可細分3個層次。
(1)API/Interaetion接口和交互層,提供對接第三方與SintolRTOS核心的接口,處理如深度學習卷積計算、三維點云算法計算和大數據計算等,與SintolRTOS分布式模型任務結合,提供交互功能。
(2)計算框架層。集合TensorFlow深度學習、Physics物理引擎、PCL點云Mesh和數據庫等框架,結合API/Interaction,賦予SintolRTOS智能計算能力和數據存儲能力。
(3)Visual Tool可視化工具層。開發人員可通過可視化系統觀測SintolRTOS中的分層結構、實體計算和交互信息等。
4 群體智能系統和AI代理模型
在核心智能節點中,計算層可以通過SDK創建聯邦計算模型、分配聯邦計算層、設置分布式體系和群體協調方式。在不同的分布式體系下,聯邦模型有所不同。
4.1FED聯邦模型
在HLA體系中,計算層可以發布fed.xml的聯邦計算FOM代理模型文件。
FED聯邦模型運行核心組件的主要優勢有:(1)提供通用、易用的機制,表示聯邦成員之間數據交換的方式,解釋多個分布式節點中計算模型的協調方式;(2)提供多聯邦的標準機制,實現不同聯邦之間數據交換和成員之間交互協調;(3)幫助開發者設計群體智能對象模型的結構。
FED代理模型主要有FOM聯邦對象模型和SOM成員對象模型,他們共同組成HLA的OMT,可描述群體智能決策的結構體、設計聯邦的分布式并行智能計算和歸并總體決策。
通過聯邦模型,可以把復雜的AI模型分解成基于HLA的分布式群體決策森林,進行分布式并行計算。
4.2 IDL主題模型
DDS是一種集中式的分布式數據分發協議體系。本文核心組件的中心模型可以自定義,即IDL主題模型文件。DDS主要是數據模型的分發和訂閱。在IDL中主要定義復雜的數據結構,其每個節點的計算相對獨立、模型結構相互獨立,通過中心節點進行同步協調,其數據定義與C++的Struct類似。
分布式智能節點經路由器廣播數據并為其下層訂閱計算實體,因此需要在計算層發布IDL模型,然后其他用戶可以訂閱模塊(module,一個主題中可以有多個module)。在IDL中,模型類和交互接口等都以數據體的形式定義。
計算模型森林深度較淺、各計算實體計算方式交互較少、對數據廣播要求較高的系統,可以選用這種形式組織分布式智能計算。
4.3 FED、IDL通過Agent代理AI模型
Agent的形式多種多樣。在分布式智能節點中,Agent主要以智能代理模型的形式與FED、IDL模型等協作,可以將不同智能系統一起代理,與其他代理系統協同工作。本文核心組件提供Protobuf作為消息協議體,用于編寫Agent的智能代理屬性,多語言、多平臺地支持各種智能系統協同。
Agent沒有具體的定義方式。參考文獻[10]中的模型委托代理模式,使用消息協議,先定義對外的委托人,然后通過委托互相調用,協調各自的分布式智能系統。
在代理模型模塊中,通過Agent調用模型的體系,主要有目標對象、攔截機對象和目標對象代理3個部分。具體的調用和攔截方式見圖7。
核心組件實現Agent主要有3個重點。
(1)在分布式智能節點之間通過TCP連接,并且用Protobuf實現Agent代理信息和協議的編寫。
(2)處理SintolRTOS的Protocol Layer協議層,在Model模塊中實現Agent的攔截及其與Model層的連接和調度。
(3)在Model中定義FED、IDL等,開放代理接口,攔截層應該拒絕非法調用及其錯誤反饋。
在實際運行環節,智能節點、計算層、復雜計算層、SDK和Agent之間的關系見圖8。
4.4 分布式群體智能系統
群體智能是多專家系統協作的復雜系統,智能模型、子系統劃分和分布式計算既相互獨立又相互依賴,整個系統具有一致的目標,比如工廠智能系統的最終目的是提高良品率、降低成本和提高效益等,復雜環境的社群經濟模型最終目的是提高整體社群活躍度、人群管理穩定性和經濟GVM增長率等。
使用本文核心組件開發群體智能系統的具體方法可以總結為設計環節和開發部署環節2個部分。
4.4.1 設計環節
(1)設計整體系統環境的任務目標;
(2)設計分布式系統體系、聯邦體系、中控DDS體系、博弈體系和混合體系等;
(3)設計分布式聯邦模型,編寫模型文件;
(4)根據分布式模型設計計算層和算法模塊;
(5)設計計算層的協調接口、數據一致性算法、數據類型,以及同步和異步方法;
(6)設計AI代理層,設計神經網絡模型,連接分布式聯邦模型和Agent代理模型。
4.4.2 開發部署環節
(1)根據群體智能體系,部署分布式智能節點;
(2)啟動聯邦節點和全體分布式節點,組成分布式聯邦網絡;
(3)根據設計的計算層發布聯邦模型,使用SDK編寫計算層模塊并連接到對應的智能節點;
(4)對應特殊的計算層,比如復雜的神經網絡、物理仿真計算等,使用特定的SDK編寫委托一代理的Agent模型,提供復雜算法模塊;
(5)運行整體群體智能系統,啟動中控系統,監聽運行環境,在系統運行中迭代更新智能參數、調整群體智能體系。
4.4.3 模擬智能體和對抗強化學習示例
在實際的DDPG計算層中,Agent的訓練模型和數據需要來自于UnrealRTOS(仿真計算層)的傳人和代理,驅動DDPG強化神經網絡的學習訓練,在實際應用中對抗博弈,最終形成多人互動的博弈,促進動態的系統學習和模型平衡。多智能體分布式體系見圖9。
多智能體分布式體系的主要結構要點如下:(1)整體體系都在一個聯邦體系下,所有智能體都在一個聯邦模型中,申明其中的子模型實體,進行運算和協調;(2)每個智能體通過UnrealRTOS和CSintolSDK組成實體,處理其仿真動作、狀態機、物理碰撞和圖形渲染等;(3)智能體通過PSintolSDK與Agent形成智能代理機制,通過DDPG神經網絡進行強化學習,形成不同智能體的智能對抗訓練和升級。
整個聯邦可以容納多個智能體,共同形成小型聯邦的群體智能。
5 電商社群經濟下的群體智能數據
社群分布式經濟模型與智能核心組件見圖10。
與傳統的經濟模型相比,分布式社群經濟模型運用群體智能計算,具有如下特點:(1)通過RTOS全面連通社群經濟體,實現全面的數據采集和路由互通,讓整個社群經濟體具有智能的感知控制;(2)使用規則模型定義優化社群的運營和經營策略;(3)使用對象模型模擬全網分布式自治環境以及所有用戶、社群、經濟交易體的活動;(4)使用評價模型評價和強化社群運營規則策略與對象運行模式;(5)應用反饋模型,通過評價、對象和規則等數據對規則模型進行優化和梯度計算等;(6)利用群體智能的能力激發多專家系統博弈對抗和協調合作,發展創新、激發新經濟時代的強大活力。
以天貓平臺的實際工作為例,測試電商業務在多模型博弈環境下提高產品推廣策略的效果。
在天貓平臺的直通車策略推廣中,策略主要有5個因素:一是影響商品投放策略效果,如商品選擇、創意策略、關鍵詞、投放金額、投放時間、投放地域和投放人群等,最終形成自身投放的策略因素;二是通過歷史效果對本身產品進行評價和對比;三是大盤品類產品的時效性;四是競爭對手的策略;五是自身產品的活動影響。
分別對這5個因素進行建模,如DDPG強化策略、強化評價、反饋模型、商品對象和活動規則等,設計群體智能模型,以提高本身產品的總成交金額和以一定比例的投入產出比為限定要素設定最終目標。整體分布式體系主要使用HLA聯邦體系和Multi-Agent博弈體系聯合作用。聯邦體系主要用于決策自身相關的策略模型;博弈體系主要用于與競爭對手的策略和天貓平臺的策略進行博弈。
具體算法本文不詳細探討。系統運行一定時間,每日結束后,點擊率、轉化率和投入產出均按重點時段進行提升,天貓平臺商品投放和推薦策略的實際測試數據見圖11。
6 結束語
在未來的科技發展中,AI應用將遍布各行各業。隨著社會化、物聯網、邊緣計算、航天科技、生物研究和金融模型研究等高速發展,AI的計算規模、訓練時間和兼容性都將受到更嚴峻的考驗。如何提高AI的計算規模和計算能力,以滿足復雜的社會情況,迎接“萬物互聯”的新世界,分布式AI正為此努力。
隨著時代的發展,分布式智能計算核心需要適配不同的智能硬件、適配工業化設備、適應小型化的社群經濟模型,幫助AI走人生活智能設備、改造工業環境、提升金融模型的計算精細度,幫助社會走人數字化、智能化的新時代。