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

Platform For AI:クイックスタート:DSW を使用したインタラクティブモデリング

最終更新日:Aug 29, 2026

Data Science Workshop (DSW) に組み込まれている Notebook または VSCode を使用して、クラウドでディープラーニングモデルを開発、トレーニング、デプロイします。このトピックでは、MNIST 手書き数字認識を例に、完全なワークフローを説明します。

説明

MNIST 手書き数字認識は、ディープラーニングの典型的な入門タスクです。その目的は、10 種類の手書き数字 (0〜9) を認識するモデルをトレーニングすることです。

前提条件

Alibaba Cloud アカウントで PAI をアクティブ化し、ワークスペースが作成されている必要があります。PAI をまだアクティブ化していない場合は、PAI コンソールにアクセスし、ページの左上隅で対象リージョンを選択して、ワンクリックで承認と製品のアクティブ化を完了してください。

課金

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

DSW インスタンスの作成

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

    1. PAI コンソールにアクセスします。

    2. ページの左上隅で対象リージョンを選択します。

    3. 左側メニューで ワークスペースリスト をクリックし、対象のワークスペースに移動します。

    4. 左側メニューで、モデル開発とトレーニング > DSW-Notebook モデリング > または新規インスタンスの作成 を選択します。

  2. インスタンスの設定 ウィザードページで、次のパラメーターを設定し、他のパラメーターはデフォルト設定のままにします。

    • リソースタイプパブリックリソース (従量課金) を選択します。

    • リソース仕様ecs.gn7i-c8g1.2xlarge を選択します。

      このインスタンスタイプが在庫切れの場合は、別の GPU インスタンスを選択できます。
    • イメージの設定Alibaba Cloud イメージ を選択し、イメージ modelscope:1.26.0-pytorch2.3.0-gpu-py311-cu121-ubuntu22.04 を検索します。

      環境の互換性の問題を回避するため、同じイメージを使用することを推奨します。
    • ストレージのマウント: モデル開発ファイルを永続化します。このトピックでは、Object Storage Service (OSS) を使用します。[OSS] をクリックし、image アイコンをクリックして [Bucket] を選択し、ディレクトリ (例:pai_test) を作成します。

      現在のリージョンで利用可能なバケットがない場合は、次の手順でバケットを作成します:

      (オプション) OSS バケットの作成

      1. OSS がアクティブ化されていること

      2. OSS コンソールにアクセスし、[Create Bucket] をクリックして [Bucket Name] を入力し、[Region] を PAI と同じリージョンに設定します。他のパラメーターはデフォルト設定のままにして、[Create] をクリックします。

        image

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

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

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

    インスタンスの起動に失敗した場合は、「DSW インスタンスの作成」でトラブルシューティングをご参照ください。

DSW でのモデル開発

  1. インスタンスリストで 開く をクリックして DSW 開発環境に移動します。ランチャーページで [JupyterLab] をクリックして Notebook 開発環境を作成します。

  2. モデルコードを記述します。MNIST トレーニングコードが提供されています。mnist.ipynb をダウンロードし、Notebook の左上隅にある image アイコンをクリックしてファイルをアップロードします。

    image

  3. モデルをトレーニングします。mnist.ipynb を開き、トレーニングコードのセルを見つけて image アイコンをクリックして実行します。コードは自動的に MNIST データセットを dataSet ディレクトリにダウンロードし、トレーニング済みモデルを output ディレクトリに保存します。トレーニングには約 10 分かかります。

    image

    image

    トレーニングプロセスでは、汎化能力を示す検証セットでの精度が出力されます。この例では、検証セットの精度は 98% です。次のステップに進むことができます。

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

    image

    TensorBoard には、train_loss (トレーニング損失) と validation_loss (検証損失) の曲線が表示されます。

    image

    曲線を確認した後、セルの image アイコンをクリックして TensorBoard を停止します。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. モデルファイルを永続化します。このトピックでは、パブリックリソースグループを使用して DSW インスタンスを作成し、ファイルは無料のクラウドディスクに保存されます。インスタンスが 15 日を超えて停止されると、クラウドディスクのコンテンツは自動的にクリアされます。モデルファイルを OSS にコピーして、後続の PAI-EAS デプロイメントで使用します。

    image

    OSS コンソールにアクセスして、コピーされたファイルを表示します:

    image

