CN114429210A - 基于云原生的强化学习流水线方法、系统、设备及存储介质 - Google Patents

基于云原生的强化学习流水线方法、系统、设备及存储介质 Download PDF

Info

Publication number
CN114429210A
CN114429210A CN202210101566.8A CN202210101566A CN114429210A CN 114429210 A CN114429210 A CN 114429210A CN 202210101566 A CN202210101566 A CN 202210101566A CN 114429210 A CN114429210 A CN 114429210A
Authority
CN
China
Prior art keywords
reinforcement learning
cloud
data
storage system
training
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
Application number
CN202210101566.8A
Other languages
English (en)
Inventor
赵加坤
徐彦愽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN202210101566.8A priority Critical patent/CN114429210A/zh
Publication of CN114429210A publication Critical patent/CN114429210A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/042Knowledge-based neural networks; Logical representations of neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/043Distributed expert systems; Blackboards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种基于云原生的强化学习流水线方法、系统、设备及存储介质;包括:基于系统框架和数据序列化协议,构建云原生存储系统;对原始数据集进行预处理,并将预处理的数据集存储至云原生存储系统;启动强化学习智能体和强化学习环境进行交互,产生轨迹数据,存储到轨迹缓存池,并构建强化学习自有数据集;调用轨迹缓存池的轨迹数据,更新强化学习智能体模型;保存更新完成的强化学习智能体模型到云原生存储系统中,构建模型推理服务;基于训练过程中的训练日志,构建日志可视化微服务,实时反馈智能体训练结果,并将结果保存到云原生存储系统。本发明能够提高决策分析场景中分布式训练、循环运行和云原生部署的可靠性、简便性和实用性。

Description

