CN112181644B - 用于机器学习组件Jupyter跨域的方法、系统及装置 - Google Patents

用于机器学习组件Jupyter跨域的方法、系统及装置 Download PDF

Info

Publication number
CN112181644B
CN112181644B CN202010994371.1A CN202010994371A CN112181644B CN 112181644 B CN112181644 B CN 112181644B CN 202010994371 A CN202010994371 A CN 202010994371A CN 112181644 B CN112181644 B CN 112181644B
Authority
CN
China
Prior art keywords
jupyter
web
app
module
cross
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.)
Active
Application number
CN202010994371.1A
Other languages
English (en)
Other versions
CN112181644A (zh
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.)
Shanghai Weiyi Intelligent Manufacturing Technology Co ltd
Changzhou Weiyizhi Technology Co Ltd
Original Assignee
Shanghai Weiyi Intelligent Manufacturing Technology Co ltd
Changzhou Weiyizhi Technology Co Ltd
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 Shanghai Weiyi Intelligent Manufacturing Technology Co ltd, Changzhou Weiyizhi Technology Co Ltd filed Critical Shanghai Weiyi Intelligent Manufacturing Technology Co ltd
Priority to CN202010994371.1A priority Critical patent/CN112181644B/zh
Publication of CN112181644A publication Critical patent/CN112181644A/zh
Application granted granted Critical
Publication of CN112181644B publication Critical patent/CN112181644B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

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

本发明公开了一种用于机器学习组件Jupyter跨域的方法、系统及装置,包括以下步骤:根据DockerFile构建Jupyter容器镜像;对Jupyter‑web‑app模块进行二次开发;对容器进行系统环境配置;对经由二次开发后的Jupyter‑web‑app模块进行镜像部署。本发明所提供的方法旨在通过容器运行Jupyter镜像及Jupyter‑web‑app镜像的基础上,通过对Jupyter‑web‑app模块进行二次开发,从而实现跨域功能,而通过容器化运行可以更小的计算开销,意味着更低的总体成本。且本发明同时解决kubeflow开源框架组件jupyter不支持其他应用服务跨域调用,以及不能内嵌在其他应用服务中的问题,并且由于通过jupyter‑wep‑app服务进行二次开发,使其可以对其他应用服务调用,即实现跨域完成前后端的交互。

Description

