一种分布式智能核心结构及其系统应用
2020-07-04王静逸熊健
王静逸 熊健
摘要:为支持群体智能体系的结构和计算,智能核心采用內部线程通道分层结构、外部多节点分层、联邦节点结合的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)分布式的计算方式提供训练和参数更新服务,可极大扩展规模化的计算能力,但是在数据归并和多级分层上没有较好的计算模型,无法提供多层次的分布式结构;(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走人生活智能设备、改造工业环境、提升金融模型的计算精细度,帮助社会走人数字化、智能化的新时代。