DSW(Data Science Workshop)為您提供雲端 AI 開發 IDE(開發機),內建多種開發環境。熟悉 Notebook 或 VSCode 的使用者可快速開始模型開發。本文以 MNIST 手寫體識別為例,介紹如何在 DSW 中快速開發模型。
MNIST手寫體識別是深度學習最經典的入門任務之一,任務目標是通過構建機器學習模型,來識別10個手寫數字(0~9)。

前提條件
使用主帳號開通PAI並建立工作空間。登入PAI控制台,左上方選擇開通地區,然後一鍵授權和開通產品。
計費說明
本文案例將使用公用資源建立DSW執行個體及EAS模型服務,計費方式為隨用隨付,詳細計費規則請參見DSW計費說明、EAS計費說明。
建立DSW執行個體
進入DSW頁面。
登入PAI控制台。
在頁面左上方選擇目標地區。
在左側導覽列單擊工作空間列表,進入待操作工作空間內。
在左側導覽列選擇。

在配置執行個體嚮導頁面,配置以下關鍵參數,其他參數預設即可。
資源類型:選擇公用資源,計費方式為隨用隨付;
資源規格:選擇
ecs.gn7i-c8g1.2xlarge;如果該規格執行個體庫存不足,您也可以選擇其他GPU執行個體。
镜像配置:選擇官方鏡像,搜尋並選擇鏡像:
modelscope:1.26.0-pytorch2.6.0-gpu-py311-cu124-ubuntu22.04;請儘可能選擇與本文相同的鏡像,以免發生運行環境問題。
存储挂载:用於持久化儲存模型開發過程中的檔案,本文選擇使用Object Storage Service。單擊OSS,單擊表徵圖
,選擇Bucket並建立目錄如:pai_test,完整參數配置如下。如果您尚未開通OSS,或在當前地區下沒有可選的Bucket,可參考如下步驟開通OSS,並建立Bucket:
Uri:
oss://**********oss-cn-hangzhou-internal.aliyuncs.com/pai_test/;掛載路徑:
/mnt/data/;
單擊確定建立DSW執行個體。
如果執行個體啟動失敗,您可以參考建立DSW執行個體解決。
在DSW中開發模型
開啟DSW執行個體
單擊開啟,進入剛建立的DSW開發環境中。

PAI-DSW介面如圖所示:

編寫模型開發代碼。以使用Notebook開發環境為例,本文已為您準備好了MNIST手寫體識別的訓練代碼,您可以單擊mnist.ipynb下載代碼,然後單擊DSW左上方的
表徵圖,上傳該代碼檔案。
執行模型訓練代碼。開啟
mnist.ipynb檔案,找到如下訓練代碼的儲存格,單擊
按鈕執行代碼。該段代碼會自動下載MNIST資料集到dataSet中,並將訓練後最優的檢查點儲存到output目錄下。訓練過程大約需要10分鐘。

訓練過程中會輸出模型在驗證集上的準確率,它代表了模型在未知資料上的泛化能力。可以看到本次訓練在驗證集上準確率為98%,模型效果很好,可以繼續後續步驟。
通過TensorBoard查看loss曲線,瞭解訓練情況。執行如下儲存格,單擊TensorBoard頁面地址
http://localhost:6006/。
在TensorBoard中即可看到train_loss曲線(反映訓練集損失)與 validation_loss曲線(反映驗證集損失)。

查看完映像後,請單擊儲存格的
表徵圖停止TensorBoard,以繼續運行後續儲存格。調用訓練後的模型,體驗模型效果。執行圖中所示儲存格,將展示20張測試圖片,並輸出圖片的真實標籤(label)和模型預測結果(predict)。

樣本輸出:

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

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

至此,模型的開發工作完成。如果您想要在生產環境的其他應用中調用該模型,可參考使用EAS將模型部署為線上服務。
本文使用了公用資源建立DSW執行個體,計費方式為隨用隨付。當您不需要使用DSW時請停止或刪除執行個體,以免繼續計費。
使用EAS將模型部署為線上服務
模型訓練完成後,可以通過EAS(Elastic Algorithm Service)快速部署為線上推理服務或AI-Web應用。EAS支援異構資源,結合自動擴縮容、一鍵壓測、灰階發布、即時監控等能力,以更低成本保障高並發情境下的服務穩定性與商務持續性。
編寫模型服務的web介面,並將其拷貝到OSS中。本文已經為您準備好了web介面代碼和拷貝命令,您只需執行如下儲存格即可。

(可選)在DSW中驗證web介面是否可以正常啟動。執行如下儲存格安裝缺失的三方包並啟動服務。

運行測試服務介面的代碼。在頁面上方單擊WebIDE,左側單擊
request_web.py代碼檔案,然後單擊
按鈕執行代碼,請求服務介面。
返回結果:
{"prediction": 7}說明如果您想通過外部公網,直接存取DSW中的啟動的web服務,還需要為DSW配置Virtual Private Cloud,NAT Gateway,彈性公網EIP,詳情請參見通過公網訪問執行個體中的服務。
配置EAS。在PAI控制台左側導覽列單擊模型線上服務(EAS)> 部署服務 > 自訂部署。

配置如下關鍵參數,其他參數預設即可:
部署方式:鏡像部署
鏡像配置:選擇鏡像地址,複製並粘貼前文DSW使用的鏡像地址。
已在使用 DSW 時驗證,該鏡像環境能正常運行本文的模型服務代碼。因此,部署時建議使用相同鏡像,以規避未知的運行環境問題。

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

運行命令:運行命令與 DSW 中的服務啟動命令相同,但由於
web.py現已掛載至/mnt/data/,需相應修改web.py的路徑。最終運行命令為:python /mnt/data/web.py端口号:配置
web.py中使用的連接埠9000。三方庫配置:在 DSW 中測試時發現,所選鏡像缺少 bottle 庫。因此,需要在第三方庫配置中添加該庫。

資源類型:選擇公用資源,資源規格選擇
ecs.gn7i-c8g1.2xlarge即可。配置系統硬碟:設定為20GB。
由於使用的鏡像較大,不設定額外系統硬碟會因空間不足無法啟動。
單擊部署,建立服務。建立過程大約需要5分鐘,當處於運行中狀態時,代表部署成功。
查看調用資訊。在模型服務詳情頁,單擊查看調用資訊擷取公網調用地址和Token。

調用服務。執行如下服務要求代碼,注意將代碼中的調用地址和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服務,計費方式為隨用隨付。當您不需要使用服務時請停止或刪除服務,以免繼續計費。

相關文檔
如何解決DSW啟動失敗問題,請參見建立DSW執行個體。
DSW計費項目及計費方式,請參見互動式建模(DSW)計費說明。
更多DSW核心功能,請參見DSW概述。
如果想要直接在公網中訪問DSW中啟動的web服務,請參見通過公網訪問執行個體中的服務。
更多EAS核心功能,請參見EAS概述。
