CN114912041A - 信息处理方法、电子设备和计算机程序产品 - Google Patents
信息处理方法、电子设备和计算机程序产品 Download PDFInfo
- Publication number
- CN114912041A CN114912041A CN202110129341.9A CN202110129341A CN114912041A CN 114912041 A CN114912041 A CN 114912041A CN 202110129341 A CN202110129341 A CN 202110129341A CN 114912041 A CN114912041 A CN 114912041A
- Authority
- CN
- China
- Prior art keywords
- agent
- content
- network
- node
- caching
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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
- H04L67/59—Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
-
- 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/75—Indicating network or usage conditions on the user display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开的实施例提供了一种信息处理方法、电子设备和计算机程序产品。在该信息处理方法中,从仿真器向用于强化学习的智能体提供仿真网络的第一网络状态表示和第一内容请求事件,第一内容请求事件表示仿真网络中的请求节点请求源节点中存储的目标内容。仿真器从智能体接收第一动作信息,第一动作信息指示由智能体确定的第一缓存动作,第一缓存动作包括将目标内容缓存在请求节点与源节点之间的至少一个缓存节点中。仿真器基于在仿真网络中执行第一缓存动作,收集用于训练智能体的第一训练数据。以此方式,本公开的实施例为用于内容缓存决策的智能体提供了简便的仿真器和高效的训练方案。
Description
技术领域
本公开的实施例一般地涉及信息技术和计算机技术,并且更特别地涉及一种信息处理方法、电子设备和计算机程序产品。
背景技术
以信息为中心的网络(ICN)尝试改变当前互联网架构的焦点。以前的网络架构着重于在两个机器之间创建对话。例如,这在命名系统中是明显的,在命名系统中,统一资源定位符(URL)通过域名系统(DNS)解析,指示要与之通信以接收数据或执行操作的机器。与此不同,ICN架构的目标是将焦点从连接到另一机器转移到获取数据。在ICN中,数据或内容变得独立于位置、应用、存储和传输方式,从而使得数据或内容在网络内的缓存和复制成为可能。
另一方面,强化学习(RL)由于其灵活性和良好性能,现在变得越来越流行。在将强化学习应用于真实场景之前,可以与强化学习智能体(agent)交互的对应训练环境是必要的部分。但是,在大多数情况下,与智能体交互的该环境是不可用的。遗憾的是,在将强化学习运用到针对ICN的缓存系统时也不例外。然而,所提出的ICN在一定程度上减轻了由5G等新技术带来的不堪重负的工作量。而缓存机制是ICN的核心思想之一,其可以为网络带来许多益处。因此,可能可取的是,利用强化学习在ICN网络或内容可以被缓存的其他任何网络中,作出更为优化的缓存策略。
发明内容
本公开的实施例提出了一种强化学习环境的仿真器以及仿真器与智能体交互的技术方案,该仿真器可以用于仿真网络缓存系统并且可以与强化学习的智能体交互,以训练智能体在网络中作出优化的内容缓存决策。更具体地,本公开的实施例提供了一种信息处理方法、电子设备和计算机程序产品。
在本公开的第一方面,提供了一种信息处理方法。该方法包括:从仿真器向用于强化学习的智能体提供仿真网络的第一网络状态表示和第一内容请求事件,第一内容请求事件表示仿真网络中的请求节点请求源节点中存储的目标内容。该方法还包括:从智能体接收第一动作信息,第一动作信息指示由智能体确定的第一缓存动作,第一缓存动作包括将目标内容缓存在请求节点与源节点之间的至少一个缓存节点中。该方法进一步包括:基于在仿真网络中执行第一缓存动作,收集用于训练智能体的第一训练数据。
在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理器以及存储有计算机程序指令的至少一个存储器。至少一个存储器和计算机程序指令被配置为,与至少一个处理器一起,使电子设备:从仿真器向用于强化学习的智能体提供仿真网络的第一网络状态表示和第一内容请求事件,第一内容请求事件表示仿真网络中的请求节点请求源节点中存储的目标内容。至少一个存储器和计算机程序指令还被配置为,与至少一个处理器一起,使电子设备:从智能体接收第一动作信息,第一动作信息指示由智能体确定的第一缓存动作,第一缓存动作包括将目标内容缓存在请求节点与源节点之间的至少一个缓存节点中。至少一个存储器和计算机程序指令进一步被配置为,与至少一个处理器一起,使电子设备:基于在仿真网络中执行第一缓存动作,收集用于训练智能体的第一训练数据。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令。机器可执行指令在被执行时使机器执行根据第一方面的方法的步骤。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其他特征通过以下的描述将变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得容易理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施例。
图1示出了本公开的实施例可以在其中实现的示例信息处理环境的示意图。
图2示出了根据本公开的实施例的强化学习设置中在智能体与环境之间的交互。
图3示出了根据本公开的实施例可以将传统方法所需要的多个计算机(或多个虚拟机)简化为仅需要单个计算设备的示例场景。
图4示出了根据本公开的实施例的示例信息处理方法的流程图。
图5示出了根据本公开的实施例的在仿真器与智能体之间的第一循环的示意图。
图6示出了根据本公开的实施例的在仿真器与智能体之间执行第二循环的示例过程的流程图。
图7示出了根据本公开的实施例的在仿真器与智能体之间的第二循环的示意图。
图8示出了根据本公开的实施例的在仿真器与智能体之间的第N循环的示意图。
图9示出了用于评估以信息为中心的网络(ICN)中的缓存性能的常规仿真器的工作流程。
图10示出了通过改进常规仿真器所实现的本公开的实施例的仿真器的工作流程架构。
图11示出了通过改进常规仿真器所实现的本公开的实施例的仿真器用于训练智能体的工作流程。
图12示出了根据本公开的实施例的利用仿真器来测试智能体的性能参数的示例过程的流程图。
图13示出了根据本公开的实施例的用于训练和测试智能体的Q网络架构。
图14A和图14B分别示出了根据本公开的实施例与传统方法进行性能比较的两个实验结果。
图15示出了根据本公开的实施例的仿真器相对于传统的以信息为中心的网络(ICN)的仿真器所实现的多项改进。
图16示出了可以被用来实施本公开的实施例的示例设备的框图。
贯穿所有附图,相同或者相似的参考标号被用来表示相同或者相似的组件。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理和精神。应当理解,描述这些实施例仅是为了使本领域的技术人员能够更好地理解并实现本公开,而并非以任何方式限制本公开的范围。在本文的描述和权利要求中,除非另有定义,否则本文中使用的所有技术术语和科学术语具有与本公开所属领域的普通技术人员通常所理解的含义。
如上文提到的,可能可取的是,利用强化学习在ICN网络或内容可以被缓存的其他任何网络中,作出更为优化的缓存策略。作为简单的介绍,以信息为中心的网络(ICN)是一种使互联网基础结构脱离以主机为中心的范例的方法。由于5G等技术的发展,ICN也称为各个企业或其他实体的战略路线图中提到的一个重要领域,如今进行了许多相关研究。在ICN中,找到一种管理缓存系统的好方法是很重要的。在这种情况下,强化学习(RL)可能是一种不错的选择。但是,要训练RL算法,可能需要有一个环境。当前,没有任何仿真器可用于测试和训练RL智能体。
鉴于传统方案中存在的上述问题以及潜在的其他问题,本公开的实施例提出了一种强化学习环境的仿真器以及仿真器与智能体交互的技术方案,该仿真器可以用于仿真网络缓存系统并且可以与强化学习的智能体交互,以训练智能体在网络中作出优化的内容缓存决策。在本公开的实施例中,从仿真器向用于强化学习的智能体提供仿真网络的第一网络状态表示和第一内容请求事件,第一内容请求事件表示仿真网络中的请求节点请求源节点中存储的目标内容。接着,仿真器从智能体接收第一动作信息,第一动作信息指示由智能体确定的第一缓存动作,第一缓存动作包括将目标内容缓存在请求节点与源节点之间的至少一个缓存节点中。然后,仿真器基于在仿真网络中执行第一缓存动作,收集用于训练智能体的第一训练数据。以此方式,本公开的实施例为用于内容缓存决策的智能体提供了简便的仿真器和高效的训练方案。下文参考附图来描述本公开的一些示例实施例。
图1示出了本公开的实施例可以在其中实现的示例信息处理环境100的示意图。如图1所示,信息处理环境100可以包括用于实现仿真器120和智能体130的计算设备110。需要说明的是,仿真器120和智能体130两者均可以采用软件、硬件或两者组合的方式来实现。还需要说明的是,尽管图1中将仿真器120和智能体130示出为实现在同一计算设备110中,但是这仅是示例性的,无意以任何方式限制本公开的范围。在其他实施例中,仿真器120和智能体130可以分别实现在不同的计算设备中。替换地,仿真器120和智能体130中的一者或两者可以被分布式地实现在多个计算设备中。
在一些实施例中,仿真器120可以仿真需要由智能体130执行强化学习的环境,而智能体130即为用于对仿真器120仿真的环境进行强化学习的模型、算法、其他形式或实体。例如,在图1的示例中,仿真器120可以提供仿真的网络140,下文也称为仿真网络140。作为示例,仿真网络140可以包括多个节点,例如节点140-1至140-6,等等。在一些实施例中,仿真网络140可以具有某种网络拓扑。例如,在图1的示例中,节点140-1连接到节点140-2,节点140-2和140-3连接到节点140-5,节点140-5连接到节点140-4和140-6。需要注意的是,图1中示出的特定数目的节点和特定网络拓扑结构仅是示意性的,无意以任何方式限制本公开的范围。在其他实施例中,仿真网络140可以具有任何数目的节点和任何网络拓扑结构。另外,在一些实施例中,仿真网络140中的节点数目和拓扑结构可能是动态的,也即,可能随着时间而改变。
在仿真网络140中,各个节点(例如,节点140-1至140-6等)中的部分或全部节点中可能存储有内容。如本文中使用的,“内容”可以一般性地指代任何数据或信息,其可以在不同节点之间被传输和缓存。将理解,不同节点中存储的内容可能是相同的,也可能是不同的,并且不同节点中存储的内容数目可能是相同的,也可能是不同的。因此,在一些情况下,某个节点可能需要获得其不具有的目标内容。在这样的情况下,该节点可以向仿真网络140中存储有该目标内容的源节点请求将该目标内容传输到该请求节点。在目标内容从源节点传输到请求节点的过程中,可能经过一个或多个中间节点。在一些情形中,这些中间节点中的一个或多个中间节点可以缓存该目标内容,从而后续有其他节点再次请求该目标内容时,这些缓存可以作为提供该目标内容的源节点。为了描述的简便,对目标内容进行缓的节点可以称为缓存节点。
需要说明的是,在本公开的上下文中,“请求节点”可以一般性地指代发出内容请求的节点,“源节点”可以一般性地指代其存储的内容被请求的节点,而“缓存节点”可以一般性地指代将传输的内容进行缓存的节点。在一些实施例中,“请求节点”“源节点”和“缓存节点”可能是功能或结构相同的节点,其区别可能仅在于源节点存储有请求节点和缓存节点不具有的内容,而请求节点和缓存节点的区别可以仅在于是否发出内容请求。在其他实施例中,“请求节点”“源节点”和“缓存节点”也可以是在结构和功能上不同的节点。例如,“源节点”可以是功能更强大且结构更复杂的节点,诸如计算机网络中的服务器、通信网络中的基站,等等。相比之下,“请求节点”或“缓存节点”可以是功能相对较弱且结构相对简单的节点,诸如计算机网络中的普通计算机、通信网络中的移动终端,等等。在一些情况下,“缓存节点”也可以是功能和结构介于“源节点”和“请求节点”之间的节点。在其他实施例中,“缓存节点”可以在功能和结构上与“源节点”或“请求节点”相同。
一般地,仿真器120所提供的仿真网络140可以是如下的任何网络,在该网络中,请求节点可以向源节点请求内容,并且缓存节点可以在传输该内容期间缓存该内容。在一些实施例中,仿真网络140可以是以信息为中心的网络(ICN)。在ICN中,数据或内容变得不受位置、应用、存储和传输方式的限制,从而可以进行网络内的缓存和复制。这样,缓存节点可以对内容或数据的子集进行缓存并且可以充当如下的层,该层可以提供请求节点(例如,客户端)的快速数据访问,同时减少源服务器上的业务压力。缓存节点可以本地位于设备(例如,智能手机存储器)上、网络(例如,内容递送网络CDN)的边缘、托管在数据库服务器(例如Redis)附近,或者前述的组合。
在某种程度上,ICN通过转移关注点解决了一些问题,但提出了一些新问题。例如,在递送内容时,应该选择在哪个节点上缓存此内容(缓存分配)。在选择要缓存内容的节点之后,出现第二个问题。也即,这些缓存节点的存储空间大小可能受到限制,尤其是在缓存节点被部署在客户端设备上时。当缓存的内容超过其最大容量时,需要使用缓存逐出算法来决定要逐出哪个内容(缓存替换)。幸运的是,强化学习在这种情形下可以提供帮助。总体而言,在本公开的一些实施例中,仿真器120和智能体130可以被设计为主要专注于如何仿真缓存分配过程和缓存替换过程。
如上文提到的并且在图1进一步示出的,仿真器120可以与用于强化学习的智能体130进行交互,以便训练或测试智能体130。由于强化学习的普遍性,强化学习在博弈论、控制论、运筹学、信息论、仿真库优化等许多其他学科中也得到了研究。在形式上,强化学习是一种顺序决策过程,在此过程中,用于强化学习的智能体130可以通过与环境(例如,仿真器120提供的仿真网络140)的交互来学习最优策略。下文参考图2来简要地介绍强化学习中智能体与环境之间的交互过程。
图2示出了根据本公开的实施例的强化学习设置中在智能体210与环境220之间的交互。在一些实施例中,图1中描绘的智能体130可以认为是图2中智能体210的示例,并且图1中由仿真器120提供的仿真网络140可以认为是图2中环境220的示例。如图2所示,在智能体210与环境220的交互过程中,环境220可以向智能体210提供与环境220有关的状态。然后,智能体210可以基于环境220提供的状态来确定要在环境220中执行的动作。接着,环境220可以通过执行智能体210指示的动作来确定给予该动作的奖励(正奖励或负奖励,也即惩罚),以向智能体210指示动作是好(被鼓励)还是坏(需要避免)。一般地,智能体210的目标是最大化未来奖励的预期总和,这可以通过以下方式来实现:在多个步骤(状态-动作转换)中进行训练,并且选择返回最大折扣期望奖励函数的动作。
通常,强化学习算法可以分为两类,也即,基于模型的和无模型的。在无模型的算法中,智能体210没有系统的先验知识,而是在真实环境中执行动作来学习动作对环境220的影响。因此,无模型的算法不需要开发者的输入,非常灵活,并且易于设置。相反,基于模型的算法学习环境的模型,然后智能体210从与所得到的环境模型的交互中继续学习。该环境模型为智能体210提供了更多的仿真步骤,从而使智能体210更快地收敛到最佳策略。然而,基于模型的方法在设计时可能非常具有挑战性,因为环境模型必须准确反映实际环境。因此,在一些实施例中,为了在实践中可以简便地利用本公开的实施例提供的系统,本公开提出的仿真器120可以针对无模型的强化学习算法来实现,并且可以使用加权奖励系统来反映某些场景中的要求。当然,在其他实施例中,本公开提出的仿真器120也可以针对基于模型的强化学习算法来实现。
如上文描述的,强化学习训练的基础是交互式环境。针对强化学习的仿真器120通常需要具有以下特征以便与强化学习的智能体130交互。首先可能需要的特征是环境的状态表示。通常,环境的状态表示可以是与实际环境中的传感器读数相匹配的对象或数据数组。对于强化学习而言,可能重要的是状态具有马尔科夫(Markov)属性,从而对值的预测可以是准确的。对于某些环境,这意味着要从观测来计算所得出的值,或者将来自传感器的最近几次观测的组合历史表示为状态。例如,状态可以保存在环境的内部表示中,这是典型的面向对象的方法。又例如,状态也可以作为参数传递给其他函数。在一些实施例中,一种简单的状态表示可能是固定大小的数字数组,其可以表示环境的重要特征。为方便起见,在与神经网络一起使用时,这些数字可以被缩放在-1和1之间。
另外,强化学习的仿真器120可能需要的另一特征可以是动作表示。例如,简单的动作表示可以是一个整数,其可以标识从0开始的N个动作中的哪个动作被选择。这允许在检查价值函数估计时进行基本索引查找。此外,强化学习的仿真器120可能需要的又一特征可以是奖励函数。这可以是问题定义的一部分。有时可能希望将奖励函数(例如,代码)作为环境的一部分或智能体的一部分,或者在介于两者之间的某个位置,具体取决于其被更改的可能性大小。例如,如果需要运行多个实验来优化控制的不同方面,但是需要在同一环境中,则可以制作完全独立的奖励计算模块,并且与智能体130(例如,智能体代码)和环境140(例如,环境代码)在高层级进行组合。
通常,奖励函数的设计可能是一个复杂的主题。但是,设计的基本原则可以是,奖励值可以始终为单个实数值(也即,大多数编程语言中的浮点数)。另一方面。因为本公开中提出的方法的目的之一是建立集成系统,所以在这种系统中将考虑更多的因素。这些因素之一可能是需要灵活的奖励算法来反映多个场景的不同需求。例如,有时缓存节点中可能没有太多空间,因此最重要的要求是考虑存储空间,然后是对效率的要求。在这种情况下,将给予与存储空间相关的奖励更多的权重,并且减小与效率相关的奖励的权重。
再者,强化学习的仿真器120可能需要的又一特征可以是时间步函数。时间步函数可以采取行动选择,并且可以针对时间步更新状态,返回环境的下一状态和对动作的立即奖励。如果环境是真实的,则环境(例如,环境代码)可以进行实际更改(例如,移动机器人手臂等),可能需要等待时间步长的过去,然后读取传感器以获取环境的下一状态并且计算动作的奖励。如果环境是仿真的,则环境(例如,环境代码)可以调用内部模型来计算环境的下一状态。在一些实施例中,时间步函数可以调用为任务提供的专有软件。
另外需要说明的是,如果环境中可用的动作取决于环境的当前状态,则针对该情况的功能(例如,代码)可以存在于环境仿真(例如,仿真网络140)或智能体130中,或者可以是智能体130可以调用的某种帮助函数,因此它可以在选择一个动作之前对动作进行过滤。概言之,图1中的仿真器120可能需要能够返回环境(例如,仿真网络140)的状态和针对智能体130的动作的奖励值,并且接受由智能体130给出的动作选择。
因此,在一些实施例中,仿真器120可以向智能体130提供仿真网络140的网络状态表示122、以及内容请求事件124。网络状态表示122可以表示仿真网络140的状态,而内容请求事件124可以表示请求节点向源节点请求某个目标内容的事件。例如,该请求事件可以是随机生成的。需要说明的是,尽管图1中将网络状态表示122和内容请求事件124描绘为一起被提供给智能体130,但是这仅是示例性的,无意以任何方式限制本公开的范围。在其他实施例中,网络状态表示122和内容请求事件124也可以分离地被提供给智能体130。
在接收到网络状态表示122和内容请求事件124之后,智能体130可以确定在仿真网络140中要执行的缓存策略或决策。例如,源节点和请求节点之间的哪个或哪些中间节点要缓存目标内容,和/或缓存节点中的哪个或哪些存储区域将缓存目标内容。基于缓存决策,智能体130可以向仿真器120提供动作信息126,以指示要在仿真网络140中执行的缓存动作。基于动作信息126所指示的缓存动作,仿真器120可以在仿真网络140中执行缓存动作,并且在本次的内容传送过程中进行相关的性能和参数的测量,从而收集用于训练智能体130的训练数据150。如上文提到的,智能体130可以通过软件、硬件或两者的组合来实现,其中通过软件的实现方式可能具有额外的技术优势,下文参考图3来进行说明。
图3示出了根据本公开的实施例可以将传统方法所需要的多个计算机(或多个虚拟机)310简化为仅需要单个计算设备320的示例场景300。也就是说,在图3的示例场景300中,图1中描绘的仿真器120可以被实现在单个计算设备320中。因此,图3中的单个计算设备320可以认为是图1中示出的计算设备110的示例。例如,在这样的实施例中,仿真器120可以是基于代码来实现的,因此可以仅需要一台带有代码编辑器的计算机。相比之下,传统方法则需要多台计算机(或多个虚拟机)310用于实现相同的功能。
在一些实施例中,计算设备110可以包括任何能够实现计算功能和/或控制功能的设备,包括但不限于,专用计算机、通用计算机、通用处理器、微处理器、微控制器、或状态机。计算设备110可以实施为个体计算设备或计算设备的组合,例如,数字信号处理器(DSP)和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核心、或者任何其他这样的配置。另外要指出的是,在本公开的上下文中,计算设备110也可以称为电子设备110,这两个术语在本文中可以互换地使用。
在一些实施例中,本公开所涉及的系统中的各个组件之间的通信链路可以是能够实现这些组件之间的数据通信或控制信号通信的任何形式的连接或耦合,包括但不限于,同轴电缆、光纤电缆、双绞线、或无线技术(诸如红外、无线电和微波)。在一些实施例中,通信链路还可以包括但不限于,网卡、集线器、调制解调器、中继器、网桥、交换机、路由器等用于网络连接的设备、以及各种网络连接线路、无线链路等。在一些实施例中,通信链路可以包括各种类型的总线。在其他实施例中,通信链路可以包括计算机网络、通信网络、或者其他有线或无线网络。
应当理解,图1仅示意性地示出了信息处理环境100中与本公开的实施例相关的单元、元素、模块或组件。在实践中,信息处理环境100还可以包括用于其他功能的其他单元、元素、模块或组件。此外,图1中示出的单元、元素、模块或组件的特定数目仅是示意性的,无意以任何方式限制本公开的范围。在其他实施例中,信息处理环境100可以包括任何适当数目的计算设备和相关元素。因此,本公开的实施例不限于图1所描绘的具体场景,而是一般性地适用于任何用于信息处理的技术环境。
图4示出了根据本公开的实施例的示例信息处理方法400的流程图。在一些实施例中,方法400可以由环境100中的计算设备110中的仿真器120来实现,例如可以由计算设备110用于实现仿真器120的处理器或处理单元来实现,或者由计算设备110的用于实现仿真器120的各种功能模块来实现。在其他实施例中,方法400也可以由独立于环境100的计算设备中的仿真器来实现,或者可以由环境100中的用于实现仿真器的其他单元或模块来实现。为了便于说明,将结合图5来描述方法400。
图5示出了根据本公开的实施例的在仿真器120与智能体130之间的第一循环500的示意图。需要说明的是,图5中示出的场景可以认为是图1中描绘的仿真器120与智能体130之间的交互过程的一个示例部分。例如,仿真器120与智能体130之间的交互过程可以包括多个循环,每个循环可以是指仿真器130向智能体130发出仿真网络140的一次状态表示122和一次内容请求事件124,然后智能体130向仿真器120发出一次动作表示126,接着仿真器130在仿真网络140中执行智能体130指定的一次缓存动作,并且收集一次训练数据150。
在一些实施例中,图5中示出的第一循环500可以是仿真器120与智能体130的交互过程中的多个循环中的任何一次循环。换言之,第一循环500并不一定是仿真器120之间智能体130的第一次循环,也即,在第一循环500之前可能存在另一次循环。当然,在其他实施例中,第一循环500也可以是仿真器120之间智能体130的第一次循环。也即,在第一循环500之前不存在另一次循环。在这种场景中,仿真器120和智能体130可能被初始化,并且准备开始进行用于训练智能体130的交互过程。
参考图4和图5,在图4的框410处,仿真器120向用于强化学习的智能体130提供仿真网络140的第一网络状态表示122-1和第一内容请求事件124-1。需要说明的是,尽管图5中将第一网络状态表示122-1和第一内容请求事件124-1描绘为同时从仿真器120被发送给智能体130,但是这仅是示意性的,无意以任何方式限制本公开的范围。在其他实施例中,仿真器120也可以将第一网络状态表示122-1和第一内容请求事件124-1分开地提供给智能体130。
在一些实施例中,第一网络状态表示122-1可以包括仿真网络140的网络拓扑和仿真网络140中的各个节点的节点特性。以此方式,仿真器120可以向智能体130提供必要的关于仿真网络140及其节点的信息,以使智能体130可以基于这些丰富信息而被训练出具有提出更优化缓存决策的能力。例如,第一网络状态表示122-1中的网络拓扑将会影响内容在节点之间的传输路径,因此将会影响智能体130的缓存决策。在一些实施例中,仿真网络140的拓扑(例如,原始拓扑)可以基于快速网络仿真设置(FNSS)工具链来构建。以此方式,FNSS工具链可以返回与仿真网络140中的各个节点有关的邻接矩阵和节点矩阵,可以几乎完美地描述网络图形的拓扑。
此外,在一些实施例中,第一网络状态表示122-1中的节点特性可以包括节点类型,从而智能体130可以根据各个节点的类型而被训练为作出更优化的缓存决策。例如,如果仿真网络140是以信息为中心的网络,那么通常仿真网络140中可以存在三种类型的节点,也即,源节点、缓存节点和请求节点(在ICN中也可以称为目标节点)。在ICN的节点定义中,源节点可以是存储内容的节点,目标节点可以是请求内容的节点,缓存节点是具有缓存内容能力的特殊目标节点。另外地或替换地,第一网络状态表示122-1中的节点特性可以包括节点的缓存状态。例如,节点中是否缓存有内容,或者节点中缓存的内容的标识符,等等。基于缓存状态信息,智能体130可以根据各个节点的缓存状态而被训练为作出更优化的缓存决策。
另外地或替换地,第一网络状态表示122-1中的节点特性可以包括节点中内容的内容特性,从而智能体130可以根据各个节点的中的各个内容的特性而被训练为作出更优化的缓存决策。在一些实施例中,内容特性可以包括内容的请求频率,其可以表明内容是否经常被请求。例如,在选择被替换的内容时,智能体130可以优先替换掉请求频率较低的内容。在另一些实施例中,内容特性可以包括内容被缓存的时间,其可以表明被缓存的内容的新旧程度。例如,在选择被替换的内容时,智能体130可以优先替换掉被缓存的时间较早的内容。
在其他实施例中,内容特性可以包括内容的近期热度(本文中也可以称为受欢迎程度),其可以基于内容的请求频率和内容上次被请求的时间来确定。由于近期热度综合考虑了内容被请求的频率和近期是否被请求,所以可以更好地体现出内容当前的受欢迎程度。例如,在选择被替换的内容时,如果有两个内容可供选择被替换掉,而这两个内容的访问频率相同或相差不大,则智能体130可以优先替换掉上次被请求的时间较早的内容。通过上述这些内容特性,智能体130可以更好地确定某个内容是否可以被需要缓存的新内容替换掉,从而更好地被训练为作出更优化的缓存决策。
继续参考图5,第一内容请求事件124-1可以表示仿真网络140中的请求节点请求源节点中存储的目标内容的这一事件。如上文提到的,在一些实施例中,第一内容请求事件124-1可以是随机生成的。这是合理的,因为在现实的网络中,网络中发生的请求事件也可以认为是一种随机过程。因此,基于第一内容请求事件124-1,智能体130可以基于请求事件中涉及到的节点和内容特性等,而被训练为作出更优化的缓存决策。
继续参考图4和图5,在图4的框420处,仿真器120从智能体130接收第一动作信息126-1。第一动作信息126-1可以指示由智能体130确定的第一缓存动作。例如,第一内容请求事件124-1中的目标内容要缓存在哪个或哪些中间节点中。又例如,目标内容要缓存在节点的哪个或哪些存储区域中。作为示例,在从仿真器120接收到第一网络状态表示122-1和第一内容请求事件124-1之后,智能体130可以获知仿真网络140的拓扑、请求节点、源节点和所请求的目标内容,从而可以确定出目标内容从源节点传输到请求节点的传输路径。在一些实施例中,如果存在可选择的多条传输路径,则智能体130可以从这些传输路径中选择优选的传输路径,以优化目标内容的传输性能。
在确定出目标内容的传输路径之后,智能体130可以进一步确定出请求节点与源节点之间的目标内容将会经过的中间节点。接着,基于第一网络状态表示122-1中各种信息,例如,网络拓扑信息和节点特性信息,智能体130可以使用强化学习模型来作出关于目标内容的缓存决策。一般地,智能体130作出的缓存决策可以是与目标内容的缓存有关的任何需要决定的内容。因此,在本公开的上下文中,“缓存决策”也可以被称为“缓存动作”。如上文提到的,在一些实施例中,这样的缓存动作可以包括哪个或哪些中间节点需要对目标内容执行缓存操作。因此,第一缓存动作可以包括将目标内容缓存在请求节点与源节点之间的一个或多个缓存节点中。在确定了与目标内容相关联的缓存动作之后,智能体130可以向仿真器120提供第一动作信息126-1,其表示由智能体130确定的第一缓存动作。
在一些实施例中,由第一动作信息126-1指示的第一缓存动作可以从第一动作集合中选择。第一动作集合可以使用第一比特集合来表示,第一比特集合的比特数目等于仿真网络140的节点数目,并且每个比特可以指示对应节点是否将缓存目标内容。每个节点对应一个比特,该比特的取值指示该节点是否要缓存目标内容。以此方式,目标内容将要被缓存在哪个节点中可以通过位图的方式来高效表达,从而提高了动作表示的效率。在一些实施例中,如果智能体130是针对整个仿真网络140设计的,则第一动作集合中的动作数目可以取决于仿真网络140中的节点数目。例如,在节点数目为n的情况下,第一动作集合中的动作数目可以是2n。如此,可以排除在设置多个智能体的情形中在多个智能体之间的信息交互,从而节省了相关资源。在一些实施例中,如果智能体130是针对仿真网络140中的一个节点设计的,则第一动作集合可以包括两个动作,也即,缓存和不缓存。这样,智能体130的设计可以被简化。
在其他实施例中,智能体130向仿真器120指示的缓存动作还可以进一步包括需要缓存目标内容的某个缓存节点应当将目标内容缓存在缓存节点中的哪个存储区域中。也即,在缓存节点存储空间已满的情况下,目标内容应当替换掉缓存节点中的哪个已有内容。以此方式,智能体130可以通过简单的动作表示来指示目标内容要存储的具体存储区域或将被替换的内容。因此,在一些实施例中,由第一动作信息126-1指示的第一缓存动作可以从第二动作集合中选择。第二动作集合中的动作可以指示将目标内容缓存在缓存节点中的目标存储区域。在一些实施例中,如果智能体130是针对整个仿真网络140设计的,则第二动作集合中的动作数目可以取决于仿真网络140中的节点数目和节点中的存储区域数目。如此,可以排除在设置多个智能体的情形中在多个智能体之间的信息交互,从而节省了相关资源。例如,在节点有k个存储区域且仿真网络140包括n个节点时,该动作数目可以是nk。在一些实施例中,如果智能体130对应仿真网络140中的一个节点,则第二动作集合中的动作数目可以取决于节点的存储区域数目。这样,智能体130的设计可以被简化。例如,在缓存节点有k个存储区域时,该动作数目可以是k。
继续参考图4和图5,在图4的框430处,仿真器120基于在仿真网络140中执行由智能体130确定的第一缓存动作,并且收集用于训练智能体130的第一训练数据150-1。一般而言,第一训练数据150-1可以包括可以实现智能体130的训练的任何数据。在一些实施例中,第一训练数据150-1可以包括更利于训练智能体130的数据,例如,第一网络状态表示122-1、第一动作信息126-1、和/或针对第一缓存动作的奖励值,等等。这样,仿真器120可以收集更有利于对智能体130进行训练的相关数据,从而可以更好地实现对智能体130的训练。在一些实施例中,奖励值可以基于仿真器120的奖励函数来确定,而奖励函数可以基于所缓存的内容的命中率、所请求的内容的平均延迟、和/或传输所请求的内容所占用的带宽,等等。以此方式,智能体130可以被训练为作出的缓存决策将使得这些参数被优化,从而改进仿真网络140中的内容缓存和传输性能。在一些实施例中,上述命中率、平均延迟和带宽在奖励函数中各自可以具有可调节的权重。因此,各个参数在训练中的重要性,同时也是这些参数在训练后的智能体130提供缓存决策时的重要性,可以灵活地被调节。
在一些实施例中,仿真器120可以基于仿真器120的时间步函数来确定的时间步,在仿真网络140中执行智能体130指示的第一缓存动作。如上文指出的,时间步函数可以采取行动选择,并且可以针对时间步更新状态,确定仿真网络140的下一状态和针对第一缓存动作的立即奖励。以此方式,仿真器120可以更好地在时间上控制或管理与智能体130之间的交互过程。
在一些实施例中,如果仿真器120收集到第一训练数据150-1,则仿真器120可以存储第一训练数据150-1,而不是立即将第一训练数据150-1提供给智能体130。这样,仿真器120可以按批次地累积训练数据150,从而减少了仿真器120和智能体130的计算量,也节省了相关的资源占用量。此外,在第一训练数据150-1被存储之后,仿真器120还可以对第一训练数据150-1执行预处理,例如处理第一训练数据150-1中的无用数据(诸如空值或离群值等)、对第一训练数据150-1进行归一化或数据缩放、编码特征、离散化,等等。以此方式,基于第一训练数据150-1对智能体130的训练效果可以被优化。当然,在其他实施例中,如果仿真器120收集到第一训练数据150-1,仿真器120也可以将第一训练数据150-1立即提供给智能体130。这样,可以节省用于存储第一训练数据150-1的存储资源。
在通常的情况下,为了对智能体130进行充分训练,仿真器120与智能体130之间仅执行一次循环500可能是不足够的。因此,在一些实施例中,仿真器120与智能体130之间在结束了第一循环500之后,可以继续进行第二循环。换言之,仿真器130可以向智能体130发出仿真网络140的又一次状态表示122和又一次内容请求事件124,然后智能体130可以向仿真器120发出又一次动作表示126,接着仿真器130可以在仿真网络140中执行智能体130指定的又一次缓存动作,并且可以收集又一次训练数据150。以此方式,仿真器120可以更充分地训练智能体130。下文参考图6和图7来描述这样的实施例。
图6示出了根据本公开的实施例的在仿真器120与智能体130之间执行第二循环的示例过程600的流程图。在一些实施例中,过程600可以由环境100中的计算设备110中的仿真器120来实现,例如可以由计算设备110用于实现仿真器120的处理器或处理单元来实现,或者由计算设备110的用于实现仿真器120的各种功能模块来实现。在其他实施例中,过程600也可以由独立于环境100的计算设备中的仿真器来实现,或者可以由环境100中的用于实现仿真器的其他单元或模块来实现。为了便于说明,将结合图7来描述过程600。
图7示出了根据本公开的实施例的在仿真器120与智能体130之间的第二循环700的示意图。需要说明的是,图7中示出的场景可以认为是图1中描绘的仿真器120与智能体130之间的交互过程的一个示例部分。例如,仿真器120与智能体130之间的交互过程可以包括多个循环,而第二循环700可以是图5中描绘的第一循环500之后进行的一次循环。
参考图6和图7,在图6的框610处,仿真器120可以基于由智能体130在第一循环500中提供的第一缓存动作来更新第一网络状态表示122-1,以确定仿真网络140的第二网络状态表示122-2。换言之,仿真器120在仿真网络140中执行图5中描绘的由智能体130提供的第一动作信息126-1执行的第一缓存动作。例如,按照智能体130提供的第一动作信息126-1,仿真器120将目标内容缓存到一个或多个中间节点中。又例如,在针对具体节点时,仿真器120将目标内容缓存到第一动作信息126-1中指定的具体存储区域中,等等。在完成了缓存动作之后,仿真器120可以确定出第二网络状态表示122-2。
在框620处,仿真器120可以向智能体130提供第二网络状态表示122-2和第二内容请求事件124-2。例如,第二网络状态表示122-2和第二内容请求事件124-2可以分别类似于第一网络状态表示122-1和第一内容请求事件124-1。因此,第二网络状态表示122-2和第二内容请求事件124-2的具体内容和相关过程此处不再赘述。当然,需要说明的是,由于内容请求事件124可以是随机生成的,所以第二内容请求事件124-2一般不同于第一内容请求事件124-1,但是两者也有可能是相同的。
在框630处,仿真器120可以从智能体130接收第二动作信息126-2,第二动作信息126-2指示由智能体130确定的第二缓存动作。例如,第二动作信息126-2和第二缓存动作可以分别类似于第一动作信息126-1和第一缓存动作。因此,第二动作信息126-2和第二缓存动作的具体内容和相关过程此处不再赘述。
在框640处,仿真器120可以基于在仿真网络140中执行第二缓存动作,收集用于训练智能体130的第二训练数据150-2。例如,仿真器120执行第二缓存动作的过程可以类似于仿真器120执行第一缓存动作的过程,并且仿真器120收集第二训练数据150-2的过程可以类似于仿真器120收集第一训练数据150-1的过程。此外,第二训练数据150-2的内容可以类似于第一训练数据150-1的内容。再者,类似于针对第一训练数据150-1,仿真器120可以存储和预处理第二训练数据150-2。另外,仿真器120也可以类似地基于时间步函数确定的时间步来执行第二缓存动作。因此,仿真器120执行第二缓存动作以收集第二训练数据150-2的过程此处不再赘述。
图8示出了根据本公开的实施例的在仿真器120与智能体130之间的第N循环800的示意图。需要说明的是,图8中示出的场景可以认为是图1中描绘的仿真器120与智能体130之间的交互过程的一个示例部分。例如,仿真器120与智能体130之间的交互过程可以包括多个循环,而第N循环800可以认为是一个训练时期(epoch)或一个训练阶段中的最后一次循环。
参考图8,与关于图6和图7描述的类似,仿真器120可以基于第N缓存动作来更新第N-1网络状态表示,以确定仿真网络140的第N网络状态表示122-N。然后,仿真器120可以向智能体130提供第N网络状态表示122-N和第N内容请求事件124-N。接着,仿真器120可以从智能体130接收第N动作信息126-N,第N动作信息126-N指示由智能体130确定的第N缓存动作。此后,仿真器120可以基于在仿真网络140中执行第N缓存动作,收集用于训练智能体130的第N训练数据150-N。
需要说明的是,第N循环800中涉及到的第N网络状态表示122-N、第N内容请求事件124-N、第N动作信息126-N、第N训练数据150-N等,可以分别类似于第一循环500中涉及到的第一网络状态表示122-1、第一内容请求事件124-1、第一动作信息126-1、第一训练数据150-1等,或者可以分别类似于第二循环700中涉及到的第二网络状态表示122-2、第二内容请求事件124-2、第二动作信息126-2、第二训练数据150-2等。此外,第N训练数据150-N的内容可以类似于第一训练数据150-1的内容和第二训练数据150-2的内容。再者,类似于针对第一训练数据150-1或第二训练数据150-2,仿真器120可以存储和预处理第N训练数据150-N。另外,仿真器120也可以类似地基于时间步函数确定的时间步来执行第N缓存动作。因此,第N网络状态表示122-N、第N内容请求事件124-N、第N动作信息126-N、第N训练数据150-N等的内容或相关过程在此将不再赘述。
在一些实施例中,如果收集到的训练数据150的数目达到预定数目N,仿真器120可以将收集到的预定数目N的训练数据150(例如,包括训练数据150-1至150-N)一起提供给智能体130。这样,一个训练阶段或训练时期中的循环次数可以由用户手动地进行灵活设置。在这样的实施例中,仿真器120可以集中地对训练数据150-1至150-N执行预处理,而不是在时间上分离地对训练数据150-1至150-N执行预处理,从而简化了仿真器120对训练数据150的预处理操作。
如上文提到的,在一些实施例中,图5中示出的第一循环500可以是仿真器120与智能体130之间的第一次循环。也即,在第一循环500之前不存在另一次循环。例如,仿真器120和智能体130可能完成初始化并准备开始用于训练智能体130的交互过程。在这样的实施例中,仿真器120的初始化可以包括确定仿真网络140的第一网络状态表示122-1、第一内容请求事件124-1、以及上述预定数目N。换言之,在初始化仿真器120时,仿真器120可以确定训练数据150在多少次循环之后集中提供给智能体130。通过对仿真器120的初始化,可以根据训练智能体130的需求来配置仿真器120的各种仿真参数,从而优化对智能体130的训练。
上文参考图1至图8描述了本公开的仿真器120及其与智能体130的交互过程的一些实施例。此外,上文中还针对各种不同的实施例简要地指出了仿真器120相对于传统方案可能具有的技术优点和益处。除了上文指出的优势之外,本公开的仿真器120还可能具有的新颖之处或改进之处在于,仿真器120可以是全新的基于代码的网络缓存RL仿真器。例如,它可以是完全基于Python语言的。传统上,人们总是部署许多虚拟机甚至许多真实的计算机来仿真网络(例如,ICN),本公开的实施例提供了一种简单的替代方法,对于想要对网络(例如,ICN)进行一些实验的人,可以仅需要一台计算机和诸如VS代码的代码编辑器,既方便又省时。
其次的改进之处可以在于仿真器120是训练RL的仿真器,其可以与RL智能体交互。具体而言,将RL训练中所需的奖励和状态信息返回为RL智能体中神经网络的输入。此外,仿真器120被设计为接受来自RL智能体的动作信息。因此,仿真器120可用于任何RL算法的缓存策略。再次的改进之处可以在于对网络中内容的内容表示。在大多数传统的仿真器(例如,Icarus仿真器)中,内容仅由数字表示。也即,在缓存系统中,内容的属性(在缓存系统中可能并非不重要)会被忽略。本公开的实施例提出了一种新的内容表示形式来对内容属性进行编码。本公开的实施例还提出了相应的RL训练过程,包括新的结果收集方式。此外,在仿真器120上已经测试了具体的RL算法,测试结果是非常良好的。
需要指出的是,尽管本公开的实施例的仿真器120可以是完全基于软件的。但是,在其他实施例中,本公开的实施例的仿真器120也可以基于硬件、或软件和硬件两者的组合方式来实现。另外,在一些实施例中,为了节省用于开发本公开的实施例的仿真器120的资源,仿真器120还可以基于对传统仿真器的改编来实现。例如,一种可以用于改变的传统仿真器可以是称为Icarus的仿真器。换句话说,作为示例实施例,本公开的实施例的仿真器120可以通过改进Icarus仿真器来实现。下文参考图9至图11来描述这样的实现方式。
图9示出了用于评估以信息为中心的网络(ICN)中的缓存性能的常规仿真器的工作流程900。例如,图9中描绘了常规的Icarus仿真器的相关流程900。作为一种ICN仿真器,Icarus是基于Python的离散事件仿真器,用于评估ICN中的缓存性能。Icarus可以不受任何特定ICN架构的约束,其设计可以使用户用很少的代码行来实现和评估新的缓存策略或缓存和路由策略。
如图9所示,Icarus仿真器的工作流程900可以包括场景生成910、实验编排920、实验执行930和结果收集940。场景生成910阶段包括设置完全配置的网络拓扑和用于仿真的随机事件生成器所需的所有步骤。例如,场景生成910可以基于FNSS工具链。在实验编排920阶段,Icarus仿真器可以从配置文件中读取用户希望仿真的参数范围(例如缓存大小,缓存策略,内容受欢迎程度分布等),并且使用所需的所有参数组合进行实验。然后,Icarus仿真器可以编排以在一组流程中并行执行实验。
实验执行930阶段包括实验的实际执行。Icarus仿真引擎的实例提供有场景描述(即,网络拓扑和事件生成器)。引擎从生成器读取事件,并将其分发给相关的处理程序。一个或多个数据收集器会测量各种用户指定的指标,并在实验结束时将结果返回给引擎,然后引擎会将其传递给结果汇总器。关于结果收集410和分析阶段,每次实验终止后,对象都会收集结果并将其汇总,并且允许用户计算置信区间、绘制结果、或以各种格式序列化数据以进行后续处理。但是,Icarus仿真器无法针对强化学习的场景使用,如果要在强化学习设置中使用Icarus仿真器,则需要进行针对RL训练的许多改进,下文将具体论述所需要的改进。
传统上,人们喜欢使用真实的计算机或虚拟机来训练和评估RL智能体,但是这既不方便也不高效。因此,需要一个完全基于代码的仿真器来释放建立仿真环境的努力。Icarus仿真器可能满足了RL仿真器的一些要求,但Icarus仿真器距离可以被应用于RL训练中还相差甚远,需要做许多改进和工作。首先需要的改进是使用代码仿真缓存过程。尽管很幸运地找到了基于代码的仿真器的基线,它可以在某种程度上解决这个问题,但是这仍然是人们在开始时就遇到的一个最初的问题。
其次需要的改进是仿真器适配问题。如前文所述,当前的Icarus仿真器需要进行很多修改才能成为RL仿真器。例如,内容在Icarus仿真器中当前由纯数字表示,但是内容的属性在缓存策略训练和测试中也很重要。然后需要的改进是RL仿真器设计。如何设计一个可扩展和灵活的RL仿真器是另一个问题,应该设计并轻松修改奖励和状态系统以在不同的RL设置中使用,还需要接受不同形式的动作并根据输入执行动作。再者需要的改进是RL缓存仿真器的RL训练框架。由于Icarus仿真器的特性,应当设计特定的RL训练框架来执行整个训练过程,还需要仔细设计和处理数据流以执行RL训练。
图10示出了通过改进常规仿真器所实现的本公开的实施例的仿真器1010的工作流程1000架构。需要说明的是,图10中描绘的仿真器1010可以认为是图1中的仿真器120的一种示例或实施例。为了针对RL缓存算法提供仿真器1010,例如纯基于代码的仿真器。在本公开中,首先设计了仿真器1010的工作流程,其中的某些部分(例如仿真过程)可以从Icarus仿真器改编。然后,在本公开中,设计了系统的输出(状态和奖励)和输入(动作),最后提出了详细的训练框架以在RL仿真器上训练智能体。
在工作流程1000中,仿真器1010可以分别执行拓扑和内容初始化1012、内容请求和递送1014、以及内容缓存1016。智能体1030(例如,其可以是图1的智能体130的示例)可以向仿真器1010指示如何执行内容缓存1016。在完成每次循环后,仿真器1010可以将训练数据存储在数据池1040中。在完成N次循环之后,数据池1040中存储的训练数据可以提供给智能体1030以用于训练智能体1030,例如,更新智能体1030的强化学习模型。
在仿真过程中,尽管Icarus仿真器在ICN内容递送和缓存过程仿真方面做得很好,但是一些细节被忽略。在这些细节中,内容表示是最重要的。在决定缓存策略时,内容属性也很重要。但是在Icarus仿真器中,内容以纯数字(内容ID)表示,在训练期间会丢失很多信息。因此,本公开的实施例也存储了这些内容的属性,例如存储在Python字典中。具体来说,添加到内容字典中的属性可以包括请求频率、缓存时间和受欢迎程度等。请求频率可以定义为在一段时间内(例如,1000个请求)对每个内容的请求数量进行计数,然后存储(时间,请求源)的配对。缓存时间是指缓存每个内容的时间也可以记录在字典中。受欢迎程度是根据请求频率和上次请求时间计算得出的,最终值用于表示一个节点或内容的受欢迎程度。
关于仿真器1010的输入和返回值,在完成仿真部分后,需要使仿真器1010适配成为RL仿真器。关于状态表示,由于ICN的拓扑确实会影响缓存决策,因此状态可以包含两部分:拓扑结构和节点特征。原始拓扑可以是基于FNSS构建的,FNSS可以返回邻接矩阵和节点矩阵,可以完美地描述图的拓扑。节点特征可以包括节点类型、缓存状态和内容属性等。节点类型可以是指ICN中的三种类型的节点。源节点是存储内容的节点,目标节点是请求内容的节点,缓存节点是具有缓存内容能力的特殊目标节点。缓存状态可以是指仿真器返回每个节点中缓存的内容ID。仿真器1010将返回当前的传递内容属性和缓存节点状态。
此外,关于奖励函数,其可以是字节命中率、平均延迟、带宽等参数的加权总和,用户可以轻松地在代码中修改这些参数的权重,并且可以根据需求进行设计。下面的表1示出了奖励函数的一个示例,该示例假定用户最关心延迟时间,然后可以将其权重设置为15,这可以是最大三个权重中最大的权重。
表1:奖励函数的示例
类型 | 权重 |
字节命中率 | 3 |
平均延迟 | 15 |
带宽 | 5 |
另外,关于向仿真器1010的动作输入,仿真器1010可以接受二进制向量,其维数为节点数目。该向量中的每个元素可以代表每个节点的缓存选择。在内容递送阶段,如果选择使用节点作为智能体来训练模型,则只有2个操作(是否缓存),如果智能体是具有n个节点的整个网络,则有2n个可能的操作来确定要缓存的节点。例如,如果此网络中有2个节点,则可能的动作是10,这意味着选择节点1来缓存此内容,并且这次不使用节点0。
在内容替换阶段,如果选择使用具有K MB存储空间的节点作为智能体来训练模型,那么将采取2k项可能的操作。例如,如果K为2,则可能的操作为10,这意味着前一个MB用于缓存此内容,而最后一个MB不使用。如果智能体是具有n个节点的整个网络,则每个节点都具有K MB空间,那么就有nk个可能的操作。例如,如果K为2,n为2,则可能的操作应为10(节点1的缓存情况)01(节点2的缓存情况),并且每个节点的缓存情况的含义与前面的示例相同。
图11示出了通过改进常规仿真器所实现的本公开的实施例的仿真器1010用于训练智能体1030的工作流程1100。如图11所示,由于常规的Icarus仿真器最初不是为强化学习训练而设计的,因此相关的实验工作流程也应更改为用于强化学习训练。整个训练过程1100可以分为4个部分(模块),分别是初始化部分1110、实验执行部分1120、发送部分1130和存储在存储池1140中的部分。初始化部分1110进一步可以包括场景生成1112和实验编排1114。将理解,图11中描绘的存储池1140可以是图10中的数据池1040的示例。具体地,在工作流程1100中,首先初始化强化学习仿真器1010。值得注意的是,工作流程1100中的场景生成1112和实验编排1114与常规的Icarus仿真器不同,可以仅初始化拓扑和内容请求之类的配置。在这种情况下未配置缓存策略,缓存决策可以在实验执行部分中做出的。然后,从仿真器1010上收集所需的训练数据。收集之后,这些训练数据可以存储在存储池1140中,并且预处理过程也可以在此模块中执行。在预处理之后,训练数据将被发送并馈送到训练模块中。最后,经过训练的强化学习模型1030可以更新值函数,然后使用该模型生成更多仿真结果,并开始新的循环。在达到奖励阈值之前,该训练过程1100不会终止。在相关的测试实验中,该框架已经用于测试一种强化学习算法,并获得了令人满意的结果。
在一些实施例中,本公开的实施例的利用仿真器120不仅可以用于训练智能体130,而且还可以在智能体130完成训练之后,用于测试智能体130的性能参数。更一般地,仿真器120可以用于测试任何用于在网络中执行缓存决策的智能体的测试。通过使用仿真器120对智能体130(或其他任何智能体)进行测试,智能体130(或其他任何智能体)的性能可以灵活且便利地被测量,从而对智能体130的训练效果和其他智能体的性能评判提供了依据。下文将参考图12来描述基于仿真器120来测试智能体130的示例过程。
图12示出了根据本公开的实施例的利用仿真器120来测试智能体130的性能参数的示例过程1200的流程图。在一些实施例中,过程1200可以由环境100中的计算设备110中的仿真器120来实现,例如可以由计算设备110用于实现仿真器120的处理器或处理单元来实现,或者由计算设备110的用于实现仿真器120的各种功能模块来实现。在其他实施例中,过程1200也可以由独立于环境100的计算设备中的仿真器来实现,或者可以由环境100中的用于实现仿真器的其他单元或模块来实现。
在框1210处,仿真器120可以向智能体130提供测试仿真网络140的测试网络状态表示和测试内容请求事件。例如,测试网络状态表示和测试内容请求事件可以分别类似于上文描述的网络状态表示122和内容请求事件124,区别可以在于两者分别用于测试和训练。因此,关于测试网络状态表示和测试内容请求事件的内容和相关过程的详细描述将被省略。在框1220处,仿真器120可以从智能体130接收测试动作信息,测试动作信息指示由智能体130确定的测试缓存动作。例如,测试动作信息可以类似于上文描述的动作信息126,区别可以在于两者分别用于测试和训练。因此,关于测试动作信息的内容和相关过程的详细描述将被省略。
在框1230处,仿真器120可以基于在测试仿真网络140中执行测试缓存动作,来确定智能体130的性能参数。例如,测试缓存动作可以类似于上文描述的缓存动作,区别可以在于两者分别用于测试和训练。因此,关于测试缓存动作的内容和相关过程的详细描述将被省略。在一些实施例中,智能体130的性能参数可以包括针对智能体130给出的每个测试动作的Q值。Q值可以基于内容在仿真网络140中的相关缓存和传输性能参数来确定,例如,这样的性能参数可以包括缓存命中率和链路负载,等等。此外,需要说明的是,由于示例过程1200是用于测试智能体130的性能的,所以在示例过程1200中,仿真器120可以不向智能体130提供基于奖励函数生成的奖励值。
图13示出了根据本公开的实施例的用于训练和测试智能体130的Q网络架构1300。如图13所示,在Q网络架构1300中,网络的拓扑1310和节点特征1320可以输入到图卷积神经网络(GCN)1330,从而可以得出所有节点的输出的级联1340。该级联1340然后可以被输入到全连接神经网络(FCN)1350,从而可以得出针对每个动作的Q值1360。在测试实验中,可以使用Q学习来训练的强化学习智能体。Q学习可以基于图13示出的Q网络架构。如图13所示,对于网络(例如,ICN)的拓扑信息,可以使用GCN(图卷积神经网络)1330作为特征提取器,然后使用全连接神经网络1350获得最终的Q值1360。在该测试实验中,将平均缓存命中率和链接负载与最近最少使用(LRU)以及副本留在下方(leave copy down,LCD)方法进行比较,实验结果如图14A和图14B所示。
图14A和图14B分别示出了根据本公开的实施例与传统方法进行性能比较的两个实验结果1400和1405。在图14A中,示出了本公开的实施例的方法(RLCas)与传统的LRU和LCD方法在缓存命中率方面的比较,横轴是训练的时期(epoch)数目,纵轴是测试的缓冲命中率。在图14B中,示出了本公开的实施例的方法(RLCas)与传统的LRU和LCD方法在链路负载方面的比较,横轴是训练的时期(epoch)数目,纵轴是测试的链路负载。从图14A和图14B可以看出,本公开的实施例的测试结果优于传统的LRU+LCD方法,并且在本领域最先进的方法中也具有竞争力。
图15示出了根据本公开的实施例的仿真器相对于传统的以信息为中心的网络(ICN)的仿真器(例如,Icarus)所实现的多项改进1500。如上文提到的,在一些实施方式中,本公开的实施例的仿真器可以通过改进传统的ICN仿真器来实现,例如,从而得出图10中示出的仿真器1010。更具体地,为了训练和测试针对缓存决策的强化学习策略,仿真器1010可以认为是针对传统的基于Python的ICN仿真器在强化学习算法训练方面的改进。关于此,图15明确地示出了仿真器1010与传统ICN仿真器之间的多项区别或改进1500。
如图15所示,本公开的仿真器1010具有强化学习训练环境的所有功能,例如包括输入、输出、环境设置和数据处理工作流,而原始Icarus仿真器并未包含此功能。此外,本公开的仿真器1010还添加了诸如内容表示之类的更多功能,以使训练结果更加可靠。此外,主要的贡献还包括针对ICN缓存系统提供了易于使用的强化学习仿真器1010,它可以执行ICN仿真以及强化学习训练,几乎所有旨在找到更好的缓存系统的强化学习算法都可以得到训练和测试。具体地,在改编原始Icarus仿真器的过程中,本公开的仿真器1010主要有三种改进。首先是RL设计,也即设计了强化学习仿真器1010的输入和输出,使其具有与其他强化学习仿真器相同的格式。然后,强化学习研究人员可以轻松地使用的仿真器1010来测试其算法,就像使用OpenAI的Gym API一样。另一方面的改进在于更详细的表示。例如,原始Icarus仿真器会忽略一些细节,而本公开的实施例在仿真器1010中添加更多细节(在RL训练期间非常有用),以更全面地表示ICN状态。再一方面的改进在于新的训练框架,调整了Icarus仿真器的工作流程,以用于普通强化学习训练。
图16示出了可以被用来实施本公开的实施例的示例设备1600的框图。在一些实施例中,设备1600可以是电子设备,其可以用于实施图1中的计算设备110。如图16中所示出的,设备1600包括中央处理单元(CPU)1601,其可以根据存储在只读存储设备(ROM)1602中的计算机程序指令或者从存储单元1608加载到随机访问存储设备(RAM)1603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1603中,还可存储设备1600操作所需的各种程序和数据。CPU 1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(I/O)接口1605也连接至总线1604。
设备1600中的多个部件连接至I/O接口1605,包括:输入单元1606,例如键盘、鼠标等;输出单元1607,例如各种类型的显示器、扬声器等;存储单元1608,例如磁盘、光盘等;以及通信单元1609,例如网卡、调制解调器、无线通信收发机等。通信单元1609允许设备1600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如示例方法或示例过程可由处理单元1601来执行。例如,在一些实施例中,各种示例方法或示例过程可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1602和/或通信单元1609而被载入和/或安装到设备1600上。当计算机程序被加载到RAM 1603并由CPU 1601执行时,可以执行上文描述的示例方法或示例过程的一个或多个步骤。
如本文所使用的,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。本文还可能包括其他明确的和隐含的定义。
如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可以包括运算、计算、处理、导出、调查、查找(例如,在表格、数据库或另一数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。
应当注意,本公开的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。
此外,尽管在附图中以特定顺序描述了本公开的方法的操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤组合为一个步骤执行,和/或将一个步骤分解为多个步骤执行。还应当注意,根据本公开的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
虽然已经参考若干具体实施例描述了本公开,但是应当理解,本公开不限于所公开的具体实施例。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等效布置。
Claims (41)
1.一种信息处理方法,包括:
从仿真器向用于强化学习的智能体提供仿真网络的第一网络状态表示和第一内容请求事件,所述第一内容请求事件表示所述仿真网络中的请求节点请求源节点中存储的目标内容;
从所述智能体接收第一动作信息,所述第一动作信息指示由所述智能体确定的第一缓存动作,所述第一缓存动作包括将所述目标内容缓存在所述请求节点与所述源节点之间的至少一个缓存节点中;以及
基于在所述仿真网络中执行所述第一缓存动作,收集用于训练所述智能体的第一训练数据。
2.根据权利要求1所述的方法,其中所述第一训练数据包括所述第一网络状态表示、所述第一动作信息和针对所述第一缓存动作的奖励值。
3.根据权利要求2所述的方法,其中所述奖励值基于所述仿真器的奖励函数来确定,所述奖励函数基于以下至少一项:所缓存的内容的命中率、所请求的内容的平均延迟、以及传输所请求的内容所占用的带宽。
4.根据权利要求3所述的方法,其中所述命中率、所述平均延迟和所述带宽在所述奖励函数中各自具有可调节的权重。
5.根据权利要求1所述的方法,还包括:
基于所述第一缓存动作来更新所述第一网络状态表示,以确定所述仿真网络的第二网络状态表示;
向所述智能体提供所述第二网络状态表示和第二内容请求事件;
从所述智能体接收第二动作信息,所述第二动作信息指示由所述智能体确定的第二缓存动作;以及
基于在所述仿真网络中执行所述第二缓存动作,收集用于训练所述智能体的第二训练数据。
6.根据权利要求5所述的方法,还包括:
根据确定收集到的训练数据的数目达到预定数目,将收集到的所述预定数目的训练数据提供给所述智能体。
7.根据权利要求6所述的方法,还包括:
初始化所述仿真器,以确定所述第一网络状态表示、所述第一内容请求事件、以及所述预定数目。
8.根据权利要求1所述的方法,还包括:
基于由所述仿真器的时间步函数确定的时间步,在所述仿真网络中执行所述第一缓存动作。
9.根据权利要求1所述的方法,还包括:
根据确定收集到所述第一训练数据,存储所述第一训练数据;以及
对所述第一训练数据执行预处理。
10.根据权利要求1所述的方法,还包括:
向所述智能体提供测试仿真网络的测试网络状态表示和测试内容请求事件;
从所述智能体接收测试动作信息,所述测试动作信息指示由所述智能体确定的测试缓存动作;以及
基于在所述测试仿真网络中执行所述测试缓存动作,来确定所述智能体的性能参数。
11.根据权利要求1所述的方法,其中所述第一网络状态表示包括网络拓扑和节点特性。
12.根据权利要求11所述的方法,其中所述节点特性包括以下至少一项:节点类型、节点是否缓存有内容、节点中内容的内容标识符、以及节点中内容的内容特性。
13.根据权利要求12所述的方法,其中所述内容特性包括内容的请求频率、内容被缓存的时间和内容的近期热度中的至少一项,所述近期热度基于所述请求频率和内容上次被请求的时间来确定。
14.根据权利要求1所述的方法,其中所述第一缓存动作从第一动作集合中选择,所述第一动作集合使用第一比特集合来表示,所述第一比特集合的比特数目等于所述仿真网络的节点数目,并且每个比特指示对应节点是否将缓存所述目标内容。
15.根据权利要求14所述的方法,其中如果所述智能体针对所述仿真网络,则所述第一动作集合中的动作数目取决于所述仿真网络中的节点数目。
16.根据权利要求14所述的方法,其中如果所述智能体针对所述仿真网络中的一个节点,则所述第一动作集合包括两个动作。
17.根据权利要求1所述的方法,其中所述第一缓存动作从第二动作集合中选择,所述第二动作集合中的动作指示将所述目标内容缓存在节点中的目标存储区域。
18.根据权利要求17所述的方法,其中如果所述智能体针对所述仿真网络,则所述第二动作集合中的动作数目取决于所述仿真网络中的节点数目和节点中的存储区域数目。
19.根据权利要求17所述的方法,其中如果所述智能体对应所述仿真网络中的一个节点,则所述第二动作集合中的动作数目取决于所述节点的存储区域数目。
20.根据权利要求1所述的方法,其中所述仿真器被实现在单个计算设备中。
21.一种电子设备,包括:
至少一个处理器;以及
至少一个存储器,存储有计算机程序指令,所述至少一个存储器和所述计算机程序指令被配置为,与所述至少一个处理器一起,使所述电子设备:
从仿真器向用于强化学习的智能体提供仿真网络的第一网络状态表示和第一内容请求事件,所述第一内容请求事件表示所述仿真网络中的请求节点请求源节点中存储的目标内容;
从所述智能体接收第一动作信息,所述第一动作信息指示由所述智能体确定的第一缓存动作,所述第一缓存动作包括将所述目标内容缓存在所述请求节点与所述源节点之间的至少一个缓存节点中;以及
基于在所述仿真网络中执行所述第一缓存动作,收集用于训练所述智能体的第一训练数据。
22.根据权利要求21所述的电子设备,其中所述第一训练数据包括所述第一网络状态表示、所述第一动作信息和针对所述第一缓存动作的奖励值。
23.根据权利要求22所述的电子设备,其中所述奖励值基于所述仿真器的奖励函数来确定,所述奖励函数基于以下至少一项:所缓存的内容的命中率、所请求的内容的平均延迟、以及传输所请求的内容所占用的带宽。
24.根据权利要求23所述的电子设备,其中所述命中率、所述平均延迟和所述带宽在所述奖励函数中各自具有可调节的权重。
25.根据权利要求21所述的电子设备,其中所述至少一个存储器和所述计算机程序指令还被配置为,与所述至少一个处理器一起,使所述电子设备:
基于所述第一缓存动作来更新所述第一网络状态表示,以确定所述仿真网络的第二网络状态表示;
向所述智能体提供所述第二网络状态表示和第二内容请求事件;
从所述智能体接收第二动作信息,所述第二动作信息指示由所述智能体确定的第二缓存动作;以及
基于在所述仿真网络中执行所述第二缓存动作,收集用于训练所述智能体的第二训练数据。
26.根据权利要求25所述的电子设备,其中所述至少一个存储器和所述计算机程序指令还被配置为,与所述至少一个处理器一起,使所述电子设备:
根据确定收集到的训练数据的数目达到预定数目,将收集到的所述预定数目的训练数据提供给所述智能体。
27.根据权利要求26所述的电子设备,其中所述至少一个存储器和所述计算机程序指令还被配置为,与所述至少一个处理器一起,使所述电子设备:
初始化所述仿真器,以确定所述第一网络状态表示、所述第一内容请求事件、以及所述预定数目。
28.根据权利要求21所述的电子设备,其中所述至少一个存储器和所述计算机程序指令还被配置为,与所述至少一个处理器一起,使所述电子设备:
基于由所述仿真器的时间步函数确定的时间步,在所述仿真网络中执行所述第一缓存动作。
29.根据权利要求21所述的电子设备,其中所述至少一个存储器和所述计算机程序指令还被配置为,与所述至少一个处理器一起,使所述电子设备:
根据确定收集到所述第一训练数据,存储所述第一训练数据;以及
对所述第一训练数据执行预处理。
30.根据权利要求21所述的电子设备,其中所述至少一个存储器和所述计算机程序指令还被配置为,与所述至少一个处理器一起,使所述电子设备:
向所述智能体提供测试仿真网络的测试网络状态表示和测试内容请求事件;
从所述智能体接收测试动作信息,所述测试动作信息指示由所述智能体确定的测试缓存动作;以及
基于在所述测试仿真网络中执行所述测试缓存动作,来确定所述智能体的性能参数。
31.根据权利要求21所述的电子设备,其中所述第一网络状态表示包括网络拓扑和节点特性。
32.根据权利要求31所述的电子设备,其中所述节点特性包括以下至少一项:节点类型、节点是否缓存有内容、节点中内容的内容标识符、以及节点中内容的内容特性。
33.根据权利要求32所述的电子设备,其中所述内容特性包括内容的请求频率、内容被缓存的时间和内容的近期热度中的至少一项,所述近期热度基于所述请求频率和内容上次被请求的时间来确定。
34.根据权利要求21所述的电子设备,其中所述第一缓存动作从第一动作集合中选择,所述第一动作集合使用第一比特集合来表示,所述第一比特集合的比特数目等于所述仿真网络的节点数目,并且每个比特指示对应节点是否将缓存所述目标内容。
35.根据权利要求34所述的电子设备,其中如果所述智能体针对所述仿真网络,则所述第一动作集合中的动作数目取决于所述仿真网络中的节点数目。
36.根据权利要求34所述的电子设备,其中如果所述智能体针对所述仿真网络中的一个节点,则所述第一动作集合包括两个动作。
37.根据权利要求21所述的电子设备,其中所述第一缓存动作从第二动作集合中选择,所述第二动作集合中的动作指示将所述目标内容缓存在节点中的目标存储区域。
38.根据权利要求37所述的电子设备,其中如果所述智能体针对所述仿真网络,则所述第二动作集合中的动作数目取决于所述仿真网络中的节点数目和节点中的存储区域数目。
39.根据权利要求37所述的电子设备,其中如果所述智能体对应所述仿真网络中的一个节点,则所述第二动作集合中的动作数目取决于所述节点的存储区域数目。
40.根据权利要求21所述的电子设备,其中所述仿真器被实现在单个所述电子设备中。
41.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1-20中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110129341.9A CN114912041A (zh) | 2021-01-29 | 2021-01-29 | 信息处理方法、电子设备和计算机程序产品 |
US17/191,299 US12020125B2 (en) | 2021-01-29 | 2021-03-03 | Method, electronic device, and computer program product for information processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110129341.9A CN114912041A (zh) | 2021-01-29 | 2021-01-29 | 信息处理方法、电子设备和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114912041A true CN114912041A (zh) | 2022-08-16 |
Family
ID=82611497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110129341.9A Pending CN114912041A (zh) | 2021-01-29 | 2021-01-29 | 信息处理方法、电子设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US12020125B2 (zh) |
CN (1) | CN114912041A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6728495B2 (ja) * | 2016-11-04 | 2020-07-22 | ディープマインド テクノロジーズ リミテッド | 強化学習を用いた環境予測 |
US11909621B2 (en) * | 2022-06-03 | 2024-02-20 | Linquest Corporation | Systems and methods for implementing a network resiliency testbed emulator |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8965819B2 (en) * | 2010-08-16 | 2015-02-24 | Oracle International Corporation | System and method for effective caching using neural networks |
US11373108B2 (en) * | 2019-07-10 | 2022-06-28 | Microsoft Technology Licensing, Llc | Reinforcement learning in real-time communications |
US11797820B2 (en) * | 2019-12-05 | 2023-10-24 | International Business Machines Corporation | Data augmented training of reinforcement learning software agent |
CN115398877B (zh) * | 2020-06-15 | 2024-03-26 | 阿里巴巴集团控股有限公司 | 使用强化学习代理管理存储在缓存中的数据 |
FI20205781A1 (en) * | 2020-08-04 | 2022-02-05 | Nokia Technologies Oy | MACHINE LEARNING BASED ANTENNA PANEL WIRING |
KR20220057396A (ko) * | 2020-10-29 | 2022-05-09 | 주식회사 마키나락스 | 강화학습 기반 에너지 관리 시스템 제어 방법 및 장치 |
US20220014963A1 (en) * | 2021-03-22 | 2022-01-13 | Shu-Ping Yeh | Reinforcement learning for multi-access traffic management |
-
2021
- 2021-01-29 CN CN202110129341.9A patent/CN114912041A/zh active Pending
- 2021-03-03 US US17/191,299 patent/US12020125B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US12020125B2 (en) | 2024-06-25 |
US20220245513A1 (en) | 2022-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112668128B (zh) | 联邦学习系统中终端设备节点的选择方法及装置 | |
JP7355404B2 (ja) | クラウド・マイクロサービス埋め込み用自動チューナ | |
Liu et al. | Adaptive asynchronous federated learning in resource-constrained edge computing | |
CN115659281B (zh) | 一种自适应加速算子融合的方法及装置 | |
JP2023510566A (ja) | ニューラル・ネットワークのための適応的探索方法および装置 | |
CN113794748B (zh) | 一种性能感知的服务功能链智能部署方法及装置 | |
CN114912041A (zh) | 信息处理方法、电子设备和计算机程序产品 | |
WO2023185090A1 (zh) | 基于微服务链路分析和强化学习的调度方法及装置 | |
Chen et al. | Cache-assisted collaborative task offloading and resource allocation strategy: A metareinforcement learning approach | |
Huang et al. | DeepAdapter: A collaborative deep learning framework for the mobile web using context-aware network pruning | |
WO2022178660A1 (zh) | 一种数据处理方法、装置、设备及介质 | |
CN113422812B (zh) | 一种服务链部署方法及装置 | |
CN111949631A (zh) | 一种确定数据库的配置参数的方法及装置 | |
Jiang et al. | Computation and communication efficient federated learning with adaptive model pruning | |
CN109117352B (zh) | 服务器性能预测方法和装置 | |
CN117539648A (zh) | 一种电子政务云平台的服务质量管理方法及装置 | |
CN111510473B (zh) | 访问请求处理方法、装置、电子设备和计算机可读介质 | |
WO2021051920A1 (zh) | 模型优化方法、装置、存储介质及设备 | |
CN117435451A (zh) | 移动边缘计算中虚拟计算单元的功耗和性能模型建立方法 | |
CN115587222B (zh) | 分布式图计算方法、系统及设备 | |
US12050979B2 (en) | Budgeted neural network architecture search system and method | |
CN115412401B (zh) | 训练虚拟网络嵌入模型及虚拟网络嵌入的方法和装置 | |
Mays et al. | Decentralized data allocation via local benchmarking for parallelized mobile edge learning | |
CN108846248B (zh) | 一种应用建模及性能预测方法 | |
CN113762972A (zh) | 数据存储控制方法及装置、电子设备、存储介质 |
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 |