CN110278249A - 一种分布式群体智能系统 - Google Patents
一种分布式群体智能系统 Download PDFInfo
- Publication number
- CN110278249A CN110278249A CN201910466091.0A CN201910466091A CN110278249A CN 110278249 A CN110278249 A CN 110278249A CN 201910466091 A CN201910466091 A CN 201910466091A CN 110278249 A CN110278249 A CN 110278249A
- Authority
- CN
- China
- Prior art keywords
- distributed
- data
- intelligence
- node
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000009826 distribution Methods 0.000 title claims abstract description 55
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 27
- 239000010410 layer Substances 0.000 claims description 105
- 238000000034 method Methods 0.000 claims description 34
- 238000004364 calculation method Methods 0.000 claims description 27
- 230000008093 supporting effect Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 18
- 230000002452 interceptive effect Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 14
- 239000012792 core layer Substances 0.000 claims description 14
- 238000013499 data model Methods 0.000 claims description 12
- 238000004088 simulation Methods 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 239000004744 fabric Substances 0.000 claims description 7
- 238000012800 visualization Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000007726 management method Methods 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 claims description 3
- 238000003032 molecular docking Methods 0.000 claims description 3
- 230000007717 exclusion Effects 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims description 2
- 238000005194 fractionation Methods 0.000 abstract description 3
- 230000008520 organization Effects 0.000 abstract description 2
- 239000003795 chemical substances by application Substances 0.000 description 72
- 230000006870 function Effects 0.000 description 20
- 230000013016 learning Effects 0.000 description 20
- 238000013473 artificial intelligence Methods 0.000 description 14
- 230000003993 interaction Effects 0.000 description 14
- 238000013528 artificial neural network Methods 0.000 description 13
- 238000012549 training Methods 0.000 description 13
- 238000010801 machine learning Methods 0.000 description 12
- 239000000306 component Substances 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000006855 networking Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000018109 developmental process Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 239000008358 core component Substances 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 239000000178 monomer Substances 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 125000002015 acyclic group Chemical group 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001976 improved effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 241001310793 Podium Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000011021 bench scale process Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 229940004975 interceptor Drugs 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 210000003739 neck Anatomy 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007858 starting material Substances 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1059—Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
一种分布式群体智能系统,包括:底层协议层,用于适用网络协议;核心软件平台层,用于调用外界系统平台的计算资源,支持分布式体系、一致性算法及计算模型;以及开放软件层,用于提供开源系统框架;所述分布式体系至少包括:HLA体系、DDS体系、Multi‑Agent体系一种或多种。本发明解决了规模化的计算、计算模型的拆分、多智能专家系统的协作、群体智能决策和智能系统决策灵活组织等问题。
Description
技术领域
本发明专利涉及计算机分布式系统领域,尤其涉及不同分布式体系下的分布式人工智能群体决策系统的领域。
背景技术
在最近的几年中,人工智能随着神经网络的突破,得到了巨大的发展,特别在图像、分析、推荐等领域。在人工智能快速发展的同时,计算规模不断扩大、专家系统过于单一、神经网络模型的灵活性和应用领域的复杂性等问题,也在不断升级。在这样的环境下,分布式人工智能的发展被研究机构和大型企业提上日程。现有的较为流行的分布式系统主要包含以下三种。
一、Tensorflow的分布式方案
Tensorflow底层是高性能的GRPC库,分布式集群的组件主要是三个部分:client、master和worker process。运用它的组件,可以形成两种主要的分布式部署模式:单机多卡(singleprocess)和多机多卡(multi-device process)。方案出于Martin Abadi、AshishAgarwal和PaulBarham论文《TensorFlow:Large-Scale Machine Learning onHeterogeneous Distributed Systems》。
它的部署和运作模式,如图1所示,对于普通的机器学习,单机单卡就可以进行运算,在运算规模不断升级的时候,就需要对tensoflow的训练设计分布式结构。机器学习的参数训练,主要是两大过程:(1)使用卷积参数训练梯度;(2)根据梯度再优化更新参数。在大规模的计算过程中,就需要进行集群计算。在小型规模的时候,可以使用单个机器,多个CPU/GPU来进行计算;在规模较大的时候,可以使用多个机器进行并行计算。
根据Tensorflow的分布式机器学习方案,我们可以总结它存在的一些缺点:(1)Tensorflow在分布式的计算方式中,分为了训练和参数更新服务,极大地扩展了规模化的计算能力,但是在数据归并和多级分层上,并没有提供非常好的解决方案,也没有较好的计算模型,去提供多层次的分布式结构。(2)Tensorflow在分布式的计算模型中,主要分为了训练任务、梯度计算和参数更新等,但是却没有提供一个较好的计算模型构造方式,去提供分布式AI所需要的任务分发、数据归并和模型更新等能力。(3)Tensorflow在分布式的组织方式上,更像是一个平级层次的分布式,最终统一归并成为一个最终模型,它最终完成的是一个集中化的单一专家系统,无法提供群体智能能力,也无法形成多群体博弈对抗的协调决策,无法支持多专家系统的兼容协调。(4)Tensorflow需要高性能计算机,高性能的GPU,难以支持小型设备、物联网等多设备的边缘化集群计算。
二、Spark分布式机器学习
在Spark中,计算模型可以设计成为有向无环图DAG,无环图的顶点是RDD,它是Spark的核心组件。RDD是一种弹性的分布式数据集,它可以支持多个RDD分片的依赖、变换(transformation)和动作(action),它可以从RDD_A变换成为RDD_B,transformatio n就是DAG无环图的边。通过DAG的表示方法,建立计算模型,并且编译成为Stage。如图2-1所示:Spark运用它的分布式机制,可以支持多个Stage并行计算,也能支持Stage下属Stage模型分层结构。Spark基于它的master-worker架构,可以将DAG中的stage分割,指定到不同的机器上面执行任务。它的分布式并行运算流程,如图2-2所示:它的驱动器driver负责协调任务和调度器组件scheduler,调度器分为DAG和Task调度器,用来分配Task到不同的运算单元。
根据Spark的分布式机器学习机制,它存在如下缺点:(1)
Spark支持大规模的模型计算分层,但是计算消耗较大,不适合用较小规模的分布式方案。(2)Spark在节点和节点之间的数据路由不是非常灵活。(3)Spark难以在小型化设备进行联合学习运算,无法部署在小型化设备之上。(4)Spark的框架是一个并行计算框架,它的模式是任务确认调度-模型划分-分片计算-归并总结,更适合大数据集的机器学习,不适合多节点博弈等强化学习方法。
三、Google联合学习方案
针对小型化设备,google在一篇文章《Federated Learning:CollaborativeMachine Learning without Centralized Training Data》中,提出了联邦联合学习的概念。
它的工作原理为:(1)手机或者小型设备,下载云端的共享模型。(2)每个小型设备的用户,通过自己的历史数据,训练和更新模型。(3)将用户个性化更新后的模型,抽取成为一个小的更新文件。(4)提取模型的差异化部分,进行加密,上传到云端。(5)在云端将新用户的差异化模型和其他用户模型,进行Average平均化,然后更新改善现有共享模型。
这样工作的好处有:(1)聚合了边缘的小型化设备(比如手机),增加了AI的数据来源和计算能力来源。(2)在机器学习的模型结果上,更加适应广泛用户的行为数据模型。(3)不同群体之间,可以产生博弈和不断强化的模型结果,模型可以在广泛的分布式基础下,不断迭代更新。它实际上就是DDS这样中心订阅模型分发、然后进行联合学习的模型。它并不是特别支持HLA联邦模型以及委托代理模型。
发明内容
为了解决集中化人工智能的几个主要问题:(1)规模化的计算问题。(2)计算模型的拆分训练。(3)多智能专家系统的协作。
(4)多智能体博弈和训练演化,解决数据集不足的问题。(5)群体智能决策和智能系统决策树的灵活组织,适应复杂的应用场景,比如工业、生物、航天和社群经济研究等领域。(6)适应物联网和小型智能设备,联合更多的边缘计算单元和移动设备。本发明提供一种分布式群体智能系统,如图3所示包括:底层协议层,用于适用网络协议;核心软件平台层,用于调用外界系统平台的计算资源,支持分布式体系、一致性算法及计算模型;开放软件层,用于接入开源系统框架。
所述分布式体系至少包括:HLA体系、DDS体系以及Multi-Agent体系中的一种或多种;
HLA体系,如图4所示,一个体系整体视为一个联邦,一个联邦包含多个联邦成员,一个联邦成员包含多个对象,所述联邦成员遵循统一的联邦对象模型和成员对象模型,所述联邦对象模型和所述成员对象模型定义了体系的属性、接口、映射、对象和交互标准;在联邦对象模型模型下的分布式运算个体,能够和其他个体在相同体系下,相互连接,整个联邦对象模型可以定义成为固定的配置文件,实现联邦对象模型模型的建立。
在HLA的联邦分层基础下,传统的机器学习模型,可以通过HLA联邦对象模型的规则,进行分布式任务的划分,将任务向下分发,形成多任务并行计算,并且可以归并群体决策的HLA联邦AI智能模型;
所述DDS体系,如图5所示包括主题、数据发布模块以及数据订阅模块;所述主题用于定义数据模型;所述数据发布模块用于发布数据到所述主题中;所述数据订阅模块用于从所述主题订阅数据模型。
DDS体系是一种基于分布式系统的通讯模型,它基于发布/订阅模式,是相对比较简洁和直观的分布式系统结构,它适合用在数据的分发、同步等领域。在DDS体系中,所有成员都是实体数据角色。它类似联合学习的分布式结构,可以通过分布式系统的一个核心节点作为云服务,提供共享模型,联合大量设备联合学习和更新模型。
所述Multi-Agent体系,拥有多个智能体。所述智能体是独立的,拥有自己的计算逻辑和智能,不同智能体之间可以进行数据和计算模型的沟通;
在Multi-Agent体系中,多个智能体可以协调服务,通过群体智能完成同一个任务。它最主要的能力,是将一个复杂巨大的任务拆分,形成不同的小型任务,多个智能体分别完成,并且相互协调,共同管理。每个智能体是独立的,拥有自己的计算逻辑和智能。他们之间的数据交互是异步通信的。它在独立思考的情况下,也可以和其他成员进行数据和计算模型沟通,相互协调,解决矛盾,最终达到复杂问题解决的一致性。Multi-Agent体系的数据和处理有以下特点:数据和知识具有分散性系统是完全分散的,没有唯一的全局中控节点;智能体都具有独立解决一个任务的能力和数据,可以支持智能体随时加入与退出;它具有良好的模块性,即拔即插,可以将巨大复杂的系统,拆分成多个子任务,降低管理难度和成本。
在上述分布式群体智能系统中,集合兼容了三种分布式计算体系(HLA、DDS、Multi-Agent),极大的提高了大规模分布式智能计算的组织体系,使得任何一种分布式结构在本系统中均能找到其应用架构。在实际应用环节当中,我们需要结合不同的应用场景和计算组合方式,通过开放软件层,连接其他人工智能库(比如Tensorflow)进行架构,做到大规模、分布式、单体AI节点计算,做到集群人工智能的总体决策,并且互相激发,互相协作。
进一步地,如图5所示在所述DDS体系中,为了解决数据发布模块的数据发布问题,所述数据发布模块包括:数据写入器及发布者,所述数据写入器,用于将数据输入所述DDS体系中;所述发布者,用于将数据传输发送到所述DDS体系中。
进一步地,如图5所示在所述DDS体系中,为了解决数据订阅模块的数据读取问题,所述数据订阅模块包括:数据读取者及订阅者。所述数据读取者,用于读取所述订阅者订阅的数据。所述订阅者,用于向所述DDS体系订阅数据,通过积极的轮询,获取所述数据读取者的新数据。
进一步地,为了系统的高度协调性,突破传统人工智能的单一专家系统,形成多个专家系统。所述Multi-Agent体系,包括三种组织结构:
1)集中式结构,如图6所示不同的智能体(agent)分为多个群组,每个群组都有一个领队智能体(agent),所述领队智能体(agent)负责协调统一本组智能体(agent)的智能决策,在与其他领队智能体(agent)相互协调,形成最终决策;该结构具有易于管理和易于调度的优势;
2)分布式结构:如图7所示每个智能体(agent)完全平级,没有上下级关系。在本结构中,智能体(agent)的激活和工作,都是受整体外部的系统数据所驱动,它的优势是让整个系统更加灵活,具有较高的自主性;
3)混合式结构:如图8所示混合了所述集中式结构和分布式结构;在分布式群体智能系统当中,一些复杂的集中化的群体智能结构,可以使用集中式结构来构建,一些微小服务和个体智能,通过分布式结构来工作,再通过中控节点来总体决策。这种结构具有高复杂性和高灵活度等优点。
在实际的分布式人工智能系统解决方案中,Multi-Agent结构的系统,具有以下优势:1)在此分布式系统中,智能体的独立性,可以很好的解决子问题,也能通过自己影响周围的智能体决策;2)此分布式系统不追求单个智能体的复杂性,它在设计理念上,追求多层次,多智能体的架构,降低单个智能体求解的难度;3)此分布式系统提供一个高度协调的系统,由多个智能体协调决策,通过群体智能求解高层的决策方法,通过信息集成,形成复杂的大规模运算架构;4)在此分布式系统突破了传统人工智能的单一的专家系统,它可以通过多个专家系统,协调决策,提高决策的适应性和处理能力;5)在此分布式系统中的智能体是异步和分布的,它可以是一个组织(由多个智能体形成的更大智能体,也可以是小型个体智能体,它们可以是多语言的、多设计模式的;6)在此系统中智能体的处理是异步的,互相之间的进程和数据的协调,可以用不同的算法来进行处理。
进一步地,为了解决分布式群体智能系统调用外界系统平台的计算资源,支持分布式体系、一致性算法及计算模型,如图9所示所述核心软件平台层包括:计算模型层、计算核心层和分布式体系协议层;
所述计算模型层,用于在分布式体系中定义、分层和分发计算模型。所述计算模型包括:所述对象、属性、交互接口和数据类型;将所述计算型中所述对象、属性、交互接口和数据类型实例化后形成计算实体;
所述计算核心层,用于在分布式群体智能系统中处理智能计算、数据路由和系统兼容;
所述分布式体系协议层,用于制定不同的所述分布式体系的计算模型的对象同步方式、分布式智能节点通信方式和协调分布式智能节点的组织关系;
所述分布式智能节点通过相互连接,构成分布式网络。
进一步地,为了实现计算核心层在分布式群体智能系统中处理智能计算、数据路由和系统兼容,所述计算核心层由分布式节点功能模块、计算层组件、公共基础服务支撑框架以及操作系统模块构成;
所述分布式节点功能模块用于实现分布式智能节点的功能,包括:分布式智能节点单元、协议单元、HLA的联邦模型单元、DDS的主题数据模型单元和委托代理单元;
所述分布式智能节点单元用于编译分布式智能节点程序的基础模块;分布式智能节点为参与了整个分布式网络中的某一个环节的节点,在本系统中每个安装了本系统或者分布式智能节点程序的设备可视为一个分布式智能节点;所述协议单元用于根据不同的分布式体系,使用不同的分布式体系规则(HLA、DDS、Agent)进行数据处理,并且对数据进行压缩和加密;HLA的联邦模型单元以Fed File文档存储,用于定义HLA的联邦模型模板;DDS的主题数据模型单元以IDL文档存储,用于定义DDS的主题数据模型模板;委托代理单元用于完成对复杂计算程序的代理;在分布式智能节点功能模块中,分布式智能节点单元是实现分布式节点功能最主要的模块,其他协议单元、HLA的联邦模型单元、DDS的主题数据模型单元以及委托代理单元只是分布式智能节点程序的辅助功能;上述分布式智能节点单元、协议单元、HLA的联邦模型单元、DDS的主题数据模型单元和委托代理单元共同组成了分布式智能节点程序的功能。
所述计算层组件(SintolSDK)用于对外提供软件开发工具包,提供适用不同环境下的计算机编程的SDK,比如:Python、C++、C#、JAVA和图形引擎Unreal语言,利用所述计算层组件连接到所述分布式智能节点提供计算能力的计算程序为计算层;
AI计算程序、物理计算程序、数据计算程序和三维仿真计算层程序,可以使用对应的与其匹配的SDK,连接至分布式智能节点,成为分布式智能节点的计算层。
所述公共基础服务支撑框架用于为各分布式智能节点、各单元、各模块、各层之间提供交互接口,对外提供API;
所述操作系统模块,支持Windows、Linux和Android系统,从而实现了本分布式群体智能系统在不同操作环境下都可以兼容。
在所述核心软件平台层组成的计算网络中,无论是分布式智能节点、联邦中央节点、计算实体、计算层等,都是分布式群体智能系统中的分布式节点功能模块的重要产出。
进一步地,所述分布式智能节点用于加载计算模型、连接其他分布式智能节点,形成分布式网络、分发数据、路由数据、订阅管理数据、分发计算任务和计算结果归并。
进一步地,为了实现单分布式智能节点能同时支持多分布式体系任务,所述公共基础服务支撑框架内含有多线程互斥器,如图11所示所述,分布式智能节点通过线程分布式的方式,形成多个内部节点,所述内部节点可执行计算任务,不同的内部节点通过线程通道进行信息的交换和同步,不同的内部节点可同时执行多个计算任务。
如果分布式网络存在多个分布式体系下,分布式智能节点可以通过内部线程多任务的方式,兼容多个分布式体系的模型和功能,分布式节点可以支持外部网络分布式和内部线程分布式。当分布式智能节点属于体系的中心节点时,通过线程分布式的方式,在一个节点中形成多体系任务;当分布式智能节点属于体系的分布式节点时,加载各自负责分布式体系的模型文件;中心节点中多体系之间的交互,通过分布式节点中线程通道进行信息的交换和同步;各自的分布式节点,再和外部的节点进行当前体系的模型加载、任务分发、计算层处理等工作。
具体而言,在单个分布式智能节点中,通过多线程的方式,进行一个运行进程中的多个内部节点的同步处理;在局域网络,或者小规模网络中,根据HLA、DDS、Agent等体系,形成自己的小型网络联邦,并且组成独立的分布式计算模型。
进一步地,所述公共基础服务支撑框架还内含多线程服务器。充分发挥分布式智能节点单节点的处理能力,调动单节点机器的CPU计算核心。
进一步地,为了灵活地运用分布式智能节点,所述分布式智能节点在开放性网络中,通过与其他分布式智能节点形成联邦分布式体系或DDS分布式体系或Multi-Agent分布式体系,此时不同类型的分布式体系也可视为一个大型分布式智能节点。
进一步地,如图12所示,为了简化群体智能计算中的数据,分布式智能节点还可以通过委托代理单元,通过代理的方式访问复杂的AI算法;所述委托代理的方法为,所述分布式智能节点通过消息协议定义代理智能体,所述代理智能体使用所述计算层组件连接复杂的计算程序,通过设置拦截器,拦截一些复杂的计算程序中非法数据和不必要的结果,用于确定需要同步的数据和结果,形成复杂计算层;所述分布式智能节点通过所述计算层组件连接所述复杂计算层,进行计算任务。
为什么要采取代理的方式,因为在联邦模型或者IDL模型中,定义的参数和模型方式,相对比较简单一些,而神经网络的模型,或者其他的复杂的智能系统,他们的计算参数和计算方式,或者直接是一个小系统(复杂),相对比较复杂,在整个群体智能计算中,我们实际上不需要那么多的数据同步,或者只需要部分的计算结果数据,或者需要其他系统的合作的方式,那么我们就选择智能委托代理,然后同步和协调我们的计算层工作。总之,不太方便全部的计算在我们的整个群体智能中进行完全和全部计算的,就可以采用代理的方式进行。
进一步地,为解决公共基础服务支撑框架为系统提供交互接口的问题,如图13所述公共基础服务支撑框架由套接字接口、消息模块接口、模型模块接口和服务节点模块构成;
socket套接字接口,用于支持TCP/IP的数据通讯,支持跨平台数据传输。socket是用于TCP/IP通信的编程模块接口,便于节点和节点之间进行数据通信。
消息模块接口,用于压缩数据信息,分发数据和不同分布式体系结构的数据协议;
模型模块接口,是底层框架接口,支持对外继承扩展,支持HLA的联邦模型(Fed文件)、DDS主题模型(IDL文件)和委托模型代理单元(Agent Model模块);
服务节点模块,用于在操作系统和计算层中,启动、连接、退出分布式智能节点,断线重连和维护所述心跳工作。
进一步地,为解决系统中不同节点时间一致性和算法一致性的问题,所述公共基础服务支撑框架还包括:
时间一致性组件,是分布式体系中的分布式时钟,用于保证数据时钟的一致性;
时间一致性算法模块,根据不同的分布体系(HLA、DDS、Agent等)和业务需求,设计不同的时间性算法,支持串行时间、并行时间等数据流。
进一步地,为提高系统功能的适用范围,如图14所示,所述开放软件层提供的开源框架包括:TensorFlow、Mesh Engine网格引擎、物理引擎和数据库,并且结合所述计算层组件开放的API和软件工具包,接入所述计算模型和所述分布式智能节点。
所述TensorFlow是一个基于数据流编程(data flow programm ing)的符号数学系统,被广泛应用于各类机器学习(machine lear ning)算法的编程实现,其前身是谷歌的神经网络算法库;
所述Mesh Engine网格引擎通常为为PCL点云库,负责三维图形的点和面的算法解决库;
所述Physics Engine物理引擎通常用在游戏开发中,通过为实际的虚拟物体赋予真实世界的物理反应,比如碰撞、跌落、弹性工作、光照反色等效果;通过为刚性物体(游戏中的具体游戏对象GameObje ct)赋予真实的物理属性的方式来模仿真实世界中的物体碰撞、跌落等反应;
所述数据库为MYSQL、MongoDB。
进一步地,为了与分布式群体智能系统的分布式模型任务结合,并且提供交互功能,如图14所示,所述开放软件层还包括,接口和交互层,用于提供对接第三方和所述计算核心层的接口。
进一步地,为了观测分布式群体智能系统的分层结构、实体计算和交互信息等,如图14所示,所述开放软件层还包括,可视化工具层,用于提供可视化系统。
进一步地,为了扩展系统的功能,所述系统还包括云平台,用于支持包括仿真平台、智能大数据平台、网络中控节点管理平台和边缘计算平台(智能硬件)。
进一步地,为了协调所述分布式群体智能系统各分布式节点的计算资源,所述分布式智能节点功能模块还包括负载均衡模块,用于根据当前分布式智能节点的负载,分配其余分布式智能节点的连接。
附图说明
图1为Tensorflow单机单卡与多级多卡部署模式示意图
图2-1为Spark计算模型和Stage形成的DAG图
图2-2为Spark分布式并行计算分层示意图
图3为分布式群体智能系统结构示意图
图4为HLA联邦体系示意图
图5为DDS数据订阅发布体系示意图
图6为Multi-Agent体系集中式结构
图7为Multi-Agent分布式结构
图8为Multi-Agent混合式结构
图9为核心软件平台层结构
图10为计算核心层结构
图11为分布式智能节点多分布式体系兼容示意图
图12为委托代理关系图
图13为公共基础服务支撑框架结构图
图14为开放软件平台层结构图
图15为实施例1示意图
图16为实施例2示意图
图17为分布式机器学习系统结构图
图18为SintolRTOS系统架构
图19为SintolRTOS核心组件
图20为RTOSNode的三层原理示意图
图21为委托代理方式示意图
图22为多智能体分布式体系示意图
具体实施方式
为更容易理解本发明的优点、特征以及达到技术效果的技术方法,将参照例示性实施例进行更详细地描述,且本发明可以不同形式来实现,故不应被理解为本发明仅限于此处所陈述的实施例。相反地,对本领域的技术人员,所提供的实施例将更加透彻与全面且完整地传达本发明的范畴,且本发明将以申请专利文件的权利要求确定保护范围。
实施例1
如图15所示,这个架构中属于典型的HLA体系架构,其中联邦1计算中心1和联邦2计算中心2分别为两个联邦的联邦中心节点;在联邦1中,组织计算单元1和组织计算单元2属于联邦成员,摄像头作为实体计算单元属于对象,每个分布式智能节点通过安装本系统,相互连通,交互。系统运用不同的监控摄像头,形成自有的小型组网,再通过组网结合,形成更大的组织网络。组织网络和中心化云平台结合,充分发挥摄像头的计算能力。系统通过并行计算识别任务,通过组网共享机器学习模型、视频编解码计算资源和共享数据,再通过组网计算层归纳、总结、决策,和中心化云服务交互,形成群体智能决策,还可以减少中心化云服务的计算和带宽压力,有效提高整个系统的计算能力,极大减少系统成本。
多个摄像头之间,通过分布式智能系统,主要解决了分布式人工智能的几个问题:
1)不同区域的摄像头,可以通过自组局域网络,形成不同区域的组网。2)组网之间的摄像头,都有自己的独立计算层,支持机器学习和视频编解码。3)不同摄像头可以通过分布式智能系统,在组网之间并行计算,共享计算模型和数据。4)组网和组网之间,也可以通过分布式智能系统并行计算,共享组网之间的计算模型和数据。通过HLA联邦对象模型的定义,与AI模型结合形成分布式AI智能模型。
实施例2
如图16所示,这是典型的DDS模型,一个平面地形环境,协调多实体(多人、多车辆等情况)的计算,包括AI模拟、AI协调(交通协调)等方式的架构。
架构把整个地形分为4个区域,不同区域发布不同的DDS主题,每个区域的计算平台单元是主题,不停实体计算单元是发布者或者订阅者,相关的计算实体(车辆)可以通过各自的区域的主题,进行分布式数据的同步、模型计算。
进一步地,因为分布式智能系统也支持其他体系,也可以通过分布式智能系统和其他主题同步和并行计算,实现分布式的群体AI决策。
实施例3
在分布式群体智能系统中,通过软件开发包(SDK)与智能体计算层的结合,支持多计算实体与智能体的协调操作,通过分布式智能节点作为Multi-Agent共享计算模型和数据的消息路由通道。
分布式群体智能系统将会支持tensorflow与智能体的异步计算和数据同步机制,支持分布式机器学习,做到多智能体间的协作机制。具体的分布式机器学习系统结构图,如图17所示:
其中常用的机器学习算法类别,比如归纳学习、类比学习、强化学习、分析学习、遗传算法等,每种算法都利用一个智能体处理,通过分布式模型任务拆分的方式,让多智能体之间独立工作,数据和计算模型相互协调。在此分布式系统中的智能体是异步和分布的,它可以是一个组织(由多个智能体形成的更大智能体,也可以是小型个体智能体,它们可以是多语言的、多设计模式的。Multi-Agent之间的协作体系结构,主要有以下几种:
智能体间的网络,将所有的智能体通过分布式智能节点连接成整体的网络,不管距离远近,都直接通信,两两之间的数据和计算模型,都可以互相获取和影响,如17图中所示的监督智能体与执行智能体。
黑板结构,联盟系统,如17图中所示的圈内的各种学习算法形成一个联盟,通过联盟和联盟之间的数据进行影响,各个联盟之间,通过局域网进行协调。联盟对外,只开放局部数据和计算模型。
Multi-Agent是一种重要的分布式人工智能体系,分布式群体智能系统中会重点支持。这种计算模式,大量应用在航天、生物细胞、环境模拟、经济体决策等大规模人工智能计算领域。
实施例4
SintolRTOS系统,Sintol是产品的标志,RTOS的英文为Real-Time OperatingSystem,叫做实时操作系统。SintolRTOS是围绕分布式人工智能和群体智能,进行设计的计算核心。它提供如下的核心能力:
分布式多网络节点:提供了RTOSNode节点,可以帮助我们随时启动计算节点,将单体计算平台(包括计算机、智能硬件、移动设备等)连接起来,形成一个多网络节点的分布式计算平台。
提供计算层接口:各个逻辑和算法,可以通过计算层接口连接分布式节点,发布和接受分布式任务,为群体智能决策,运算个体逻辑和智能AI算法。
任务并行和数据同步:支持不同计算层发布和相互订阅,可以通过路由节点,在不同运算层之间,实现几个功能:发布计算模型、订阅模型部分任务、同步数据、归并数据和并行计算。
多语言SDK:提供多语言计算层的SDK,包括C++、Python、Unreal等SDK,让计算层可以支持tensorflow深度学习、C++逻辑和智能仿真、Unreal图形和物理计算等,支持多样化的智能模型。
提供多种模型定义和分布式规则:提供了HLA、DDS、Multi-Agent等分布式规则,支持不同AI智能模型的定义,支持AI模型的并行计算、任务拆分、数据归并和模型共享。
负载均衡:负载均衡计算层worker的计算实体entity,有效分配和管理计算资源。
中控管理:中心化的监控工具,检测和控制多个平台、worker和entity计算资源。
在SintolRTOS实际应用环节当中,我们需要结合不同的应用场景和计算组合方式,通过其他人工智能库(比如Tensorflow)进行架构,做到大规模、分布式、单体AI节点计算,做到集群人工智能的总体决策,并且互相激发、互相协作。
SintolRTOS系统突破了传统人工智能AI计算的个体专家系统,支持多专家系统协作;集合兼容了通用的三种分布式计算体系(HLA、DDS、Multi-Agent),极大地提高了大规模分布式智能计算的组织体系;融合了联邦模型、Topic、Agent模型与神经网络,提供了一种群体人工智能的组织协议和算法模型;提供了极易使用的底层和细心你组件,极大地提高了大规模分布式大数据、并行计算、边缘计算等方向的系统开发和集成能力。
【SintolRTOS核心组件和系统架构】
基于SintolRTOS组件介绍、”已有技术概况”介绍的分布式体系结构、常用的人工智能算法库、其他第三方功能计算库等,SintolRTOS形成了以计算为核心,分布式体系为基础的分布式群体智能体系架构,如图18所示:
SintolRTOS生态系统的架构,主要分为四层结构,具体如下所示:
1.Reference lib层:一些引用的底层库,主要以网络通讯协议TCP/UDP,网络协议Proto buf、GRPC等,相互辅助。
2.Core Soft Plateform层:核心软件平台层,主要是两个部分:SintolRTOS的组件,包括RTOS Node智能路由节点和多语言SintolSDK计算层SDK。计算模型和分布式体系,包括HLA、DDS、Multi-Agent和DIS等。
3.Open Soft Plateform层:开放软件层,这一层结合了其他的开源框架,用于提高SintolRTOS的功能适用范围,比如深度学习平台Tensorflow、Mesh Engine网格引擎(比如三维点云库PCL)、Physics Engine物理引擎、数据库(比如MYSQL、MongoDB等),并且结合Sintol SDK开放的API和SDK,接入SintolRTOS的计算模型和分布式节点。
4.Cloud Plateform:云平台,支持包括仿真平台、智能大数据平台、网络中控节点管理平台和智能硬件(边缘计算平台)。
SintolRTOS整体生态系统架构,是一个大型的、高兼容性的架构体系。
【Core Soft Plat form层】
Core Soft Plat form层是SintolRTOS的核心组件,它的构成可以分为三层:计算核心层、分布式体系协议层Runtime Framework和计算模型层OMT Object Moudle Temple。它们的原理和架构,如下所示:
计算核心成负责处理智能计算、数据路由、负载均衡、操作系统兼容等,它主要由网络节点组件RTOSNode(多操作系统版本),计算层组件SintolSDK(多语言、多操作系统版本)组成,具体架构如图所示:
分布式体系协议层RunTime Framework,主要支持了整个SintolRTOS运行时的分布式体系。
计算模型层OMT,提供了在不同的分布式体系中,计算模型的定义、分层、分发等,与相关的分布式体系相对应,下面来看一下模型文件的定义方式。
【计算核心层】
SintolRTOS核心的组成,可以分为四层,它们的功能组成如下所示:
1.System OS Layer操作系统层,SintolRTOS的底层,需要去适配操作系统底层模块,主要是Socket和Thread,不同的操作系统有所不同。核心支持Windows、Linux、Android系统,支持大型服务器(Windows、Linux)和小型智能硬件(Android)。
2.SintolRTI:Run Time Infrastructure,公共基础服务支撑框架,是服务接口、模型加载、数据路由、算法交互的核心层,提供对外的API服务支持。它的主要模块包含以下部分:
1)Socket:支持TCP/IP的数据通讯,支持跨平台数据传输。
2)Mutex:提高单体RTOS内部的数据交换、多线程处理,实现高效率的加锁策略。对于SintolRTOS,不仅对外可以多节点分布式,RTOS节点内部也需要多线程并行计算。
3)Message:数据信息压缩、数据分发、多种分布式体系结构的数据协议。
4)Thread Server:多线程服务器,充分发挥RTOSNode中单节点的处理能力,调动单节点机器的CPU计算核心。
5)Clock:时间一致性组件,整个分布式系统中的分布式时钟,保证数据时钟的一致性。
6)Time Algorithm:时间一致性算法模块,根据HLA、DDS、Agent等分布体系和业务需求,设计不同的时间性算法,支持串行时间、并行时间等数据流。
7)Modle:模型模块,底层框架接口,支持对外继承扩展,支持HLA的联邦FED模型、DDS的主题Topic模型、Agent的Data模型等。
8)Server Node:服务节点模块,支持在多种系统和计算层中,启动节点、连接节点、退出节点、断线重连、心跳维护等工作。
3.Distributed Node:分布式节点层,在SintolRTOS所组成的计算网络中,无论是计算实体、计算层、路由节点、联邦中央节点等,都属于RTOS中的节点层,SintolRTOS中的路由节点组件RTOSNode,就是这一层的重要产出。它的主要模块包含以下部分:
1)RTOSNode:SintolRTOS的核心组件,是SintolRTOS的路由节点,它的功能包括:加载计算模型、连接节点形成分布式网络、数据分发、数据路由、数据订阅管理、计算任务分发、计算结果并行归并等;
2)Protocol Layer:协议层,根据不同的分布式小系统模块,使用不同的分布式体系规则(HLA、DDS、Agent)进行数据处理,并且对数据进行压缩和加密;
3)Load Balancing:负载均衡,根据当前节点的负载,分配其余节点的连接,调节SintolRTOS中,与本身节点相关的、其余节点的计算资源;
4)Fed File:HLA的联邦模型加载;
5)Topic Data:DDS的主题数据处理模块;
6)Agent Modle:Agent代理AI模型加载(委托代理模型)。
4.SintolSDK:对外提供的SDK,AI计算程序、物理计算程序、数据计算程序、三维仿真计算程序等,可以使用对应的SDK,连接一个SintolRTOS的节点,成为系统功能计算层。SDK提供了多种语言的支持:Python、C++、C#、JAVA和图形引擎Unreal。
SintolRTOS计算核心层,是一个高性能的计算核心,可以充分调动不同系统平台的计算资源。它是一个高兼容性的核心,可以支持多种分布式体系、多种数据一致性算法、多种计算层模型等。
【开放平台层Open Soft Plateform】
该层结合了许多开源的系统框架,从而让SintolRTOS能够融合多种计算方式。在Open Soft Plateform分层中,又细分了三个层次,如下所示:
API/Interaction,接口和交互层,提供对接第三方和SintolRTOS核心的接口,处理比如深度学习卷积计算、三维点云算法计算、大数据计算等,与SintolRTOS分布式模型任务结合,并且提供交互功能。
计算框架层:集合了Tensorflow深度学习框架、Physics物理引擎、PCL三维点云Mesh、数据库等框架,并且结合API/Interaction,赋予SintolRTOS强大的智能计算能力和数据存储能力。
Visual Tool:可视化工具层,提供了开发人员,通过可视化系统观测SintolRTOS中的分层结构、实体计算、交互信息等。
【SintolRTOS的系统的运行环境】
SintolRTOS的系统组件,主要支持三个操作系统Windows 10、Linux(Ubuntu为主)、Android,在不同系统下,可以通过专属库和运行组件来启动。
在Windows环境下,SintolRTOS的底层核心组件,是通过C++语言开发的,可以通过使用rtosnode.exe启动路由节点,使用.h头文件和.dll动态链编库使用C++的SDK。Python语言在Windows环境下,可以加载CPSintolSDK.pdb和.dll文件,使用SDK。Java可以加载Jar文件和.dll文件,使用SDK。Unreal可以使用专属的Unreal C++的SDK。
在Linux和Android环境下,可以使用对应的.so文件和语言库使用SDK。通过SintolRTOS提供的RTOSNode的.sh文件,启动路由节点。
【SintolRTOS的分布式RTOSNode节点原理】
在SintolRTOS的分布式Node节点原理的理解上,可以有三种理解方式:
一、在单个RTOSNode中,通过多线程的方式,进行一个运行进程中的多个Node同步处理;
二、在局域网络,或者小规模网络中,根据HLA、DDS、Agent等体系,形成自己的小型网络联邦,并且组成独立的分布式计算模型;
三、在开放性网络中,不同联邦、区域计算的Node节点,通过开放性网络与其他联邦和区域代表形成更大的分布式模型。在这种网络中,可以把一个联邦、一个区域计算看作一个大型Node节点。
如图20所示:Abstract Node:抽象了节点相关的功能,包括数据队列、异构处理等。AbstractServer:抽象了相关RTOSNode节点,作为分布式节点服务的功能,包括连接、操作、数据推送、消息分发、数据队列、数据压缩等。Thread Sever:作为第一层的分布式节点,继承了AbstractServer,实现了节点功能,提供了RTOSNode单节点内部的分布式结构,可以通过进程间的管道进行通讯,充分发挥单节点的多CPU计算核心。RTOSNode:作为SintolRTOS中分布式节点的标准单位,通过分布式联邦模型进行数据同步、并行计算、智能决策,通过小规模网络,在一个联邦集团中,形成小规模集团计算。联邦网络:通过RTOSNode中的联邦模型和多个其余的联邦单位,进行多联邦模型之间的协调计算。这个部分可以通过互联网,或多网络结构进行路由通信。
【SintolRTOS的计算模型和文件定义】
在SintolRTOS的节点中,计算层可以通过SDK创建计算模型,从而分配了计算层中的分布式体系和群体协调方式。在不同的分布式体系下,对应的计算模型也有所不同,以下就是SintolRTOS中不同计算模型的文件定义形式。
FED联邦模型文件定义
在HLA体系中,SintolRTOS计算层,可以通过发布一个fed.xml的联邦计算FOM代理模型文件。在FED联邦模型中,在SintolRTOS的分布式群体智能,主要有以下优势:1)提供一个通用的、易用的机制,说明联邦成员之间数据交换的方式,解释多个分布式节点中计算模型的协调方式。2)提供多联邦的标准机制,说明不同联邦之间数据交换和成员交互协调的方式。3)帮助我们开发群体智能体对象模型的结构。
FED模型中,主要有两种:联邦对象模型和SOM成员对象模型,它们共同组成了HLA的OMT。OMT中,主要定义了9种属性表,SintolRTOS可以通过这个来描述群体智能决策的结构体,帮助整个联邦进行分布式智能计算和归并决策。属性表具体内容如下所示:
1.对象模型鉴别表:对象模型的重要标识。
2.对象类结构表:如multiAI.xml中定义的,表示了联邦之间、联邦成员之间,类对象的父子结构,形成计算模型的森林结构。
3.交互类结构表:如multiAI.xml中定义的,表示了联邦之间、联邦成员之间,交互类的父子结构、形成计算模型交互的行为状态森林结构。
4.属性表:表示联邦、联邦成员中,类对象的属性结构。
5.参数表:表示联邦、联邦成员中、交互类的参数表(交互函数的参数)。
6.枚举数据参数表:可以定义在联邦中会使用的枚举数据,用于在整个联邦或下级联邦成员中,将会使用的枚举。
7.复杂数据结构表:可以在联邦中定义复杂的数据结构,用于在整个大型计算模型中进行交互,比如多维矩阵、神经网络参数表等。
8.路径空间表:定义联邦中对象类属性和交互类存放的路径空间。
9.对象词典:描述定义FOM/SOM中定义的对象类、交互类、数据结构等。
通过这些定义方式,我们可以把一个复杂的AI模型,分解成为一个基于HLA联邦的分布式群体决策森林,从而进行分布式并行计算。
DDS主题模型文件定义
DDS是一种集中式的分布式数据分发协议体系,在SintolRTOS中的模型Model,也可以定义它,这就是DDS主题模型文件。在DDS体系中,主要关注的是数据模型的分发/订阅,在DDS主题模型中,主要定义复杂的数据结构,它的每个节点的计算是相对独立的;它的数据定义,与C++的Struct类似。
在SintolRTOS中,RTOSNode节点中路由广播数据给它的下层订阅计算实体,需要计算层在发布DDS主题模型,然后其他用户可以订阅模型。一个主题中可以有多个模型,模型包括对象、属性和交互。在DDS主题模型中,模型类、交互接口等,都是以数据体的形式来定义。在SintolRTOS中,如果需要中控系统,计算模型森林深度短、各计算实体计算方式交互较少、对数据广播要求较高的情况,可以选用这种形式,来组织分布式智能计算。
Agent代理方式
关于Multi-Agent形式,Agent的形式多种多样,在SintolRTOS中,主要作为智能代理模型的形式,与FED、IDL模型等协作,将不同智能系统代理起来,与其他代理系统协同工作。SintolRTOS提供了Protobuf作为消息协议体,用来编写Agent的智能代理属性,多语言、多平台地支持各种智能系统协同。
Multi-Agent没有具体的定义方式,通过消息协议,我们只需要定义对外的委托人,然后通过委托互相调用和协调各自的分布式智能系统。
在SintolRTOS中,通过Agent调用Modle的体系,主要有三个部分:目标对象、拦截机对象和目标对象代理。如21图所示:目标对象就是联邦智能模型中的联邦对象;拦截机对象就是拦截机负责拦截联邦模型中的一些无用或者非法数据;目标代理对象就是Agent联邦代理负责代理联邦智能模型中的某一个联邦对象。
在SintolRTOS中,在RTOSNode之间,通过TCP连接,并且通过Protobuf实现Agent代理信息和协议的编写;在Model值上,实现Agent的拦截以及和Model层的链接和调度;Model中定义的FED联邦模型、DDS主题模型等开放了代理接口,对于非法调度,拦截层应该进行拒绝和错误反馈,实现Agent代理。
实施例5
实施例4介绍了SintolRTOS的核心组成、结构原理和启动方法。我们接着使用SintoRTOS来编写一个样例,介绍实际工程中的运用方法。
定义实施例的AI模型和分布式计算体系。在本实施例中,我们需要使用多个AI人物互相对抗。它们拥有四种状态:原地监视、寻路找人、跟随活动和丢失目标。在运动过程当中,AI智能体需要绕开障碍,或者跳跃通过障碍。在工作过程中,智能体需要不断训练,不断提升,智能体之间的运算模型和数据都需要通过SintolRTOS来进行协调运算和群智处理。
1.定义联邦计算模型
联邦定义模型,需要定义在整个联邦中出现对象类和交互接口,在本实施例中,主要是智能体的属性,包括位置、速度、方向、运动状态、状态机参数等,智能体的交互,包括跟随、停止、跳跃等。根据这些计算,我们定义了联邦计算模型multiAI.xml。
2.定义强化学习DQN神经网络模型的智能代理Agent
Agent描述了在Tensorflow中,DQN(强化学习神经网络)中计算的智能实体,它所计算的参数需要根据神经网络的参数表进行修正,但是数据的输入和输出都需要转化和MultiAI中定义的智能体一致。
【分布式计算层的模型与数据】
每个Agent运算了一个DQN神经网络,如何将多个计算实体结合起来,形成一个规模化的分布式神经网络,还需要使用SintolSDK去接入Agent,在Fed联邦中实例化多个AI计算实体,这里我们使用PSintolSDK,来接入Tensorflow的Python计算环境。
重构联邦实体的处理类
在SintolSDK创建或者加入联邦时,需要传入联邦实体的处理类,用于接收回掉call back信息,包括其他实体的数据、联邦模型和实体的改变等。
DQN神经网络与PSintolSDK构建计算层
编写完联邦处理类以后,再通过PSintolSDK,发布联邦,加入联邦、同步联邦、订阅AI实体类、生成发布实体类,并且监听和订阅联邦中其他计算实体的数据和模型,接受来自联邦的计算数据。
在DQN计算层中,Agent的训练模型和数据,需要来自于实体数据的传入和代理,驱动DQN强化神经网络的学习训练的计算层,并且在实际应用中对抗博弈。
实施例6
在本实施例中,分布式体系网络结构如图22所示,主要体现了在SintolRTOS的分布式集群中,多智能体在同一个联邦下,进行协作、对抗、寻路、寻人、学习和强化。对此需要设计联邦体下的联邦结构、分布式体系、物理仿真计算层、智能DQN神经网络计算层、联邦节点等。其中整体体系都在一个联邦体系下,所有智能体都在一个联邦模型中,作为一个模型实体,进行运算和协调。每个智能体通过UnrealRTOS和CSintolSDK组成实体,处理它的仿真、状态机、物理碰撞、图形渲染。智能体通过PSintolSDK与Agent形成智能代理机制,智能体通过DQN神经网络进行强化学习,形成不同智能体的智能对抗训练和升级。整个联邦可以容纳多个智能体,它们共同形成了这个小型联邦的群体智能。
本实施例使用了Unreal引擎,进行图形化场景和智能体的可视化开发。对此,SintolRTOS提供了Unreal使用的SDK和使用案例UnrealRTOS工程,我们将用它和CSintolSDK搭建多智能体对抗的仿真演练场景。
运行UnrealRTOS多智能体进行联邦对抗
运行2个智能实体,当没有接入Agent代理智能决策层时,几个智能实体,在场景中会各自根据状态机算法和寻路判定算法,随机的进行寻找、跟随其他智能体、越过障碍等行为,以上智能体是根据联邦模型和状态机进行运行的,运行久了以后,可以发现智能体实际上在寻找其他智能体的情况上,没有AI能力的提高。当我们使用PSintolSDK和Agent运行DQN强化神经网络,经过多智能体的互动和博弈训练,经过长时间的训练,会发现智能体在寻找其他联邦对象和寻路能力上,得到了极大的提高,最终形成群体智能队列的共同行为,最终提高决策能力。
Claims (18)
1.一种分布式群体智能系统,其特征在于,包括:底层协议层,用于适用网络协议;核心软件平台层,用于调用外界系统平台的计算资源,支持分布式体系、一致性算法及计算模型;以及开放软件层,用于提供开源系统框架;
所述分布式体系至少包括:HLA体系、DDS体系、Multi-Agent体系的一种或多种;
所述HLA体系,一个体系整体视为一个联邦,一个联邦包含多个联邦成员,一个联邦成员包含多个对象,所述联邦成员遵循统一的联邦对象模型和成员对象模型,所述联邦对象模型和所述成员对象模型定义了体系的属性、接口、映射、对象和交互标准;
所述DDS体系,包括主题、数据发布模块以及数据订阅模块;所述主题用于定义数据模型;所述数据发布模块用于发布数据到所述主题中;所述数据订阅模块用于从所述主题订阅数据模型;
所述Multi-Agent体系,拥有多个智能体,所述智能体是独立的,拥有自己的计算逻辑和智能,不同智能体之间可以进行数据和计算模型的沟通。
2.根据权利要求1所述的分布式群体智能系统,其特征在于,在所述DDS体系中,所述数据发布模块包括:数据写入器及发布者和所述数据写入器,用于将数据输入所述DDS体系中;所述发布者,用于将数据传输发送到所述DDS体系中。
3.根据权利要求1所述的分布式群体智能系统,其特征在于,在所述DDS体系中,所述数据订阅模块包括:数据读取者及订阅者和所述数据读取者,用于读取所述订阅者订阅的数据;所述订阅者,用于向所述DDS体系订阅数据,通过积极的轮询,获取所述数据读取者的新数据。
4.根据权利要求1所述的分布式群体智能系统,其特征在于,所述Multi-Agent体系,包括三种组织结构:
集中式结构,不同的智能体分为多个群组,每个群组都有一个领队智能体,所述领队智能体负责协调统一本组智能体的智能决策,再与其他领队智能体相互协调,形成最终决策;或
分布式结构:每个智能体完全平级,没有上下及关系;或
混合式结构:混合了所述集中式结构和分布式结构。
5.根据权利要求1所述的分布式群体智能系统,其特征在于,所述核心软件平台层包括:计算模型层、计算核心层和分布式体系协议层;
所述计算模型层,用于在分布式群体智能系统中定义、分层和分发计算模型。所述计算模型包括:所述对象、属性、交互接口和数据类型;
所述计算核心层,用于在分布式群体智能系统中处理智能计算、数据路由和系统兼容;
所述分布式体系协议层,用于制定不同的所述分布式体系的计算模型的对象同步方式、分布式智能节点通信方式和协调分布式智能节点的组织关系;
所述分布式智能节点通过相互连接,构成分布式网络。
6.根据权利要求5所述的分布式群体智能系统,其特征在于,所述计算核心层由分布式节点功能模块、计算层组件、公共基础服务支撑框架以及操作系统模块构成;
所述分布式节点功能模块用于实现分布式智能节点的功能,由分布式智能节点单元、协议单元、HLA的联邦模型单元、DDS的主题数据模型单元和委托代理单元构成;
所述分布式智能节点单元是编译分布式智能节点程序的基础模块;所述协议单元用于根据不同的分布式体系,使用不同的分布式体系规则进行数据处理,并且对数据进行压缩和加密;所述的HLA联邦模型单元,用于加载和解析HLA的联邦模型文件;所述的DDS主题数据模型单元,用于加载DDS的主题模型文件;所述委托代理单元用于完成对复杂计算程序的代理;
所述计算层组件用于对外提供软件开发工具包,提供适用不同环境下的计算机编程的SDK,利用所述计算层组件连接到所述分布式智能节点提供计算能力的计算程序为计算层;
所述公共基础服务支撑框架用于为各分布式智能节点、各单元、各模块、各层之间提供交互接口和对外提供API;
所述操作系统模块,支持Windows、Linux和Android系统。
7.根据权利要求6所述的分布式群体智能系统,其特征在于,所述分布式智能节点用于加载计算模型、连接其他分布式智能节点,形成分布式网络、分发数据、路由数据、订阅管理数据、分发计算任务和计算结果归并。
8.根据权利要求7所述的分布式群体智能系统,其特征在于,所述公共基础服务支撑框架内含有多线程互斥器,所述分布式智能节点通过线程分布式的方式,形成多个内部节点。所述内部节点可执行计算任务,不同的内部节点通过线程通道进行信息的交换和同步,不同的内部节点可同时执行多个计算任务。
9.根据权利要求8所述的分布式群体智能系统,其特征在于,所述公共基础服务支撑框架还内含多线程服务器。
10.根据权利要求9所述的分布式群体智能系统,其特征在于,所述分布式智能节点在开放性网络中,通过与其他分布式智能节点形成联邦分布式体系或DDS分布式体系或Multi-Agent分布式体系,此时不同类型的分布式体系也可作为一个大型分布式智能节点。
11.根据权利要求6所述的分布式群体智能系统,其特征在于,所述委托代理单元实现委托代理的方法为,所述分布式智能节点通过消息协议,定义代理智能体;所述代理智能体使用所述计算层组件连接所述运行复杂的计算程序,通过设置拦截器,拦截一些复杂的计算程序中非法数据和不必要的结果,确定需要同步的数据和结果,形成复杂计算层;所述分布式智能节点通过所述计算层组件连接所述复杂计算层,进行计算任务。
12.根据权利要求6所述的分布式群体智能系统,其特征在于,所述公共基础服务支撑框架由套接字接口、消息模块接口、模型模块接口以及服务节点模块接口构成;
所述套接字接口,用于支持TCP/IP的数据通讯,支持跨平台数据传输。所述消息模块接口,用于压缩数据信息、分发数据、不同分布式体系结构的数据协议;
所述模型模块接口,是底层框架接口,支持对外继承扩展,支持HLA的联邦对象模型、DDS的主题模型和委托代理模型;
所述服务节点模块,用于在不同的操作系统和计算层中,启动、连接、退出所述分布式智能节点,断线重连和维护心跳工作。
13.根据权利要求12所述的分布式群体智能系统,其特征在于,所述公共基础服务支撑框架还包括:
时间一致性组件,是分布式体系中的分布式时钟,用于保证数据时钟的一致性;以及
时间一致性算法模块,用于根据不同的分布体系和业务需求,设计不同的时间性算法,支持串行时间和并行时间数据流。
14.根据权利要求1所述的分布式群体智能系统,其特征在于,所述开放软件层提供的开源框架包括:TensorFlow、Mesh Engine网格引擎、物理引擎和数据库,并且结合所述计算层组件开放的API和软件工具包,接入所述计算模型和所述分布式智能节点。
15.根据权利要求5所述的分布式群体智能系统,其特征在于,所述开放软件层还包括,接口和交互层,用于提供对接第三方和所述计算核心层的接口。
16.根据权利要求15所述的分布式群体智能系统,其特征在于,所述开放软件层还包括,可视化工具层,用于提供可视化系统。
17.根据权利要求1-16任意一种所述的分布式群体智能系统,其特征在于,所述系统还包括云平台,用于支持包括:仿真平台、智能大数据平台、网络中控节点管理平台以及边缘计算平台中的一种或多种。
18.根据权利要求6-16任意一种所述的分布式群体智能系统,其特征在于,所述分布式智能节点功能模块还包括负载均衡模块,用于根据当前分布式智能节点的负载,分配其余分布式智能节点的连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910466091.0A CN110278249B (zh) | 2019-05-30 | 2019-05-30 | 一种分布式群体智能系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910466091.0A CN110278249B (zh) | 2019-05-30 | 2019-05-30 | 一种分布式群体智能系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110278249A true CN110278249A (zh) | 2019-09-24 |
CN110278249B CN110278249B (zh) | 2022-03-25 |
Family
ID=67960364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910466091.0A Active CN110278249B (zh) | 2019-05-30 | 2019-05-30 | 一种分布式群体智能系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110278249B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144557A (zh) * | 2019-12-31 | 2020-05-12 | 中国电子科技集团公司信息科学研究院 | 一种基于级联模式的动作策略方法 |
CN111159095A (zh) * | 2020-01-02 | 2020-05-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种异构融合的嵌入式智能计算实现方法 |
CN111625820A (zh) * | 2020-05-29 | 2020-09-04 | 华东师范大学 | 一种基于面向AIoT安全的联邦防御方法 |
CN111915057A (zh) * | 2020-06-28 | 2020-11-10 | 厦门大学 | 一种基于深度学习和群智感知的单车需求预测与调度方法 |
CN112052603A (zh) * | 2020-09-25 | 2020-12-08 | 中国直升机设计研究所 | 一种基于直升机的多机协同仿真架构及数据交互方法 |
CN112101536A (zh) * | 2020-08-30 | 2020-12-18 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 轻量级分布式多任务协同框架 |
CN112221149A (zh) * | 2020-09-29 | 2021-01-15 | 中北大学 | 一种基于深度强化学习的炮兵连智能作战演练系统 |
CN112332540A (zh) * | 2020-10-28 | 2021-02-05 | 上海交通大学 | 微电网、以及仿真装置和方法 |
CN112783132A (zh) * | 2021-01-11 | 2021-05-11 | 中国船舶重工集团公司第七二三研究所 | 一种无人集群中认知协同赋能的智能体单元 |
CN113037857A (zh) * | 2021-03-23 | 2021-06-25 | 中国科学院自动化研究所 | 面向云环境的多机器人协同感知服务系统、方法及设备 |
CN113391556A (zh) * | 2021-08-12 | 2021-09-14 | 中国科学院自动化研究所 | 基于角色分配的群体分布式控制方法及装置 |
CN113507503A (zh) * | 2021-06-16 | 2021-10-15 | 华南理工大学 | 一种具有负载均衡的车联网资源分配方法 |
CN113849303A (zh) * | 2021-08-30 | 2021-12-28 | 浪潮电子信息产业股份有限公司 | 一种多级联邦yarn集群的资源分配方法、装置、设备 |
CN114578712A (zh) * | 2022-03-08 | 2022-06-03 | 北京航空航天大学 | 多功能水下自主航行器集群仿真系统 |
CN115292074A (zh) * | 2022-10-09 | 2022-11-04 | 中科星图测控技术(合肥)有限公司 | 一种基于gRPC协议的轨道分析算法服务的调用方法和装置 |
CN118041918A (zh) * | 2024-04-12 | 2024-05-14 | 天城智创(天津)科技有限公司 | 一种用于数字化可视平台的分布式信息化数据传输方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664954A (zh) * | 2012-04-25 | 2012-09-12 | 清华大学 | 基于hla的分布式仿真支撑平台及其实现方法 |
CN103458033A (zh) * | 2013-09-04 | 2013-12-18 | 北京邮电大学 | 事件驱动、面向服务的物联网服务提供系统及其工作方法 |
-
2019
- 2019-05-30 CN CN201910466091.0A patent/CN110278249B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664954A (zh) * | 2012-04-25 | 2012-09-12 | 清华大学 | 基于hla的分布式仿真支撑平台及其实现方法 |
CN103458033A (zh) * | 2013-09-04 | 2013-12-18 | 北京邮电大学 | 事件驱动、面向服务的物联网服务提供系统及其工作方法 |
Non-Patent Citations (3)
Title |
---|
ABBAS ALI SIDDIQUI: "System of Systems Based on Agent Based Simulations", 《HTTPS://WWW.RESEARCHGATE.NET/PUBLICATION/283713388》 * |
G. ZACHAREWICZ等: "Multi Agent/HLA Enterprise Interoperability (Short-Lived Ontology Based)", 《HTTPS://WWW.RESEARCHGATE.NET/PUBLICATION/235423931》 * |
THIAGO W. B. SILVA等: "Environment for integration of distributed heterogeneous computing systems", 《JOURNAL OF INTERNET SERVICES AND APPLICATIONS》 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144557A (zh) * | 2019-12-31 | 2020-05-12 | 中国电子科技集团公司信息科学研究院 | 一种基于级联模式的动作策略方法 |
CN111159095B (zh) * | 2020-01-02 | 2023-05-12 | 中国航空工业集团公司西安航空计算技术研究所 | 一种异构融合的嵌入式智能计算实现方法 |
CN111159095A (zh) * | 2020-01-02 | 2020-05-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种异构融合的嵌入式智能计算实现方法 |
CN111625820A (zh) * | 2020-05-29 | 2020-09-04 | 华东师范大学 | 一种基于面向AIoT安全的联邦防御方法 |
CN111915057A (zh) * | 2020-06-28 | 2020-11-10 | 厦门大学 | 一种基于深度学习和群智感知的单车需求预测与调度方法 |
CN111915057B (zh) * | 2020-06-28 | 2022-05-17 | 厦门大学 | 一种基于深度学习和群智感知的单车需求预测与调度方法 |
CN112101536A (zh) * | 2020-08-30 | 2020-12-18 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 轻量级分布式多任务协同框架 |
CN112052603A (zh) * | 2020-09-25 | 2020-12-08 | 中国直升机设计研究所 | 一种基于直升机的多机协同仿真架构及数据交互方法 |
CN112052603B (zh) * | 2020-09-25 | 2022-05-20 | 中国直升机设计研究所 | 一种基于直升机的多机协同仿真架构及数据交互方法 |
CN112221149A (zh) * | 2020-09-29 | 2021-01-15 | 中北大学 | 一种基于深度强化学习的炮兵连智能作战演练系统 |
CN112221149B (zh) * | 2020-09-29 | 2022-07-19 | 中北大学 | 一种基于深度强化学习的炮兵连智能作战演练系统 |
CN112332540A (zh) * | 2020-10-28 | 2021-02-05 | 上海交通大学 | 微电网、以及仿真装置和方法 |
CN112332540B (zh) * | 2020-10-28 | 2022-10-14 | 上海交通大学 | 微电网、以及仿真装置和方法 |
CN112783132A (zh) * | 2021-01-11 | 2021-05-11 | 中国船舶重工集团公司第七二三研究所 | 一种无人集群中认知协同赋能的智能体单元 |
CN113037857B (zh) * | 2021-03-23 | 2022-01-21 | 中国科学院自动化研究所 | 面向云环境的多机器人协同感知服务系统、方法及设备 |
CN113037857A (zh) * | 2021-03-23 | 2021-06-25 | 中国科学院自动化研究所 | 面向云环境的多机器人协同感知服务系统、方法及设备 |
CN113507503B (zh) * | 2021-06-16 | 2022-06-14 | 华南理工大学 | 一种具有负载均衡的车联网资源分配方法 |
CN113507503A (zh) * | 2021-06-16 | 2021-10-15 | 华南理工大学 | 一种具有负载均衡的车联网资源分配方法 |
CN113391556B (zh) * | 2021-08-12 | 2021-12-07 | 中国科学院自动化研究所 | 基于角色分配的群体分布式控制方法及装置 |
CN113391556A (zh) * | 2021-08-12 | 2021-09-14 | 中国科学院自动化研究所 | 基于角色分配的群体分布式控制方法及装置 |
CN113849303B (zh) * | 2021-08-30 | 2024-06-28 | 浪潮电子信息产业股份有限公司 | 一种多级联邦yarn集群的资源分配方法、装置、设备 |
CN113849303A (zh) * | 2021-08-30 | 2021-12-28 | 浪潮电子信息产业股份有限公司 | 一种多级联邦yarn集群的资源分配方法、装置、设备 |
CN114578712B (zh) * | 2022-03-08 | 2023-09-26 | 北京航空航天大学 | 多功能水下自主航行器集群仿真系统 |
CN114578712A (zh) * | 2022-03-08 | 2022-06-03 | 北京航空航天大学 | 多功能水下自主航行器集群仿真系统 |
CN115292074B (zh) * | 2022-10-09 | 2023-01-24 | 中科星图测控技术(合肥)有限公司 | 一种基于gRPC协议的轨道分析算法服务的调用方法和装置 |
CN115292074A (zh) * | 2022-10-09 | 2022-11-04 | 中科星图测控技术(合肥)有限公司 | 一种基于gRPC协议的轨道分析算法服务的调用方法和装置 |
CN118041918A (zh) * | 2024-04-12 | 2024-05-14 | 天城智创(天津)科技有限公司 | 一种用于数字化可视平台的分布式信息化数据传输方法 |
CN118041918B (zh) * | 2024-04-12 | 2024-07-12 | 天城智创(天津)科技有限公司 | 一种用于数字化可视平台的分布式信息化数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110278249B (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110278249A (zh) | 一种分布式群体智能系统 | |
CN110266771A (zh) | 分布式智能节点及分布式群体智能统部署方法 | |
CN109240821B (zh) | 一种基于边缘计算的分布式跨域协同计算与服务系统及方法 | |
Lv et al. | AI-enabled IoT-edge data analytics for connected living | |
Lees et al. | Distributed simulation of agent-based systems with HLA | |
Borges et al. | Care HPS: A high performance simulation tool for parallel and distributed agent-based modeling | |
Morell et al. | Jsdoop and tensorflow. js: Volunteer distributed web browser-based neural network training | |
Rossant et al. | Playdoh: a lightweight Python library for distributed computing and optimisation | |
Rodríguez et al. | Trends on the development of adaptive virtual organizations | |
Latoschik et al. | A scala-based actor-entity architecture for intelligent interactive simulations | |
Taylor et al. | Developing interest management techniques in distributed interactive simulation using Java | |
Ernsting et al. | A scalable farm skeleton for hybrid parallel and distributed programming | |
Sodan | Yin and yang in computer science | |
Balicki et al. | Big data processing by volunteer computing supported by intelligent agents | |
de Carvalho-Junior et al. | The design of a CCA framework with distribution, parallelism, and recursive composition | |
Maroosi | A cuckoo search algorithm inspired from membrane systems | |
Chai et al. | High-performance cloud simulation platform advanced research of cloud simulation platform | |
Solar et al. | Improving communication patterns for distributed cluster-based individual-oriented fish school simulations | |
Veit et al. | The FTA design paradigm for distributed systems | |
Chuang | Design and qualitative/quantitative analysis of multi-agent spatial simulation library | |
MEMON et al. | A technique to differentiate clustered operating systems | |
Lin et al. | Specifying distributed multi-agent systems in chemical reaction metaphor | |
Manne | Parallel particle swarm optimization | |
dos Santos et al. | A parallel fipa architecture based on gpu for games and real time simulations | |
Sanders | A Call for a New Army Modeling Framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220130 Address after: 430051 room 3502, unit 1, building 403, No. 60, Wulong Road, Hanyang District, Wuhan City, Hubei Province Applicant after: Wang Jingyi Address before: 300000 yo-16002, 16th floor, Baoyuan building, No. 3699 Xinhua Road, pilot free trade zone (central business district), Binhai New Area, Tianjin Applicant before: Tianjin Shen Rabbit Future Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |