APP下载

基于传统机房构建AI 实验平台的实践研究

2023-11-13陈春林曹旭斌

实验科学与技术 2023年4期
关键词:虚拟化容器调度

陈春林,曹旭斌

(1.西南财经大学 经济管理实验教学中心,成都 611130;2.西南财经大学 信息化与大数据管理中心,成都 611130)

1 数据科学和人工智能的教学趋势和需求

兼具技术属性和社会属性并高度融合的人工智能技术,因其对整个社会经济生活模式产生的重大需求变革,不仅在计算机科学与技术相关专业提出了新的学科建设方向,在各学科专业也都提出了“人工智能+X”的学科要求[1]。以笔者所在高校设置专业为例,开设了人工智能的机器学习类(含深度学习、强化学习)等必修课程的专业占全校2021 级本科专业总数近三分之一。

在人工智能渗透到各类学科教育的过程中,实践必然成为教学中重要的一环。其教学要求理论与实践并需且紧密结合:理论层次上,从交叉学科领域的基础理论前沿研究中形成的逻辑和解决模式提出了解决某类问题的优化方法模型,选择采用算法的类型、算法中超参数的调教设定等需要理论教学带来认知;实践层次上,则是将所涉及和选定的算法应用到实际问题的过程,实操、验证和探索各类理论算法中条件限定、准确度以及性能要求。

融合学科的人工智能领域的教学依赖专业且易用的编程环境、高效且稳定的计算资源、安全且便捷的数据资源和可靠且灵活的教学模式。传统计算机房能够基于预装好的操作系统和硬件提供有效但相对固化的实验教学环境,以笔者所在学校为例,学校提供了50 台配置有NVIDIA GPU的计算机在实验室满足日常教学课程。但传统的计算机房的开放局限于教学课程安排和场地日常工作开放时间,而现场的开放也同时面临着座位数量、课程间隔时间、班级隔离、设备维护等需求和影响,传统计算机房很难做到全天候、无需教师看管的开放模式,实验室的使用效率潜力依然有提升空间。

为构建满足新时代背景下泛在学习的教育服务供给能力,本文将介绍一种有效的方法,在不改变原有计算机实验室的使用模式和教学体验的基础上,进行基础设施改造,将传统机房的计算能力虚拟化,建立有效调度计算能力并即开即用的计算环境,通过Web 提供泛在人工智能实验教学平台服务,使教学双方能够使用移动终端。在改造后的实验室中,无论是平板还是笔记本还是PC 甚至手机的浏览器均可利用平台配备完善的环境进行相关算法的开发研究和应用实践。

2 人工智能实验教学平台的架构设计

通过分析数据科学和人工智能的教学需求,根据现有硬件资源条件,需要实现对于基础设施的计算能力、存储能力的虚拟化调度改造,同时也需实现实验教学环境的虚拟化,即提供可基于Web 访问的实验教学环境和管理平台。

2.1 基础设施服务

基础设施服务能力包含计算和存储服务的能力,同时还包括调度管理等服务的能力。

2.1.1 计算能力的调度

为实现虚拟化调度分布在实验室50 台终端的CPU、GPU 和内存的计算能力,我们采用容器虚拟化模式。计算机的虚拟化有全虚拟化、半虚拟化和容器虚拟化等技术,其中全虚拟化和半虚拟化以VMware vSphere、Microsoft Hyper-V 和Xen为代表,但其虚拟化界面和应用程序界面隔离并独占使用,容器虚拟化适用于相同操作系统内核的应用程序部署。Docker 作为一种容器技术,性能损失小,用于创建、运行和管理容器。Kubernetes(简称K8s)是一个容器编排平台,负责管理和调度容器化应用程序。这两者相互配合,可以实现高度自动化、可扩展和易于维护的基础设施服务。通过在传统实验室内终端上的Linux 系统建立容器服务,将容器服务集中以K8s 进行编排服务[2],因Docker 容器通过使用cgroups 技术大大降低了控制系统资源的粒度,从而大幅度地提高了对系统资源的利用率[3],其计算性能损耗可忽略不计[4],但同时又能够满足终端在日常教学实验课程中的正常使用。容器以内核级的虚拟化实现了相比在终端上建立虚拟机来获取GPU 的计算能力有着更高的性能和效率。为使容器能够将独享的GPU 分割为多个(在本实践中为两个)vGPU 以提供更多的GPU 实例[5],本文综合对比了目前多种方案(如表1所示),选择以TKE 方案为基础进行镜像生成和K8s 编排集成,实现了将原有50 张显存为8 G 的GPU 卡分割为100 张显存单位为最小的4 GB vGPU,使使用者数量扩展了一倍。

表1 vGPU 分割方案对比

2.1.2 存储能力的调度

在存储服务方面,为减少新的投入,采用现有的集中式存储阵列。由于现有集中式存储阵列采用SAN 存储,而K8s 采用文件存储,采用已经连接到SAN 存储的存储池中新建虚拟机,把集中式存储阵列LUN 挂载给该主机,通过该主机将整个平台所需至少4 T 容量的存储需求以卷(volume)的形式作为K8s 的存储层抽象。存储服务提供3 个使用方向:K8s 中主节点运行所需的存储;人工智能实验教学平台的使用者在利用平台进行数据标注、数据和算法训练时所需的数据存储;保存平台和使用者所需的Docker 镜像的仓库存储。当存储需求增加已有存储无法满足时,可通过扩展SAN 存储的分配容量进行卷扩容,满足新增需求。