用于机器学习组件Jupyter跨域的方法、系统及装置
技术领域
本发明涉及计算机信息技术领域,具体涉及一种用于机器学习组件Jupyter跨域的方法、系统及装置。
背景技术
随着机器学习和人工智能的迅猛发展,业界出现了许多开源的机器学习平台。由于机器学习与大数据天然的紧密结合,基于Hadoop Yarn的分布式任务调度仍是业界主流;但是随着容器化的发展,继Borg的开源贡献后,Docker配合Kubernetes的容器编排组合,也展现出了很强的生命力。
Kubeflow作为Kubernetes的ml工具集,包括很多的机器学习平台组件,通常情况下,Kubeflow开源框架中其中一个组件Jupyter不支持其他应用服务跨域调用,不能内嵌在其他应用服务中,从而导致功能受限。
发明内容
为克服上述问题,本发明提供一种用于机器学习组件Jupyter跨域的方法、系统及装置。
为了解决上述技术问题,本申请第一方面提供一种用于机器学习组件Jupyter跨域的方法,该方法包括以下步骤:根据DockerFile构建Jupyter容器镜像;对Jupyter-web-app模块进行二次开发;对容器进行系统环境配置;对经由二次开发后的Jupyter-web-app模块进行镜像部署,其中,对Jupyter-web-app模块进行二次开发包括:在原生Jupyter-web-app模块上增加页面嵌套模块以及用户Token认证接口,以供用户进行认证并获取用户信息;在Jupyter-web-app模块增加集群参数获取接口,根据集群参数获取接口确定跨域配置参数;通过跨域配置参数,原生创建NoteBookServer容器接口。
在本申请公开的一种示例性实施例中,根据DockerFile构建Jupyter容器镜像包括:配置构建Jupyter的基础镜像;配置Jupyter的服务运行环境;使用DockerFile构建Jupyter容器镜像;其中,配置构建Jupyter的基础镜像包括设定依赖语言、建立私库源及确定服务启动用户。
在本申请公开的一种示例性实施例中,对容器进行系统环境配置包括:指定容器拉取镜像的路径;在Jupyter-web-app模块增加跨域参数。
在本申请公开的一种示例性实施例中,对经由二次开发后的Jupyter-web-app模块进行镜像部署包括:通过Docker服务模块分别对Jupyter、Jupyter-web-app镜像进行打包生成镜像文件;将镜像文件上传至私库;停止Jupyter-web-app容器运行,安装经由二次开发后的Jupyter-web-app模块。
在本申请公开的一种示例性实施例中,在原生Jupyter-web-app模块上增加页面嵌套模块以及用户Token认证接口,以供用户进行认证并获取用户信息包括:在Jupyter-web-app模块前端增加页面嵌套模块;在Jupyter-web-app模块后端代码增加用户Token认证接口;获取用户的请求头信息,读取请求头信息中的用户信息。
在本申请公开的一种示例性实施例中,根据集群参数获取接口确定跨域配置参数是在用户认证成功的情况下,通过集群参数获取接口读取并访问得到的。
在本申请公开的一种示例性实施例中,配置Jupyter的服务运行环境,包括以TensorFlow、Pytorch作为Jupyter机器学习模型训练的Python框架。
本申请为了进一步解决上述技术问题,本申请第二方面提供又一技术方案如下:即提出用于机器学习组件Jupyter跨域的系统,其包括以下模块:Jupyter镜像构建模块:用于根据DockerFile构建Jupyter容器镜像;Jupyter-web-app镜像构建模块:用于构建Jupyter-web-app容器镜像;Jupyter-web-app二次开发模块:用于对Jupyter-web-app模块进行二次开发;docker容器模块:用于运行Jupyter容器镜像及Jupyter-web-app容器镜像。
在本申请公开的一种示例性实施例中,进一步可包括:用户终端,用于授权系统访问主用户信息;社交网络服务器,用于存储主用户的日志。
本申请为了解决上述技术问题,本申请第三方面提供又一技术方案如下:即还提供用于机器学习组件Jupyter跨域的装置,包括一个或多个处理器;储存器,用于存储一个或多个程序;一个或多个程序被一个或多个处理器执行上述项中的用于机器学习组件Jupyter跨域的方法。
本申请为了解决上述技术问题,本申请第四方面提供又一技术方案如下:即还提供一种计算机可读介质,存储有计算机程序,其中,计算机程序被设置为运行时执行上述项中的用于机器学习组件Jupyter跨域的方法。
与现有技术相比,本发明所提供的一种用于机器学习组件Jupyter跨域的方法具有如下的有益效果:
本发明所提供的方法旨在通过容器运行Jupyter镜像及Jupyter-web-app镜像的基础上,通过对Jupyter-web-app模块进行二次开发,从而实现跨域功能,而通过容器化运行可以更小的计算开销,意味着更低的总体成本。通过消除每个应用程序都需要运行一个虚拟机的需求,由于上述方式需要大量的存储和内存,而通过容器化运行可以减少整体计算开销。因此原有的浪费、重复的操作系统和资源的减少通过该方式可以转化为巨大的成本节省。且本发明同时解决kubeflow开源框架组件jupyter不支持其他应用服务跨域调用,以及不能内嵌在其他应用服务中的问题,并且由于通过jupyter-wep-app服务进行二次开发,使其可以对其他应用服务调用,即实现跨域完成前后端的交互。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
图1是本发明实施例所提供的用于机器学习组件Jupyter跨域的方法的流程图;
图2是本发明实施例所提供的用于机器学习组件Jupyter跨域的方法中步骤S101的流程图;
图3是本发明实施例所提供的用于机器学习组件Jupyter跨域的方法中步骤S102的流程图;
图4是本发明实施例所提供的用于机器学习组件Jupyter跨域的方法中步骤S103的流程图;
图5是本发明实施例所提供的用于机器学习组件Jupyter跨域的方法中步骤S104的流程图;以及
图6是本发明第二实施例所提供的用于机器学习组件Jupyter跨域的系统的模块示意图。
附图说明:
10、Jupyter镜像构建模块;
20、Jupyter-web-app镜像构建模块;
30、Jupyter-web-app二次开发模块;
40、docker容器模块;
50、Jupyter-web-app服务部署模块;
60、对外服务接口。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图及实施实例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
同样,附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本发明提供的一种用于机器学习组件Jupyter跨域的的方法。为了更清楚的阐述该方案,本发明实施例首先对本方案所涉及的现有技术进行内容阐述:
Kubeflow是基于云原生构建的机器学习任务工具大集合,其包括多个组件,功能分别从数据采集,验证,到模型训练和服务发布。而本申请所需提到的Jupyter,为其中一个交互式业务IDE编码环境模块。主要工作体现为利用交互式的操作帮助用户快速理解数据和测试评估模型,对于Jupyter,也可称为jupyter-notebook,包括两个优选模块,分别为Jupyter架构以及Jupyter-web-app模块。
本领域技术人员应当理解,也可以用Jupyterhub代替Jupyter,其在Jupyter上作出的结构上的改进,对于本领域技术人员为常见技术手段上的改进,因此,同样可以适用本发明实施例提供的方法,也应当涵盖在本发明所涵盖的保护范围内。
请参阅图1,图1是本发明实施例所提供的用于机器学习组件Jupyter跨域的方法的流程图。在本发明实施方式中,方法可以包括以下步骤:
步骤S101、根据DockerFile构建Jupyter容器镜像;
步骤S102、对Jupyter-web-app模块进行二次开发;
步骤S103、对容器进行系统环境配置;
步骤S104、对经由二次开发后的Jupyter-web-app模块进行镜像部署。
在本申请所提到的术语中“Dockerfile”是用来构建自定义Docker镜像的文本文档,docker容器下配置jupyter的容器镜像,主要是为了编写python代码,更具体而言,是做深度学习的开发。
在基于步骤S101的一个实施例中,根据DockerFile构建Jupyter容器镜像可以为利用Docker容器技术中的DockerFile构建Jupyter容器镜像,具体可为:使用第三方的镜像系统作为容器的运行系统,如Ubuntu Docker镜像18.04版本,并对DockerFile构建Jupyter容器镜像中所相关联的配置文件进行修改。
可以理解,通过DockerFile构建Jupyter容器镜像,从而通过容器拉取Jupyter容器镜像运行,根据Jupyter架构运行的特性,是本发明实施例中解决Jupyter跨域的首要步骤。
在基于步骤S102的一个实施例中,对Jupyter-web-app模块进行二次开发可以主要通过对Jupyter-web-app模块进行配置修改以及追加跨域配置参数实现跨域功能。
可以理解,jupyter-wep-app作为Jupyter架构中的一个服务模块,可以用来创建jupyternotebook,而jupyter是其他一个模块服务,用来编写机器学习代码,两个服务都属于kubeflow,kubeflow运行在Kubernetes上,“Kubernetes”指代用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让本发明实施例所要实施部署容器化的应用简单并且高效。
Kubernetes基于docker容器,两个服务都需要DockerFile生成镜像,然后docker容器运行镜像,因此,通过jupyter-wep-app的二次开发,可以实现jupyter的跨域功能,从而使Jupyter接收请求接口调用正常运行。
在基于步骤S103的一个实施例中,对容器进行系统环境配置可以是配置容器所拉取镜像的路径,从而容器可以运行指定的镜像,同时,为了实现跨域功能,需要在Jupyter-web-app模块增加跨域参数。
在基于步骤S104的一个实施例中,可以是将二次开发后的Jupyter-web-app模块部署在Kubernetes集群中的指定文件中。
在本发明实施例中,所提到术语“Kubernetes集群”指代kubernates用于协调高度可用的计算机集群,这些计算机集群被连接为单个单元工作,kubernetes的抽象性允许您将容器化应用程序部署到集群中,而不需要将程序绑定在一台计算机上。为了满足这种部署模型,应用程序需要被容器化,容器化应用程序比过去的部署模型更灵活和可用,其中应用程序直接安装到特定机器上,作为深入集成到主机中的软件包,即为Kubernetes集群。
综上,本发明实施例主要提供一种用于机器学习组件Jupyter跨域的方法,该方法在通过容器运行Jupyter镜像及Jupyter-web-app镜像的基础上,通过对Jupyter-web-app模块进行二次开发,从而实现跨域功能,而通过容器化运行可以更小的计算开销意味着更低的总体成本。通过消除每个应用程序都需要运行一个虚拟机的需求,由于上述方式需要大量的存储和内存,而通过容器化运行可以减少整体计算开销。因此原有的浪费、重复的操作系统和资源的减少可以转化为巨大的成本节省。通过减少所需硬件的数量而降低总体CAPEX(Capital Expenditure:资本性支出),这不仅仅是在私有数据中心内部,而且由于容器消耗的资源更少,云服务成本也同样降低。同时使用容器化运行可以具备更好的移植性和灵活性。且本发明实施例同时解决kubeflow开源框架组件jupyter不支持其他应用服务跨域调用,不能内嵌在其他应用服务中的问题,并且由于通过jupyter-wep-app服务进行二次开发,使其可以对其他应用服务调用,即跨域问题
请参阅图2,图2是本发明实施例所提供的用于机器学习组件Jupyter跨域的方法中步骤S101的流程图。
在其中一个实施例中,步骤S101中所提到的根据DockerFile构建Jupyter容器镜像可以包括以下步骤:
步骤S1011、配置构建Jupyter的基础镜像;
步骤S1012、配置Jupyter的服务运行环境;
步骤S1013、使用DockerFile构建Jupyter容器镜像;
其中,步骤S1011中配置构建Jupyter的基础镜像包括设定依赖语言、更换系统源、建立私库源及确定服务启动用户。
在步骤S1011中,本领域人员应当理解,Docker镜像是基于基础镜像来构建的,所提到的术语“基础镜像”即用于搭建Docker镜像的基础镜像,对于本领域人员来说为常见技术手段,应当视为现有技术名词。
具体地,在步骤S1011中配置构建Jupyter的基础镜像可以是使用Ubuntu Docker镜像18.04版本作为容器运行系统,进一步通过安装Python、Node作为Jupyter的前端以及Jupyter的后端服务依赖语言,即使用语言。
进而同时修改系统源、Pip源为公司私库源;示例性的如:
更换系统源可以包括以下步骤:复制原文件备份、编辑源列表文件、将原来的列表删除添加指定内容、更新本地索引列表运行。
进一步地,更换Python的pip源可以包括以下步骤:在主目录下创建.pip文件夹,然后在该目录下创建pip.conf文件,pip.conf文件编写如下内容。
可以理解,更换Ubuntu(Ubuntu:一个以桌面应用为主的开源GNU/Linux操作系统)的系统源和Python的pip源(换PIP源的就是把下载库的服务器切换为国内的镜像服务器),能极大的提高下载速度,是安装系统后必不可少的一项工作。
在步骤S1011中,还包括创建Jupyter用户作为NoteBookServer服务启动用户,即完成配置构建Jupyter的基础镜像。
具体地,在步骤S1012中,配置Jupyter的服务运行环境其中的一种可以是:对Jupyter服务环境依赖安装,具体为安装TensorFlow 2.2.0(TensorFlow:一款面向用户的端到端开源机器学习平台)、Pytorch 1.6.0(Pytorch:同TensorFlow,基于python优先的深度学习框架)等Python包作为JupyterNotebookServer机器学习模型训练的Python框架。
也可以采用其他框架作为代替机器学习模型训练的Python框架,仅需满足实现相同的功能,同样属于本发明实施例所涵盖的范围内。
可以理解,配置Jupyter的服务运行环境,包括以TensorFlow、Pytorch作为Jupyter机器学习模型训练的Python框架。
在步骤S1013中,即Jupyter容器镜像的构建步骤:使用Docker服务运行Jupyter自定义镜像DockerFile文件构建Jupyter镜像。
“使用Docker服务运行Jupyter自定义镜像DockerFile文件”可以是使用docker命令建立container,如采用-p指令为container指定映射端口,继而在生成的container下载jupyter notebook,配置远程访问jupyter即可。在以上的基础上设置访问密码。生成一个sha1的秘钥,并根据秘钥在所生成的jupyter notebook的配置文件中进行修改后退出,打开jupyter notebook进行访问Docker的服务器即可。
其中,上述提到的术语“jupyter notebook”为分析和建模的web应用工具,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中,非常方便研究和教学。
请参阅图3,图3是本发明实施例所提供的用于机器学习组件Jupyter跨域的方法中步骤S102的流程图。
在其中的一个实施例中,步骤S102中对Jupyter-web-app模块进行二次开发包括:
步骤S1021、在原生Jupyter-web-app模块上增加页面嵌套模块以及用户Token认证接口,以供用户进行认证并获取用户信息;
步骤S1022、在Jupyter-web-app模块增加集群参数获取接口,根据集群参数获取接口确定跨域配置参数;
步骤S1023、通过跨域配置参数,原生创建NoteBookServer容器接口。
具体地,步骤S1021中通过在原生Jupyter-web-app前端代码上增加页面嵌套模块,使其在其他应用服务可以嵌套在Web应用服务上,
步骤S1022中在Jupyter-web-app模块增加集群参数获取接口,根据集群参数获取接口确定跨域配置参数可以为,在用户调用创建或请求NoteBookServer容器的情况下,获取请求头信息,从请求头信息中获取用户名与加密后的用户Token,通过用户名+Token获取数据库中用户信息,如果认证通过则通过认证,否则返回认证失败信息。
可以理解,根据集群参数获取接口确定跨域配置参数是在用户认证成功的情况下,通过集群参数获取接口读取并访问得到的。
步骤S1023中通过跨域配置参数,原生创建NoteBookServer容器接口即在Jupyter-web-app后端代码增加Kubernetes集群参数获取接口,当用户认证成功时,可向Kubernetes集群Kubeflow(Kubeflow:TensorFlow平台下一个支持的框架)命名空间下访问Config-Map跨域配置参数,为创建NoteBookServer容器提供跨域配置参数。
继而修改kubeflow原生创建NoteBookServer容器接口,以增加用户认证和获取跨域配置参数,参考上述,在用户认证成功并且获取到跨域配置参数的情况下,可以通过启动创建NoteBookServer容器请求并且追加跨域配置参数。
可以理解,上述提到的术语“配置参数”即指从获取哪一个config-map的信息;术语“跨域配置参数”指Kubernetes中config-map文件中自定义的参数,获取到跨域配置参数后,以用来实现跨域。
请参阅图4,图4是本发明实施例所提供的用于机器学习组件Jupyter跨域的方法中步骤S103的流程图。
在步骤S103中,对容器进行系统环境配置可以包括以下步骤:
步骤S1031、指定容器拉取镜像的路径;
步骤S1032、在Jupyter-web-app模块增加跨域参数。
具体地,步骤S1031指定容器拉取镜像的路径即修改Jupyter-web-app修改安装镜像的路径,示例性的如:在进入kubeflow安装时产生的kustomize文件夹时,可以通过修改kustomize目录下jupyter-web-app文件夹下的deployment文件,指定Jupyter、jupyter-web-app镜像分别为步骤S101和步骤S102的生成的Jupyter镜像以及jupyter-web-app镜像。
更进一步地,步骤S1032中在Jupyter-web-app模块增加跨域参数,所提到的术语“跨域参数”指代指定的参数,如安全政策权限的指令;通过增加跨域参数实现跨域协议桥接,示例性的如可以是在Jupyter-web-app增加Kubernetes集群参数,如在jupyter-web-app文件夹下config-map文件,从而在文件空间下增加跨域参数,以实现容器的跨域功能。
请参阅图5,图5是本发明实施例所提供的用于机器学习组件Jupyter跨域的方法中步骤S104的流程图。
对经由二次开发后的Jupyter-web-app模块进行镜像部署可以包括以下步骤:
步骤S1041、通过Docker服务模块分别对Jupyter、Jupyter-web-app镜像进行打包生成镜像文件;
步骤S1042、将镜像文件上传至私库;
步骤S1043、停止Jupyter-web-app容器运行,安装经由二次开发后的Jupyter-web-app模块。
具体地,步骤S1041中通过Docker服务模块分别对Jupyter、Jupyter-web-app镜像进行打包生成镜像文件,即将Jupyter、Jupyter-web-app进行镜像打包,可以是通过Docker服务分别对Jupyter、Jupyter-web-app镜像进行打包生成镜像文件,继而通过步骤S104将Jupyter、Jupyter-web-app进行经由镜像打包的镜像文件上传到DockerHub私库。如可以通过docker push+镜像来上传至私库,并通过登录DockerHub验证。
步骤S1043中主要阐述Jupyter-web-app服务部署,其中一种示例可以是停止Jupyter-web-app容器运行,安装经由二次开发后的Jupyter-web-app模块,进入Kubernetes集群Kubeflow命名空间下,停止Jupyter-web-app容器进行,使用Kustomize对修改后的Jupyter-web-app安装文件进行安装。通过以修改后的Jupyter-web-app安装文件作为应用描述文件,通过Overlay的方式生成最终部署应用所需的描述文件。从而完成整个通过容器来实现机器学习组件Jupyter跨域的架构。
为了进一步解决上述问题,本发明第二实施例还提供一种用于机器学习组件Jupyter跨域的系统。请参阅图6,图6是本发明第二实施例所提供的用于机器学习组件Jupyter跨域的系统的模块示意图。在本发明第二实施例中,系统100可以包括:
Jupyter镜像构建模块10:用于根据DockerFile构建Jupyter容器镜像;
Jupyter-web-app镜像构建模块20:用于构建Jupyter-web-app容器镜像;
Jupyter-web-app二次开发模块30:用于对Jupyter-web-app模块进行二次开发;
docker容器模块40:用于运行Jupyter容器镜像及Jupyter-web-app容器镜像;
Jupyter-web-app服务部署模块50:用于对经由二次开发后的所述Jupyter-web-app模块进行镜像部署;
对外服务接口60:用于对外提供服务。
该系统可以应用于需要内嵌在其他应用服务的机器学习架构,通过jupyter-wep-app服务进行二次开发,使其可以对其他应用服务调用,即实现跨域完成前后端的交互。
为了进一步解决上述问题,本命发明第三实施例还提供一种用于机器学习组件Jupyter跨域的装置,该装置包括:
一个或多个处理器;
储存器,用于存储一个或多个程序;
所述一个或多个程序被所述一个或多个处理器上述实施例中的用于机器学习组件Jupyter跨域的方法的部分步骤或者全部步骤。
该装置可以是通过上述方法,实现解决kubeflow开源框架组件jupyter不支持其他应用服务跨域调用,以及不能内嵌在其他应用服务中的问题,并且由于通过jupyter-wep-app服务进行二次开发,使其可以对其他应用服务调用,即实现跨域完成前后端的交互。
本领域技术人员也应当理解,如果将本发明方法或者装置、经过简单变化、在其上述方法增添功能进行组合、或者在其装置上进行替换,如各组件进行型号材料上的替换、使用环境进行替换、各组件位置关系进行简单替换等;或者将其所构成的产品一体设置;或者可拆卸设计;凡组合后的组件可以组成具有特定功能的方法/设备/装置,用这样的方法/设备/装置替代本发明的方法和装置均同样落在本发明的保护范围内。
本发明第四实施例还提供一种计算机,包括如上述的装置。应当理解的是,该计算机不限定尺寸、外形轮廓,仅需利用到了装置对应的元件实现了相同或者相似的功能,均同样应属于本发明所保护的范围内。
本领域技术人员也应当理解,如果将本发明的方法、系统、可读存储介质、实施例一至七中的全部或部分内容通过组合或者改进,代替本发明的系统中的相应实施例,同样落在本发明的保护范围内。
装置还包括存储器和一个或者多个处理器,上述用于机器学习组件Jupyter跨域的方法可作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调节内核参数来针对餐具图像控制所述洗碗机的喷臂对所述餐具进行清洗。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明第五实施例还提供了一种机器可读存储介质,其上存储有程序,该程序被处理器执行时实现所述用于机器学习组件Jupyter跨域的方法方法。
本发明实施例第六提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述用于机器学习组件Jupyter跨域的方法方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内
与现有技术相比,本发明所提供的一种用于机器学习组件Jupyter跨域的方法具有如下的有益效果:
通过容器运行Jupyter镜像及Jupyter-web-app镜像的基础上,通过对Jupyter-web-app模块进行二次开发,从而实现跨域功能,而通过容器化运行可以更小的计算开销,意味着更低的总体成本。通过消除每个应用程序都需要运行一个虚拟机的需求,由于上述方式需要大量的存储和内存,而通过容器化运行可以减少整体计算开销。因此原有的浪费、重复的操作系统和资源的减少通过该方式可以转化为巨大的成本节省。且本发明同时解决kubeflow开源框架组件jupyter不支持其他应用服务跨域调用,以及不能内嵌在其他应用服务中的问题,由于通过jupyter-wep-app服务进行二次开发,使其可以对其他应用服务调用,即跨域问题。
以上仅为本发明较佳实施例而已,并不用以限制本发明,凡在本发明原则之内所作的任何修改,等同替换和改进等均应包含本发明的保护范围之内。

