创建及管理DSW实例

更新时间:2023-06-05 18:24提交缺陷

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

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

前提条件

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

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

  • 已完成身份验证配置。您可以使用环境变量、本地文件等方式配置,具体操作请参见身份验证配置

背景信息

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

  • 通过控制台创建实例

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

  • 通过Python SDK创建实例

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

创建实例

通过控制台创建实例。

  1. 进入DSW页面。
    1. 登录PAI控制台
    2. 在概览页面选择目标地域。
    3. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
    4. 在工作空间页面的左侧导航栏选择模型开发与训练 > 交互式建模(DSW),进入DSW页面。
  2. 单击创建实例。
  3. 在配置实例向导页面,配置以下关键参数。
     
    参数 描述
    实例名称 参考界面提示信息配置DSW实例名称。
    资源组 支持选择:

    • 默认为通用训练资源公共资源组,支持选择CPU规格或GPU规格。
    • 支持使用通用训练资源专有资源组来创建实例。如果没有可选的专有资源组,您可以单击工作空间,为该工作空间关联通用训练资源专有资源组。
       
      说明 如果后续挂载数据集时选择CPFS文件系统,则通用训练资源选择的专有网络和交换机需要与CPFS文件系统一致,具体操作,请参见挂载CPFS
    • 支持使用灵骏智算资源来创建实例。如果没有可选的灵骏智算资源,您可以单击工作空间,为该工作空间关联灵骏智算资源。
    数据集 实例自带系统盘用来做临时存储,停止或删除实例后,该存储清空。如果需要永久化存储,需要选择已创建的数据集进行挂载。如果没有可选的数据集,您可以通过单击创建数据集进行创建。关于如何创建数据集,详情请参见创建及管理数据集

     
    说明

    • 数据集仅支持选择NAS类型或OSS类型。
    • 第一个数据集必须选择NAS类型数据集,且会被同时挂载到您指定的路径和DSW默认工作目录/mnt/workspace/下。
    • 多个数据集挂载的路径不能重复。
    选择镜像 支持选择以下镜像:

    • 官方镜像:预置的官方镜像,覆盖Python、TensorFlow及PyTorch多个版本。
    • 用户自定义镜像:支持选择已创建的自定义镜像。关于如何添加自定义镜像,详情请参见查看并添加镜像
    • 镜像URL:输入公共可访问的镜像公网地址,使用该镜像。您也可以直接填入当前region下ACR个人版中镜像的公网地址。
    专有网络 仅资源组选择公共资源组时,支持配置该参数。

    支持在VPC内使用PAI-DSW。您必须同时配置专有网络、交换机及安全组。

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

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

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

    安全组
  4. 单击下一步。
    如果没有配置数据集,会弹出数据集未选择对话框。如果无需配置数据集,单击继续提交,继续下一步操作;如果您需要重新配置数据集,单击返回编辑,在配置实例向导页面,添加数据集即可。
  5. 在确认订单配置向导页面,确认所选配置,勾选服务协议,单击创建实例。
