全部產品
Search
文件中心

Platform For AI:互動式建模 DSW 快速入門

更新時間:Nov 27, 2025

DSW(Data Science Workshop)為您提供雲端 AI 開發 IDE(開發機),內建多種開發環境。熟悉 Notebook 或 VSCode 的使用者可快速開始模型開發。本文以 MNIST 手寫體識別為例,介紹如何在 DSW 中快速開發模型。

說明

MNIST手寫體識別是深度學習最經典的入門任務之一,任務目標是通過構建機器學習模型,來識別10個手寫數字(0~9)。

image

前提條件

使用主帳號開通PAI並建立工作空間。登入PAI控制台,左上方選擇開通地區,然後一鍵授權和開通產品。

計費說明

本文案例將使用公用資源建立DSW執行個體及EAS模型服務,計費方式為隨用隨付,詳細計費規則請參見DSW計費說明EAS計費說明

建立DSW執行個體

  1. 進入DSW頁面。

    1. 登入PAI控制台

    2. 在頁面左上方選擇目標地區。

    3. 在左側導覽列單擊工作空間列表,進入待操作工作空間內。

    4. 在左側導覽列選擇模型開發與訓練 > 互動式建模(DSW) > 建立執行個體

      image

  2. 配置執行個體嚮導頁面,配置以下關鍵參數,其他參數預設即可。

    • 資源類型:選擇公用資源,計費方式為隨用隨付;

    • 資源規格:選擇ecs.gn7i-c8g1.2xlarge

      如果該規格執行個體庫存不足,您也可以選擇其他GPU執行個體。
    • 镜像配置:選擇官方鏡像,搜尋並選擇鏡像:modelscope:1.26.0-pytorch2.6.0-gpu-py311-cu124-ubuntu22.04

      請儘可能選擇與本文相同的鏡像,以免發生運行環境問題。
    • 存储挂载:用於持久化儲存模型開發過程中的檔案,本文選擇使用Object Storage Service。單擊OSS,單擊表徵圖 image,選擇Bucket並建立目錄如:pai_test,完整參數配置如下。

      如果您尚未開通OSS,或在當前地區下沒有可選的Bucket,可參考如下步驟開通OSS,並建立Bucket:

      (可選)開通OSS,並建立Bucket

      1. 開通OSS服務

      2. 登入OSS管理主控台單擊建立Bucket,填寫Bucket名稱地區選擇與當前PAI相同的地區,其他參數預設即可,然後單擊完成建立

        image

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

      • 掛載路徑/mnt/data/

  3. 單擊確定建立DSW執行個體。

    如果執行個體啟動失敗,您可以參考建立DSW執行個體解決。

在DSW中開發模型

  1. 開啟DSW執行個體

    單擊開啟,進入剛建立的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查看loss曲線,瞭解訓練情況。執行如下儲存格,單擊TensorBoard頁面地址http://localhost:6006/

    image

    在TensorBoard中即可看到train_loss曲線(反映訓練集損失)與 validation_loss曲線(反映驗證集損失)。

    image

    查看完映像後,請單擊儲存格的image表徵圖停止TensorBoard,以繼續運行後續儲存格。

    (可選)根據loss映像,調整超參數,提升模型效果

    您可以根據損失值的變化趨勢,初步判斷當前模型的訓練效果:

    • 在結束訓練前 train_loss 與 validation_loss 仍有下降趨勢(欠擬合)

      您可以增加 num_epochs(訓練輪次,與訓練深度正相關),或適當增大 learning_rate 後再進行訓練,加大模型的對訓練資料的擬合程度;

    • 在結束訓練前 train_loss 持續下降,validation_loss 開始變大(過擬合)

      您可以減少 num_epochs,或適當減小 learning_rate 後再進行訓練,防止模型過度訓練;

    • 在結束訓練前 train_loss 與 validation_loss 均處於平穩狀態(良好擬合)

      模型處於該狀態時,您可以進行後續步驟。

  5. 調用訓練後的模型,體驗模型效果。執行圖中所示儲存格,將展示20張測試圖片,並輸出圖片的真實標籤(label)和模型預測結果(predict)。

    image

    樣本輸出:

    image

  6. 將模型檔案拷貝至Object Storage Service中,持久化儲存。本文使用的是公用資源群組建立的DSW執行個體,檔案都儲存在免費的雲端硬碟中,若執行個體停機超過15天,雲端硬碟內容將被清空。因此,可以將模型檔案拷貝至OSS中持久化儲存,同時便於後續使用PAI-EAS部署模型。

    image

    登入OSS管理主控台可以看到拷貝的檔案:

    image

