基于Docker容器化的深度学习大模型与大数据集版本管理方法转让专利

申请号 : CN202210097893.0

文献号 : CN114116684B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王素平莫浩朱立谷吴冲郭逸轩袁小琳

申请人 : 中国传媒大学

摘要 :

本发明提供一种基于Docker容器化的深度学习大模型与大数据集版本管理方法,属于深度学习技术领域,在由JupyterLab服务提供的交互式集成编程环境中,建立深度学习工作区、GitLab远程代码管理库、Ceph远程对象存储服务器集群三大模块;通过生成深度学习的模型与数据集的元信息特征提取及索引构建,实现对深度学习工作流中大模型和大数据集文件原始属性跟踪;通过与Ceph集群集成实现对象云端存储,以保证数据同步更新;最终,通过容器化技术实现即启即用的版本管理和控制方法;解决了现有技术中无法支持海量大文件的远程版本管理与存储控制的技术问题,达到了提高海量大型文件数据的持久化存储及高效访问效率的技术效果。

权利要求 :

1.一种基于Docker容器化的深度学习大模型与大数据集版本管理方法,其特征在于,包括:建立Dockerfile镜像文件并创建容器镜像;启动容器镜像,并构建容器化的web系统;

其中,所述web系统包含JupyterLab服务;

在所述web系统中,通过所述JupyterLab服务获取待管理的深度学习的模型与数据集的版本数据、代码文件以及原文件,并根据所述版本数据将本地工作区与远程管理区相连接;其中,所述版本数据包括模型与数据集的各个版本的文件名称和目录名称;

对所述深度学习的各个版本的模型与数据集进行元信息特征提取,将所提取元信息特征进行哈希计算,形成包括用于调度所述容器镜像的键值对的元信息文件;

将所述元信息文件、所述代码文件以及所述原文件提交至所述远程管理区,实现对各个版本的模型与数据集的控制。

2.根据权利要求1所述的基于Docker容器化的深度学习大模型与大数据集版本管理方法,其特征在于,所述远程管理区包括GitLab远程代码管理区和Ceph分布式对象存储管理区;

其中,将所述元信息文件、所述代码文件以及所述原文件提交至所述远程管理区的方法,包括,将所述元信息文件以及所述代码文件提交至所述GitLab远程代码管理区;其中,所述元信息文件为用于与Ceph分布式对象存储管理区相链接的索引文件;

将所述原文件按照分块机制分块,并根据所述元信息文件上传至所述Ceph分布式对象存储管理区并同步至云端。

3.根据权利要求2所述的基于Docker容器化的深度学习大模型与大数据集版本管理方法,其特征在于,将所述元信息文件、所述代码文件以及所述原文件提交至所述远程管理区之后,还包括,将所述原文件在本地缓存区进行本地缓存;

当本地工作区需要从所述Ceph分布式对象存储管理区中拉取原文件时,还包括,判定所述原文件是否存在于所述本地缓存区;

若存在,则利用本地缓存区的原文件;

若不存在,则从所述Ceph分布式对象存储管理区中拉取所述原文件。

4.根据权利要求2所述的基于Docker容器化的深度学习大模型与大数据集版本管理方法,其特征在于,还包括,将与深度学习的各个版本的模型和数据集的实验步骤和信息配置项相对应的版本配置数据生成Yaml文件;

将所述Yaml文件提交至远程管理区,实现对模型与数据集的实验步骤和信息配置项的版本管理。

5.根据权利要求2所述的基于Docker容器化的深度学习大模型与大数据集版本管理方法,其特征在于,所述Ceph分布式对象存储管理区包括:用于存储守护进程的OSD服务,用于维护Ceph集群服务器的监护器以及利用CRUSH算法实现数据分配与存储均衡的存储系统;

其中,所述OSD服务作为对象存储至文件系统。

6.根据权利要求1所述的基于Docker容器化的深度学习大模型与大数据集版本管理方法,其特征在于,若需要管理的对象是模型与数据集的版本管理文件,则元信息文件包括,文件位置path、文件大小size、文件内容哈希值hash;

若需要管理的对象是模型与数据集的版本管理文件夹,则元信息文件包括,文件夹位置dir、文件夹下所有文件大小size、基于文件夹下内容的哈希值hash。

7.根据权利要求1所述的基于Docker容器化的深度学习大模型与大数据集版本管理方法,其特征在于,在通过所述JupyterLab服务获取待管理的深度学习的模型与数据集的版本数据、代码文件以及原文件之前,还包括,在浏览器中输入待访问JupyterLab服务的地址;其中,所述待访问JupyterLab服务的地址为Docker容器所在宿主机的IP地址和映射的端口号;

通过JupyterLab服务待访问页面对Docker容器中的token值进行验证;

若验证通过,则进入所述JupyterLab服务的待访问页面。

8.一种基于Docker容器化的深度学习大模型与大数据集版本管理系统,其特征在于,包括,容器建立单元,用于建立Dockerfile镜像文件并创建容器镜像;启动容器镜像,并构建容器化的web系统;其中,所述web系统包含JupyterLab服务;

连接单元,用于在所述web系统中,通过所述JupyterLab服务获取待管理的深度学习的模型与数据集的版本数据、代码文件以及原文件,并根据所述版本数据将本地工作区与远程管理区相连接;其中,所述版本数据包括模型与数据集的各个版本的文件名称和目录名称;

控制实现单元,用于对所述深度学习的各个版本的模型与数据集进行元信息特征提取,将所提取元信息特征进行哈希计算,形成包括用于调度所述容器镜像的键值对的元信息文件;

