- 概述
- 云产品依赖与授权:DSW
- 创建及管理DSW实例
- 通过SSH远程连接DSW
- 配置DSW实例支持运行R脚本
- 功能试用:DSW Gallery
- 读写数据与文件传输
- 提交离线任务至DLC
- 管理第三方库
- DSW使用案例汇总
首页>机器学习PAI>操作指南>AI开发>交互式建模(PAI-DSW)>创建及管理DSW实例
创建及管理DSW实例
本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
使用PAI-DSW建模前,您需要创建PAI-DSW实例。本文为您介绍如何创建PAI-DSW实例、管理实例及实例界面介绍。
前提条件
- 如果首次使用PAI-DSW,则需要对相关资源进行访问授权,具体操作请参见云产品依赖与授权:DSW。
- 已准备好DSW实例运行所需的通用训练资源或灵骏智算资源。
- 您需要为DLC服务关联角色授权,关联完成后您即可使用公共资源组,具体操作请参见云产品依赖与授权:DLC。
- 如果您想使用专有资源,您需要准备专有资源组工作集群,具体操作请参见新建及管理通用训练资源。
- 如果您想使用灵骏智算资源,您需要购买灵骏智算资源,具体操作请参见灵骏智算资源概述。
- (可选)已创建完成NAS类或OSS类数据集。 PAI-DSW为您提供临时存储,如果您想永久存储,则需要创建数据集,便于创建实例时关联此数据集。具体操作步骤,请参见创建及管理数据集。
- 已完成身份验证配置。您可以使用环境变量、本地文件等方式配置,具体操作请参见身份验证配置。
背景信息
PAI-DSW支持通过控制台或Python SDK的方式创建实例,二者分别适用于不同的用户:
- 通过控制台创建实例 适用于普通开发者,您可以通过控制台管理实例。例如,在PAI-DSW中进行模型开发的开发者。
- 通过Python SDK创建实例 适用于需要对实例整体生命周期进行管理的开发者。例如,您需要将PAI-DSW系统中的资源整合到其他系统中,可以通过PAI-DSW的OpenAPI SDK实现。
创建实例
通过控制台创建实例。
- 进入DSW页面。
- 登录PAI控制台。
- 在概览页面选择目标地域。
- 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
- 在工作空间页面的左侧导航栏选择模型开发与训练 > 交互式建模(DSW),进入DSW页面。
- 单击创建实例。
- 在配置实例向导页面,配置以下关键参数。
- 默认为通用训练资源公共资源组,支持选择CPU规格或GPU规格。
- 支持使用通用训练资源专有资源组来创建实例。如果没有可选的专有资源组,您可以单击工作空间,为该工作空间关联通用训练资源专有资源组。
- 支持使用灵骏智算资源来创建实例。如果没有可选的灵骏智算资源,您可以单击工作空间,为该工作空间关联灵骏智算资源。
- 数据集仅支持选择NAS类型或OSS类型。
- 第一个数据集必须选择NAS类型数据集,且会被同时挂载到您指定的路径和DSW默认工作目录/mnt/workspace/下。
- 多个数据集挂载的路径不能重复。
- 单击下一步。
- 如果没有配置数据集,会弹出数据集未选择对话框。如果无需配置数据集,单击继续提交,继续下一步操作;如果您需要重新配置数据集,单击返回编辑,在配置实例向导页面,添加数据集即可。
- 在确认订单配置向导页面,确认所选配置,勾选服务协议,单击创建实例。
参数 | 描述 |
实例名称 | 参考界面提示信息配置DSW实例名称。 |
资源组 | 支持选择:
说明 如果后续挂载数据集时选择CPFS文件系统,则通用训练资源选择的专有网络和交换机需要与CPFS文件系统一致,具体操作,请参见挂载CPFS。 |
数据集 | 实例自带系统盘用来做临时存储,停止或删除实例后,该存储清空。如果需要永久化存储,需要选择已创建的数据集进行挂载。如果没有可选的数据集,您可以通过单击创建数据集进行创建。关于如何创建数据集,详情请参见创建及管理数据集。
说明 |
选择镜像 | 支持选择以下镜像: |
专有网络 | 仅资源组选择公共资源组时,支持配置该参数。 支持在VPC内使用PAI-DSW。您必须同时配置专有网络、交换机及安全组。 您可以直接选择已经创建的专有网络进行挂载,或单击专有网络后的创建专有网络进行创建。 |
交换机 | 如果配置了专有网络,则必须同时配置交换机和安全组。 您可以直接选择已经创建的交换机和安全组进行挂载,或单击创建交换机和创建安全组进行创建。 |
安全组 |
通过Python SDK创建实例:
- 安装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
- 创建一个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
功能区编号 | 描述 |
① | 主工作区。 |
② | 资源水位。 |