基于云原生的强化学习流水线方法、系统、设备及存储介质
技术领域
本发明属于强化学习领域,涉及一种基于云原生的强化学习流水线方法、系统、设备及存储介质。
背景技术
随着云原生技术的不断成熟和人工智能技术的不断进步,基于云原生的应用如雨后春笋般爆发式增长,由此同时决策智能进入高速发展的时代,强化学习算法由小作坊形式转变为大规模流程化形式,增加决策智能的应用场景,释放新兴领域的潜在价值。
面向人工智能应用,机器学习系统可表示为端到端的流水线系统,端到端是以大量的数据样本和模型为基础,直接连接输入和输出,流水线系统不只是串行的系统,也可以是分布式、并行、循环的系统。AIOps可以帮助人工智能应用快速连接上下游,快速部署并进行实验,已经得到了广泛关注,经过近几年发展与演变,机器学习流水线已经比较成熟,但是对于强化学习流水线依然存在较多问题。
传统的强化学习应用多表示为点对点设计的专家系统,由特定的模拟环境和相匹配的强化学习算法组成,其中特定模拟环境针对运行环境配置、组成等要求不一,没有接入统一标准,强化学习算法开发调试难度较大,新算法接入难度较大,服务部署困难。典型的流水线处理流程设计多个阶段,包括多种类型的数据存储、数据预处理、特征工程、算法选择、模型存储、模型部署等,针对强化学习应用来说,要多几个阶段,包括强化学习模拟环境运行、轨迹数据缓存、运行结果实时查看,以及模拟环境和算法需要循环运行和交互。另外,服务部署均在本地或者本地与云分散部署,面临弹性伸缩困难,服务迁移困难的问题。因此,需要研究高效的、分布式的、云原生的强化学习流水线,支持全流程的决策分析场景。
面向上述需求,已有的相关工作支持还不够完善。SparkML流水线基于Spark计算引擎实现,需要将数据先转化为RDD形式再进行计算,可以使用自带的mllib库中的机器学习算法,也可以自己构建数据分析任务的各个模块,对于强化学习支持较少。分布式计算框架Ray,其上层实现了Tune超参搜索库、RLlib强化学习库、RaySGD分布式训练库、Serve弹性服务库,框架相较于SparkML完善并且适合新人使用,适配了较多主流的强化学习算法,但是框架功能耦合过多、封装过于笨重,适配新算法和新环境较困难,框架本身没有实现将强化学习全流程连接起来,形成完整的流水线系统。强化学习库天授实现简洁、模块化组合、接口灵活,但是仅作为强化学习算法库使用,上下游服务以及云原生部署工作量较大,同时需要自行实现分布式适配。ApacheAirflow流水线支持较完善,支持长时间任务执行,流程可视化较好,能保证事件不丢失和状态持久化,但是是以PythonDAG有向无环图形式描述,缺少循环能力,另外延迟较高,运维成本较大。除此之外,其他强化学习流水线系统过于专注特定问题,不能很好完成通用的决策分析场景。
发明内容
本发明的目的在于解决现有技术中的问题,提供一种基于云原生的强化学习流水线方法、系统、设备及存储介质,能够通过构建强化学习流水线,提高决策分析场景中分布式训练、循环运行和云原生部署的可靠性、简便性和实用性。
为达到上述目的,本发明采用以下技术方案予以实现:
一种基于云原生的强化学习流水线方法,包括:
基于系统框架和数据序列化协议,构建云原生存储系统;
对原始数据集进行预处理,并将预处理的数据集存储至云原生存储系统;
基于分布式框架,构建强化学习环境和强化学习智能体;
启动强化学习智能体和强化学习环境进行交互,产生轨迹数据,存储到轨迹缓存池,并构建强化学习自有数据集,调用轨迹缓存池的轨迹数据,更新强化学习智能体模型;
保存更新完成的强化学习智能体模型到云原生存储系统中,构建模型推理服务;
基于训练过程中的训练日志,应用可视化工具,构建日志可视化微服务,实时反馈智能体训练结果,并将最终结果保存到云原生存储系统。
本发明的进一步改进在于:
基于系统框架和数据序列化协议,构建云原生存储系统,具体为:
基于Golang为编程语言,使用微服务框架Go-microv2、Web框架Gin、RPC框架GRPC和数据序列化协议Protobuf,以微服务范式进行编写,构建云原生存储系统。
对原始数据集进行预处理包括:
对原始数据集进行数据清洗、特征抽取和特征各项指标数据分析,支持导出若干种格式的数据,对处理后的数据再入云原生存储系统中。
强化学习智能体和强化学习环境进行交互,调用轨迹缓存池的轨迹数据,更新强化学习智能体模型,具体为:
运行若干个强化学习环境来收集轨迹数据并存储到轨迹缓存池中,强化学习智能体分为强化学习智能体Actor网络和强化学习智能体Learner网络,强化学习智能体中的Learner网络从轨迹缓存池中采样数据,更新模型参数,将更新后的模型参数同步到强化学习智能体中的Actor网络,每个强化学习智能体Actor网络对应若干个强化学习环境进行交互。
构建强化学习自有数据集,具体为:设定定时任务,定期将将轨迹缓存池中的轨迹数据进行持久化处理,存储到内存缓存数据库和云原生存储系统中,形成强化学习自有数据集。
还包括前一轮的强化学习自有数据集,将前一轮的强化学习自有数据集中的轨迹数据直接送入强化学习阶段进行算法模型训练,而不需要启动强化学习环境。
保存更新完成的强化学习智能体模型到云原生存储系统中,构建模型推理服务,具体为:基于FastAPI的RayServe框架开发模型推理服务,通过调用API方式访问推理服务。
基于训练过程中的训练日志,应用可视化工具,构建日志可视化微服务,实时反馈智能体训练结果,并将最终结果保存到云原生存储系统,具体为:
使用TensorBoard可视化工具,指定训练日志输出目录,实时更新训练过程,掌握训练变化数据;同时在训练完成后将训练日志输出目录打包压缩后,上传到云原生存储系统中进行存储。
一种基于云原生的强化学习流水线系统,包括:
第一构建模块,所述第一构建模块基于系统框架和数据序列化协议,构建云原生存储系统;
预处理模块,所述预处理模块用于对原始数据集进行预处理,并将预处理的数据集存储至云原生存储系统;
第二构建模块,所述第二构建模块基于分布式框架,构建强化学习环境和强化学习智能体;
交互模块,所述交互模块用于启动强化学习智能体和强化学习环境进行交互,产生轨迹数据,存储到轨迹缓存池,并构建强化学习自有数据集,调用轨迹缓存池的轨迹数据,更新强化学习智能体模型;
推理模块,所述推理模块用于保存更新完成的强化学习智能体模型到云原生存储系统中,构建模型推理服务;
可视化模块,所述可视化模块基于训练过程中的训练日志,应用可视化工具,构建日志可视化微服务,实时反馈智能体训练结果,并将最终结果保存到云原生存储系统。
一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
与现有技术相比,本发明具有以下有益效果:
本发明对原始数据集进行预处理,导出若干种格式的数据,并通过对强化学习智能体和强化学习环境进行耦合,满足强化学习智能体和强化学习环境进行交互过程,同时分别对其进行分布式封装,可扩展到多机进行大规模进行训练与推理,并通过构建强化学习自有数据集,对强化学习智能体进行更新,提高了服务的可用性和可靠性。
附图说明
为了更清楚的说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例的基于云原生的强化学习流水线方法流程图;
图2为本发明实施例的基于云原生的强化学习流水线方法总体框架示意图;
图3为本发明实施例的强化学习算法步骤的交互示意图;
图4为本发明实施例的云原生存储系统的总体结构示意图;
图5为本发明实施例的云原生存储系统的执行流程示意图;
图6为本发明实施例的基于云原生的强化学习流水线系统结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明实施例的描述中,需要说明的是,若出现术语“上”、“下”、“水平”、“内”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
此外,若出现术语“水平”,并不表示要求部件绝对水平,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。
在本发明实施例的描述中,还需要说明的是,除非另有明确的规定和限定,若出现术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
下面结合附图对本发明做进一步详细描述:
参见图1和图2,本发明公布了一种基于云原生的强化学习流水线方法,包括:
S101,基于系统框架和数据序列化协议,构建云原生存储系统。
基于Golang为编程语言,使用微服务框架Go-micro v2、Web框架Gin、RPC框架GRPC、数据序列化协议Protobuf,以微服务范式编写,构建云原生存储系统,保证该系统的高可用和高可靠,通过API网关提供API接口进行访问,用户管理服务用于流水线全流程的用户资源隔离,用户上传下载服务用于用户数据存储和下载,对上传文件的过程实现了异步上传、断点续传和秒传功能,实现了满足Amazon S3对象存储接口标准的私有云Ceph集群存储和公有云阿里云OSS存储的部署。
S102,对原始数据集进行预处理,并将预处理的数据集存储至云原生存储系统。
数据预处理与特征工程:对原始的数据集进行数据清洗、特征抽取、特征转化等操作,规范化数据成强化学习环境可以读入的格式如csv、npy等,也可将前一轮的强化学习自有数据集中的轨迹数据直接送入强化学习阶段进行算法模型训练,而不需要启动强化学习环境。根据强化学习算法分类分为需要先验知识的Model-Base算法和无数据的Model-Free算法,因此此步骤是可选的。将数据处理的环境和脚本封装在Dockerfile中,构建Docker镜像,启动容器即可执行此步骤,最终处理后的数据会通过API的方式存储在云原生存储系统中。
S103,基于分布式框架,构建强化学习环境和强化学习智能体。
强化学习阶段:使用分布式框架封装强化学习环境与强化学习智能体作为有状态的任务,强化学习环境可使用Ray框架封装成有状态任务,将强化学习环境与强化学习智能体解耦,在流水线中,使用RayWorkflows框架实现强化学习环境与强化学习智能体进行可循环交互。
S104,启动强化学习智能体和强化学习环境进行交互,产生轨迹数据,存储到轨迹缓存池,并构建强化学习自有数据集;调用轨迹缓存池的轨迹数据,更新强化学习智能体模型。
启动若干个强化学习环境来进行轨迹数据的收集,会收集到统一的内存数据结构即轨迹缓存池中。
参见图3,与强化学习环境进行交互的是强化学习智能体中的Actor网络,负责根据环境的状态空间,通过网络模型后从动作空间中选取动作并返回,设定每交互40轮后强化学习智能体中的Learner网络从轨迹缓存池中采样数据,计算Loss,进行梯度下降,更新模型参数,将更新后的模型参数同步到强化学习智能体中的Actor网络,继续与环境进行交互,直到达到设置的特定Reward阈值或者执行轮数结束。
设定定时任务,定期将将轨迹缓存池中的轨迹数据进行持久化处理,存储到内存缓存数据库和云原生存储系统中,形成强化学习自有数据集,具体为:
在轨迹缓存池中的数据会通过Celery定时任务定时同步数据,每隔100轮交互,将数据缓存到内存存储系统Redis中,每隔1000轮交互,将数据打包压缩上传到云原生存储系统中。将轨迹数据上传到存储集群之后,可以将数据构建成强化学习的数据集,在不启动强化学习环境的情况下,也可以根据轨迹数据进行模型训练和更新,以此来微调模型。
强化学习环境可适配OpenAIGym标准的环境,也可自定义模拟环境,均封装在Docker容器中,强化学习算法以深度强化学习算法为主,故涉及到神经网络模型训练,需要GPU提供算力支撑,采用NVIDIA内置的Docker容器进行训练,在模型部署后进行推理时使用CPU版本的普通容器。整个强化学习阶段是基于Docker容器化的,所以也是可以启动多个进行同时训练,最终再根据模型的精度来选择最优的模型作为最终的模型。
S105,保存更新完成的强化学习智能体模型到云原生存储系统中,构建模型推理服务。
模型存储与部署:将训练好的最终模型保存到本地和云原生存储系统中,同时基于FastAPI的RayServe框架开发模型推理服务,通过调用API接口进行访问。该服务支持微服务部署,可根据访问流量进行弹性扩缩容。
S106,基于训练过程中的训练日志,应用可视化工具,构建日志可视化微服务,实时反馈智能体训练结果,并将最终结果保存到云原生存储系统。
结果存储与可视化:使用TensorBoard可视化工具,指定训练日志输出目录,实时更新训练过程,掌握训练变化数据;同时在训练完成后将训练日志输出目录打包压缩后,上传到云原生存储系统中进行存储。
云原生存储系统:云原生存储系统是贯穿强化学习流水线整个流程,负责原始数据的存储、预处理后的数据存储,强化学习轨迹缓存池中数据的存储、算法模型的存储、训练结果和日志的存储。
参见图4,自底向上进行设计六层设计,第一层是基于云原生技术的Kubernetes和Docker,所有服务和存储组件均在其上进行构建;第二层是构建分布式对象存储组件,根据用户对于数据安全性的考虑分为私有云和公有云,在Docker中构建私有云Ceph分布式对象存储,它可以充分利用存储节点上的计算能力,在存储每个数据的时候计算每隔文件的存储位置,尽量将数据分布均匀,多副本隔离存储,自带Hash算法,不会出现单点故障的问题,理论上可以无限增加节点和扩容,可扩展性强,同时可以将一些数据安全性要求较低的数据存储在公有云OSS上,OSS可以保证海量数据的存储和高效访问。第三层是系统依赖的存储组件,包括数据库MySQL、缓存数据库Redis、消息队列RabbitMQ,均通过Docker进行部署,MySQL用来存储文件的元信息,Redis用来存储文件的分块元信息,完整上传或断点续传完成后删除相关信息,RabbitMQ用来实现上传过程的异步处理,将上传任务存入队列,逐个上传减轻海量数据上传的压力,同时也作为Celery定时任务的队列使用。第四层是服务注册发现中心Consul,用于微服务的注册和节点获取,每个微服务均会在此中心进行注册。第五层是提供的服务,包括用户管理服务和文件存储服务,用户管理服务提供用户的注册登录功能,满足用户鉴权,对不同用户的数据进行隔离,文件存储服务提供上传和下载接口。第六层是微服务网关APIGW层,作为一个微服务存在,使用Gin框架开发,向外提供API接口,同时对API的访问进行鉴权、限流和熔断,降低后方服务宕机的概率,最大程度保证可用性和可靠性。
参见图5,存储系统用户或者是流水线使用用户登录到云原生存储系统,获取Token作为自己的访问凭证,通过API接口和Token凭证去访问系统,通过API网关和微服务注册发现中心Consul获取到微服务实际运行节点。若进行文件上传,则访问上传服务集群,先将文件上传到本地文件系统中,并且将文件的元信息存入MySQL数据库中,根据文件大小对文件进行分块,将文件分块元信息存入Redis中,然后将文件上传到云存储的任务推动到消息队列RabbitMQ中,实际负责上传的Worker接受队列中的任务进行处理,更新MySQL数据库中的文件元信息和Redis中的文件分块元信息,然后根据数据安全性的选择,调用同时满足AmazonS3接口标准的私有云Ceph集群或者公有云阿里云OSS对象存储服务,将文件最终上传,然后会将原先本地上传的文件删除,将Redis中的文件分块元信息进行删除,保证本地磁盘的Redis集群中的有效空间。若进行文件下载,则通过MySQL数据库查询到文件元信息后,直接访问存储服务即私有云Ceph集群或者公有云阿里云OSS对象存储服务,获取文件下载链接,进行文件下载即可。
本发明基于现有的一些强化学习环境和算法实现了一个原型系统。强化学习环境选择了无先验数据即不需数据预处理与特征工程步骤的OpenAIGymAtari环境和需要先验数据即需要数据预处理与特征工程步骤的自定义云计算资源调度环境CloudSimPy,强化学习算法选择了主流的Deep Q Network(DQN)、Policy Gradient(PG)、Actor Critic(AC)、Proximal Policy Optimization(PPO)四种算法进行实验测试,网络模型构建使用Pytorch框架开发,整个基于云原生的强化学习流水线运行流畅,一键启动即可可视化观测运行训练过程,数据保存云原生存储系统准确及时。表1展示了不同强化学习算法和两种强化学习环境在流水线运行结果。从表格中可以看出,在经典环境和自定义环境中使用主流的深度强化学习算法,本发明达到了预期全流程管理的目的。综上所述,实验结果证明了本发明对于强化学习流水线系统化构建和管理的有效性,验证了本发明的有益效果。
表1本发明基于经典环境和自定义环境在主流的深度强化学习算法上运行结果统计
Figure BDA0003492437440000111
一种基于云原生的强化学习流水线方法,包括,
流水线主系统,用于将流水线过程和强化学习应用进行合理结合,实现RLOps。以Python为编程语言,使用Ray Workflows工具完成流水线开发,从输入到输出包含数据预处理与特征工程、强化学习阶段、模型存储与部署、结果存储及可视化,以及贯穿全流程的异常处理、分布式数据存储。在流水线中,各个步骤均作为微服务提供服务,同时上一个流水线中微服务运行完毕会触发下一个微服务继续执行,直到模型推理服务部署和TensorBoard可视化服务启动完成。
独立于流水线主系统的云原生存储系统,贯穿强化学习流水线整个流程,负责原始数据的存储、预处理后的数据存储,强化学习轨迹缓存池中数据的存储、算法模型的存储、训练结果和日志的存储。以Golang为编程语言,使用微服务框架Go-micro v2、Web框架Gin、RPC框架GRPC、数据序列化协议Protobuf完成开发,以微服务范式编写,保证该系统的高可用和高可靠,通过API网关提供API接口进行访问,用户管理服务用于流水线全流程的用户资源隔离,用户上传下载服务用于用户数据存储和下载,对上传文件的过程实现了异步上传、断点续传和秒传功能,实现了满足Amazon S3对象存储接口标准的私有云Ceph集群存储和公有云阿里云OSS存储的部署。
本发明以强化学习流水线为目标研究对象,以云原生技术构建和运行应用程序,充分发挥云原生技术的弹性和分布式优势,构建了完整通用的基于云原生的强化学习流水线,具有如下优点:
第一,设计了数据预处理及特征工程步骤,满足有先验数据的Model-Base算法和无数据的Model-Free算法,为用户提供API来进行数据处理与特征工程,支持多种格式。提出了在Model-Free算法上使用轨迹数据作为强化学习原始数据集,加速深度强化学习模型训练。
第二,设计了在流水线中可循环运行的步骤,将强化学习智能体和强化学习环境进行解耦合,满足强化学习智能体和强化学习环境进行交互过程,同时分别对其进行分布式封装,可扩展到多机进行大规模进行训练与推理。
第三,设计了云原生存储系统,满足私有云和公有云的定制化存储需求,确保数据安全性,实现用户数据的资源隔离,文件上传的异步处理、秒传、断点续传功能,通过API网关对API接口进行管理,加入鉴权、熔断、限流功能,保证服务的高可用和高可靠。
进一步的,通过Python语言开发,使用新兴框架RayWorkflows实现流水线中循环运行步骤,控制流水线持续不断运行,完成强化学习环境和强化学习智能体交互过程,并且解耦互不依赖,使得强化学习环境不断收集轨迹数据,强化学习智能体不断训练模型,直到完成设定目标。将轨迹数据封装成强化学习数据集,减少启停资源消耗巨大的环境,针对原始轨迹数据即可训练模型。
进一步的,通过对流水线各步骤进行微服务化,化繁为简,分散治理,保证服务间松耦合,服务内高内聚,服务可独立构建、部署、升级,实现局部更新,提高系统容错性,减少系统整体崩溃的概率,实现算法流水线和数据的异构系统,以云为基底,具有弹性、可管理性和可观察性。
进一步的,通过编译型Golang语言以及相关微服务框架Go-microv2、Web框架Gin、服务注册发现中心Consul开发云原生存储系统,满足了系统高内聚、低耦合,保证性能,接口满足高并发的要求。在系统内部,组件间通信采用高效的RPC方式,使用跨平台和跨语言的Protobuf的数据序列化协议,序列化效率更快、体积更小、更安全。
进一步的,流水线全体组件均运行在容器中,存储组件即数据库MySQL、缓存数据库Redis、消息队列RabbitMQ、私有云对象存储集群Ceph、服务注册发现中心Consul等涉及到数据状态变化,是直接使用Docker镜像进行启停容器。其余流水线各步骤、用户管理服务、文件上传下载服务、API网关服务均是通过Kubernetes进行容器编排、弹性部署、实现灵活的扩缩容。
参见图6,本发明公布了一种基于云原生的强化学习流水线系统,包括:
第一构建模块,所述第一构建模块基于系统框架和数据序列化协议,构建云原生存储系统;
预处理模块,所述预处理模块用于对原始数据集进行预处理,并将预处理的数据集存储至云原生存储系统;
第二构建模块,所述第二构建模块基于分布式框架,构建强化学习环境和强化学习智能体;
交互模块,所述交互模块用于启动强化学习智能体和强化学习环境进行交互,产生轨迹数据,存储到轨迹缓存池,并构建强化学习自有数据集,调用轨迹缓存池的轨迹数据,更新强化学习智能体模型;
推理模块,所述推理模块用于保存更新完成的强化学习智能体模型到云原生存储系统中,构建模型推理服务;
可视化模块,所述可视化模块基于训练过程中的训练日志,应用可视化工具,构建日志可视化微服务,实时反馈智能体训练结果,并将最终结果保存到云原生存储系统。
本发明一实施例提供的终端设备。该实施例的终端设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述各个方法实施例中的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。
所述处理器可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述终端设备的各种功能。
所述终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于云原生的强化学习流水线方法,其特征在于,包括:
基于系统框架和数据序列化协议,构建云原生存储系统;
对原始数据集进行预处理,并将预处理的数据集存储至云原生存储系统;
基于分布式框架,构建强化学习环境和强化学习智能体;
启动强化学习智能体和强化学习环境进行交互,产生轨迹数据,存储到轨迹缓存池,并构建强化学习自有数据集,调用轨迹缓存池的轨迹数据,更新强化学习智能体模型;
保存更新完成的强化学习智能体模型到云原生存储系统中,构建模型推理服务;
基于训练过程中的训练日志,应用可视化工具,构建日志可视化微服务,实时反馈智能体训练结果,并将最终结果保存到云原生存储系统。
2.根据权利要求1所述的基于云原生的强化学习流水线方法,其特征在于,所述基于系统框架和数据序列化协议,构建云原生存储系统,具体为:
基于Golang为编程语言,使用微服务框架Go-microv2、Web框架Gin、RPC框架GRPC和数据序列化协议Protobuf,以微服务范式进行编写,构建云原生存储系统。
3.根据权利要求1所述的基于云原生的强化学习流水线方法,其特征在于,所述对原始数据集进行预处理包括:
对原始数据集进行数据清洗、特征抽取和特征各项指标数据分析,支持导出若干种格式的数据,对处理后的数据再入云原生存储系统中。
4.根据权利要求1所述的基于云原生的强化学习流水线方法,其特征在于,所述强化学习智能体和强化学习环境进行交互,调用轨迹缓存池的轨迹数据,更新强化学习智能体模型,具体为:
运行若干个强化学习环境来收集轨迹数据并存储到轨迹缓存池中,强化学习智能体分为强化学习智能体Actor网络和强化学习智能体Learner网络,强化学习智能体中的Learner网络从轨迹缓存池中采样数据,更新模型参数,将更新后的模型参数同步到强化学习智能体中的Actor网络,每个强化学习智能体Actor网络对应若干个强化学习环境进行交互。
5.根据权利要求1所述的基于云原生的强化学习流水线方法,其特征在于,所述构建强化学习自有数据集,具体为:设定定时任务,定期将将轨迹缓存池中的轨迹数据进行持久化处理,存储到内存缓存数据库和云原生存储系统中,形成强化学习自有数据集。
6.根据权利要求5所述的基于云原生的强化学习流水线方法,其特征在于,还包括前一轮的强化学习自有数据集,将前一轮的强化学习自有数据集中的轨迹数据直接送入强化学习阶段进行算法模型训练,而不需要启动强化学习环境。
7.根据权利要求1所述的基于云原生的强化学习流水线方法,其特征在于,所述保存更新完成的强化学习智能体模型到云原生存储系统中,构建模型推理服务,具体为:基于FastAPI的RayServe框架开发模型推理服务,通过调用API方式访问推理服务;
所述基于训练过程中的训练日志,应用可视化工具,构建日志可视化微服务,实时反馈智能体训练结果,并将最终结果保存到云原生存储系统,具体为:
使用TensorBoard可视化工具,指定训练日志输出目录,实时更新训练过程,掌握训练变化数据;同时在训练完成后将训练日志输出目录打包压缩后,上传到云原生存储系统中进行存储。
8.一种基于云原生的强化学习流水线系统,其特征在于,包括:
第一构建模块,所述第一构建模块基于系统框架和数据序列化协议,构建云原生存储系统;
预处理模块,所述预处理模块用于对原始数据集进行预处理,并将预处理的数据集存储至云原生存储系统;
第二构建模块,所述第二构建模块基于分布式框架,构建强化学习环境和强化学习智能体;
交互模块,所述交互模块用于启动强化学习智能体和强化学习环境进行交互,产生轨迹数据,存储到轨迹缓存池,并构建强化学习自有数据集,调用轨迹缓存池的轨迹数据,更新强化学习智能体模型;
推理模块,所述推理模块用于保存更新完成的强化学习智能体模型到云原生存储系统中,构建模型推理服务;
可视化模块,所述可视化模块基于训练过程中的训练日志,应用可视化工具,构建日志可视化微服务,实时反馈智能体训练结果,并将最终结果保存到云原生存储系统。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述方法的步骤。
CN202210101566.8A 2022-01-27 2022-01-27 基于云原生的强化学习流水线方法、系统、设备及存储介质 Pending CN114429210A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210101566.8A CN114429210A (zh) 2022-01-27 2022-01-27 基于云原生的强化学习流水线方法、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210101566.8A CN114429210A (zh) 2022-01-27 2022-01-27 基于云原生的强化学习流水线方法、系统、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114429210A true CN114429210A (zh) 2022-05-03

