すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:Data Science Workshop (DSW) のクイックスタート

最終更新日:Nov 28, 2025

Data Science Workshop (DSW) は、複数の開発環境が組み込まれたクラウドベースの AI 開発向け統合開発環境 (IDE) を提供します。Notebook や VSCode に慣れている方であれば、すぐにモデル開発を始めることができます。このトピックでは、MNIST 手書き認識タスクを例に、DSW でモデルを迅速に開発する方法を説明します。

説明

MNIST 手書き認識タスクは、ディープラーニングにおける最も古典的な入門タスクの 1 つです。その目的は、10 種類の手書き数字 (0 から 9) を認識する機械学習モデルを構築することです。

image

前提条件

開始する前に、Alibaba Cloud アカウントを使用して PAI をアクティブ化し、ワークスペースを作成する必要があります。これを行うには、PAI コンソールにログインし、左上隅でリージョンを選択してから、必要な権限を付与してプロダクトをアクティブ化します。

課金情報

この例では、パブリックリソースを使用して DSW インスタンスと Elastic Algorithm Service (EAS) モデルサービスを作成します。これらのリソースは従量課金制で課金されます。課金ルールの詳細については、「DSW の課金」および「EAS の課金」をご参照ください。

DSW インスタンスの作成

  1. DSW ページに移動します。

    1. PAI コンソールにログインします。

    2. ページの左上隅で、ターゲットリージョンを選択します。

    3. 左側のナビゲーションウィンドウで [Workspace] をクリックし、管理したいワークスペースの名前をクリックします。

    4. 左側のナビゲーションウィンドウで、[Model Training] > [Data Science Workshop (DSW)] を選択します。次に、[Create Instance] をクリックします。

      image

  2. [Create Instance] ページで、次の主要なパラメーターを設定し、その他のパラメーターはデフォルト値を使用します。

    • [Resource Type][Public Resources] を選択します。このリソースタイプの課金方法は従量課金です。

    • [Instance Type]ecs.gn7i-c8g1.2xlarge を選択します。

      このインスタンスタイプの在庫が不足している場合は、別の GPU インスタンスタイプを選択できます。
    • [Image][Official Image] を選択し、次のイメージを検索して選択します: modelscope:1.26.0-pytorch2.6.0-gpu-py311-cu124-ubuntu22.04

      環境の問題を避けるため、このトピックで使用されているものと同じイメージを選択してください。
    • [Storage Path Mounting]: モデル開発プロセスのファイルを永続的に保存するために、このトピックでは Object Storage Service (OSS) を使用します。[OSS] をクリックし、image アイコンをクリックして [Bucket] を選択し、pai_test などのフォルダを作成します。完全なパラメーター構成は次のとおりです。

      OSS をアクティブ化していない場合、または現在のリージョンで利用可能なバケットがない場合は、次の手順に従って OSS をアクティブ化し、バケットを作成します:

      (オプション) OSS のアクティブ化とバケットの作成

      1. OSS サービスをアクティブ化します

      2. OSS コンソールにログインし、[Create Bucket] をクリックし、[Bucket Name] を入力し、PAI ワークスペースと同じ [Region] を選択し、他のパラメーターはデフォルト値のままにして、[Create] をクリックします。

        image

      • [Uri]oss://**********oss-cn-hangzhou-internal.aliyuncs.com/pai_test/

      • マウントパス/mnt/data/

  3. [OK] をクリックして DSW インスタンスを作成します。

    インスタンスの起動に失敗した場合は、「インスタンスの起動とリリースに関する一般的な問題」をご参照ください。