为了便于平台使用者能够脱离平台在本地系统中也能获取数据,将容器所挂载的数据存储与容器解耦部署,通过Docker 容器的定义声明,将存储资源挂载到容器中,并实现数据的读写和持久化。在挂载容器卷的同时,使用NFS[6]的模式将数据存储开放给使用者,使用者仅需通过设定的账号密码即可获取数据或共享数据给平台其他用户。由此,使用者在启动容器服务时,可随时进行数据的上传、下载和共享。

2.1.3 资源服务能力的调度

在设计整体结构时,考虑到位于传统实验室的终端的开关机较为频繁,环境并不满足长时间开启服务的条件。为解决实现K8s 的主机集群服务长期稳定,通过数据中心现有Vmare vsphere 资源池建立虚拟机提供K8s 的主服务节点,将传统实验室内的50 台工作站终端作为计算节点加入。数据中心和传统实验室通过光纤实现千兆链接,并划分为同一虚拟vlan。

资源服务能力的调度包含计算资源调度和物理资源调度两部分。计算资源的调度以K8s 调度分布在实验室的计算节点,通过容器实现算力资源轻量级虚拟化,快速完成计算所需资源的封装与隔离;K8s 完成对容器集群的编排、调度、容器生命周期管理等。结合教学和科研需求,可以将分布在50 台计算节点终端的计算资源根据需求进行CPU、内存和vGPU 的模式预置提供可选项,如“实验教学A-1CPU 2 G 内存 4 G 显存”和“实验教学B-2CPU 8 G 内存 8 G 显存”等,帮助使用者在应用分布式训练时可以实现多节点多卡、单节点单多卡训练[7]。物理资源调度根据日常教学计划预先确认实验室在日间的使用空闲时间,结合非授课时间和晚间及节假日,将实验室可用于远程教学、学生自主实验和教师科研实验可使用的时间段进行公告,提前根据需求利用传统实验室已有的教室管理系统进行远程开关机和系统的切换,满足物理资源的调度需求。

2.2 实验教学环境的微服务化

围绕机器学习和深度学习的教学科研需求特色,从数据处理、算法开发、训练、模型泛化的实验流程出发,抽象出人工智能学习的实验教学平台的模式。结合机器学习业务特点,封装优化后的机器/深度学习框架和分布式训练框架,如TensorFlow、PyTorch[8]、MXnet,和分布式机器学习框架Horovod 等到容器中。透过Jupyter 服务使上述的实验流程通过Web 模式提供[9],针对一些常用的数据处理分析软件,如MATLAB,进行容器化改造,通过VNC 界面提供[10]。同时,在集群管理的优势下,可以通过网络地址转换(NAT)[11]的方式,将集群内的容器服务能力映射出,以保持平台系统的开放性,支持SSH 和Tensorboard[12]。

在用户授权上,使用校内现有身份认证系统进行用户甄别准入,并在平台系统内,根据学生和教师身份给予相应的资源使用权限。

3 人工智能实验教学平台的优势

1)提升资源利用率。基于现有传统实验室的计算终端改造,机器一体两用,日常供正常教学实验,空闲时间快速切换系统启动容器服务,在10 分钟内即可组建成人工智能实验教学平台提供算力支撑;同时通过按需分配、多任务隔离并行等功能,进一步提升资源利用率。

2)实现教学和科研效率提升。通过平台实现秒级的预置环境创建,同时提供数据准备、算法模型构建、训练调优、模型管理和部署应用等功能,实现机器学习生命周期流程管理。

3)工具服务化,形成全面的机器学习技术工具链服务于人工智能教学全生命周期。集成常用软件如MATLAB 并能实现即开即用、按需使用的服务模式。通过K8s 的网络发现服务开放并预留了标准API 扩展[13]接口,从而提升平台的可用性。平台集成TensorFlow、PyTorch、MXnet 等多个主流机器学习框架,也集成了Harbor 等容器仓库框架,能够在后期进行容器镜像扩展。

4 结束语

本平台的设计与实践,是推进实验教学智能发展的有益尝试,在推动实验教学变革,构建新技术赋能的教学环境,探索基于人工智能的新教学模式,重构教学流程方面做出了积极的探索。在重构教学流程的过程中,我们不仅致力于改进既有教学模式,同时也在寻求如何优化运行机制和服务模式。通过优化运行机制和服务模式,实现教学资源的按需定制,从而提升教学治理水平。此外,通过推动在线学习,发展以学习者为中心的学习平台,提供按需定制的学习资源,创新服务供给模式,实现实验教学的智能化。

在今后的平台建设中,还有以下需要改进和考虑的内容。

1)进一步提升实验教学的智能化。举例来讲,在当前使用Jupyter 服务实现人工智能全流程开发实验教学的模式中,可以嵌入Jupyter 的相关教学管理插件,如Auto Grade 等,进一步提升实验教学的智能化水平。

2)扩大平台的教学适用性。基于容器化服务的特性,将多种类的实验教学软件进行容器化改造和测试,在资源存量允许的情况下,实现实验教学软件在本平台上的Web 化访问,提升实验教学软硬件的使用效率,方便广大师生在教学科研中使用。

3)开源软件的应用需要更多的投入。本人工智能实验教学平台从集群编排使用的K8s 软件、计算终端使用的linux 操作系统、容器镜像服务harbor 以及计算框架horovod、GPU 虚拟化分割vGPU 的TKE 方案、教学框架Jupyter 等,均为开源社区所提供,需更加重视安全性和日志代码审查,及时更新漏洞,加强人员投入并反哺社区形成良性循环。

猜你喜欢

虚拟化容器调度
Different Containers不同的容器
《调度集中系统(CTC)/列车调度指挥系统(TDCS)维护手册》正式出版
难以置信的事情
一种基于负载均衡的Kubernetes调度改进算法
虚拟机实时迁移调度算法
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
虚拟化技术在计算机技术创造中的应用
存储虚拟化还有优势吗?
取米