使用PAI-DSW建模前,您需要创建PAI-DSW实例。本文为您介绍如何创建PAI-DSW实例、管理实例及实例界面介绍。

前提条件

  • 如果首次使用PAI-DSW,则需要对相关资源进行访问授权,具体操作请参见云产品依赖与授权:DSW
  • 已准备好DSW实例运行所需的DLC资源。
  • (可选)已创建完成NAS类或OSS类数据集。

    PAI-DSW为您提供临时存储,如果您想永久存储,则需要创建数据集,便于创建实例时关联此数据集。具体操作步骤,请参见创建及管理数据集

背景信息

PAI-DSW支持通过控制台或Python SDK的方式创建实例,二者分别适用于不同的用户:
  • 通过控制台创建实例

    适用于普通开发者,您可以通过控制台管理实例。例如,在PAI-DSW中进行模型开发的开发者。

  • 通过Python SDK创建实例

    适用于需要对实例整体生命周期进行管理的开发者。例如,您需要将PAI-DSW系统中的资源整合到其他系统中,可以通过PAI-DSW的OpenAPI SDK实现。

创建实例

通过控制台创建实例:
  1. 登录PAI控制台
  2. 概览页面选择目标地域。
  3. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
  4. 在工作空间页面的左侧导航栏选择模型开发和训练 > 交互式建模(DSW),进入DSW页面。
  5. 单击创建实例
  6. 配置实例向导页面,配置以下参数,并单击提交订单
    参数 描述
    实例名称 命名规则如下:
    • 只能包含英文字母、数字及下划线(_)。
    • 长度不能超过27个字符。
    是否仅自己可见 选择创建的实例仅自己可见工作空间内公开可见
    资源类型 支持选择:
    • 公共资源组:默认为公共资源组,支持选择CPU实例GPU实例。
    • 专属资源组:支持使用DLC专属资源组来创建实例。如果没有可选的专属资源组,您可以通过单击专属资源组进行创建。
    数据集 实例自带系统盘用来做临时存储,停止或删除实例后,该存储清空。如果需要永久化存储,需要选择已创建的数据集进行挂载。如果没有可选的数据集,您可以通过单击创建数据集进行创建。关于如何创建数据集,详情请参见创建及管理数据集
    说明
    • 数据集仅支持选择NAS类型或OSS类型。
    • 第一个数据集必须选择NAS类型数据集,且会被同时挂载到您指定的路径或DSW默认工作目录/home/admin/workspace下。
    • 多个数据集挂载的路径不能重复。
    选择镜像 支持选择以下镜像:
    • 官方镜像:预置的官方镜像,覆盖Python、TensorFlow及PyTorch多个版本。
    • 用户自定义镜像:支持选择已创建的自定义镜像。关于如何添加自定义镜像,详情请参见查看并添加镜像
    • 镜像URL:输入公共可访问的镜像公网地址,使用该镜像。您也可以直接填入当前region下ACR个人版中镜像的公网地址。
    专有网络 支持在VPC内使用PAI-DSW。您必须同时配置专有网络交换机安全组

    您可以直接选择已经创建的专有网络进行挂载,或单击专有网络后的创建专有网络进行创建。

    交换机 如果配置了专有网络,则必须同时配置交换机安全组

    您可以直接选择已经创建的交换机和安全组进行挂载,或单击创建交换机创建安全组进行创建。

    安全组
  7. 确认订单配置向导页面,确认所选配置,选中服务协议,单击创建实例