モデル開発が完了したら、モデルをオンラインサービスとしてデプロイできます。「EAS を使用したモデルサービスのデプロイ」をご参照ください。

重要

このトピックでは、パブリックリソースを使用して DSW インスタンスを作成し、従量課金制で課金されます。インスタンスを使用しない場合は、インスタンスリストページからインスタンスを停止または削除して、継続的な課金を回避してください

EAS を使用したモデルサービスのデプロイ

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

  1. Web サービスコードを記述し、OSS にコピーします。Web サービスコードとコピーコマンドが提供されています。次のセルを実行します。

    image

  2. (オプション) DSW で Web サービスを検証します。次のセルを実行して、依存関係をインストールし、サービスを開始します。

    image

    サービスをテストします。ランチャーページで VSCode をクリックして開発環境に移動します。左側のペインで request_web.py をクリックし、右クリックして [Run Python] > [Run Python File in Terminal] を選択してコードを実行します。次の結果が返されます:

    {"prediction": 7}
    説明

    DSW の Web サービスにインターネット経由でアクセスするには、VPC、NAT ゲートウェイ、および EIP を設定する必要があります。詳細については、「インスタンス内のサービスにパブリックネットワーク経由でアクセスする」をご参照ください。

  3. EAS サービスを作成します。PAI コンソールの左側メニューで、Elastic Algorithm Service (EAS) > サービスのデプロイメント > カスタムデプロイメント をクリックします。

    次のパラメーターを設定し、他のパラメーターはデフォルト設定のままにします:

    • 推論アクセラレーションイメージデプロイメント

    • イメージ設定イメージアドレス を選択し、DSW で使用したイメージアドレスを貼り付けます。

      DSW では、このイメージがモデルコードを正常に実行できることを検証済みです。デプロイに同じイメージを使用することで、環境の問題を回避できます。

      image

    • ストレージのマウント: モデルファイルと Web サービスコードは OSS にコピーされています。[OSS] をクリックし、対応するパスを選択します。

      • [Uri]: oss://*****/pai_test/

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

    • コマンドの実行web.py/mnt/data/ にマウントされています。パスを調整してください。実行コマンドは次のとおりです: python /mnt/data/web.py

    • ポート番号web.py で使用されるポート番号 9000 を入力します。

    • サードパーティライブラリの設定: 選択したイメージには bottle ライブラリが含まれていません。ここに bottle を追加します。

    • リソースタイプパブリックリソース を選択します。リソース仕様 には、ecs.gn7i-c8g1.2xlarge を選択します。

    • システムディスクの設定: 20 GB に設定します。

      イメージはサイズが大きいです。システムディスクの容量が不足すると、インスタンスの起動に失敗します。20 GB 以上に設定することを推奨します。

    デプロイメント をクリックしてサービスを作成します。サービスの作成には約 5 分かかります。ステータスが 実行中 に変わると、サービスはデプロイされています。

  4. 呼び出し情報を取得します。サービス詳細ページで エンドポイント情報の表示 をクリックして、インターネットエンドポイントトークン を取得します。

  5. サービスを呼び出します。次のコードの インターネットエンドポイントトークン を実際の値に置き換えてから、コードを実行します。

    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
    
    # ヘッダーの "" を実際のトークンに置き換えます
    # 本番環境では、機密情報の漏洩を防ぐために、トークンを環境変数として設定することを推奨します。
    # 環境変数の設定方法の詳細については、https://www.alibabacloud.com/help/sdk/developer-reference/configure-the-alibaba-cloud-accesskey-environment-variable-on-linux-macos-and-windows-systems をご参照ください。
    headers = {"Authorization": ""}
    # バイナリデータを POST リクエストのボディとしてモデルサービスに送信します
    resp = requests.post('Call URL/predict_image', data=img_bytes, headers=headers)
    print(resp.json())

    結果:

    {"prediction": 7}
重要

このトピックでは、パブリックリソースを使用して EAS サービスを作成し、従量課金制で課金されます。サービスを使用しない場合は、サービスリストページからサービスを停止または削除して、継続的な課金を回避してください

関連ドキュメント