Family

ID=81312867

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210101566.8A Pending CN114429210A (zh) 2022-01-27 2022-01-27 基于云原生的强化学习流水线方法、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114429210A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115292074A (zh) * 2022-10-09 2022-11-04 中科星图测控技术(合肥)有限公司 一种基于gRPC协议的轨道分析算法服务的调用方法和装置
CN116432743A (zh) * 2023-04-19 2023-07-14 天津大学 一种提高强化学习系统吞吐量的方法
CN116646061A (zh) * 2023-04-28 2023-08-25 西安交通大学 分布式ct成像和智能诊疗系统及方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115292074A (zh) * 2022-10-09 2022-11-04 中科星图测控技术(合肥)有限公司 一种基于gRPC协议的轨道分析算法服务的调用方法和装置
CN115292074B (zh) * 2022-10-09 2023-01-24 中科星图测控技术(合肥)有限公司 一种基于gRPC协议的轨道分析算法服务的调用方法和装置
CN116432743A (zh) * 2023-04-19 2023-07-14 天津大学 一种提高强化学习系统吞吐量的方法
CN116432743B (zh) * 2023-04-19 2023-10-10 天津大学 一种提高强化学习系统吞吐量的方法
CN116646061A (zh) * 2023-04-28 2023-08-25 西安交通大学 分布式ct成像和智能诊疗系统及方法
CN116646061B (zh) * 2023-04-28 2024-01-26 西安交通大学 分布式ct成像和智能诊疗系统及方法