DSW でのモデル開発

  1. DSW インスタンスを開く

    [Open] をクリックして、作成した DSW インスタンスの開発環境に移動します。

    image

    PAI-DSW インターフェイスは次の図のようになります:

    image

  2. モデル開発コードを記述します。このトピックでは、Notebook 開発環境を例として使用し、MNIST 手書き認識のトレーニングコードを提供します。mnist.ipynb をクリックしてコードをダウンロードします。次に、DSW ページの左上隅にある image アイコンをクリックして、コードファイルをアップロードします。

    image

  3. モデルトレーニングコードを実行します。mnist.ipynb ファイルを開き、トレーニングコードが含まれるセルを見つけて、image ボタンをクリックしてコードを実行します。コードは自動的に MNIST データセットを dataSet ディレクトリにダウンロードし、トレーニング後に最適なチェックポイントを output ディレクトリに保存します。トレーニングプロセスには約 10 分かかります。

    image

    image

    トレーニング中、検証セットに対するモデルの精度が表示されます。この値は、未知のデータに対するモデルの汎化能力を表します。この例では、検証セットでの精度は 98% であり、モデルが良好に機能していることを示しています。次のステップに進むことができます。

  4. TensorBoard で損失曲線を表示して、トレーニングの状態を理解します。次のセルを実行し、TensorBoard の URL: http://localhost:6006/ をクリックします。

    image

    TensorBoard では、トレーニングデータセットの損失を反映する train_loss 曲線と、検証セットの損失を反映する validation_loss 曲線を表示できます。

    image

    グラフを表示した後、セル内の image アイコンをクリックして TensorBoard を停止します。

    (オプション) 損失グラフに基づいてハイパーパラメーターを調整し、モデルのパフォーマンスを向上させる

    損失値の傾向に基づいて、現在のモデルのトレーニングパフォーマンスを評価できます:

    • トレーニングが終了する前に `train_loss` と `validation_loss` の値が減少し続けている場合、未学習 (underfitting) が発生しています。トレーニングの深さと正の相関がある `num_epochs` の値を増やすか、`learning_rate` を増やしてモデルを再トレーニングすることができます。これにより、トレーニングデータに対するモデルの適合度が向上します。

      トレーニングが終了する前に train_loss と validation_loss の値がまだ減少し続けている場合 (アンダーフィッティング)。`num_epochs` (トレーニングの深さと正の相関) の値を増やすか、`learning_rate` を大きくしてモデルを再トレーニングすることができます。これにより、モデルのトレーニングデータへの適合性が向上します。

      • `train_loss` の値は減少し続けますが、`validation_loss` の値はトレーニングが終了する前に増加し始めます (過学習)。 `num_epochs` の値を小さくするか、`learning_rate` を小さくしてから、モデルを再トレーニングできます。 これにより、モデルの過学習を防ぐことができます。

        train_loss の値は減少し続けますが、トレーニングが終了する前に validation_loss の値が増加し始める場合 (過学習)。モデルが過学習になるのを防ぐために、`num_epochs` または `learning_rate` の値を減らしてモデルを再トレーニングすることができます。

      • train_loss と validation_loss の両方の値がトレーニング終了前に安定します (良好な適合)。モデルがこの状態にある場合、次のステップに進むことができます。

        モデルがこの状態にある場合、次のステップに進むことができます。

  5. トレーニング済みのモデルを呼び出して、そのパフォーマンスをテストします。図に示されているセルを実行します。セルには 20 枚のテスト画像が表示され、それらの真のラベルとモデルの予測結果が出力されます。

    image

    出力例:

    image

  6. モデルファイルを OSS にコピーして永続的に保存します。このトピックの DSW インスタンスはパブリックリソースを使用して作成されており、そのファイルは無料ディスクに保存されます。インスタンスが 15 日以上停止したままである場合、ディスク上のコンテンツは削除されます。したがって、モデルファイルを OSS にコピーして永続的に保存する必要があります。これにより、後で PAI-EAS を使用してモデルをデプロイするのも容易になります。

    image

    OSS コンソールにログインしてファイルを表示します:

    image

これでモデル開発は完了です。本番環境の他のアプリケーションでモデルを呼び出したい場合は、「EAS を使用してモデルをオンラインサービスとしてデプロイする」をご参照ください。

重要

このトピックの DSW インスタンスはパブリックリソースを使用して作成され、従量課金制で課金されます。DSW インスタンスが不要になった場合は、さらなる課金を避けるために停止または削除してくださいimage

EAS を使用したモデルのオンラインサービスとしてのデプロイ