将所述元信息文件、所述代码文件以及所述原文件提交至所述远程管理区,实现对各个版本的模型与数据集的控制。

9.一种电子设备,其特征在于,所述电子设备包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一所述的基于Docker容器化的深度学习大模型与大数据集版本管理方法中的步骤。

10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一所述的基于Docker容器化的深度学习大模型与大数据集版本管理方法。

说明书 :

基于Docker容器化的深度学习大模型与大数据集版本管理

方法

技术领域

[0001] 本发明属于深度学习技术领域,具体涉及一种基于Docker容器化的深度学习大模型与大数据集版本管理方法、系统、电子设备以及存储介质。

背景技术

[0002] 在深度学习的大模型训练过程中,需要对大规模的数据集进行数据清洗,然后将数据集划分为训练集、测试集和验证集,并对各数据集分别进行不同的预处理,进而产生多个版本的数据集;容易出现历史版本数据集丢失或者各种版本的数据集错乱的弊端,导致数据集的版本与深度学习模型对应的训练过程无法匹配;另外,在深度学习的大模型优化过程中,需要对模型结构和超参数进行调整,随着模型网络结构越来越复杂,网络层数越来越多,模型的超参数越来越多样,导致模型文件的版本对应的超参数出现管理漏洞。总之,对大模型文件的版本管理和对应同版本的超参数管理效率较低,限制了深度学习大模型和大数据集的发展。
[0003] 现有的模型和数据集的版本管理方法是基于Github或Gitlab等技术实现的,虽然可以对代码文件、小模型和小数据文件实现版本管理和控制,但是,存在的弊端如下:
[0004] 在深度学习的大模型训练或优化过程中,出现了通过丢弃版本数据以节省存储空间的问题。
[0005] 因此,亟需一种能够适用于大模型和大数据集的版本管理的方法。

发明内容

[0006] 本发明提供一种基于Docker容器化的深度学习大模型与大数据集版本管理方法、系统、电子设备以及存储介质,用以克服现有技术中存在的至少一个技术问题。
[0007] 为实现上述目的,本发明提供一种基于Docker容器化的深度学习大模型与大数据集版本管理方法,方法包括:
[0008] 建立Dockerfile镜像文件并创建容器镜像;启动容器镜像,并构建容器化的web系统;其中,web系统包含JupyterLab服务;
[0009] 在web系统中,通过JupyterLab服务获取待管理的深度学习的模型与数据集的版本数据、代码文件以及原文件,并根据版本数据将本地工作区与远程管理区相连接;其中,版本数据包括模型与数据集的各个版本的文件名称和目录名称;
[0010] 对深度学习的各个版本的模型与数据集进行元信息特征提取,将所提取元信息特征进行哈希计算,形成包括用于调度容器镜像的键值对的元信息文件;
[0011] 将元信息文件、代码文件以及原文件提交至远程管理区,实现对各个版本的模型与数据集的控制。
[0012] 进一步,优选的,远程管理区包括GitLab远程代码管理区和Ceph分布式对象存储管理区;
[0013] 其中,将元信息文件、代码文件以及原文件提交至远程管理区的方法,包括,[0014] 将元信息文件以及代码文件提交至GitLab远程代码管理区;其中,元信息文件为用于与Ceph分布式对象存储管理区相链接的索引文件;
[0015] 将原文件按照分块机制分块,并根据元信息文件上传至Ceph分布式对象存储管理区并同步至云端。
[0016] 进一步,优选的,将元信息文件、代码文件以及原文件提交至远程管理区之后,还包括,将原文件进行本地缓存;
[0017] 当本地工作区需要从Ceph分布式对象存储管理区中拉取原文件时,还包括,判定原文件是否存在于本地缓存区;
[0018] 若存在,则利用本地缓存区的原文件;
[0019] 若不存在,则从Ceph分布式对象存储管理区中拉取原文件。
[0020] 进一步,优选的,将与深度学习的各个版本的模型和数据集的实验步骤和信息配置项相对应的版本配置数据生成Yaml文件;
[0021] 将Yaml文件提交至远程管理区,实现对模型与数据集的实验步骤和信息配置项的版本管理。
[0022] 进一步,优选的, Ceph分布式对象存储管理区包括:用于存储守护进程的OSD服务,用于维护Ceph集群服务器的监护器以及利用CRUSH算法实现数据分配与存储均衡的存储系统;
[0023] 其中, OSD服务作为对象存储至文件系统。
[0024] 进一步,优选的,若需要管理的对象是模型与数据集的版本管理文件,则元信息文件包括,文件位置path、文件大小size、文件内容哈希值hash;
[0025] 若需要管理的对象是模型与数据集的版本管理文件夹,则元信息文件包括,文件夹位置dir、文件夹下所有文件大小size、基于文件夹下内容的哈希值hash。
[0026] 进一步,优选的,在通过JupyterLab服务获取待管理的深度学习的模型与数据集的版本数据、代码文件以及原文件之前,还包括,
[0027] 在浏览器中输入待访问JupyterLab服务的地址;其中,待访问JupyterLab服务的地址为Docker容器所在宿主机的IP地址和映射的端口号;
[0028] 通过JupyterLab服务待访问页面对Docker容器中的token值进行验证;
[0029] 若验证通过,则进入JupyterLab服务的待访问页面。
[0030] 为了解决上述问题,本发明还提供基于Docker容器化的深度学习大模型与大数据集版本管理系统,包括:
[0031] 容器建立单元,用于建立Dockerfile镜像文件并创建容器镜像;启动容器镜像,并构建容器化的web系统;其中,web系统包含JupyterLab服务;
[0032] 连接单元,用于在web系统中,通过JupyterLab服务获取待管理的深度学习的模型与数据集的版本数据、代码文件以及原文件,并根据版本数据将本地工作区与远程管理区相连接;其中,版本数据包括模型与数据集的各个版本的文件名称和目录名称;
[0033] 控制实现单元,用于对深度学习的各个版本的模型与数据集进行元信息特征提取,将所提取元信息特征进行哈希计算,形成包括用于调度容器镜像的键值对的元信息文件;
[0034] 将元信息文件、代码文件以及原文件提交至远程管理区,实现对各个版本的模型与数据集的控制。
[0035] 为了解决上述问题,本发明还提供一种电子设备,电子设备包括:
[0036] 存储器,存储至少一个指令;及
[0037] 处理器,执行存储器中存储的指令以实现上述的基于Docker容器化的深度学习大模型与大数据集版本管理方法中的步骤。
[0038] 为了解决上述问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质中存储有至少一个指令,至少一个指令被电子设备中的处理器执行以实现上述的基于Docker容器化的深度学习大模型与大数据集版本管理方法。
[0039] 本发明的一种基于Docker容器化的深度学习大模型与大数据集版本管理方法、系统、电子设备以及存储介质,在由JupyterLab服务提供的容器化交互式集成编程环境中,建立深度学习工作区、GitLab远程代码管理库、Ceph远程对象存储服务器集群三大模块;通过生成深度学习的模型与数据集的元信息特征提取及索引构建,实现对深度学习工作流中大模型和大数据集文件原始属性跟踪;通过与Ceph集群集成实现对象云端存储,以保证数据同步更新;最终,通过容器化技术实现即启即用的版本管理和控制方法;解决了现有技术中无法支持海量大文件的远程版本管理与存储控制的技术问题,达到了提高海量大型文件数据的持久化存储及高效访问效率的技术效果。

