CN111209077A - 深度学习框架设计方法 - Google Patents
深度学习框架设计方法 Download PDFInfo
- Publication number
- CN111209077A CN111209077A CN201911369123.1A CN201911369123A CN111209077A CN 111209077 A CN111209077 A CN 111209077A CN 201911369123 A CN201911369123 A CN 201911369123A CN 111209077 A CN111209077 A CN 111209077A
- Authority
- CN
- China
- Prior art keywords
- training
- container
- deep learning
- resource
- layer
- 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
- 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
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种深度学习框架设计方法以及系统,该方法包括:用户通过展现层输入训练参数,AI业务层根据输入训练参数和第一推荐模型优化训练参数并且提交训练任务到K8s调度层;K8s调度层基于优化后的训练参数和第二推荐模型生成和优化K8s资源文件,并且,根据优化后的K8s资源文件提交资源请求、启动容器、运行训练任务;通过K8s调度层动态调整容器负载,收集容器运行日志来建立第二推荐模型用以优化后续的K8s资源文件;通过K8s调度层收集训练任务的训练数据建立第一推荐模型用以优化后续的训练参数。本申请的目的至少在于,能够支持容器资源弹性分配和训练结果优化的深度学习。
Description
技术领域
本申请涉及容器调度管理技术领域,具体来说,涉及一种基于Kubernetes弹性容器调度算法的深度学习框架设计方法。
背景技术
随着科技地迅猛发展,传统开发环境中数据专家必须与软件开发人员合作开发AI(Artificial Intelligence,人工智能,它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学)解决方案的模型已被颠覆。AI算法和模型组成的生态演进,让应用软件开发变成一种预定义模型。未来将有越来越多的专业开发人员,会使用将AI功能和模型集成到解决方案中的定制化开发工具,自主进行AI软件开发。容器化正是整个解决方案的核心。
近些年容器崛起,作为容器管理的工具,Kubernetes(Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,主要实现语言为Go语言,Kubernetes缩写为K8s)快速扩张到整个世界。K8s作为最主流容器管理平台已成业界共识。它满足了应用在生产环境中的一些通用需求,提供了平台即服务(PaaS)的应用交付运维简易性以及基础设施即服务(IaaS)的灵活性,提升了跨基础设施移植的方便性。
一场以Kubernetes为基础,AI驱动的开发变革拉开序幕,K8s作为AI训练的解决方案,主要有以下两个优势:
K8s支持GPU(Graphics Processing Unit,图形处理器,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器)调度,可以将整个实践过程当中取得的成果回馈到社区;
K8s支持多种调度方式,适应不同的业务场景,Job(Job在Kubernetes中负责批量处理短暂的一次性任务,short lived one-off tasks,即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束,在Kubernetes中,最小的管理元素不是一个个独立的容器,而是Pod,Pod是最小的,管理,创建,计划的最小单元)与训练任务两者切合度非常高。
现有技术存在的问题:
AI训练需要静态分配Kubernetes资源的数量,资源的分配依赖个人经验,执行训练任务时存在资源浪费或者资源不足的情况,影响训练的执行效率;
基于Kubernetes的容器调度策略是静态的,未通过资源使用情况动态调整调度策略;
训练任务的执行是单向的,没有通过训练任务的结果迭代优化训练任务。
发明内容
针对相关技术中的上述问题,本申请提出一种基于Kubernetes弹性容器调度算法的深度学习框架设计方法,至少能够支持容器资源弹性分配和训练结果优化的深度学习。
本申请的技术方案是这样实现的:
提供了一种基于Kubernetes弹性容器调度算法的深度学习框架设计方法,包括:
用户通过展现层输入训练参数,AI业务层根据输入训练参数和第一推荐模型优化训练参数并且提交训练任务到K8s调度层;
K8s调度层基于优化后的训练参数和第二推荐模型生成和优化K8s资源文件,并且,根据优化后的K8s资源文件提交资源请求、启动容器、运行训练任务;
通过K8s调度层动态调整容器负载,收集容器运行日志来建立第二推荐模型用以优化后续的K8s资源文件;
通过K8s调度层收集训练任务的训练数据建立第一推荐模型用以优化后续的训练参数。
根据本申请的实施例,AI业务层至少包括:
AI训练框架Caffe或Tensorflow至少一种;
支持自定义的AI训练库;
第一推荐引擎,第一推荐引擎根据训练任务的训练数据建立第一推荐模型。
根据本申请的实施例,K8s调度层至少包括:
负载均衡,是指动态调整容器负载;
日志监控,是指收集容器运行日志;
第二推荐引擎,第二推荐引擎根据容器运行日志建立第二推荐模型。
根据本申请的实施例,动态调整容器负载包括:
如果容器负载过高则增加容器资源;
如果容器空闲则释放容器资源。
根据本申请的实施例,展现层至少包括:管理平台、移动客户和API接口。
根据本申请的实施例,深度学习训练任务的资源基础是资源层,资源层至少包括:CPU、内存、存储和GPU。
本申请的有益技术效果在于:
通过支持基于Kubernetes系统的容器资源弹性分配和深度学习训练结果优化弹性调度算法,大大提高了基于Kubernetes容器集群管理系统深度学习效率;
支持基于Kubernetes系统的容器资源弹性分配;
支持基于深度学习训练结果优化弹性调度算法。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是应用根据本申请实施例的深度学习框架设计方法和装置示意图;
图2是应用根据本申请实施例的基于Kubernetes弹性容器调度算法的深度学习框架设计方法和装置框图;
图3是应用根据本申请实施例的基于Kubernetes弹性容器调度算法的深度学习框架设计方法和装置流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
根据本申请的实施例,提供了一种基于Kubernetes弹性容器调度算法的深度学习框架设计方法和装置。图1示出了根据本申请实施例的基于Kubernetes弹性容器调度算法的深度学习框架设计方法和装置示意图。参考图1所示,本发明的基于Kubernetes弹性容器调度算法的深度学习框架设计方法包括以下步骤:
S1,用户通过展现层输入训练参数,AI业务层根据输入训练参数和第一推荐模型优化训练参数并且提交训练任务到K8s调度层;
S2,K8s调度层基于优化后的训练参数和第二推荐模型生成和优化K8s资源文件,并且,根据优化后的K8s资源文件提交资源请求、启动容器、运行训练任务;
S3,通过K8s调度层动态调整容器负载,收集容器运行日志来建立第二推荐模型用以优化后续的K8s资源文件;
S4,通过K8s调度层收集训练任务的训练数据建立第一推荐模型用以优化后续的训练参数。
本发明的上述技术方案,通过支持基于Kubernetes系统的容器资源弹性分配和深度学习训练结果优化弹性调度算法,大大提高了基于Kubernetes容器集群管理系统深度学习效率。
如图2所示,本发明的实现原理分为以下四个层次:
资源层24提供深度学习训练任务的资源基础。主要包含CPU(Central ProcessingUnit,中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(Control Unit),它的功能主要是解释计算机指令以及处理计算机软件中的数据)241、内存242、存储243和GPU(Graphics Processing Unit,图形处理器,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器)244;
K8s调度层23负责资源的调度,日志监控233与推荐引擎234负责不断优化调度策略,负载均衡231负责动态调整容器232负载。K8s调度层23中还可以包括SDN网络(软件定义网络)。
AI业务层22提供AI训练业务平台,Caffe(全称Convolutional Architecture forFast Feature Embedding,是一种常用的深度学习框架,主要应用在视频、图像处理方面的应用上)与Tensorflow(TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief)221为主流的AI训练框架,同时支持自定义的AI训练库222,推荐引擎223优化训练参数与模型;
展现层21为用户接入提供入口,管理平台211为普通用户提供了规范化的界面,移动客户端212方便用户实时接入,API接口213为开发者提供定制化开发入口。
图3示出了本发明的基于Kubernetes弹性容器调度算法的深度学习框架设计方法流程图。
如图3开始301和输入基本训练参数302处所示:用户登录系统后,输入基本的训练参数,例如使用Tensorflow训练框架,用户提供训练的数据集路径、迭代次数、单次处理训练的数量、训练输出日志路径等信息。
如图3优化补充训练参数303处所示:基于用户的入参,通过推荐模型调整训练参数。例如基于数据集的类型,调整单次训练的数量,修改总迭代次数与网络模型。
如图3提交训练任务305处所示:训练参数优化后,AI训练平台提交训练任务,由下层的K8s调度系统创建资源执行训练任务。
如图3生成K8s资源文件306处所示:K8s调度层接收到训练任务请求后,基于训练任务的数据量与训练参数预测资源使用情况,生成K8s资源文件。同时通过推荐引擎优化资源文件的定义。
如图3提交K8s资源创建请求308处所示:K8s通过kubectl(kubectl用于运行Kubernetes集群命令的管理工具)工具调用API接口,按照K8s资源文件的资源定义创建训练任务所需的资源。
深度学习训练程序通过Job资源来实现,Job为工作类容器,可以执行一次性任务,完成后容器就退出。
Job资源定义可通过yaml文件来实现,以下为Job资源定义示例:
该Job申请了CPU、内存、GPU资源,同时制定了自定义的调度系统;
可通过运行kubectl create-f命令创建Job,scheduler会将该资源调度到最优的节点。
如图3启动容器310处所示:K8s任务创建成功后,在系统底层通过Pod启动容器,训练任务将在容器环境中运行。
如图3运行训练任务314处所示:容器启动后,训练任务被系统调起,任务开始执行。
如图3监控容器负载311、负载过高触发增加资源309、是否空闲释放资源315和提交资源释放请求317处所示:训练任务在容器中执行,通过监控容器负载(CPU、内存、GPU、网络、存储)可获取训练任务的执行情况:
当系统负载过高时,增加资源提高训练的执行效率;
训练任务可提供预期执行时间,监控系统评估训练时间低于预期时间,增加资源加快训练的执行速度;
当容器处于空闲状态时,提交资源释放请求。
如图3收集(监控系统)日志312和推荐模型307处所示:收集监控系统日志,将日志传入推荐引擎,推荐引擎基于这些数据建立推荐模型,优化后续的K8s资源申请模型。
如图3收集训练数据313和推荐模型304处所示:收集训练过程的数据,例如训练的精度、学习率、损失等指标,与当前的训练建立映射关系,传入推荐引擎,推荐引擎基于这些数据建立推荐模型,优化后续的训练参数。
如图3分布式训练是否结束316、提交K8s资源释放请求317和容器资源释放318处所示:当分布式训练结束后,提交K8s资源释放请求,将容器资源释放。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (7)
1.一种深度学习框架设计方法,其特征在于,包括:
用户通过展现层输入训练参数,AI业务层根据所述输入训练参数和第一推荐模型优化所述训练参数并且提交训练任务到K8s调度层;
所述K8s调度层基于所述优化后的训练参数和第二推荐模型生成和优化K8s资源文件,并且,根据优化后的K8s资源文件提交资源请求、启动容器、运行训练任务;
通过所述K8s调度层动态调整容器负载,收集容器运行日志来建立所述第二推荐模型用以优化后续的所述K8s资源文件;
通过所述K8s调度层收集所述训练任务的训练数据建立所述第一推荐模型用以优化后续的所述训练参数。
2.按照权利要求1所述的深度学习框架设计方法,其特征在于,所述AI业务层至少包括:
AI训练框架Caffe或Tensorflow至少一种;
支持自定义的AI训练库;
第一推荐引擎,所述第一推荐引擎根据所述训练任务的训练数据建立所述第一推荐模型。
3.按照权利要求1所述的深度学习框架设计方法,其特征在于,所述K8s调度层至少包括:
负载均衡,是指所述动态调整容器负载;
日志监控,是指所述收集容器运行日志;
第二推荐引擎,所述第二推荐引擎根据所述容器运行日志建立所述第二推荐模型。
4.按照权利要求1所述的深度学习框架设计方法,其特征在于,所述动态调整容器负载包括:
如果所述容器负载过高则增加容器资源;
如果容器空闲则释放容器资源。
5.按照权利要求1所述的深度学习框架设计方法,其特征在于,所述展现层至少包括:管理平台、移动客户和API接口。
6.按照权利要求1所述的深度学习框架设计方法,其特征在于,所述深度学习训练任务的资源基础是资源层,所述资源层至少包括:CPU、内存、存储和GPU。
7.一种深度学习框架设计系统,其特征在于,包括:存储介质,所述存储介质存储程序,所述程序被执行以实现权利要求1-6任一项所述的深度学习框架设计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911369123.1A CN111209077A (zh) | 2019-12-26 | 2019-12-26 | 深度学习框架设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911369123.1A CN111209077A (zh) | 2019-12-26 | 2019-12-26 | 深度学习框架设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111209077A true CN111209077A (zh) | 2020-05-29 |
Family
ID=70789356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911369123.1A Pending CN111209077A (zh) | 2019-12-26 | 2019-12-26 | 深度学习框架设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111209077A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241321A (zh) * | 2020-09-24 | 2021-01-19 | 北京影谱科技股份有限公司 | 基于Kubernetes的算力调度方法和装置 |
CN112241368A (zh) * | 2020-09-30 | 2021-01-19 | 北京影谱科技股份有限公司 | 基于Kubernetes的自动化模型训练方法和装置 |
CN112286671A (zh) * | 2020-12-29 | 2021-01-29 | 湖南星河云程信息科技有限公司 | 一种容器化批处理作业调度方法、装置和计算机设备 |
CN112667594A (zh) * | 2021-01-14 | 2021-04-16 | 北京智源人工智能研究院 | 一种基于混合云资源的异构计算平台及模型训练方法 |
CN112685457A (zh) * | 2020-12-31 | 2021-04-20 | 北京思特奇信息技术股份有限公司 | 一种套餐推荐机器学习模型的自动化训练系统及方法 |
CN113590953A (zh) * | 2021-07-30 | 2021-11-02 | 郑州轻工业大学 | 一种基于深度学习的推荐算法库 |
CN115618239A (zh) * | 2022-12-16 | 2023-01-17 | 四川金信石信息技术有限公司 | 一种深度学习框架训练的管理方法、系统、终端及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874542A (zh) * | 2018-06-07 | 2018-11-23 | 桂林电子科技大学 | 基于神经网络的Kubernetes调度优化方法 |
CN109992404A (zh) * | 2017-12-31 | 2019-07-09 | 中国移动通信集团湖北有限公司 | 集群计算资源调度方法、装置、设备及介质 |
US20190303758A1 (en) * | 2018-03-16 | 2019-10-03 | MCB Software Services Limited | Resource allocation using a learned model |
CN110389834A (zh) * | 2019-06-28 | 2019-10-29 | 苏州浪潮智能科技有限公司 | 一种用于提交深度学习训练任务的方法和装置 |
CN110516714A (zh) * | 2019-08-05 | 2019-11-29 | 网宿科技股份有限公司 | 一种特征预测方法、系统及引擎 |
-
2019
- 2019-12-26 CN CN201911369123.1A patent/CN111209077A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992404A (zh) * | 2017-12-31 | 2019-07-09 | 中国移动通信集团湖北有限公司 | 集群计算资源调度方法、装置、设备及介质 |
US20190303758A1 (en) * | 2018-03-16 | 2019-10-03 | MCB Software Services Limited | Resource allocation using a learned model |
CN108874542A (zh) * | 2018-06-07 | 2018-11-23 | 桂林电子科技大学 | 基于神经网络的Kubernetes调度优化方法 |
CN110389834A (zh) * | 2019-06-28 | 2019-10-29 | 苏州浪潮智能科技有限公司 | 一种用于提交深度学习训练任务的方法和装置 |
CN110516714A (zh) * | 2019-08-05 | 2019-11-29 | 网宿科技股份有限公司 | 一种特征预测方法、系统及引擎 |
Non-Patent Citations (1)
Title |
---|
赵岩等: "基于深度学习算法的粮堆温度预测研究" * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241321A (zh) * | 2020-09-24 | 2021-01-19 | 北京影谱科技股份有限公司 | 基于Kubernetes的算力调度方法和装置 |
CN112241368A (zh) * | 2020-09-30 | 2021-01-19 | 北京影谱科技股份有限公司 | 基于Kubernetes的自动化模型训练方法和装置 |
CN112286671A (zh) * | 2020-12-29 | 2021-01-29 | 湖南星河云程信息科技有限公司 | 一种容器化批处理作业调度方法、装置和计算机设备 |
CN112685457A (zh) * | 2020-12-31 | 2021-04-20 | 北京思特奇信息技术股份有限公司 | 一种套餐推荐机器学习模型的自动化训练系统及方法 |
CN112667594A (zh) * | 2021-01-14 | 2021-04-16 | 北京智源人工智能研究院 | 一种基于混合云资源的异构计算平台及模型训练方法 |
CN113590953A (zh) * | 2021-07-30 | 2021-11-02 | 郑州轻工业大学 | 一种基于深度学习的推荐算法库 |
CN113590953B (zh) * | 2021-07-30 | 2023-07-18 | 郑州轻工业大学 | 一种基于深度学习的推荐算法系统 |
CN115618239A (zh) * | 2022-12-16 | 2023-01-17 | 四川金信石信息技术有限公司 | 一种深度学习框架训练的管理方法、系统、终端及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111209077A (zh) | 深度学习框架设计方法 | |
Wang et al. | Distributed machine learning with a serverless architecture | |
CN107888669B (zh) | 一种基于深度学习神经网络的大规模资源调度系统及方法 | |
CN108089921B (zh) | 用于云端大数据运算架构的服务器及其运算资源最佳化方法 | |
US9396028B2 (en) | Scheduling workloads and making provision decisions of computer resources in a computing environment | |
US11436050B2 (en) | Method, apparatus and computer program product for resource scheduling | |
CN114072766A (zh) | 用于数字劳动力智能编排的系统和方法 | |
US20160378560A1 (en) | Executing a foreign program on a parallel computing system | |
CN114237869B (zh) | 基于强化学习的Ray双层调度方法、装置和电子设备 | |
CN106648831B (zh) | 基于萤火虫算法和动态优先级的云工作流调度方法 | |
CN106293947B (zh) | 虚拟化云环境下gpu-cpu混合资源分配系统和方法 | |
CN114610474A (zh) | 一种异构超算环境下多策略的作业调度方法及系统 | |
WO2024082853A1 (zh) | 高性能计算应用性能调优的方法及系统 | |
Tan et al. | Serving DNN models with multi-instance gpus: A case of the reconfigurable machine scheduling problem | |
WO2022072012A1 (en) | Optimizing job runtimes via prediction-based token allocation | |
Alyouzbaki et al. | Novel load balancing approach based on ant colony optimization technique in cloud computing | |
CN115586961A (zh) | 一种ai平台计算资源任务调度方法、装置及介质 | |
CN114091672B (zh) | 分布式模型推理方法及装置、电子设备和介质 | |
CN107273527A (zh) | 一种Hadoop集群和分布式系统 | |
CN111435315A (zh) | 分配资源的方法、装置、设备和计算机可读介质 | |
CN113010315A (zh) | 资源分配方法及分配装置、计算机可读存储介质 | |
Kumar et al. | EAEFA: An Efficient Energy-Aware Task Scheduling in Cloud Environment | |
CN115952054A (zh) | 一种仿真任务资源管理方法、装置、设备及介质 | |
Moreno-Vozmediano et al. | Latency and resource consumption analysis for serverless edge analytics | |
CN112698911B (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 |