Claims (8)

1.一种用于机器学习组件Jupyter跨域的方法,其特征在于,所述方法包括:
根据DockerFile构建Jupyter容器镜像;
对Jupyter-web-app模块进行二次开发;
对容器进行系统环境配置;
对经由二次开发后的所述Jupyter-web-app模块进行镜像部署;
其中,所述对Jupyter-web-app模块进行二次开发包括:
在原生Jupyter-web-app模块上增加页面嵌套模块以及用户Token认证接口,以供用户进行认证并获取用户信息;
在所述Jupyter-web-app模块增加集群参数获取接口,根据所述集群参数获取接口确定跨域配置参数;
通过所述跨域配置参数,原生创建NoteBookServer容器接口;
所述对经由二次开发后的所述Jupyter-web-app模块进行镜像部署包括:
通过Docker服务模块分别对Jupyter、Jupyter-web-app镜像进行打包生成镜像文件;
将所述镜像文件上传至私库;
停止所述Jupyter-web-app容器运行,安装经由所述二次开发后的Jupyter-web-app模块;
所述在原生Jupyter-web-app模块上增加页面嵌套模块以及用户Token认证接口,以供用户进行认证并获取用户信息包括:
在所述Jupyter-web-app模块前端增加页面嵌套模块;
在所述Jupyter-web-app模块后端代码增加用户Token认证接口;
获取用户的请求头信息,读取所述请求头信息中的所述用户信息;
根据集群参数获取接口确定跨域配置参数包括:
当用户调用创建或请求NoteBookServer容器接口时,获取请求头信息;
从请求头信息中获取用户名与加密后的用户Token;
通过用户名和用户Token获取数据库中用户信息;
当通过所述用户信息认证成功时,通过集群参数获取接口读取跨域配置参数。
2.如权利要求1所述的方法,其特征在于,
所述根据DockerFile构建Jupyter容器镜像包括:
配置构建Jupyter的基础镜像;
配置Jupyter的服务运行环境;
使用DockerFile构建Jupyter容器镜像;
其中,所述配置构建Jupyter的基础镜像包括设定依赖语言、建立私库源及确定服务启动用户。
3.如权利要求1所述的方法,其特征在于,
所述对容器进行系统环境配置包括:
指定容器拉取镜像的路径;
在所述Jupyter-web-app模块增加跨域参数。
4.如权利要求1所述的用于机器学习组件Jupyter跨域的方法,其特征在于,所述根据所述集群参数获取接口确定跨域配置参数是在用户认证成功的情况下,通过所述集群参数获取接口读取并访问得到的。
5.如权利要求2所述的用于机器学习组件Jupyter跨域的方法,其特征在于,所述配置Jupyter的服务运行环境,包括以TensorFlow、Pytorch作为Jupyter机器学习模型训练的Python框架。
6.一种用于机器学习组件Jupyter跨域的系统,其特征在于,所述系统包括:
Jupyter镜像构建模块:用于根据DockerFile构建Jupyter容器镜像;
Jupyter-web-app镜像构建模块:用于构建Jupyter-web-app容器镜像;
Jupyter-web-app二次开发模块:用于对Jupyter-web-app模块进行二次开发;
docker容器模块:用于运行所述Jupyter容器镜像及所述Jupyter-web-app容器镜像;
Jupyter-web-app服务部署模块:用于对经由二次开发后的所述Jupyter-web-app模块进行镜像部署;
其中,所述对Jupyter-web-app模块进行二次开发包括:
在原生Jupyter-web-app模块上增加页面嵌套模块以及用户Token认证接口,以供用户进行认证并获取用户信息;
在所述Jupyter-web-app模块增加集群参数获取接口,根据所述集群参数获取接口确定跨域配置参数;
通过所述跨域配置参数,原生创建NoteBookServer容器接口;
所述对经由二次开发后的所述Jupyter-web-app模块进行镜像部署包括:
通过Docker服务模块分别对Jupyter、Jupyter-web-app镜像进行打包生成镜像文件;
将所述镜像文件上传至私库;
停止所述Jupyter-web-app容器运行,安装经由所述二次开发后的Jupyter-web-app模块;
所述在原生Jupyter-web-app模块上增加页面嵌套模块以及用户Token认证接口,以供用户进行认证并获取用户信息包括:
在所述Jupyter-web-app模块前端增加页面嵌套模块;
在所述Jupyter-web-app模块后端代码增加用户Token认证接口;
获取用户的请求头信息,读取所述请求头信息中的所述用户信息;
根据集群参数获取接口确定跨域配置参数包括:
当用户调用创建或请求NoteBookServer容器接口时,获取请求头信息;
从请求头信息中获取用户名与加密后的用户Token;
通过用户名和用户Token获取数据库中用户信息;
当通过所述用户信息认证成功时,通过集群参数获取接口读取跨域配置参数。
7.一种用于机器学习组件Jupyter跨域的装置,包括
一个或多个处理器;
储存器,用于存储一个或多个程序;
所述一个或多个程序被所述一个或多个处理器执行权利要求1至5中任一项中所述的用于机器学习组件Jupyter跨域的方法。
8.一种计算机可读介质,其特征在于,所述计算机可读介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至5中任一项中所述的用于机器学习组件Jupyter跨域的方法。
CN202010994371.1A 2020-09-21 2020-09-21 用于机器学习组件Jupyter跨域的方法、系统及装置 Active CN112181644B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010994371.1A CN112181644B (zh) 2020-09-21 2020-09-21 用于机器学习组件Jupyter跨域的方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010994371.1A CN112181644B (zh) 2020-09-21 2020-09-21 用于机器学习组件Jupyter跨域的方法、系统及装置

