在以容器为利用运行载体的 Kubernetes 平台上,运行 AI 训练和推理工作,正逐渐成为 AI 厂商以及 AI 利用在企业落地的热点和首选。这两年,国内外陆续有相干的钻研报告在关注这两个前沿技术的联合和冲破,与之相干的工具和创新型企业也不断涌现。
Gartner 在 2019 年公布的一份对于 AI 的预测报告中指出,在过来的一年里,采纳 AI 的企业数量减少了两倍,而 AI 成为了企业 CIO 们思考的头等大事。CIO 在企业内施行 AI 利用的过程里,必须思考的五个因素中就有两项与 Kubernetes 相干:
第一,AI 将决定基础架构的选型和决策 。在企业对 AI 的应用正在迅速减少的背景下,到 2023 年, 人工智能将成为驱动基础架构决策的次要工作负载之一。放慢 AI 的落地,须要特定的基础设施资源,这些资源能够与 AI 以及相干基础设施技术一起同步倒退。咱们认为,以 Kubernetes 弱小的编排以及对 AI 模型的反对能力,通过在互联网厂商以及更多客户总结的最佳实际,Kubernetes 将成为企业外部 AI 利用首选的运行环境和平台。
第二,Serverless 将失去更大倒退。容器和 Serverless 将使机器学习模型作为独立的性能提供服务,从而以更低的开销运行 AI 利用。Gartner 间接指出了将容器作为机器学习模型的劣势和趋势。
对于机器学习,你要晓得的事
为了更深刻地了解这一技术趋势,咱们须要对人工智能、机器学习有根本的了解。
机器学习是人工智能(AI)的分支,它使计算机系统可能应用统计办法,辨认或学习大量数据中存在的法则和模式。机器学习将这些模式汇总到一个模型中,通过该模型,计算机就能进行预测或执行具体的辨认工作,而无需人为地编写规定来实现对输出数据的辨认和解决。简略地说,机器学习是对数据进行解决、统计和演绎,是数据处理的迷信。
古代的机器学习须要依赖特定的算法,尽管这些算法大多数在数十年前就曾经存在了,但算法的存在并没有使机器学习在那些年就被器重和认可。直到近些年,可用于训练的数据和负担得起的计算能力爆炸式增长、模型训练方法的提高、以及用于开发机器学习解决方案的工具数量和品质飞速增长,才使得人工智能得以疾速倒退。
咱们能够留神到,从基础架构角度,除了弱小的算力(云和 GPU 居功至伟)之外,推动机器学习向前倒退的两大能源,一是强(爱)大(省事)的程序员们编写了大量撑持机器学习的框架和工具,二是海量的数据成为可能。
机器学习在平台架构上面临的挑战
机器学习只有达到肯定规模,能力将模型训练得更为精准,要使机器学习疾速扩大规模,工程团队会面临以下的挑战:
数据的治理与自动化
在探索性机器学习的利用里,数据科学家或机器学习工程师须要破费大量工夫手动构建和筹备新模型所需的数据,如何爱护和治理这些消耗大量工夫资源获取和筹备的数据,自身就是一个须要思考的问题。
其次,将各种数据转换、特色工程和 ETL pipeline 进行自动化,对于进步建模效率和重复运行机器学习工作是十分必要的。自动化 pipeline 除了对建模过程有很大帮忙之外,对推断时为生产模型提供现成的特色数据也起着至关重要的作用。
此外,数据和特色的转换会一直造成新的数据,这些新数据通常不仅须要保留用于训练,还会用于未来的推断过程。因而,提供可伸缩、高性能的数据存储和治理是反对机器学习过程的团队所面临的重大挑战,底层的存储系统须要反对训练和推理工作负载所需的低提早和高吞吐量拜访,防止重复进行数据复制。
无效利用资源
明天,计算能力空前弱小,诸如高密度 CPU 内核,GPU 和 TPU 之类的硬件翻新正越来越多地服务于机器和深度学习工作负载,从而保障了这些应用程序的计算资源在持续增长。
然而,只管计算成本在一直降落,因为机器学习的过程本质上是对数据的高密度解决和开掘,数据具备突发和资源密集的特点,从而使得如何无效利用计算资源,成为大规模利用机器学习面临的挑战。
底层技术架构的复杂性
PaaS 产品和 DevOps 自动化工具的衰亡,使软件开发人员能够专一于正在开发的应用程序,而不用放心应用程序所依赖的中间件和基础设施。
同样,为了使机器学习过程可能充分发挥规模和效率,数据科学家和机器学习工程师必须可能专一于模型和数据产品的构建和优化,而不是基础架构。
人工智能建设在疾速倒退的简单技术栈上,包含 TensorFlow、PyTorch 等深度学习框架,SciPy,NumPy 和 Pandas 等特定语言库以及 Spark 和 MapReduce 等数据处理引擎。这些工具由 NVIDIA 的 CUDA 等各种底层驱动程序和库反对,使 AI 工作能够利用 GPU,而正确装置和配置这些基础架构十分艰难。如何抉择一个良好的基础架构,能力帮忙 AI 科学家从这些简单的技术栈中解放出来,将精力投入到模型的优化中,是 AI 企业取得成功的要害。
Kubernetes 为何成为机器学习青眼的撑持平台
Kubernetes 如何化解 AI 平台面临的挑战
容器和 Kubernetes 借助开源的力量,取得微小倒退,通过大量实际,证实了这一技术的确可能帮忙 AI 企业应答上述几个的挑战。
数据管理与自动化
Kubernetes 提供了将存储连贯到容器化工作负载的根本机制,长久卷 PV 提供了使 Kubernetes 反对有状态应用程序(包含机器学习)的根本反对。
基于这些反对,AI 企业就能够应用各种与 Kubernetes 严密集成的第三方解决方案来构建高度自动化的数据处理 pipeline,从而确保无需人工干预就能牢靠地实现数据转换。
失当的存储产品能够使 Kubernetes 工作负载取得分布式存储系统中数据的对立拜访,外部团队也不再须要通过多种数据拜访形式来获取数据,并实现数据和特色跨我的项目共享的指标。
无效利用资源
Kubernetes 可能跟踪不同工作节点的属性,例如存在的 CPU 或 GPU 的类型和数量,或可用的 RAM 数量。在将作业调度到节点时,Kubernetes 会依据这些属性,对资源进行无效调配。
对于机器学习这种资源密集型工作负载,Kubernetes 最适宜于依据工作负载随时主动扩大或膨胀计算规模,绝对于虚拟机或物理机而言,通过容器实现扩大和膨胀更为安稳、疾速、简略。
此外,通过 Kubernetes 的命名空间的性能,能够将单个物理 Kubernetes 集群划分为多个虚构集群,使单个集群能够更轻松地反对不同的团队和我的项目,每个名称空间都能够配置有本人的资源配额和拜访控制策略,满足简单的多租户需要,从而能更充沛地利用各种底层资源。
暗藏复杂性
容器提供了一种独立于语言和框架的,无效打包机器学习工作负载的形式,Kubernetes 则提供了一个牢靠的工作负载编排和治理平台,Kubernetes 通过必要的配置选项、API 和工具来治理这些工作负载,从而使工程师能够通过 yaml 文件,即可管制这些下层利用。
应用容器封装数据机器学习工作的另一个益处,是这些工作负载自身的依赖问题曾经封装在容器的申明里,从而屏蔽掉机器学习工作对底层技术栈的依赖。这样,无论在开发者笔记本电脑、训练环境还是生产集群上,这些 AI 工作都能够正确地放弃依赖关系并顺利运行。
Kubernetes+ 机器学习的良好生态系统
Kubernetes 曾经成为云原生时代编排框架的事实标准,各种资源、工作都能够应用 Kubernetes 进行编排和治理,当然也包含机器学习工作。基于 Kubernetes,大量开发者和公司曾经提供了泛滥开源或商业的工具(包含:Argo、Pachyderm、Katib、KubeFlow、RiseML 等),通过这些工具,AI 公司能够进一步晋升机器学习工作在 Kubernetes 上运行的效率,加强应用 Kubernetes 进行机器学习的能力。
另一方面,很多 Kubernetes 开源版本或商业发行版都反对基于 Kubernetes 对 GPU 进行很好的调度和治理,在数据分析和计算层面上看,这为机器学习与 Kubernetes 的联合扫清了阻碍。
机器学习运行在 Kubernetes 上对存储系统提出了哪些要求
后面提到过,机器学习疾速倒退的两大能源,一是框架和工具的反对,这一点曾经通过 Kubernetes 以及相似 TensorFlow、PyTorch、KubeFlow 等工具实现;二是机器学习必须依赖海量的数据。在 Kubernetes 被机器学习宽泛承受和应用的背景下,机器学习对海量数据的存储系统提出了哪些要求?联合对多个一流的 AI 企业的交换和理解,咱们发现以下一些特点:
- 机器学习须要依赖海量的数据,这些数据根本都是以非结构化的文件模式存在,例如数十亿张图片、语音片段、视频片段等,存储系统须要能反对数十亿规模的文件。
- 这些文件大小通常在几百 KB 到几 MB 之间,存储系统须要保障 小文件的高效存储和拜访。
- 因为下层的机器学习工作是通过 Kubernetes 进行治理和调度,这些工作须要拜访的存储也要通过 Kubernetes 进行调配和治理,存储系统须要对 Kubernetes 进行很好的适配和反对。
- 多个机器学习工作常常须要共享一部分数据,意味着多个 Pod 须要共享拜访(读写)一个 PV,底层存储系统须要反对 RWX 拜访模式。
- 机器学习须要应用到 GPU 等计算资源,存储系统在海量小文件前提下,须要能提供 足够的多客户端并发拜访性能,能力使 GPU 资源失去充分利用。
YRCloudFile 如何应答 Kubernetes+ 机器学习的场景
咱们能够从 Kubernetes 反对以及机器学习的数据特点两个维度来剖析 YRCloudFile 在这一新型场景上的劣势。
YRCloudFile 从设计到实现,首要场景就是解决 Kubernetes 环境中,容器化利用对存储的拜访需要,也借此成为国内首个入选 CNCF LandScape Container-Native Storage 的存储产品。为此,YRCloudFile 反对:
- CSI、FlexVolume 的拜访插件。通过 CSI 插件,在对 Kubernetes 没有任何侵入的前提下,Kubernetes 能够为机器学习利用申请独立或共享的存储资源。
- 反对数百个 Pod 同时拜访同一个 PV 资源,并可能将这些 Pod 疾速并发拉起,满足机器学习的多个工作共享拜访数据(RWX 读写模式)的要求,解决了基于块存储计划在这方面的人造缺点。
- 在机器学习工作的 Pod 须要跨节点重建时,Pod 能够在新节点上快速访问到原有数据,无需人为干涉和接入,齐全满足自动化的根本诉求,块存储容器解决方案在这方面也存在有余。
其次,在机器学习海量小文件的数据特点上,YRCloudFile 绝对于其它开源或商业产品也具备显著劣势:
- YRCloudFile 在数十亿小文件规模下,无论文件操作性能(重点考验元数据处理能力),或者是小文件读写带宽(重点考查元数据处理和存储的并发拜访性能),都放弃安稳的性能。相较于其它传统的云原生存储或分布式文件存储,YRCloudFile 在海量小文件的反对上,都具备劣势。
- 在机器学习场景下,网络的抉择和性能尤为重要,以 Mellanox 为代表的网络供应商,在 InfiniBand 通信协议上,针对机器学习做了大量优化,提供了 GPUDirect、SHARP 等高级的网络个性。YRCloudFile 齐全反对在 InfiniBand、RoCE 网络环境下运行,并提供比传统 TCP 网络环境更高的读写性能,从而更好地反对机器学习工作。
通过这篇文章,咱们能够清晰地看到 Kubernetes 在人工智能、机器学习这一新型利用场景下失去疾速利用的趋势,并深刻了解了这个趋势背地的技术推动力。同时,咱们也理解到 Kubernetes+ 机器学习的联合,对数据的存储系统提出了哪些新的需要,YRCloudFile 在这一新场景和趋势下,所凸显出的劣势更为显著。目前,YRCloudFile 曾经在一流的 AI 企业中失去了实际和利用。YRCloudFile 会联合在理论生产环境中发现的机器学习对数据拜访的具体特点,进行更深层次的优化,在这个簇新的利用场景中扩充领先地位,持续助力 AI 企业晋升机器学习的效率和程度。