Similar Documents

Publication Publication Date Title
US20210218796A1 (en) Efficient, automated distributed-search methods and systems
CN102880503B (zh) 数据分析系统及数据分析方法
CN114429210A (zh) 基于云原生的强化学习流水线方法、系统、设备及存储介质
CN110716744B (zh) 一种数据流处理方法、系统和计算机可读存储介质
CN107579931B (zh) 一种基于Kubernetes的区块链即服务资源适配方法
CN111178782B (zh) 一种流程工业数据化运营平台的微服务架构
Zhang et al. A survey on emerging computing paradigms for big data
US11514304B2 (en) Continuously provisioning large-scale machine learning models
Chandra et al. Decentralized edge clouds
CN112600891B (zh) 一种基于信息物理融合的边云协同系统及工作方法
CN108833161B (zh) 一种建立基于雾计算的智能合约微服务模型的方法
CN111444019B (zh) 云端协同的深度学习模型分布式训练方法及系统
CN106462575A (zh) 群集内存数据库的设计及实现
JP2021515950A (ja) クラウドコンピューティングのためのシステム及び方法
CN105830049A (zh) 自动化实验平台
CN113590576A (zh) 数据库参数调整方法、装置、存储介质以及电子设备
CN103473696A (zh) 一种收集、分析和分发网络商业信息的方法和系统
CN109522030B (zh) 基于一键生成多个游戏渠道包的平台出包方法
Li et al. Microservice migration using strangler fig pattern: A case study on the green button system
Britvin et al. Client-server system for parsing data from web pages
CN110569113A (zh) 分布式任务的调度方法及系统、计算机可读存储介质
CN105871998A (zh) 一种数据展示方法及装置
CN111427665A (zh) 一种量子应用云平台及量子计算任务的处理方法
CN112351106B (zh) 一种含事件网格的服务网格平台及其通信方法
CN109614241A (zh) 基于Yarn队列实现多集群多租户资源隔离的方法及系统

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