Publications (2)

Publication Number Publication Date
CN112181644A CN112181644A (zh) 2021-01-05
CN112181644B true CN112181644B (zh) 2021-08-06

Family

ID=73955616

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010994371.1A Active CN112181644B (zh) 2020-09-21 2020-09-21 用于机器学习组件Jupyter跨域的方法、系统及装置

Country Status (1)

Country Link
CN (1) CN112181644B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157786B (zh) * 2021-04-01 2023-06-09 青岛海尔科技有限公司 用户信息的获取方法及装置、存储介质及电子装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740765A (zh) * 2019-01-31 2019-05-10 成都品果科技有限公司 一种基于亚马逊网络服务器的机器学习系统搭建方法
CN111090456A (zh) * 2019-12-06 2020-05-01 浪潮(北京)电子信息产业有限公司 一种深度学习开发环境的构建方法、装置、设备及介质
CN111427549A (zh) * 2020-03-30 2020-07-17 中国科学院计算机网络信息中心 一种人工智能强化学习服务平台
CN111459619A (zh) * 2020-04-07 2020-07-28 合肥本源量子计算科技有限责任公司 一种基于云平台实现服务的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259435B (zh) * 2016-12-29 2021-02-26 中国移动通信集团浙江有限公司 接入Web组件的混合应用的实现方法及装置
US10705868B2 (en) * 2017-08-07 2020-07-07 Modelop, Inc. Dynamically configurable microservice model for data analysis using sensors
CN110688142B (zh) * 2019-10-10 2020-07-07 星环信息科技(上海)有限公司 应用程序编程接口的发布方法、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740765A (zh) * 2019-01-31 2019-05-10 成都品果科技有限公司 一种基于亚马逊网络服务器的机器学习系统搭建方法
CN111090456A (zh) * 2019-12-06 2020-05-01 浪潮(北京)电子信息产业有限公司 一种深度学习开发环境的构建方法、装置、设备及介质
CN111427549A (zh) * 2020-03-30 2020-07-17 中国科学院计算机网络信息中心 一种人工智能强化学习服务平台
CN111459619A (zh) * 2020-04-07 2020-07-28 合肥本源量子计算科技有限责任公司 一种基于云平台实现服务的方法和装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JUPYTER 二次开发;qq_33106591;《https://www.freesion.com/article/5331655152/#_10》;20200513;第5页 *
基于Jupyter交互式分析平台的微服务架构;贺宗平, 张晓东, 刘玉;《计算机系统应用》;20190808;第28卷(第8期);第64-66页第1-2节 *
容器技术在科学计算中的应用研究;徐蕴琪,黄荷,金钟;《计算机科学》;20200812;全文 *
贺宗平, 张晓东, 刘玉.基于Jupyter交互式分析平台的微服务架构.《计算机系统应用》.2019,第28卷(第8期), *

