概述
Kubernetes 可以协助处理 AI/ML 工作负载,使代码能在不同的环境中始终如一地复制、移植和扩展。
容器在 AI/ML 开发中扮演的角色
在开发启用机器学习的应用时,整个过程并不是线性的,研究、开发和生产阶段会随着团队不断集成和交付(CI/CD)而反复迭代。在构建、测试、合并和部署新数据、算法和应用版本的过程中,会产生许多需要移动的组件,管理起来并不容易。而这正是容器的用武之地。
容器是一种 Linux 技术,允许将应用及其运行所需的各种库和依赖项打包在一起并与其他部分隔离开。容器不需要完整的操作系统,只需要运行容器所需的确切组件就行,因而它非常轻巧且可移植。这使得运维人员能够便捷地部署,也让开发人员有把握自己的应用能在不同平台或操作系统上以一模一样的方式运行。
容器还有一个优势,它有利于明确划分职责范围,减少开发和运维团队间的冲突。如果开发人员可以专心关注应用,运维团队则可专注于基础架构,随着应用在整个生命周期中的发展和演进,新代码集成到应用中会变得更加顺畅和高效。
Kubernetes 可给 AI/ML 工作负载带来什么
Kubernetes 是一个能够实现 Linux 容器运维自动化的开源平台,它可以帮助用户省去应用容器化过程中的许多手动部署和扩展操作。Kubernetes 对于简化 ML 生命周期非常重要,因为它可为数据科学家提供训练、测试和部署 ML 模型所需的敏捷性、灵活性、可移植性和可扩展性。
可扩展性:Kubernetes 允许用户根据需要扩展或收缩 ML 工作负载。这可确保机器学习管道能够适应大规模处理和训练,而不干扰项目的其他元素。
效率:Kubernetes 可根据节点可用性和容量将工作负载调度到节点上,从而优化资源分配。通过确保有意识地利用计算资源,用户可以有效降低成本,提升性能。
可移植性:Kubernetes 提供一个不受平台限制的标准化环境,允许数据科学家开发一个 ML 模型,并将其部署到多个环境和云平台。这意味着无需为兼容性问题和供应商锁定而担忧。
容错:凭借内置的容错和自我修复功能,用户可以确保 Kubernetes 即使遇到硬件或软件故障,也能保持 ML 管道正常运行。
在 Kubernetes 上部署 ML 模型
机器学习生命周期由许多不同的元素构成,如果分开管理,操作和维护将耗费大量时间和资源。有了 Kubernetes 架构,企业或机构可以自动处理 ML 生命周期的不同部分,不再需要手动干预,并且显著提高效率。
通过实施 Kubeflow 等工具包,可协助开发人员在 Kubernetes 上精简和提供经过训练的 ML 工作负载。Kubeflow 通过提供一组工具和 API 来简化大规模训练和部署 ML模型的过程,可以解决机器学习管道编排过程中涉及的诸多挑战。Kubeflow 也有助于对机器学习运维(MLOps)进行标准化和整理。
红帽能如何提供帮助?
红帽® OpenShift® 是业界领先的混合云应用平台,它基于 Kubernetes,汇集了经过测试并受信赖的服务,可在公共云、内部混合云或边缘架构中提供一致的体验。
红帽 OpenShift 数据科学是 OpenShift AI 产品组合的一部分,也是红帽 OpenShift 的一项服务,可为数据科学家和开发人员提供一致且强大的人工智能和机器学习(AI/ML)平台来构建智能应用。除了核心的建模和实验外,OpenShift 数据科学还提供 MLOps 功能,例如通过模型供应和监控更快地将模型引进到生产中。