【DSW Gallery】Using Python SDK to manage DSW instances

概要
PAI-DSW (Data Science Workshop) は、データサイエンスチームやアルゴリズムチーム向けに設計された、クラウドベースの機械学習インタラクティブ開発 IDE です。データの読み込み、モデルの開発、トレーニング、デプロイをより簡単かつ効率的に、そして安全に行えます。
PAI の Web コンソールで DSW を利用するだけでなく、OpenAPI と対応する Python SDK を使用して、コードベースで DSW インスタンスを管理することもできます。本記事では、OpenAPI の呼び出しをラップする DSW Python SDK を使用して、インスタンスの作成、停止、起動、削除、および環境 (イメージ) の保存を行う方法を紹介します。
PAI-DSW クイックスタートを参照すると、DSW および PAI に関するさらに多くの機能やベストプラクティスをご確認いただけます。
前提条件
・PAI-DSW を有効化し、権限付与を完了してください。詳細については、DSW の有効化と権限付与を参照してください。
・[オプション] 専用リソースグループを購入します。現在はテスト期間中です。必要に応じてお問い合わせください。
・Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret を取得済みであること。詳細については、AccessKey の取得を参照してください。
ステップ 1:Python SDK のインストール
・AI Workspace SDK のインストール
・PAI-DSW SDK のインストール
・専用リソースグループ管理用 SDK のインストール (オプション)
。pip install alibabacloud-aiworkspace20210204 -U -q
。pip install alibabacloud_pai_dsw20220101 -U -q
# Install the SDK related to the functions of the exclusive resource group. Before the official release to pypi, please use the following address:
。pip install https://sdk-portal-us-prod.oss-accelerate.aliyuncs.com/downloads/u-b8602de7-c468-436c-8a02-2eca4a30d376-python-paistudio.zip -U -q
ステップ 2:Python SDK の Client オブジェクトの初期化
PAI の Python SDK は標準的な Alibaba Cloud SDK であり、各サブプロダクトにはそれぞれ専用のインストールパッケージとパッケージがあります。ただし、各パッケージの使用方法は同じです。
・サブプロダクト (Aliyun サービス) に対応する Client クラスを client パッケージからインポートする
・使用するさまざまなリクエスト/レスポンスクラスを models パッケージからインポートする
・Alibaba Cloud の AK を使用して Client オブジェクトを初期化し、リージョンを指定する
・Client オブジェクト内の各種メソッドを呼び出します。各メソッドは OpenAPI に対応しており、シンプルなパラメーターは Python の基本型、複雑なパラメーターは models パッケージ内の各種リクエスト/レスポンスオブジェクトを使用します
# Import various Client and Models classes
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
from alibabacloud_paistudio20220112.models import (ListResourceGroupMachineGroupsRequest)
from alibabacloud_paistudio20220112.client import Client as StudioClient
# Construct the Client object of each sub-product (that is, the Service of different sub-products)
# Prepare the AK of the Region and Alibaba Cloud account
region_id = 'cn-beijing'
access_key_id = '**your access_key_id**'
access_key_secret = '**your access_key_secret**'
import os.path
config_path="/mnt/data/pai.config"
if os.path.isfile(config_path):
with open(config_path) as f:
access_key_id = f.readline().strip(' ')
access_key_secret = f.readline().strip(' ')
# create client
workspace_client = AIWorkspaceClient(
AliyunConfig(access_key_id=access_key_id,
access_key_secret=access_key_secret,
region_id=region_id,
endpoint='aiworkspace.{}.aliyuncs.com'.format(region_id)))
dsw_client = DSWClient(
AliyunConfig(access_key_id=access_key_id,
access_key_secret=access_key_secret,
region_id=region_id,
endpoint='pai-dsw.{}.aliyuncs.com'.format(region_id)))
# Studio Client is only required for prepaid resource groups
studio_client = StudioClient(AliyunConfig(access_key_id=access_key_id,
access_key_secret=access_key_secret,
region_id = region_id))
# Define a Helper function to display DSW instance information
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)
ステップ 3:準備 - ワークスペース内の AI 資産
PAI-DSW の利用では、OSS、NAS、CPFS、コンテナイメージ、専用リソースグループなどのリソースを頻繁に取り扱います。管理を容易にするため、PAI プラットフォームはこれらのリソースを「AI 資産」として統一的に扱い、ワークスペースを使用して整理することで、再利用と権限管理を容易にしています。ワークスペース関連の機能は、workspace_client オブジェクトを使用してクエリおよび操作できます。
AI ワークスペースの準備 (必須)
ワークスペースは PAI の最上位概念であり、チームに対して統合的なコンピューティングリソース管理とユーザー権限管理の機能を提供します。AI 開発者に、チームコラボレーションをサポートするフルプロセスの開発ツールと AI 資産管理機能を提供することを目的としています。
PAI プラットフォームを有効化すると、ユーザーに対してデフォルトのワークスペースが自動的に作成されます。
# Query the properties and ID of an existing workspace (Workspace)
workspace_name = '**Existing AI workspace name**'
# Get a list of workspaces.
workspaces = workspace_client.list_workspaces(ListWorkspacesRequest(
page_number=1,
page_size=10,
workspace_name=workspace_name, # Fuzzy matching, if no name is specified, all workspaces will be returned
))
if len(workspaces. body. workspaces) == 0:
raise RuntimeError('Please specify the correct workspace_name')
for workspace in workspaces.body.workspaces:
print(workspace.workspace_name,
workspace.workspace_id,
workspace.status, workspace.creator)
# Use the first result of the query as the workspace for subsequent operations, you can switch as needed or directly specify a string-type ID
workspace_id = workspaces.body.workspaces[0].workspace_id
イメージの準備 (必須)
DSW インスタンスを作成する際は、AI 開発環境としてイメージを指定する必要があります。PAI-DSW では、さまざまなタイプのイメージを選択できます。
・コミュニティイメージ:コミュニティが提供する標準イメージ。各イメージの詳細については、コミュニティイメージのバージョン詳細を参照してください。
・PAI プラットフォームイメージ:Alibaba Cloud PAI プロダクトが提供する各種公式イメージ。さまざまなリソースタイプや Python
image_url=image_uri)
try:
ins_resp = dsw_client.create_instance(request)
except TeaException as t:
print('Create instance failed, error message:' + t.message)
else:
instance_id = ins_resp.body.instance_id
print("Created Instance ID:", instance_id)
show_instance(instance_id)

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.