通过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实例。
    创建实例的代码示例如下所示。

     
    from alibabacloud_credentials.client import Client as CredClient
    from alibabacloud_pai_dsw20220101.client import Client as DSWClient
    from alibabacloud_aiworkspace20210204.client import Client as AIWorkspaceClient from alibabacloud_aiworkspace20210204.models import (ListWorkspacesRequest,
    ListImagesRequest,
    ListDatasetsRequest,
    ListResourcesRequest) from alibabacloud_pai_dsw20220101.models import (ListInstancesRequest,
    ListEcsSpecsRequest,
    CreateInstanceRequest,
    StopInstanceRequest,
    CreateInstanceShutdownTimerRequest,
    CreateInstanceRequestRequestedResource,
    CreateInstanceSnapshotRequest,
    ListInstanceSnapshotRequest,
    GetInstanceMetricsRequest,
    CreateIdleInstanceCullerRequest) from alibabacloud_tea_openapi.models import Config as AliyunConfig
    from alibabacloud_tea_openapi.client import TeaException
    # 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。 
    # 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
    # 本示例通过Credentials SDK默认从环境变量中读取AccessKey,来实现身份验证。
    region_id = 'cn-beijing' # Region,可以是cn-hangzhou,cn-shanghai,cn-shenzhen等。
    cred = CredClient() # client config。
    workspace_client = AIWorkspaceClient(
    config=AliyunConfig(
    credential=cred,
    region_id=region_id,
    endpoint="aiworkspace.{}.aliyuncs.com".format(region_id),
    )
    )
    dsw_client = DSWClient(
    config=AliyunConfig(
    credential=cred,
    region_id=region_id,
    endpoint='pai-dsw.{}.aliyuncs.com'.format(region_id),
    )
    ) # 定义一个用来显示DSW实例信息的Helper函数。
    def show_instance(instance_id):
    instance = dsw_client.get_instance(instance_id=instance_id).body
    print(instance.status, instance.instance_name, instance.ecs_spec, instance.accumulated_running_time_in_ms) # 查询一个已经存在的工作空间(Workspace)的属性和ID。
    workspace_name = '**已有的AI工作空间名称**' # 获取工作空间列表。
    workspaces = workspace_client.list_workspaces(ListWorkspacesRequest(
    page_number=1,
    page_size=10,
    workspace_name=workspace_name, # 模糊匹配,如果不指定名字,则返回所有workspace。
    )) if len(workspaces.body.workspaces) == 0:
    raise RuntimeError('请指定正确的workspace_name') for workspace in workspaces.body.workspaces:
    print(workspace.workspace_name,
    workspace.workspace_id,
    workspace.status, workspace.creator) # 使用查询到的第一个结果作为后续操作的workspace,您可以按需切换或者直接指定一个字符串类型的ID。
    workspace_id = workspaces.body.workspaces[0].workspace_id # 获取镜像列表,可以用labels来做过滤。
    images = workspace_client.list_images(ListImagesRequest(
    page_size=100,
    #workspace_id=workspace_id, #不指定workspace_id则意味着查询所有PAI平台内置的镜像
    labels=','.join(['system.supported.dsw=true',
    #'system.framework=tensorflow', #指定pytorch或者tensorflow
    'system.pythonVersion=3.6',
    ]),
    verbose=True # verbose=True会列出更加详细的信息,包括labels
    )) # 可以查看所有可用的镜像。
    for image in images.body.images:
    print(image.image_id, image.image_uri) # 获得用于提交任务所使用的镜像,这里取第一个作为示例。
    image_uri = images.body.images[0].image_uri
    print('image_uri', image_uri) # 获取DSW的节点规格列表。
    try:
    resp = dsw_client.list_ecs_specs(ListEcsSpecsRequest(accelerator_type='CPU', # CPU 或者 GPU
    )).body
    except TeaException as t:
    print("List ECS Specs failed:", t.message)
    else:
    for spec in resp.ecs_specs:
    print(spec.instance_type + ", CPU: " + str(spec.cpu) + ", Memory: " + str(spec.memory)) # 获得用于提交任务的节点规格。
    ecs_spec = resp.ecs_specs[0].instance_type
    print('Selected ecs_spec:', ecs_spec)
    # 创建DSW实例。
    request = CreateInstanceRequest(instance_name="Test_From_SDK_1",
    ecs_spec=ecs_spec,
    workspace_id=workspace_id,
    #image_id='', #可以指定工作空间中的镜像的ID,但是与image_url只能指定一个参数
    image_url=image_uri)
    try:vi
    ins_resp = dsw_client.create_instance(request)
    except TeaException as t:
    print('创建实例失败,错误消息:' + t.message)
    else:
    instance_id = ins_resp.body.instance_id
    print("Created Instance ID:", instance_id) show_instance(instance_id)

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

管理实例

您可以按照下图操作指引,管理DSW实例。

 
警告 如果DSW实例未挂载数据集,则停止或删除DSW实例后相关数据无法恢复,请谨慎操作。
  • 您可以将鼠标悬浮到①位置,来查看实例详情、资源类型详情及DSW实例状态变化的时间记录。
  • 自动停止设置:在自动停止设置对话框,您可以打开启用自动停止开关,并设置自动停止时间,等到指定时间时,系统会自动停止DSW实例。
  • 保存镜像:您可以按照界面操作指引,将DSW实例保存到个人版ACR中或企业版ACR中,后续您可以直接使用该镜像。
  • 单击DSW实例名称,进入实例详情页面,您可以在该页面查看DSW实例的基础信息和实例配置。您也可以做以下变更配置。
    • 在基础信息区域,修改实例名称。
    • 在实例配置区域,单击变更配置,您可以修改资源信息、镜像信息、数据集配置或网络配置。

实例界面介绍

实例创建完成后,您可以单击操作列下的打开,进入DSW实例界面。DSW实例界面主要包括以下三部分:

  • Jupyterlab

     
    功能区编号 描述
    顶部菜单栏。
    左侧工具栏。
    工具内容。
    主工作区。
    资源水位。
  • WebIDE
     
    功能区编号 描述
    左侧工具栏。
    工具内容。
    主工作区。
    资源水位。
  • TermInal
     
    功能区编号 描述
    主工作区。
    资源水位。
 
 

