一、云原生AI套件介绍
根据我对云原生AI套件介绍的理解如下:云原生AI套件以Kubernetes容器服务为底座,向下封装对各类异构资源的统一管理,向上提供标准Kubernetes集群环境和API,以运行各核心组件,实现资源运维管理、AI任务调度和弹性伸缩、数据访问加速、工作流编排、大数据服务集成、AI作业生命周期管理、AI制品管理、统一运维等服务。
云原生AI套件针对AI生产流程中的主要环节,支持AI数据集管理、AI模型开发、训练、评测,以及模型推理服务等。您可以通过统一的命令行工具、多种语言SDK和控制台界面,直接使用各核心组件。您也可以进行灵活地扩展、组装或二次开发,快速定制化构建AI生产系统。通过同样的组件和工具,云原生AI套件也支持阿里云AI服务、开源AI框架和第三方AI能力的集成。
此外,云原生AI套件支持与阿里云机器学习平台PAI无缝集成,提供高效、灵活的一站式AI平台。一方面,您可以直接使用PAI平台提供的DSW、DLC、EAS等服务。这些服务借助ACK为AI模型开发、训练和推理带来了更好的弹性和效率。另一方面,云原生AI套件支持在ACK集群中一键部署轻量化机器学习PAI平台,降低AI使用门槛。在Kubernetes应用中,您可以灵活地集成PAI平台深度优化的算法和引擎,依托其最佳实践沉淀,极大优化训练与推理效果。
云原生AI套件的功能包含
1. 异构资源统一管理
对云上各种异构计算资源(如CPU、GPU、NPU、VPU、FPGA)、存储(OSS、NAS、CPFS、HDFS)、网络(TCP、RDMA)资源,云原生AI套件支持对其进行抽象,统一管理、运维和分配,通过弹性和软硬协同优化,持续提升资源利用率。
2. AI任务调度
云原生AI套件兼容Tensorflow、Pytorch、Horovod、Spark、Flink等主流开源或者用户自有的各种计算引擎和运行时,统一运行各类异构工作负载,统一管理作业生命周期,统一调度任务工作流,保证任务规模和性能。云原生AI套件一方面不断优化运行任务的性能、效率和成本,另一方面持续改善开发运维体验和工程效率。
3. 弹性AI任务
云原生AI套件根据上述云原生AI套件概述,我总结出它的主要功能特点如下:
基于Kubernetes实现异构资源的统一调度和管理。
支持多种AI框架和运行时环境。
一站式集成阿里云AI服务产品。
弹性扩展AI任务,优化性能、成本和效率。
统一作业生命周期管理。
提供CLI、SDK和UI统一访问。
轻松定制化构建AI生产系统。
与PAI深度集成,提供更强AI能力。
二、云原生AI套件的应用示例
当多个开发人员在一个公司或大团体下使用Arena进行工作时,为了有效管理,可能需要对这些人员进行小组划分,且每个小组需要彼此隔离。这样在同一个集群内,小组就是分配、隔离资源和权限的基本单元,我们可以进行以下相关模拟操作,来解决上述问题,实操如下:
(一)创建和管理ACK集群的用户和组
1. 在与ACK集群同VPC下创建ECS实例作为Client机器。
2. 在Client机器上创建用户bob、tom和组dev1、dev2,分配对应的UID和GID。
groupadd -g 10001 dev1 groupadd -g 10002 dev2 adduser -u 20001 -s /bin/bash -G dev1 -m bob adduser -u 20002 -s /bin/bash -G dev2 -m tom
3. 通过kubectl连接ACK集群。
4. 在ACK集群中创建对应的Namespace和ServiceAccount。
kubectl create namespace dev1 kubectl create namespace dev2 kubectl create serviceaccount bob -n dev1 kubectl create serviceaccount tom -n dev2
(二)为用户配置Arena的使用环境
1. 在Client机器上以root身份安装Arena。
2. 为每个用户生成KubeConfig文件。
./createKubeConfig.sh bob -n dev1 ./createKubeConfig.sh tom -n dev2
3. 将KubeConfig文件放到每个用户的home目录下。
mkdir -p /home/bob/.kube/ && cp bob.config/home/bob/.kube/config mkdir -p /home/tom/.kube/ && cp tom.config/home/tom/.kube/config
(三)为用户配置Arena的权限
1. 为dev1和dev2创建角色定义文件dev1_roles.yaml和dev2_roles.yaml。
2. 应用角色定义文件使之生效。
kubectl apply -f dev1_roles.yaml kubectl apply -f dev2_roles.yaml
3. 创建角色绑定文件bob_rolebindings.yaml和tom_rolebindings.yaml。
4. 应用角色绑定文件进行用户角色赋权。
kubectl apply -f bob_rolebindings.yaml kubectl apply -f tom_rolebindings.yaml
(四)配置用户组资源配额
1. 根据需求创建组配额文件dev1_quota.yaml和dev2_quota.yaml。
2. 应用配额文件。
kubectl apply -f dev1_quota.yaml kubectl apply -f dev2_quota.yaml
(五)配置多级别共享存储
1. 创建NAS实例,并在其下创建多个挂载点。
2. 创建PV,设置NAS挂载信息。
3. 创建PVC,绑定PV。
(六)用户登录测试
1. bob用户登录,提交作业测试组资源限制。
2. tom用户登录,测试使用自己组资源,未看到bob作业。
三、ACK云原生AI套件产品体验测评
(一)产品文档
ACK云原生AI套件提供的文档资料比较丰富,包括快速入门、操作指南、API文档等,基本涵盖了使用该产品需要的各方面知识。文档描述相对完整和准确,通过文档可以对产品有一个全面的了解。
不过也存在一些可以改进的地方:
1)对某些复杂操作的步骤描述不够详细,初学者可能需要结合其他渠道获得信息。
2)文档示例中的代码实例不完整,无法直接拿来运行使用。
3)接口文档中对输入和输出参数的说明不够明确。
4)文档缺少对错误提示信息的解释,当运行失败时无法快速定位问题。
5)文档中对产品最佳实践的讲解不够,无法让用户快速上手。
总体来说,文档资料已经能够满足产品使用需求,但在细节描述和最佳实践方面还有提升空间。
(二)产品能力
ACK云原生AI套件提供了资源管理、任务调度、数据加速等全面的功能,基本能满足AI开发和训练的需求。
1)在资源管理方面,对异构资源实现了统一调度和管理,提高资源利用率。
2)支持主流AI框架,统一作业生命周期管理。
3)支持数据集管理、模型管理、训练、评测、推理等AI全流程。
4)提供了命令行、SDK、控制台多种使用方式。
5)支持函数计算等Serverless架构,弹性扩展。
使用下来,产品功能强大,但也存在一些需要改进的地方:
1)资源统计和利用率监控可以更加细致丰富。
2)任务日志可以提供实时查看,方便排查问题。
3)支持更多预置的算法和模型,降低训练成本。
4)可以提供更多的SDK语言版本。
总体上,ACK云原生AI套件在产品能力上可以满足核心需求,通过持续迭代可以不断提升用户体验。
(三)产品控制台
ACK云原生AI套件的控制台界面美观大方、页面布局合理,核心功能入口清晰易找到。使用下来,基本流程可以通过控制台顺利完成。
优点如下:
1)部署和管理资源的页面操作便捷。
2)资源监控数据清晰展示。
3)支持视觉化构建训练流程。
4)任务日志查询方便。
但也存在一些方面的不足:
1)某些进阶管理功能在控制台中不容易找到。
2)监控页面的配置项不够丰富。
3)日志搜索功能可以加强。
4)可以提供更丰富的模板及Demo。
5)可以优化控制台的加载速度。
总体来说,ACK云原生AI套件的控制台可视化程度高,使用体验良好,通过持续优化可以更好地辅助产品使用。
(四)产品集成
ACK云原生AI套件与ACK的集成非常紧密,可以实现基于Kubernetes的资源管理和调度。与Prometheus的集成也比较顺畅,可以进行丰富的监控统计。
但是在与其他外部存储和计算产品的集成方面还有改进空间,期待后续支持更多存储和计算服务的接入。例如:
1)对象存储OSS的集成可以更加紧密,实现模型和数据的无缝管理。
2)支持更多公有云和私有云数据集成,降低数据导入成本。
3)支持无服务器计算产品和功能的集成,增加资源弹性。
4)实现与更多外部调度系统的对接,提升跨平台协同能力。
5)支持将训练好的模型部署到边缘计算环境,实践端云协同。
总体来说,ACK云原生AI套件的产品集成支持主要的核心产品,用户可以基本满足使用需求。但扩展性和开放性还有提升空间,需要持续扩大集成范围,提升平台价值。