通过Python SDK创建实例:
  1. 安装Python SDK。
    # 工作空间SDK安装。
    pip install alibabacloud-aiworkspace20210204 -U -q
    # DSW SDK安装。
    pip install alibabacloud_pai_dsw20220101 -U -q
    # OpenAPI依赖。
    pip install alibabacloud_tea_openapi -U -q
    # 预付费资源组查询SDK安装。
    pip install https://sdk-portal-us-prod.oss-accelerate.aliyuncs.com/downloads/u-b8602de7-c468-436c-8a02-2eca4a30d376-python-paistudio.zip -U -q
  2. 创建一个PAI-DSW实例。
    创建PAI-DSW实例时,需要使用阿里云账号的AccessKey。关于如何获取AccessKey,请参见获取AccessKey。创建实例的代码示例如下所示。
    from alibabacloud_pai_dsw20220101.client import Client as DSWClient
    from alibabacloud_pai_dsw20220101.models import *
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_aiworkspace20210204.client import Client as AIWorkspaceClient
    from alibabacloud_aiworkspace20210204.models import (
        ListWorkspacesRequest,
        CreateDatasetRequest,
        CreateWorkspaceRequest,
        ListDatasetsRequest,
        ListImagesRequest,
        ListCodeSourcesRequest,
        ListResourcesRequest
    )
    
    # client config。
    region = 'cn-hangzhou' # Region,可以是cn-hangzhou,cn-shanghai,cn-shenzhen等。
    client = DSWClient(
        Config(
            access_key_id='**你的access_key_id**',
            access_key_secret='**你的access_key_secret**',
            region_id=region,
            endpoint=f'pai-dsw.{region}.aliyuncs.com'
        )
    )
    # 获取工作空间列表。
    workspaces = workspace_client.list_workspaces(ListWorkspacesRequest(
        page_number=1,
        page_size=10,
        workspace_name=workspace_name,
    ))
    
    workspace_client = AIWorkspaceClient(
        Config(access_key_id=access_key_id,
               access_key_secret=access_key_secret,
               region_id=region_id,
               endpoint='aiworkspace.{}.aliyuncs.com'.format(region_id)))
    workspace_name = '**已有的AI工作空间名称**'
    
    if len(workspaces.body.workspaces) == 0:
        raise RuntimeError('请指定正确的workspace_name')
    
    # 获得用于提交任务的工作空间ID。
    workspace_id = workspaces.body.workspaces[0].workspace_id
    
    # 获取镜像列表,可以用labels来做过滤。
    images = workspace_client.list_images(ListImagesRequest(
        labels=','.join(['system.supported.dsw=true',
                         'system.framework=Tensorflow 1.15',
                         'system.pythonVersion=3.6',
                         'system.chipType=CPU']), verbose=True)).body.images
    
    image = images[0]
    
    # 获取实例规格列表。
    ecs_specs = client.list_ecs_specs(ListEcsSpecsRequest(accelerator_type_equals="cpu")).body.ecs_specs
    # 挑选其中一个实例规格。
    ecs_spec = ecs_specs[0]
    
    # 声明PAI-DSW实例的属性。
    request = CreateInstanceRequest(
        instance_name="myFirstInstance",
        image_id=image.image_id,
        ecs_spec=ecs_spec.instance_type,
        workspace_id=workspace_id)
    
    # 提交创建PAI-DSW实例。
    response = client.create_instance(request)
    # 获取PAI-DSW实例ID。
    instance_id = response.body.instance_id
    
    # 查询PAI-DSW实例状态。
    instance = client.get_instance(instance_id).body
    print('instance status:', instance.instance_status)

    关于更多接口的说明,请参见API参考

管理实例

您可以按照下图操作指引,管理DSW实例。管理实例
  • 您可以将鼠标悬浮到①位置,来查看实例详情、镜像版本及资源类型详情。
  • 自动停止设置:在自动停止设置对话框,您可以打开启用自动停止开关,并设置自动停止时间,等到指定时间时,系统会自动停止DSW实例。
  • 保存镜像:您可以按照界面操作指引,将DSW实例保存为自定义镜像,后续您可以直接使用该镜像。
    说明 如果您需要将DSW实例保存为自定义镜像,需要在容器镜像服务ACR创建个人版实例,当前ACR企业版实例暂时不支持该功能,具体操作请参见创建个人版实例

实例界面介绍

实例创建完成后,您可以单击操作列下的打开,进入DSW实例界面。DSW实例界面主要包括以下三部分:
  • JupyterlabJupyterlab
    功能区编号 描述
    顶部菜单栏。
    左侧工具栏。
    工具内容。
    主工作区。
    资源水位。
  • WebIDEWebIDE
    功能区编号 描述
    左侧工具栏。
    工具内容。
    主工作区。
    资源水位。
  • TermInalTermInal
    功能区编号 描述
    主工作区。
    资源水位。