创建及管理DSW实例的更多相关文章

  1. OCM_第十六天课程:Section7 —》GI 及 ASM 安装配置 _安装 GRID 软件/创建和管理 ASM 磁盘组/创建和管理 ASM 实例

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  2. 在EntityFramework6中管理DbContext的正确方式——4DbContextScope:一个简单的,正确的并且灵活的管理DbContext实例的方式(外文翻译)

    (译者注:使用EF开发应用程序的一个难点就在于对其DbContext的生命周期管理,你的管理策略是否能很好的支持上层服务 使用独立事务,使用嵌套事务,并行执行,异步执行等需求? Mehdi El Gu ...

  3. 初学C#和MVC的一些心得,弯路,总结,还有教训(4)--Cache 关于创建多个缓存实例

    asp.net中的数据缓存可以用 HttpRuntime.Cache ,这个是大家都知道的,但如果缓存的数据比较多,又比较杂乱,想要把缓存分开管理(也就是创建多个缓存实例)应该怎么做呢... 于是常规 ...

  4. 利用mysql_multi来管理多实例:

    mysql_multi的现实意义: 1:随着连接数上升,性能会下降,通过多实例来分流大量连接来提高性能. 2:做资源隔离 3:分库分表 mysql_multi是官方管理多实例的一个脚本,利用perl语 ...

  5. php版redis插件,SSDB数据库,增强型的Redis管理api实例

    php版redis插件,SSDB数据库,增强型的Redis管理api实例 SSDB是一套基于LevelDB存储引擎的非关系型数据库(NOSQL),可用于取代Redis,更适合海量数据的存储.另外,ro ...

  6. 利用mysqld_multi启动管理多实例

    利用mysqld_multi启动管理多实例 官方管理多实例的一个脚本peer #将之前的目录清空 [root@mysql01 mysql]# tree /data/mysql/ /data/mysql ...

  7. 使用 HPC Pack 为 Azure 中的 Windows HPC 工作负荷创建和管理群集的选项

    利用 Microsoft HPC Pack 和 Azure 的计算与基础结构服务,创建和管理基于云的高性能计算 (HPC) 群集. HPC Pack 是在 Azure 和 Windows Server ...

  8. 在kubernetes集群中创建redis主从多实例

    分类 > 正文 在kubernetes集群中创建redis主从多实例 redis-slave镜像制作 redis-master镜像制作 创建kube的配置文件yaml 继续使用上次实验环境 ht ...

  9. Django项目创建与管理

    1.主题 这部分教程主要介绍如何通过Pycharm创建.管理.运行一个Django工程.对于Django模块的相关知识大家可以参考Python社区. 2.准备环境 Django版本为2.0或更高 Py ...

  10. 教你管理SQL实例系列(1-15)

    全系列转自:51CTO ->jimshu http://jimshu.blog.51cto.com 目录及原本连接如下: 教你管理SQL实例(1)数据库实例 教你管理SQL实例(2)服务启动帐户 ...

随机推荐

  1. 微服务bug之:openFeign远程调用返回类型转换异常

    楼主是在使用easyexcel导出的时候,获取数据出现这个错误,因为Spring底层是这样处理的使用LinkedhashMap来承接查询结果,导致转换异常 public List<NeedAll ...

  2. Kafka 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?

    如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? >幂等性,通俗点说,就一个数据,或者一个请求,给你重复来多次,你得确保对应的数据是不会改变的,不能出错. kafka 的机制:  K ...

  3. Pycharm里Python运行窗口显示乱码���的解决方法

    当你的Python程序运行后,会在运行窗口中显示乱码 ��� 等字样,如下 原因是 Pycharm中默认设置只显示UTF-8编码的格式,需要修改支持显示中文支持. 解决方法: 菜单中选择 File S ...

  4. 机试练习(一)——Codeforces 784B Santa Claus and Keyboard Check

    最近在准备机试,对练习的机试题做个总结.之前没有学过C++,只学过C语言,但是实际用起来的时候发现C++是更适合机试的语言,因为它的库函数更多,能支持更多操作,将一些代码简化. 习惯了C语言定义字符串 ...

  5. pandas 根据内容匹配并获取索引

    bool = ExcelDataStr.str.contains("Item No./Customer/Saler") # 初始位置:initial position, 终位置:e ...

  6. 数据处理的那些事「GitHub 热点速览」

    撇开一屏占四分之三屏幕的 AI 相关项目之外,本周剩下的热榜项目就是同数据有关的数据库项目,比如 CockroachDB 团队开源的 kv 存储数据库 pebble,旨在提供高性能的消息队列 blaz ...

  7. Unity 编辑器选择器工具类Selection 常用函数和用法

    Unity 编辑器选择器工具类Selection 常用函数和用法 点击封面跳转下载页面 简介 在Unity中,Selection类是一个非常有用的工具类,它提供了许多函数和属性,用于操作和管理编辑器中 ...

  8. Elasticsearch 保姆级入门篇

    Elasticsearch 是一个分布式的.面向生产规模工作负载优化的搜索引擎. Kibana 可以将 Elasticsearch 中的数据转化为直观的图表.图形和仪表盘. 这篇文章,您将学习本地安装 ...

  9. Ubuntu 安装部署Kubernetes(k8s)集群

    目录 一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.配置节点的基本环境 五.节点安装doc ...

  10. 【故障公告】多年的故障老朋友又来了:数据库服务器 CPU 100%

    数据库服务器 CPU 100% 问题几乎每年都要来几次,从来都不事先打一声招呼,今年的第2次在我们正忙着会员救园的时候来了. 今天 13:35 首先收到我们自己的异常告警通知: Execution T ...