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

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

最終更新日:Mar 31, 2026

Data Science Workshop (DSW) は、複数の組み込み環境を備えた、AI 開発向けのクラウドベースの IDE を提供します。ノートブックや VS Code に精通している場合は、すぐにモデル開発を開始できます。本トピックでは、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. 左側のナビゲーションウィンドウで、Workspaces をクリックし、使用するワークスペースの名前をクリックします。

    4. 左側のナビゲーションウィンドウで、Model Training > Interactive Modeling (DSW) の順に選択し、Create an instance. をクリックします。

      image

  2. Configure Instance ページで、以下のパラメーターを設定し、残りのパラメーターはデフォルト値のままにします。

    • Resource Type: Public Resources を選択します。これは従量課金オプションです。

    • Instance Typeecs.gn7i-c8g1.2xlarge を選択します。

      このインスタンスタイプが在庫切れの場合は、別の GPU インスタンスタイプを選択できます。
    • Image config: Alibaba Cloud Image を選択し、その後、次のイメージを検索して選択します。modelscope:1.26.0-pytorch2.6.0-gpu-py311-cu124-ubuntu22.04

      環境の問題を避けるため、本トピックで指定されているものと同じイメージを使用してください。
    • Mount storage:モデル開発ファイルを永続的に保存するため、このチュートリアルでは Object Storage Service (OSS) を使用します。[OSS] をクリックし、image アイコンをクリックして [バケット] を選択し、pai_test などのディレクトリを作成します。

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

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

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

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

        image

      • URIoss://**********oss-cn-hangzhou-internal.aliyuncs.com/pai_test/

      • Mount Path/mnt/data/

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

    インスタンスの起動に失敗した場合は、「DSW インスタンスの作成」をご参照ください。

DSW でのモデル開発

  1. インスタンスリストページで、Open をクリックして新しいインスタンスの開発環境に入ります。次に、Launcher ページで [ノートブックの作成] をクリックします。

    image

  2. 本トピックでは、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` の値がまだ減少し続けている状態。

      モデルを再トレーニングする前に、`num_epochs` (トレーニングのエポック数、トレーニングの深さと正の相関) を増やすか、`learning_rate` を上げることで、モデルがトレーニングデータにより良く適合するようになります。

    • オーバーフィッティング:`train_loss` の値は減少し続けるが、`validation_loss` の値はトレーニング終了前に増加し始める状態。

      モデルを再トレーニングする前に、`num_epochs` を減らすか、`learning_rate` を下げることで、モデルの過学習を防ぐことができます。

    • 良好な適合:`train_loss` と `validation_loss` の両方の値がトレーニング終了前に安定する状態。

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

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

    image

    出力例:

    image

  6. モデルファイルを Object Storage Service (OSS) にコピーして永続的に保存します。このチュートリアルの DSW インスタンスはパブリックリソースを使用して作成されており、そのファイルは一時的なクラウドディスクに保存されます。インスタンスが 15 日以上停止したままである場合、クラウドディスク上のコンテンツは削除されます。したがって、モデルファイルを OSS にコピーして永続的に保存する必要があります。これにより、Elastic Algorithm Service (EAS) を使用したモデルのデプロイも容易になります。

    image

    OSS コンソールにログインして、コピーされたファイルを確認します:

    image

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

重要

このチュートリアルの DSW インスタンスはパブリックリソースを使用して作成されており、従量課金制です。追加料金の発生を避けるため、不要になったインスタンスは停止または削除してくださいimage

EAS を使用したモデルのデプロイ

Elastic Algorithm Service (EAS) を使用すると、トレーニング済みのモデルをオンライン推論サービスや AI Web アプリケーションとして迅速にデプロイできます。EAS は異種リソースをサポートし、自動スケーリング、ワンクリックストレステスト、カナリアリリース、リアルタイムモニタリングを統合して、高同時実行シナリオでのサービス安定性を低コストで確保します。

  1. このチュートリアルでは、モデルサービスの Web API コードと、それを OSS にコピーするコマンドを提供しています。以下のセルを実行するだけです。

    image

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

    image

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

    image

    次の結果が返されます:

    {"prediction": 7}
    説明

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

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

    image

    以下の主要なパラメーターを設定し、他のパラメーターはデフォルト設定のままにします:

    • Deployment Method: Image-based Deployment

    • Image ConfigurationImage Address を選択し、DSW インスタンスに使用したイメージのアドレスをコピーして貼り付けます。

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

      image

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

      image

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

    • Port Numberweb.py で使用されるポートを 9000 に設定します。

    • Third-party Library Settings:DSW でのテストにより、選択したイメージに bottle ライブラリが不足していることが判明しました。そのため、サードパーティライブラリ設定でこのライブラリを追加する必要があります。

      image

    • Resource TypePublic Resources を選択します。Instance Type には、ecs.gn7i-c8g1.2xlarge を選択します。

    • Configure a system disk:サイズを 20 GB に設定します。

      イメージサイズが大きいため、起動失敗を防ぐために、より大きなシステムディスクが必要です。

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

  4. 呼び出し情報を表示します。サービス詳細ページで、View Endpoint Information をクリックして、Internet EndpointToken を取得します。

    image

  5. サービスを呼び出します。以下のサービスリクエストコードを実行します。コード内のプレースホルダー Internet EndpointToken を前のステップで取得した値に置き換えます。

    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
    ラベルは 9
    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_public_endpoint>/predict_image', data=img_bytes, headers=headers)
    print(resp.json())

    次の結果が返されます:

    {"prediction": 7}
重要

このチュートリアルの EAS サービスはパブリックリソースを使用して作成されており、従量課金制です。追加料金の発生を避けるため、不要になったサービスは停止または削除してください

image

関連ドキュメント