Also Published As

Publication number Publication date
CN112181644A (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
US10108442B1 (en) Optimization and affinity for hypervisor-based just-in-time translator
US10534596B2 (en) Migrating applications to updated environments
US20190079744A1 (en) Systems and methods for a policy-driven orchestration of deployment of distributed applications
US10983816B2 (en) Self-adaptive building container images
US10901700B2 (en) Automatic generation of container image in a runtime environment
US9361120B2 (en) Pluggable cloud enablement boot device and method that determines hardware resources via firmware
US9389874B2 (en) Apparatus and methods for automatically reflecting changes to a computing solution in an image for the computing solution
US9959135B2 (en) Pattern design for heterogeneous environments
US20150106611A1 (en) Pluggable cloud enablement boot device and method
CN113885849B (zh) 基于工业互联网平台的应用开发方法、装置及终端设备
US11593103B1 (en) Anti-pattern detection in extraction and deployment of a microservice
US20230105203A1 (en) Generating a test cluster for testing a container orchestration system
US20210089631A1 (en) Correspondence of external operations to containers and mutation events
US20230409417A1 (en) Automated generation of application programming interfaces for microservices
US10979488B2 (en) Method for increasing file transmission speed
CN112181644B (zh) 用于机器学习组件Jupyter跨域的方法、系统及装置
US11010149B2 (en) Shared middleware layer containers
US11726778B2 (en) Translating clusters of a monolith application to microservices
US11556499B2 (en) Container image migration service
US11321106B2 (en) Using binaries of container images as operating system commands
US11599733B2 (en) Program integrated information management for cloud-based applications
US11269596B2 (en) Automated microservice creation based on user interaction
US10296331B2 (en) Log-based software porting
US11954474B2 (en) Generating compliant container images via embeddings
US11630804B1 (en) Classifying and storing multiple layers of a file system

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
GR01 Patent grant
GR01 Patent grant