モデルがトレーニングされると、EAS を使用して、オンライン推論サービスまたは AI Web アプリケーションとして迅速にデプロイできます。EAS は異種リソースをサポートし、自動スケーリングワンクリックストレステストカナリアリリースリアルタイムモニタリングなどの機能を組み合わせて、高コンカレンシーシナリオで安定した継続的なサービスを低コストで保証します。

  1. モデルサービスの Web インターフェイスを記述し、OSS にコピーします。Web インターフェイスのコードとコピーコマンドが提供されています。次のセルを実行して、これらの操作を実行できます。

    image

  2. (オプション) DSW で Web インターフェイスが起動できることを確認します。次のセルを実行して、不足しているサードパーティパッケージをインストールし、サービスを開始します。

    image

    コードを実行してサービスインターフェイスをテストします。ページの上部にある [WebIDE] をクリックします。左側で、request_web.py コードファイルをクリックします。次に、image アイコンをクリックしてコードを実行し、サービスインターフェイスにリクエストを送信します。

    image

    次の結果が返されます:

    {"prediction": 7}
    説明

    DSW で実行されている Web サービスにインターネットから直接アクセスしたい場合は、DSW 用に Virtual Private Cloud (VPC)、NAT Gateway、および Elastic IP Address (EIP) を構成する必要があります。詳細については、「インスタンス内のサービスにインターネット経由でアクセスする」をご参照ください。

  3. EAS を構成します。PAI コンソールで、左側のナビゲーションウィンドウで、[Elastic Algorithm Service (EAS)] > [Deploy Service] > [Custom Deployment] をクリックします。

    image

    次の主要なパラメーターを設定し、その他のパラメーターはデフォルト値を使用します:

    • デプロイメント方式イメージベースのデプロイメント

    • [Image Configuration][Image Address] を選択します。DSW インスタンスに使用されているイメージの URL をコピーして貼り付けます。

      このイメージの環境は、DSW を使用した際にこのトピックのモデルサービスコードを正しく実行できることが確認されています。したがって、未知のランタイム環境の問題を避けるために、デプロイには同じイメージを使用してください。

      image

    • [Mount Storage]: モデルファイルとサービスインターフェイスコードは OSS にコピーされています。したがって、[OSS] をクリックし、対応する OSS パスを選択します。

      image

    • [Command]: コマンドは DSW でのサービス起動コマンドと同じです。ただし、web.py/mnt/data/ にマウントされるため、web.py のパスを適宜変更する必要があります。最終的なコマンドは次のようになります: python /mnt/data/web.py

    • [Port]web.py で使用されるポート、つまり 9000 を設定します。

    • [Third-party Library Configuration]: DSW でのテスト中に、選択したイメージに bottle ライブラリが不足していることが判明しました。したがって、このライブラリをサードパーティライブラリの構成に追加する必要があります。

      image

    • [Resource Type][Public Resources] を選択します。[Resource Specification] には、ecs.gn7i-c8g1.2xlarge を選択します。

    • [Configure A System Disk][Show More] をクリックし、Extra System Disk を 20 GB に設定します。

      使用するイメージが大きいため、追加のシステムディスクを設定しないと、容量不足でサービスが起動できません。

    [Deploy] をクリックしてサービスを作成します。作成プロセスには約 5 分かかります。ステータスが [Running] に変わると、サービスはデプロイされています。

  4. 呼び出し情報を表示します。モデルサービスの詳細ページで、[View Invocation Information] をクリックして、[Public Endpoint][Token] を取得します。

    image

  5. サービスを呼び出します。次のサービスリクエストコードを実行します。コード内の [Endpoint][Token] を、前のステップで取得した実際の情報に置き換えます。

    import requests
    
    """
    テスト画像の URL:
    ラベルは 7
    http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_7_No_0.jpg
    ラベルは 2
    http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_2_No_1.jpg
    ラベルは 1
    http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_1_No_2.jpg
    ラベルは 0
    http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_0_No_3.jpg
    ラベルは 4
    http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_4_No_4.jpg
    ラベルは 5
    http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_9_No_5.jpg
    """
    
    image_url = 'http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_7_No_0.jpg'
    
    # クライアントは画像をダウンロードしてバイナリデータを取得します。
    img_response = requests.get(image_url, timeout=10)
    # ステータスコードに基づいてリクエストが成功したかどうかを自動的に確認します。
    img_response.raise_for_status()
    img_bytes = img_response.content
    
    # ヘッダー情報。YOUR_TOKEN を実際のトークンに置き換えてください。
    # 本番環境では、機密情報の漏洩を防ぐために、トークンを環境変数として設定することを推奨します。
    # 環境変数の設定方法の詳細については、https://www.alibabacloud.com/help/sdk/developer-reference/configure-the-alibaba-cloud-accesskey-environment-variable-on-linux-macos-and-windows-systems をご参照ください。
    headers = {"Authorization": "YOUR_TOKEN"}
    # バイナリデータを POST リクエストの本文としてモデルサービスに送信します。
    resp = requests.post('YOUR_ENDPOINT/predict_image', data=img_bytes, headers=headers)
    print(resp.json())

    次の結果が返されます:

    {"prediction": 7}
重要

このトピックの EAS サービスはパブリックリソースを使用して作成され、従量課金制で課金されます。サービスが不要になった場合は、さらなる課金を避けるために停止または削除してください

image

関連ドキュメント