附图说明

[0040] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0041] 图1为本发明一实施例提供的基于Docker容器化的深度学习大模型与大数据集版本管理方法的流程示意图;
[0042] 图2为本发明一实施例提供的基于Docker容器化的深度学习大模型与大数据集版本管理方法的原理示意图;
[0043] 图3为本发明一实施例提供的实现基于Docker容器化的深度学习大模型与大数据集版本管理方法的镜像文件层次堆叠的流程示意图;
[0044] 图4为本发明一实施例提供的基于Docker容器化的深度学习大模型与大数据集版本管理方法的逻辑结构示意图;
[0045] 图5为本发明一实施例提供的实现基于Docker容器化的深度学习大模型与大数据集版本管理方法的电子设备的内部结构示意图。
[0046] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0047] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0048] 参照图1所示,为本发明一实施例提供的基于Docker容器化的深度学习大模型与大数据集版本管理方法的流程示意图。该方法可以由一个系统执行,该系统可以由软件和/或硬件实现。
[0049] 在本实施例中,基于Docker容器化的深度学习大模型与大数据集版本管理方法包括步骤S110 S150。~
[0050] 因为深度学习模型训练过程具有强烈的动态性,需要处理大量各种各样的数据,为拟合出最优模型需要多次迭代最终调整出最佳网络性能的模型;因此,需要通过对代码文件和模型数据集文件等进行管理和跟踪,以掌控模型构建过程中的所有更改数据与底层模型。然而,现有的管理和跟踪过程却受限于常规存储空间的硬性限制。为了解决上述问题,本发明提供了基于Docker容器化的深度学习大模型与大数据集版本管理方法,为一种多数据集版本和多模型的大文件数据的高效版本管理和高效分布式对象云端对象存储系统。
[0051] 如图1所示,S110、建立Dockerfile镜像文件并创建容器镜像;启动容器镜像,并构建容器化的web系统;其中,web系统包含JupyterLab服务;;S120、在web系统中,通过JupyterLab服务获取待管理的深度学习的模型与数据集的版本数据、代码文件以及原文件,并根据版本数据将本地工作区与远程管理区相连接;其中,版本数据包括模型与数据集的各个版本的文件名称和目录名称;S130、对深度学习的各个版本的模型与数据集进行元信息特征提取,将所提取元信息特征进行哈希计算,形成包括用于调度容器镜像的键值对的元信息文件;S140、将元信息文件、代码文件以及原文件提交至远程管理区,实现对各个版本的模型与数据集的控制。还包括,步骤S150、将原文件进行本地缓存。
[0052] 具体地说,通过引入对深度学习训练过程大模型和大文件的元信息索引,进行元信息构建与生成;另外,通过采用Ceph作为远程分布式对象存储服务器,保证所有文件的云边数据同步与持久化;通过采用Docker容器化技术,将版本控制全过程按照层次结构依次叠加到镜像中,最终通过启动镜像文件,运行Docker容器实现深度学习大模型和大数据集的索引文件与源文件的协同管理方法和存储系统,使版本控制流程具有可移植性和可复用性。
[0053] 图2为本发明一实施例提供的基于Docker容器化的深度学习大模型与大数据集版本管理方法的原理示意图。
[0054] 如图2所示,基于Docker容器化的深度学习大模型与大数据集版本管理方法为基于GitLab+Ceph+JupyterLab构建的,具体地说,全局架构包括深度学习工作区Workspace10、GitLab远程代码管理库20、Ceph分布式对象存储远程服务器30及JupyterLab交互式编程环境40,其中,深度学习工作区10、GitLab远程代码管理库20及Ceph分布式对象存储远程服务器30,数据管理与存储控制过程所对应的操作均由JupyterLab交互式编程环境40提供支撑服务。
[0055] 具体地说,深度学习工作区Workspace10用于支撑深度学习过程的不确定性计算,保证算法与数据的动态调整,训练数据集的预处理及后处理等过程产生不同的数据特征,以供深度学习模型训练过程的数据密集型输入使用;也就是说,深度学习过程具有非线性结构和高度的迭代性质,深度学习模型在不断训练与挖掘中产生多维度网络结构,进而量化与提升模型的精确度、可信任度和安全性等指标特性。
[0056] 因此,针对模型的不同量化设计与训练产生的深度神经网络结构信息均需进行模型数据管理与存储控制,以便多次迭代及拟合之后能够回溯至历史任意版本模型,保证与大规模数据集结合进行训练过程。深度学习的大模型与大数据集处理后产生的任意版本大数据文件经版本管理操作指定后,均可实现数据追踪与存储控制管理功能,最终能够通过版本回滚等操作完成多模型及多数据集的多对多匹配,相应的与常规代码版本管理模式一致。在具体地实施过程中,深度学习代码模块也可通过GitLab进行版本控制,深度学习工作区的Workspace最终实现代码、模型及数据的三者协同工作与控制。
[0057] GitLab远程代码管理库20实现对传统小文件的版本管理,包括深度学习中基础代码文件、小型配置文件及元数据小型文件的存储管理,能够执行实时拉取、推送更新等步骤。所述GitLab远程代码管理库20对应上述深度学习工作区Workspace10产生的所有源代码文件等核心文件,实现对深度学习动态修改内容的持续集成过程。与此同时,所述深度学习中大模型与大数据集文件的元信息特征提取与元文件生成后与GitLab远程管理库结合,保证元信息文件的存储管理与控制。此外,大模型文件的元特征提取过程,由预设的哈希算法等步骤进行文件内容Hash,提取文件内容唯一性标识符及大模型文件大小、位置等属性信息。
[0058] Ceph分布式对象存储远程服务器30对应于大文件的数据存储与管理控制,Ceph远程对象存储服务器保证大模型文件与大数据集文件的云端持久化与分布式存储,提供文件存储效率,摆脱传统大文件存储空间较小的局限性。具体地,所述远程分布式对象存储系统采用三节点Ceph集群结构,Ceph集群中的CRUSH数据管理机制,将工作分配给三节点集群中的OSD对象存储设备中,实现较大规模存储服务。Ceph集群提供RESTful接口访问通道,本地深度学习工作区与Ceph分布式对象存储远程服务器30的对象存储功能认证连接成功后,实现非结构化大模型与大数据集文件的存储。
[0059] 在具体的实施过程中,Ceph集群构建过程包括Ceph目录设置、安装Docker、创建OSD磁盘、启动Monitor、OSD、mgr、rgw、mds等组件,最终搭建整个三节点的Ceph分布式对象存储服务集群。作为本实施例的改进,针对深度学习大模型与大数据集文件的海量存储导致Ceph集群存储空间不足时,可以通过进行弹性扩容,保障本地深度学习工作区对远程存储系统的读写效率。
[0060] 原始待版本管理与控制的大模型文件及大数据集文件,首先与远程存储服务器Ceph建立连接,连接成功后,根据原始文件的大小进行通过分块上传的机制推送至远程分布式存储服务器。其中,Ceph分布式存储扩展能力较强,当需要版本管理及存储控制的文件较大时支持存储扩展,实现高扩展性及高可靠性云存储。
[0061] 作为本实施例的改进,针对所述深度学习工作区Workspace10想要获取历史版本的大模型及大数据集文件时,同样地与远程存储服务器Ceph30建立连接,连接成功后,根据与目的服务器连接信息与期望回滚的版本标签信息,从云端拉取指定大模型及大数据集文件至所述本地深度学习工作区Workspace。此外,为实现性能加速,避免重复进行远程大文件拉取操作,采用本地缓存机制,自适应管理缓存中的数据。例如,缓存中保存着历史版本的大模型及大数据,当用户想要拉取远程存储服务器中的文件时,系统检查到本地缓存区存在该文件后即跳过远程下载拉取操作,最终降低频繁的数据下载导致的额外资源消耗。
[0062] 所述JupyterLab交互式编程环境40,用于为用户提供交互良好的编程环境,提供底层基础环境与用户操作界面支撑;可对应深度学习工作区Workspace10、GitLab远程代码管理库20及Ceph分布式对象存储远程服务器30的协同交互区。进一步地,所述JupyterLab环境协同本地与远程数据模块的管理与控制,提供深度学习工作区代码、大模型及大数据集文件的元信息特征文件的构建操作,负责本地与远程的链接操作;为本地深度学习工作区的数据文件的上传推送、下载拉取等数据本地与远程的同步操作,提供JupyterLab集成环境支撑。
[0063] 下面根据基于Docker容器化的深度学习大模型与大数据集版本管理方法的步骤S110 S150,进行具体说明。~
[0064] S110、建立Dockerfile镜像文件并创建容器镜像;启动容器镜像,并构建容器化的web系统;其中,web系统包含JupyterLab服务。
[0065] 需要说明的是,所述Docker容器化编程环境由定制化的Dockerfile镜像文件运行实现,Dockerfile中采用自底向上的镜像指令层堆叠,为基于Docker容器化的深度学习的大模型与大数据集的版本管理方法中的数据管理与存储控制服务提供底层支撑作用。也就是说,通过基础环境配置与数据管理与控制服务的镜像指令层设置,使以下所述的基于深度学习大模型与大数据集文件的版本管理与存储控制方法通过JupyterLab的Web系统进行操作。
[0066] 其中,容器化技术实现的web系统,容器化技术即为Docker容器技术,通过Dockerfile文件构建容器的镜像文件,通过dockerbuild创建镜像,镜像启动后即构建出web系统;web系统中包含JupyterLab服务,提供可交互式编程界面。JupyterLab服务中包含对深度学习大模型和大数据集的版本管理功能并与大文件的分布式对象存储服务结合,共同构成所述Docker容器化环境。
[0067] 在通过JupyterLab服务执行基于Docker容器化的深度学习大模型与大数据集版本管理方法之前,还包括步骤S1101 S1102;S1101、在浏览器中输入待访问JupyterLab服~务的地址;其中,待访问JupyterLab服务的地址为Docker容器所在宿主机的IP地址和映射的端口号;S1102、通过JupyterLab服务待访问页面对Docker容器中的token值进行验证;若验证通过,则进入JupyterLab服务的待访问页面。
[0068] 在具体的实施过程,JupyterLab服务在Docker容器内部启动后生成对应的访问token值,针对访问web系统的验证信息。具体地说,Docker容器启动后,web系统环境全部集成完毕,用户通过在任何浏览器中访问Docker容器所在宿主机的IP地址和映射的端口号即可访问JupyterLab服务,JupyterLab访问页面首先需要输入token值进行登录验证,用户需要输入Docker容器中涵盖的token值进行验证,所述验证过程完成后,即可在JupyterLab中进行对应深度学习代码的构建,模型文件和模型训练数据集的构建,数据预处理后以及可通过调用相关的接口进行对应数据的版本管理。
[0069] 图3为本发明一实施例提供的实现基于Docker容器化的深度学习大模型与大数据集版本管理方法的镜像文件层次堆叠的流程示意图;如图3所示,Docker容器化过程的镜像文件自底向上层次堆叠图包括镜像指令层310   370。~
[0070] 具体地,定制化的Dockerfile镜像文件层次堆叠图中,镜像指令层310为底层基础镜像,表示Dockerfile镜像文件中底层采用JupyterLab作为基础镜像。提供利用JupyterLab的交互友好性与扩展性强等特点,提供编程开发环境,支撑系统整体版本管理与控制功能。镜像指令层320添加ADD算子的深度学习的大模型与训练数据集版本管理的编译文件,编译文件中包括对大文件数据的元数据特征提取与处理算法、深度学习工作区与GitLab远程代码管理库的连接设置、待上传大模型文件与大数据集文件与远程Ceph存储服务器连接设置、依赖库设置、环境启动参数配置项设置、本地与远程数据同步数据同步过程设置等,上述所有管理代码编译后的最终文件添加至所述镜像指令层320中。镜像指令层330实现容器初始化过程,通过各阶段操作指令设置脚本文件。镜像指令层340设置键值对为全局环境变量进行赋值操作,赋值操作过程完成后,系统全局环境即满足大文件管理和存储控制方面的要求。镜像指令层350设置容器启动后的执行目录WORKDIR,执行目录设置后容器中的执行工作区则完成,默认情况下,后续所有的系统操作步骤均在该执行目录下。
例如,用户访问上述容器后,即在执行目录下,所有代码文件及数据文件操作均在此目录下进行。镜像指令层360设置环境ENV信息及附加操作信息,通过执行命令行执行容器镜像。镜像指令层370设置指定容器入口点,该入口点ENTRYPOINT用于容器启动时的运行命令。上述镜像指令层用于给容器配置一个可执行程序。
[0071] 总之,将基于Docker容器化的深度学习大模型与大数据集版本管理方法流程中设计的环境及依赖程序、资源配置信息全部集成至一个定制化的Dockerfile镜像文件中,包括系统与GitLab的连接过程、系统与Ceph远程对象存储服务器连接过程以及系统深度学习工作区目录设置信息过程,以实现只要启动Dockerfile镜像文件即可对所有环境配置进行集成构建。通过利用容器的即启即用特点,保证深度学习大模型及大数据集文件所需的版本管理与远程存储控制的环境安装完毕,立即能够提供服务。
[0072] S120、在web系统中,通过JupyterLab服务获取待管理的深度学习的模型与数据集的版本数据、代码文件以及原文件,并根据版本数据将本地工作区与远程管理区相连接;其中,版本数据包括模型与数据集的各个版本的文件名称和目录名称。也就是说,首先要捕获用户需要版本管理和存储控制的深度学习大模型及大数据集文件。
[0073] 在一个具体的实施例中,远程管理区包括GitLab远程代码管理区和Ceph分布式对象存储管理区。也就是说,获取本地深度学习工作区中的大模型与大数据集文件的名称或目录名称,并建立本地工作区与远程管理区的连接;而远程管理区包括GitLab远程代码管理区和Ceph分布式对象存储管理区;本地工作区与远程服务器的连接是并行的,需要将本地工作区中的代码与远程GitLab远程代码仓库地址首先建立连接,保证工作区中的代码能够实现版本控制;上述连接过程完成后,建立本地工作区与远程Ceph存储服务器的连接,连接完成后执行步骤S130将本地工作区中的大模型文件和大数据集文件进行元信息特征提取。换句话说,在用户指定深度学习大模型及大数据集的文件名称或目录名称后,系统建立该文件或目录与所述GitLab远程管理服务器及所述Ceph远程存储管理服务器之间的连接,为后续上传下载等操作提供基础。
[0074] 在具体的实施过程中,深度学习训练流程包括多个版本的代码模块(对应代码文件)、模型模块(对应原文件)、数据模块(对应版本数据),针对每次深度学习训练的工作流,其代码模块、模型模块和数据模型对应的版本应该一致。三个模块的对应的文件经过预处理过程后均可进行版本管理和控制。具体地说,预处理过程包括元信息特征提取并生成元信息文件的过程,还可以包括将与深度学习的各个版本的模型和数据集的实验步骤和信息配置项相对应的版本配置数据生成Yaml文件的过程。其中,将每次深度学习训练全流程实验参数、指标、输入文件、输出文件、实验阶段等实验配置项等版本配置数据的生成与记录形成Yaml文件;根据生成的所述Yaml文件的提交和上传,建立对深度学习实验的步骤和信息配置项的版本管理,有助于通过配置项信息内容实现各个版本的管理、回滚和复现等过程。
[0075] 具体地说,建立包含期望回滚的版本配置数据的Yaml文件的过程包括:将与深度学习的各个版本的模型和数据集的实验步骤和信息配置项相对应的版本配置数据生成Yaml文件;版本配置数据包括实验参数、指标数据、输入文件、输出文件和实验阶段的时延配置项;将Yaml文件提交至GitLab远程代码管理区,并上传至Ceph分布式对象存储管理区,实现对模型与数据集的实验步骤和信息配置项的版本管理。也就是说,通过构建Yaml文件,并将Yaml文件上传至远程管理区,以实现根据信息配置项对模型与数据集的版本管理。
[0076] S130、对深度学习的各个版本的模型与数据集进行元信息特征提取,将所提取元信息特征进行哈希计算,形成包括用于调度容器镜像的键值对的元信息文件。
[0077] 通过元信息文件的生成步骤对深度学习的各个版本的模型和数据集进行预处理。其中,将每个待版本管理的文件进行元信息特征提取,元信息特征提取后保存至.meta‑info元文件中。通过上述方法,将深度学习大模型文件和大训练集文件转化为较小的元信息文件。
[0078] 具体地说,元信息文件作为索引文件与远程云端分布式存储服务器进行链接。其中,深度学习的各个版本的模型与数据集就是待版本管理的文件,待版本管理的文件包括大文件和目录。其中,大文件对应的是元文件中生成文件大小、文件哈希值,目录对应的是元文件中生成目录下文件个数、目录下所有文件大小、目录和文件哈希值。需要说明的是,文件哈希值均为基于文件内容的哈希,通过唯一性哈希描述文件信息。也就是说,形成包括键值对的形式的元信息特征的元信息文件。元信息文件中包含键值对与在容器化交互式集成编程环境中,全局环境变量的键值对赋值相对应;通过提交预处理后的元文件能够将大模型文件和大数据集文件同步提交至远程对象存储服务器,并建立对应的版本控制关系。进而满足通过基于Docker容器化的深度学习大模型与大数据集版本管理方法对大文件管理和存储控制方面的要求。
[0079] 需要说明的是,通过唯一性哈希描述文件信息,是采用MD5哈希算法将一个任意长度的数据内容经过编码得到一个128位的哈希值。此外,MD5哈希值不仅包括指定文件的内容信息,还具有额外的信息,例如文件路径信息及文件类型信息等属性特征。也就是说,哈希算法提取特征后生成的小型元信息文本文件,即建立起进行版本管理和控制的基础。
[0080] 也就是说,本地深度学习工作区与远程Ceph存储服务器建立连接后,根据指定大模型文件及大数据集文件名称、所在位置、文件类型属性等基础信息,利用哈希算法建立原始大文件的特征提取信息,并保存生成的提取信息以键值对的形式写入至大模型和大数据集文件对应的元信息文件中;其中,在进行原始文件的哈希处理过程中,基于文件所包含内容进行MD5哈希处理,生成固定长度的编码内容。在具体的实施过程中,若需要管理的对象是模型与数据集的版本管理文件,则元信息文件包括,文件位置path、文件大小size、文件内容哈希值hash;若需要管理的对象是模型与数据集的版本管理文件夹,则元信息文件包括,文件夹位置dir、文件夹下所有文件大小size、基于文件夹下内容的哈希值hash。
[0081] S140、将元信息文件、代码文件以及原文件提交至远程管理区,实现对各个版本的模型与数据集的控制。
[0082] 具体地说,将元信息文件、代码文件以及原文件提交至远程管理区的方法,包括,将元信息文件以及代码文件提交至GitLab远程代码管理区,用来进行深度学习大模型与大数据集文件的远程记录保存,此保存过程与传统小文件推送至远程GitLab仓库流程一致。另外,将原文件按照分块机制分块,并根据元信息文件上传至Ceph分布式对象存储管理区并同步至云端。其中,元信息文件为用于与Ceph分布式对象存储管理区相链接的索引文件。
即将大模型和/或大数据集文件链接至Ceph对象存储服务器,通过上传操作将数据同步至云端。上传完毕后即实现本地数据与远程云端存储服务器数据的同步过程。
[0083] 也就是说,在深度学习大模型和大数据集文件构建元信息文件后,所述版本管理方法将简单易读的小型元信息文件将提交至GitLab远程代码管理区,原始大模型及大数据集文件将上传至Ceph对象存储管理区;为了保证非结构化数据的高效同步上传,在大规模文件和大数据集文件同步提交至远程对象存储服务器的过程中,要采用非结构化大文件数据的分块和提交过程。
[0084] 需要说明的是, Ceph分布式对象存储管理区包括:用于存储守护进程的OSD服务,用于维护Ceph集群服务器的监护器以及利用CRUSH算法实现数据分配与存储均衡的存储系统;其中,OSD服务作为对象存储至文件系统。具体地说,针对Ceph分布式远程对象存储区,部署方式采用三节点Ceph集群方式,通过OSD服务作为对象存储守护进程,把对象存储到文件系统;通过监视器维护整个Ceph集群服务器的全局状态,以保证深度学习大模型与大数据文件的安全存储与访问;通过 Ceph集群中的CRUSH算法实现存储系统的均衡的数据分配与存储。
[0085] 在具体的实施过程中,对于Ceph分布式远程对象的存储服务器而言,通过添加远程存储服务器的访问链接地址,对访问链接进行命名,即可实现对所述远程存储服务器中数据的上传和下载等操作。远程对象存储服务器主要功能是深度学习大模型文件和大数据集文件的存储、备份和恢复。
[0086] 总之,通过三节点Ceph集群搭建对象存储服务集群,Ceph集群中CRUSH算法实现可控、可扩展的分布式副本数据放置算法,该伪随机算法实现大文件在所有OSD中存放,实现各个对象存储设备间的负载均衡,上述远程对象存储服务器实现对深度学习大模型和大数据集文件等非结构化数据的大规模存储和高效数据管理。
[0087] 在一个具体的实施例中,还包括,步骤S150、将原文件进行本地缓存。
[0088] 为避免大型文件频繁重复下载,提高本地工作区数据与远程数据间的访问效率; 在上述版本管理过程增加本地缓存机制。当本地工作区需要从Ceph分布式对象存储管理区中拉取原文件时,还包括,判定原文件是否存在于本地缓存区;若存在,则利用本地缓存区的原文件;若不存在,则从Ceph分布式对象存储管理区中拉取原文件。
[0089] 具体地说,当本地工作区访问过远程存储服务器上的大模型或大数据集文件后,即在本地缓存区中保留该大模型和大数据集文件,缓存区将原始大文件转化为对象分块存储;根据缓存机制,当工作区想要拉取远程存储服务器中的大模型或大数据集文件时,本地管理服务首先在缓存区检查是否已存在该文件,如果文件存在,则跳过从远程存储服务器拉取数据的过程,直接使用;如果文件不存在,才开始从上述远程Ceph存储服务器中拉取文件。
[0090] 需要说明的是,无论是缓存文件还是缓存目录均采用扁平化结构,将文件转化为对象进行副本保存,如果需要下载拉取文件,基于文件内容寻址机制若该文件存在于缓存目录下,即跳过远程下载操作,直接使用缓存中保存的文件,从而达到保证文件的高效访问的技术效果。
[0091] 综上,本发明的基于Docker容器化的深度学习大模型与大数据集版本管理方法,在由JupyterLab服务提供的容器化交互式集成编程环境中,建立深度学习工作区、GitLab远程代码管理库、Ceph远程对象存储服务器集群三大模块;通过生成深度学习的模型与数据集的元信息特征提取及索引构建,实现对深度学习工作流中大模型和大数据集文件原始属性跟踪;通过将与各个版本的模型和数据集的实验步骤和信息配置项相对应的版本配置数据生成Yaml文件,实现对深度学习工作流中大模型和大数据集文件的版本配置项管理;通过与Ceph集群集成实现对象云端存储,以保证数据同步更新;最终,通过容器化技术实现即启即用的版本管理和控制方法;解决了现有技术中无法支持海量大文件的远程版本管理与存储控制的技术问题,达到了提高海量大型文件数据的持久化存储及高效访问效率的技术效果。
[0092] 如图4所示,本发明提供基于Docker容器化的深度学习大模型与大数据集版本管理系统400,本发明可以安装于电子设备中。根据实现的功能,该基于Docker容器化的深度学习大模型与大数据集版本管理系统400可以包括容器建立单元410、连接单元420、控制实现单元430、本地缓存单元440。本发明所述单元也可以称之为模块,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
[0093] 在本实施例中,关于各模块/单元的功能如下:
[0094] 容器建立单元410,用于建立Dockerfile镜像文件并创建容器镜像;启动容器镜像,并构建容器化的web系统;其中,web系统包含JupyterLab服务。
[0095] 连接单元420,用于在web系统中,通过JupyterLab服务获取待管理的深度学习的模型与数据集的版本数据、代码文件以及原文件,并根据版本数据将本地工作区与远程管理区相连接;其中,版本数据包括模型与数据集的各个版本的文件名称和目录名称。
[0096] 控制实现单元430,用于对深度学习的各个版本的模型与数据集进行元信息特征提取,将所提取元信息特征进行哈希计算,形成包括用于调度容器镜像的键值对的元信息文件;将元信息文件、代码文件以及原文件提交至远程管理区,实现对各个版本的模型与数据集的控制。
[0097] 本地缓存单元440,用于将原文件进行本地缓存。
[0098] 本发明的基于Docker容器化的深度学习大模型与大数据集版本管理方法400,在由JupyterLab服务提供的容器化交互式集成编程环境中,建立深度学习工作区、GitLab远程代码管理库、Ceph远程对象存储服务器集群三大模块;通过生成深度学习的模型与数据集的元信息特征提取及索引构建,实现对深度学习工作流中大模型和大数据集文件原始属性跟踪;通过将与各个版本的模型和数据集的实验步骤和信息配置项相对应的版本配置数据生成Yaml文件,实现对深度学习工作流中大模型和大数据集文件的版本配置项管理;通过与Ceph集群集成实现对象云端存储,以保证数据同步更新;最终,通过容器化技术实现即启即用的版本管理和控制方法;解决了现有技术中无法支持海量大文件的远程版本管理与存储控制的技术问题,达到了提高海量大型文件数据的持久化存储及高效访问效率的技术效果。
[0099] 如图5所示,本发明提供一种基于Docker容器化的深度学习大模型与大数据集版本管理方法的电子设备5。
[0100] 该电子设备5可以包括处理器50、存储器51和总线,还可以包括存储在存储器51中并可在所述处理器50上运行的计算机程序,如基于Docker容器化的深度学习大模型与大数据集版本管理程序52。存储器51还可以既包括基于Docker容器化的深度学习大模型与大数据集版本管理方法的内部存储单元也包括外部存储设备。存储器51不仅可以用于存储安装于应用软件及各类数据,例如基于Docker容器化的深度学习大模型与大数据集版本管理程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0101] 其中,所述存储器51至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器51在一些实施例中可以是电子设备5的内部存储单元,例如该电子设备5的移动硬盘。所述存储器51在另一些实施例中也可以是电子设备5的外部存储设备,例如电子设备5上配备的插接式移动硬盘、智能存储卡(Smart Media Card, SMC)、安全数字(Secure Digital, SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括电子设备5的内部存储单元也包括外部存储设备。所述存储器51不仅可以用于存储安装于电子设备5的应用软件及各类数据,例如基于Docker容器化的深度学习大模型与大数据集版本管理程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0102] 所述处理器50在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器50是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器51内的程序或者模块(例如基于Docker容器化的深度学习大模型与大数据集版本管理程序等),以及调用存储在所述存储器51内的数据,以执行电子设备5的各种功能和处理数据。
[0103] 所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器51以及至少一个处理器50等之间的连接通信。
[0104] 图5仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图5示出的结构并不构成对所述电子设备5的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0105] 例如,尽管未示出,所述电子设备5还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理系统与所述至少一个处理器50逻辑相连,从而通过电源管理系统实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备5还可以包括多种传感器、蓝牙模块、Wi‑Fi模块等,在此不再赘述。
[0106] 进一步地,所述电子设备5还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI‑FI接口、蓝牙接口等),通常用于在该电子设备5与其他电子设备之间建立通信连接。
[0107] 可选地,该电子设备5还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light‑Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备5中处理的信息以及用于显示可视化的用户界面。
[0108] 应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
[0109] 所述电子设备5中的所述存储器51存储的基于Docker容器化的深度学习大模型与大数据集版本管理程序52是多个指令的组合,在所述处理器50中运行时,可以实现:S110、建立Dockerfile镜像文件并创建容器镜像;启动容器镜像,并构建容器化的web系统;其中,web系统包含JupyterLab服务;S120、在web系统中,通过JupyterLab服务获取待管理的深度学习的模型与数据集的版本数据、代码文件以及原文件,并根据版本数据将本地工作区与远程管理区相连接;其中,版本数据包括模型与数据集的各个版本的文件名称和目录名称;S130、对深度学习的各个版本的模型与数据集进行元信息特征提取,将所提取元信息特征进行哈希计算,形成包括用于调度容器镜像的键值对的元信息文件;S140、将元信息文件、代码文件以及原文件提交至远程管理区,实现对各个版本的模型与数据集的控制。还包括,步骤S150、将原文件进行本地缓存。
[0110] 具体地,所述处理器50对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。需要强调的是,为进一步保证上述基于Docker容器化的深度学习大模型与大数据集版本管理程序的私密和安全性,上述数据库高可用处理数据存储于本服务器集群所处区块链的节点中。
[0111] 进一步地,所述电子设备5集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或系统、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read‑Only Memory)。
[0112] 本发明实施例还提供一种计算机可读存储介质,所述存储介质可以是非易失性的,也可以是易失性的,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现:S110、建立Dockerfile镜像文件并创建容器镜像;启动容器镜像,并构建容器化的web系统;其中,web系统包含JupyterLab服务;S120、在web系统中,通过JupyterLab服务获取待管理的深度学习的模型与数据集的版本数据、代码文件以及原文件,并根据版本数据将本地工作区与远程管理区相连接;其中,版本数据包括模型与数据集的各个版本的文件名称和目录名称;S130、对深度学习的各个版本的模型与数据集进行元信息特征提取,将所提取元信息特征进行哈希计算,形成包括用于调度容器镜像的键值对的元信息文件;S140、将元信息文件、代码文件以及原文件提交至远程管理区,实现对各个版本的模型与数据集的控制。还包括,步骤S150、将原文件进行本地缓存。
[0113] 具体地,所述计算机程序被处理器执行时具体实现方法可参考实施例基于Docker容器化的深度学习大模型与大数据集版本管理方法中相关步骤的描述,在此不赘述。
[0114] 在本发明所提供的几个实施例中,应该理解到,所揭露的设备,系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0115] 所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0116] 另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0117] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
[0118] 因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
[0119] 本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0120] 此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或系统也可以由一个单元或系统通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
[0121] 最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。