至此,模型的開發工作完成。如果您想要在生產環境的其他應用中調用該模型,可參考使用EAS將模型部署為線上服務

重要

本文使用了公用資源建立DSW執行個體,計費方式為隨用隨付。當您不需要使用DSW時請停止或刪除執行個體,以免繼續計費image

使用EAS將模型部署為線上服務

模型訓練完成後,可以通過EAS(Elastic Algorithm Service)快速部署為線上推理服務或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,NAT Gateway,彈性公網EIP,詳情請參見通過公網訪問執行個體中的服務

  3. 配置EAS。在PAI控制台左側導覽列單擊模型線上服務(EAS)> 部署服務 > 自訂部署

    image

    配置如下關鍵參數,其他參數預設即可:

    • 部署方式鏡像部署

    • 鏡像配置:選擇鏡像地址,複製並粘貼前文DSW使用的鏡像地址。

      已在使用 DSW 時驗證,該鏡像環境能正常運行本文的模型服務代碼。因此,部署時建議使用相同鏡像,以規避未知的運行環境問題。

      image

    • 存储挂载:本文已將模型檔案及服務介面代碼拷貝至OSS中。因此,單擊OSS,選擇對應OSS路徑。

      image

    • 運行命令:運行命令與 DSW 中的服務啟動命令相同,但由於 web.py 現已掛載至 /mnt/data/,需相應修改 web.py 的路徑。最終運行命令為:python /mnt/data/web.py

    • 端口号:配置web.py中使用的連接埠9000

    • 三方庫配置:在 DSW 中測試時發現,所選鏡像缺少 bottle 庫。因此,需要在第三方庫配置中添加該庫。

      image

    • 資源類型:選擇公用資源資源規格選擇ecs.gn7i-c8g1.2xlarge 即可。

    • 配置系統硬碟:設定為20GB。

      由於使用的鏡像較大,不設定額外系統硬碟會因空間不足無法啟動。

    單擊部署,建立服務。建立過程大約需要5分鐘,當處於運行中狀態時,代表部署成功。

  4. 查看調用資訊。在模型服務詳情頁,單擊查看調用資訊擷取公網調用地址Token

    image

  5. 調用服務。執行如下服務要求代碼,注意將代碼中的調用地址Token替換為上步擷取的真實資訊。

    import requests
    
    """
    測試圖片url:
    label為7
    http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_7_No_0.jpg
    label為2
    http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_2_No_1.jpg
    label為1
    http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_1_No_2.jpg
    label為0
    http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_0_No_3.jpg
    label為4
    http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_4_No_4.jpg
    label為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
    
    # header資訊 <EAS_TOKEN>需替換為實際的Token
    # 實際生產中建議您將Token設定為環境變數,防止敏感資訊洩漏
    # 環境變數配置方法請參見:https://www.alibabacloud.com/help/zh/sdk/developer-reference/configure-the-alibaba-cloud-accesskey-environment-variable-on-linux-macos-and-windows-systems
    headers = {"Authorization": "Token"}
    # 把位元據作為POST請求的body,發送到模型服務
    resp = requests.post('調用地址/predict_image', data=img_bytes, headers=headers)
    print(resp.json())

    返回結果:

    {"prediction": 7}
重要

本文使用了公用資源建立EAS服務,計費方式為隨用隨付。當您不需要使用服務時請停止或刪除服務,以免繼續計費

image

相關文檔