关于 Alibaba Pai
- 主页:https://help.aliyun.com/zh/pai/
- 快速入门:https://help.aliyun.com/zh/pai/getting-started/
- 实践教程:https://help.aliyun.com/zh/pai/use-cases/
人工智能平台 PAI(Platform of Artificial Intelligence)面向企业客户及开发者,提供轻量化、高性价比的云原生人工智能,涵盖DSW交互式建模、Designer拖拽式可视化建模、DLC分布式训练到EAS模型在线部署的全流程。
人工智能平台PAI起初是服务于阿里巴巴集团内部(例如淘宝、支付宝和高德)的机器学习平台,致力于让公司内部开发者更高效、简洁、标准地使用人工智能AI(Artificial Intelligence)技术。
随着PAI的不断发展,2018年PAI平台正式商业化,目前已经积累了数万的企业客户和个人开发者,是中国云端机器学习平台之一。
PAI底层支持多种计算框架:
- 流式计算框架Flink。
- 基于开源版本深度优化的深度学习框架TensorFlow、PyTorch、Megatron和DeepSpeed。
- 千亿级特征样本的大规模并行计算框架Parameter Server。
- Spark、PySpark、MapReduce等业内主流开源框架。
PAI提供的服务:
- 可视化建模和分布式训练Designer,详情请参见可视化建模(Designer)。
- Notebook交互式AI研发DSW(Data Science Workshop),详情请参见交互式建模(DSW)。
- 分布式训练DLC(Deep Learning Containers),详情请参见分布式训练(DLC)。
- 在线预测EAS(Elastic Algorithm Service),详情请参见模型在线服务(EAS)。
优势
PAI依托于阿里云及阿里巴巴集团多年的应用及技术积累,具备以下多种优势。
- AI 研发全生命周期全链路:
- 支持数据标注、模型开发、模型训练、模型优化、模型部署以及AI运维管控,是一站式AI平台。
- 拥有140+种优化的内置算法组件。
- 支持业内TensorFlow、PyTorch等多种深度学习框架。
- 提供多种模式、大数据引擎深度结合、多框架兼容、自定义镜像等核心能力。
- 提供云原生架构的AI开发、训练、部署的产品。
- 多样的产品输出方式:
- 公共云支持全托管、半托管。
- 支持AI 高性能计算集群和轻量化输出产品形态。
- 业内领先的AI优化:
- 高性能的训练框架,稀疏训练场景,支持数十亿到数百亿的稀疏特征规模,数百亿到数千亿的样本规模,上千worker的分布式增量训练。
- 主流框架模型加速,使用PAI Blade提升RestNet50、Transformer+LM等十数个主流模型加速比。
- 该服务支持单独或组合使用。支持一站式机器学习,您只需准备好训练数据(存放到OSS或MaxCompute中),所有建模工作(包括数据上传、数据预处理、特征工程、模型训练、模型评估和模型发布至离线或在线环境)都可以通过PAI实现。
- 对接DataWorks,支持SQL、UDF、UDAF、MR等多种数据处理方式,灵活性高。
- 生成训练模型的实验流程支持DataWorks周期性调度,且调度任务区分生产环境和开发环境,从而实现数据安全隔离。
产品架构
如上图所示,PAI的业务架构分为以下四层:
- 基础资源层(计算资源&基础设施):
- 基础设施包括CPU、GPU、高速RDMA网络以及容器服务ACK等。
- 计算资源包括云原生资源(灵骏计算资源和通用计算资源)和大数据引擎资源(MaxCompute和Flink)。
- 平台工具层(灵骏智算服务&人工智能框架):
- 人工智能框架:包括Alink、TensorFlow、PyTorch、Megatron、DeepSpeed及RLHF等智能框架,用于执行分布式计算任务。
- 优化与加速框架:包括DatasetAcc数据集加速、TorchAcc训练加速、EPL并行训练框架、Blade推理加速、AIMaster自动容错训练以及EasyCkpt秒级异步训练快照等。
- 按照机器学习全流程,PAI分别提供了数据准备、模型开发与训练以及模型部署阶段的产品:
- 数据准备:PAI提供了标注服务,支持在多种场景下进行数据标注和数据集管理。
- 模型开发与训练:PAI提供了可视化建模(Designer)、交互式建模(DSW)、分布式训练(DLC)以及特征平台(FeatureStore),满足不同的建模需求。
- 模型部署:PAI提供了模型在线服务(EAS),帮助您快速地将模型部署为服务。
- 应用层(模型服务):支持模型服务包括ModelScope魔搭社区、PAI-DashScope、第三方MaaS平台和百炼。
- 业务层(场景化解决方案):PAI应用于自动驾驶、科研智算、金融风控、智能推荐等各个领域。阿里巴巴集团内部的搜索系统、推荐系统及金融服务系统等,均依赖于PAI进行数据挖掘。
功能特性
人工智能平台 PAI
功能集 | 功能 | 功能描述 | 参考文档 |
---|---|---|---|
AI计算资源管理 | 灵骏智算资源 | 灵骏智算资源是阿里云PAI提供的大规模高密度计算资源服务,为您提供高性能AI训练、高性能计算所需的异构计算算力服务,可用于PAI的训练任务。 | 灵骏智算资源概述 |
通用训练资源 | 通用训练资源是基于阿里巴巴容器服务ACK(Alibaba Cloud Container Service for Kubernetes)的深度学习训练资源,为您提供灵活、稳定、易用和高性能的深度学习训练环境。 | 通用训练资源概述 | |
其他大数据计算资源 | 展示当前用户拥有的MaxCompute、Flink等大数据计算资源。 | AI计算资源组概述 | |
AI工作空间 | 工作空间计算资源管理 | 工作空间管理员可将当前账号拥有的AI计算资源关联至当前工作空间,供工作空间成员做开发训练使用。 | 管理工作空间计算资源 |
工作空间消息通知 | PAI工作空间为您提供了消息通知机制,您可以创建消息通知规则,实现对DLC任务或PAIFlow(PAI-Designer)任务状态的跟踪和监控,或是基于AI资产管理-模型版本准入状态变化触发下游事件。 | 创建消息通知规则 | |
工作空间存储及SLS转发设置 | 工作空间管理员可以配置当前工作空间下开发训练的默认存储路径,或临时表的存储生命周期。 | 设置工作空间存储路径 | |
成员及权限管理 | 基于角色的访问控制,提供标注管理员、算法开发、算法运维等AI全链路多角色支持用户高效协同。工作空间内AI资产支持private/public属性,且面向不同角色提供不同访问权限。 | 管理成员 | |
快速开始QuickStart | 预置模型库ModelHub | PAI快速开始预置了多种来源于ModelScope、Huggingface等知名模型社区的预训练模型。 | 模型部署及训练 |
预置模型训练 | 您可以基于预训练模型快速上手并使用PAI的训练功能。 | 模型部署及训练 | |
预置模型部署 | 您可以基于预训练模型快速上手并使用PAI的部署功能。 | 模型部署及训练 | |
智能标注iTag | 标注平台服务 | 支持图像、文本、视频、语音、PDF、多模态、自定义等全方位的标注能力和场景。预置OCR、ASR等预标注工具,大幅提升标注员的效率和准确。 | 创建标注任务 |
标注人力服务 | 支持人力标注服务,专业培训上岗,全托管的项目管理,极大降低标注人力成本。 | 处理标注任务 | |
标注平台被集成 | 提供丰富的API、微前端、iframe容器,客户可自定义将标注能力集成到第三方的AI开发平台。 | API概览 | |
可视化建模Designer | 工作流构建 | Designer通过工作流的方式来实现建模与模型调试,用户可根据建模需求在工作流中通过拖拉拽的方式排布不同组件,像搭积木一样构建AI开发流程。 | 工作流概述 |
工作流导入/导出 | 支持将构建好的工作流导出为JSON文件。用户也可以将自己或他人导出的JSON格式的工作流文件导入到工作空间内,来创建新的工作流。 | 导出与导入工作流 | |
周期性调度工作流 | 工作流可以离线部署在DataWorks,通过周期调用的方式使用。 | 使用DataWorks离线调度Designer工作流 | |
预置工作流模板 | 内置丰富案例供用户直接使用,包含商品推荐、新闻分类、金融风控、雾霾天气预测、心脏病预测、农业贷款发放、人口普查等,所有案例包含完整的数据集以及使用文档。可以供用户直接一键式使用。 | PAI-Designer通用方案 | |
自定义工作流模板 | 对于企业客户,算法专家可以开发算法流程,将稳定的工作流制作成模板分享给业务专家使用。业务专家直接基于自定义模板快速进行建模、部署、上线验证。 | 创建工作流:自定义模板 | |
可视化大屏 | Designer提供可视化大屏,帮助用户做数据的可视化分析、模型的可视化分析、以及模型结果的可视化报告。 | 使用可视化大屏查看分析报告 | |
预置算法组件库 | 支持数据源、数据预处理、特征工程、统计分析、机器学习、时间序列、推荐算法、异常检测、自然语言处理、网络分析、金融板块、视觉算法、语音算法、自定义算法等上百种PAI内置算法组件,开箱即用。 | 组件参考:所有组件汇总 | |
支持自定义算法 | 支持用户通过自定义SQL、Python、PyAlink脚本等方式实现节点。 | 自定义算法组件 | |
工作流构建管理能力被集成 | 提供标准OpenAPI/SDK支持被集成。 | API概览 | |
交互式建模DSW | 云原生开发环境 | 为用户提供灵活、稳定、易用和高性能的AI开发环境,支持基于CPU/GPU的多种模型开发训练实例规格。 | 什么是DSW |
DSW Gallery | DSW Gallery可以为广大AI开发者提供来自各个行业和技术方向的简单易用、一键启动的案例,助力用户有效提升开发效率。 | 功能试用:DSW Gallery | |
JupyterLab | DSW集成了开源JupyterLab,并以插件化的形式进行深度定制化开发。无需任何运维配置,即可进行Notebook编写、调试及运行Python代码。 | 访问DSW实例 | |
WebIDE | 提供WebIDE建模环境,可以自由安装社区开源插件。 | 访问DSW实例 | |
Terminal | 提供字符终端,方便模型调试。 | 访问DSW实例 | |
实例环境持久化 | 支持用户进行开发环境生命周期管理、实例环境保存、数据挂载共享、环境镜像持久化等功能。 | 读写数据集数据 | |
资源水位监控 | 实时资源水位可视化查看。 | 访问DSW实例 | |
制作镜像 | 支持用户将开发环境制作成ACR镜像,用于后续的分布式训练或者推理。 | 管理实例 | |
SSH远程连接 | 为了满足更灵活的SSH使用需求,DSW提供了两种SSH连接方案:直连方式和ProxyClient方式。您可以综合考虑两种连接方式的资源依赖、使用方式和使用限制等因素,选择适合您需求的连接方式。 | 通过SSH远程连接DSW | |
实例管理能力被集成 | 提供标准OpenAPI/SDK,支持被集成。 | API概览 | |
分布式训练DLC | 云原生分布式训练环境 | 基于阿里巴巴容器服务为用户提供灵活、稳定、易用和极致性能的深度学习训练环境,基于(CPU/GPU)提供深度学习训练平台。 | 分布式训练(DLC) |
数据集挂载 | 支持多数据集,可以同时挂载多个NAS、OSS数据集。 | 准备工作 | |
公共/专有资源组 | 支持公共资源组与专有资源组。 | 准备工作 | |
官方镜像/自定义镜像 | 支持使用官方镜像或自定义镜像提交训练任务。 | 准备工作 | |
分布式训练 | 支持数据并行、模型并行及混合并行的分布式方案。 | 创建训练任务 | |
训练任务管理 | 任务生命周期管理,任务全流程把控。 | 管理训练任务 | |
分布式训练能力被集成 | 提供标准OpenAPI,支持被集成。 | API概览 | |
监控和报警 | DLC支持查看并监控任务资源状况,并且提供了全面详细的监控指标,帮助您更好地掌握资源负载情况。通过监控报警功能,您可以对DLC分布式训练任务的资源水位进行实时监控,并灵活地配置报警规则和报警通知。如果资源水位出现波动,例如低于GPU使用率超过设定阈值,则会发送报警通知。 | 监控与报警 | |
模型在线服务EAS | 资源组管理 | EAS将集群资源分为不同的资源组进行隔离。新建模型服务时,您可以选择将模型服务部署在公共资源组或自己创建的专属资源组。 | EAS资源组概述 |
服务/应用部署 | EAS支持将从开源社区下载的模型或您自己训练获得的模型部署为推理服务或AI-Web应用。针对不同方式获取的训练模型,PAI-EAS支持不同的部署方式,您可以使用PAI-EAS的控制台方式快速将其部署为API服务。 | 服务部署:控制台 | |
服务调试与压测 | 服务部署完成后,您可以使用在线调试/压测功能来测试服务是否运行正常。 | 服务调试与压测 | |
服务弹性伸缩 | 支持用户配置水平自动扩缩容、定时自动扩缩容、弹性资源池等能力。 | 服务弹性伸缩 | |
服务调用 | EAS根据客户端所在的网络环境不同,提供公网访问、VPC访问、VPC高速直连访问三种不同的服务调用方法。 | 服务调用 | |
异步推理 | EAS提供异步推理服务,支持通过订阅或轮询的方式来获取推理结果。 | 异步推理服务 | |
资源组及服务管理能力被集成 | 提供标准OpenAPI/SDK,支持被集成。 | API概览 | |
AI资产管理 | 数据集 | 提供PAI标注及模型构建等流程中数据集的管理,支持OSS、NAS的数据源,提供PAI公共数据集,支持SDK调用。 | 创建及管理数据集 |
模型 | PAI支持统一管理用户模型的版本、血缘、评估指标、关联服务等丰富信息。 | 注册及管理模型 | |
任务 | 提供分布式训练任务、PAIFlow工作流任务的管理。 | 任务管理 | |
镜像 | 提供PAI官方镜像合集以及用户自定义镜像管理能力。 | 查看并添加镜像 | |
代码配置 | 支持用户将代码repo注册至PAI平台进行管理,方便在各产品模块中进行代码版本管理。 | 代码配置 | |
自定义组件 | PAI提供自定义算法组件功能,便于您根据使用场景创建自定义组件。您可以在Designer中将自定义组件和PAI官方组件串联使用,实现更灵活的工作流编排。 | 自定义组件 | |
自动机器学习AutoML | 自动超参调优HPO | HPO(Hyper Parameter Optimization)是AutoML提供的对模型参数、训练参数等进行自动搜索调优的服务。 | AutoML工作原理 |
特征平台FeatureStore | 任务中心 | FeatureStore为您提供任务中心功能,记录了数据离在线同步、训练样本导出等任务的日志详细信息,您可以在特征项目中的任务中心中查看当前项目的所有任务及任务状态。 | 任务中心 |
场景化解决方案 | 多媒体分析 | 提供图像领域内开箱即用的算法服务能力,包括图像打标、图像分类、图像质量分评定等。 | 多媒体分析概述 |
智能设计ArtLab | 为设计师群体提供的一站式自动化AIGC设计工具,集成了Stable Diffusion、Kohya等主流的文生图、图生图能力,打通了图片数据集管理、图片打标、LoRA模型训练、AI绘图的AIGC全场景链路,帮助设计师在设计、艺术、创意行业快速应用AIGC能力。 | 智能设计(ArtLab) | |
AI加速 | 数据集加速器datasetacc | 数据集加速器(DatasetAcc)依托于阿里云构建的PaaS服务,主要解决云上AI加速-数据集加速的场景。在机器学习训练场景下,通过对客户训练的数据集进行预分析和处理,为各种云原生的训练引擎提供统一的数据集访问加速方案,提升整体训练效率。 | 数据集加速器概述 |
分布式训练加速TorchAcc | PAI-TorchAcc(Torch Accelerator)是基于PyTorch的训练加速框架,通过GraphCapture技术将PyTorch动态图转换为静态执行图,然后进一步基于计算图完成分布式优化、计算优化,从而提高PyTorch模型训练的效率,使其更加易于使用。 | 分布式训练加速TorchAcc概述 | |
大规模分布式训练框架EPL | EPL是高效易用的分布式模型训练框架,深度集成多种训练优化技术,提供了简单易用的API实现各种并行化策略。您可以使用EPL实现低成本、高性能分布式模型训练。 | AI加速:使用EPL实现AI训练加速 | |
Transformer训练加速Rapidformer | PAI-Rapidformer结合了多种优化技术,对PyTorch版Transformer模型的训练进行优化,从而达到最优的训练性能。 | 训练加速(Rapidformer)概述 | |
模型优化Blade | Blade有机融合多种优化技术,对模型进行分析,智能优化达到最优的推理性能。 | 推理加速(Blade)概述 | |
PAI-SDK | 分布式模型训练 | PAI Python SDK提供了更易用的API(即HighLevel API),支持用户提交训练作业到PAI,使用云上资源运行。 | 提交训练作业 |
模型服务部署 | PAI Python SDK提供了易用的API(即HighLevel API),支持用户将模型部署到PAI创建推理服务。 | 部署推理服务 |
基本概念
本文从管理员视角、AI开发视角及PAI产品模块三个方面介绍涉及的基本概念。
管理员视角
名词 | 描述 |
---|---|
工作空间(WorkSpace) | 工作空间是PAI的顶层概念,为企业和团队提供统一的计算资源管理及人员权限管理能力,为AI开发者提供支持团队协作的全流程开发工具及AI资产管理能力。PAI工作空间和DataWorks工作空间在概念和实现上互通。默认工作空间:默认关联常用的按量付费资源(需要同意开通),使新用户在初始情况下无需了解资源组等概念,即可快速开始开发和训练流程。 |
云原生基础AI平台DLC(Deep Learning Containers) | PAI提供的云原生基础AI平台,提供灵活、稳定、易用和高性能的机器学习训练环境。该平台支持多种算法框架、超大规模分布式深度学习任务运行及自定义算法框架。此外,该平台支持以下两种工作集群: - DLC全托管集群:即公共资源组和专有资源组。可以作为标准资源组,由工作空间管理员关联到工作空间中进行使用。 - DLC半托管集群:即自运维资源组。有自己独立的Dashboard,您拥有更高的使用自由度。 |
资源组(Resource Group) | - 资源组可以帮助您将拥有的计算资源从用途、权限和归属等多个维度上进行分组,以实现企业内部多用户、多工作空间的计算资源隔离。 - 资源组可以指代MaxCompute配额组、DLC集群、K8s集群、EMR集群、Flink集群、ECS集群等PAI工具模块关联的底层资源单位。 - 阿里云账号和资源管理员可以从MaxCompute、EMR等平台购买并创建资源组,这些资源组可以被工作空间消费。 |
成员(Member) | 加入工作空间的阿里云账号和RAM用户被称为工作空间成员。在AI研发流程中,同一工作空间下的成员以不同的角色协作。工作空间的负责人和管理员可以编辑工作空间内的成员。 |
角色(Role) | 成员和不同权限集合之间的映射,基础角色由系统定义,更多角色您可以自行定义。系统支持以下基础角色: - 资源管理员:拥有购买和管理计算资源的权限,通常是企业的阿里云账号,不在PAI页面显示管理,您可以通过RAM管理权限点和操作授权。 - 工作空间负责人:创建工作空间的人自动成为工作空间负责人,拥有编辑工作空间成员、引用资源组的权限。 - 工作空间管理员:拥有编辑工作空间成员、管理资源组及管理工作空间内全部资产的权限。 - 算法开发:拥有在所属工作空间中进行开发和模型训练的权限。 - 算法运维:拥有任务优先级管理、模型发布及线上服务监控等权限。 - 标注管理员:拥有智能标注的操作权限。 - 访客:拥有工作空间中各种资产的只读权限。 |
云产品依赖(Dependencies) | 要充分使用PAI的所有功能,需要依赖阿里云的其他产品。通常需要阿里云账号或资源管理员预先开通并对RAM进行授权。这些产品包括OSS、NAS、SLS、ACR、API网关等。 |
AI开发视角
名词 | 描述 |
---|---|
数据集(DataSet) | 用于标注、训练、分析等的数据集合,支持您将存储在OSS、NAS、MaxCompute等存储介质中的结构化、非结构化数据或目录注册为数据集。同时,PAI支持统一管理数据集的存储、版本、数据结构等信息。 |
工作流(Pipeline) | 您构建DAG(有向无环图)用来实现组件之间上下游逻辑调度的对象,这是一个静态概念。构建完成后,PAI支持对其进行重复提交运行,生成PipelineRun。 |
工作流草稿(PipelineDraft) | 您在Designer画布上操作的编辑状态的工作流对象,支持重复编辑以生成不同的Pipeline。PipelineDraft提交运行后会生成PipelineRun。 |
组件(Component) | 您在PAI工作流和工作流草稿中编辑以及工作流任务执行的最小单元。组件可以来源于: - 预置组件(Built-in Component):PAI预置了基于阿里巴巴最佳实践的多类组件,涵盖从数据预处理到模型训练及预测的全流程。 - 自定义组件(Custom Component):PAI支持您基于代码和镜像,自己定义可被工作流组合编排的组件。 |
节点(Node) | 被拖到画布上的一个组件,形成工作流中的一个节点。 |
工作流快照(SnapShot) | 每次运行PipelineDraft(包括完整运行、单节点运行、部分节点运行),都会记录完整PipelineDraft的配置信息,包括节点配置、运行参数、执行方式等,这些信息可以用于PipelineDraft的版本记录及配置回滚。 |
工作流任务(PipelineRun) | 一次工作流的任务执行。您可以通过Designer提交PipelineDraft运行,或通过SDK直接提交Pipeline运行,生成一个PipelineRun。 |
作业(Job) | 强调运行在各种计算资源中的任务,例如DLCJob、MCJob。与Run和PipelineRun概念相比,作业(Job)属于相对底层的概念。 |
任务(Run) | 一个Run指一次任务执行,兼容MLFlow中的概念,必须归属于某一个Experiment。您可以使用Run跟踪PAI上提交的训练任务,也可以在本地使用MLflow Client直接创建一次任务。 |
模型(Model) | 模型是您基于数据集和算法代码通过训练任务产出的结果,可以预测新数据。 |
Processor | 在线预测逻辑(模型加载和请求预测逻辑)的程序包,通常与模型文件一起部署,从而获得模型服务。PAI支持以下两类Processor: - 预置Processor:针对常用的PMML、TensorFlow等模型,EAS提供了预置的Processor。 - 自定义Processor:如果EAS提供的预置Processor无法满足模型部署需求,您可以根据Processor的开发标准自定义Processor。 |
模型服务(Service) | 模型文件和在线预测逻辑代码部署成的常驻服务。您可以对模型服务进行创建、更新、停止、启动、扩容及缩容操作。 |
镜像(Image) | PAI支持您将Docker镜像作为AI资产进行管理,支持以下镜像来源: - PAI官方镜像 - 您通过DSW保存镜像生成的镜像 - 您在ACR中的镜像镜像可以用于工作流中构建自定义组件完成指定的任务,在DSW中作为环境拉起DSW实例,也可以在提交训练任务时被指定为执行环境。 |
实例(Instance) | 计算资源被启动的最小单元,包括以下实例: - DSW实例:Notebook实例,每个实例对应一定的计算资源,可以编辑代码、调试及训练。 - EAS服务实例:服务进程,每个服务可以部署多个服务实例以提高支持的并发请求数。 |
PAI产品模块
名词 | 描述 |
---|---|
智能标注(iTAG) | 集成智能能力(黑盒)的数据集标注工具,有效降低标注工作量,快速获取高质量的标注数据集。 |
可视化建模(Designer) | 面向AI领域的工作流设计工具,封装了丰富的机器学习算法组件。您无需代码基础,通过拖拉拽即可训练模型。 |
交互式建模(DSW) | 面向AI开发者的云端机器学习交互式开发IDE,包含Notebook、VSCode及Terminal。您可以基于镜像指定NAS作为存储启动DSW。 |
容器训练(DLC) | 快速将训练任务提交到当前工作空间关联的计算资源(例如通用计算资源)中,提交后的任务详情可以在PAI任务管理模块中查看。 |
模型在线服务(EAS) | 支持大规模复杂模型的一键部署功能,实时弹性扩缩容,并提供完整的运维监控体系。 |
AI资产管理 | 提供包括数据集、模型、代码配置等核心AI资产的管理能力。 |
场景化解决方案 | 基于PAI平台能力孵化的垂直领域解决方案集合,方便您直接应用。 |
2024-07-26(五)