本頁面將逐步說明如何透過圖片分類模型提供預測結果,並在網頁應用程式中查看這些預測結果。
本教學課程包含多個頁面:透過自訂圖片分類模型提供預測結果。
各頁面都假設您已按照本教學課程先前頁面的指示操作。
本文的其餘部分假設您使用的是在本教學課程第一頁中建立的 Cloud Shell 環境。如果原始 Cloud Shell 工作階段已關閉,請按照下列步驟返回環境:-
In the Google Cloud console, activate Cloud Shell.
-
在 Cloud Shell 工作階段中,執行下列指令:
cd hello-custom-sample
在 Google Cloud 控制台的 Vertex AI 專區,前往「Models」頁面。
在本教學課程的先前步驟中,找出您訓練的模型所在的資料列
hello_custom
,然後點選模型名稱,開啟模型詳細資料頁面。在「部署及測試」分頁中,按一下「部署至端點」,開啟「部署至端點」窗格。
在「定義端點」步驟中,為端點新增一些基本資訊:
選取「建立新端點」。
在「Endpoint name」(端點名稱) 欄位中輸入
hello_custom
。在「模型設定」部分,確認您看到模型名稱 (也稱為
hello_custom
)。指定下列模型設定:在「Traffic split」(流量分配) 欄位中,輸入
100
。Vertex AI 支援將端點流量分配給多個模型,但本教學課程不會使用這項功能。在「運算節點數量下限」欄位中輸入
1
。在「Machine type」(機器類型) 下拉式清單中,選取「Standard」(標準) 部分中的「n1-standard-2」。
按一下 [完成]。
在「記錄」部分,確認已啟用兩種預測記錄類型。
按一下「繼續」。
在「端點詳細資料」步驟中,確認端點將部署至
us-central1 (Iowa)
。請勿選取「使用客戶自行管理的加密金鑰 (CMEK)」核取方塊。 本教學課程不會使用 CMEK。
按一下「部署」,建立端點並將模型部署至端點。
您可以設定 Cloud Run 函式來接收未經驗證的請求。此外,函式預設會使用具備「編輯者」角色的服務帳戶執行,這類帳戶包含
aiplatform.endpoints.predict
權限,可從 Vertex AI 端點取得預測結果。這項函式也會對要求執行實用的前置處理作業。Vertex AI 端點預期使用已訓練的 TensorFlow Keras 圖形第一層的格式來提供預測要求:具有固定維度的正規化浮點數張量。函式會將圖片網址視為輸入內容,並在要求 Vertex AI 端點的預測之前,將圖片預先處理為這個格式。
在 Google Cloud 控制台的 Vertex AI 專區中,前往「Endpoints」頁面。
找出您在前一節建立的端點列,名稱為
hello_custom
。在這一列中,按一下「Sample request」(範例要求),開啟「Sample request」(範例要求) 窗格。在「Sample request」(範例要求) 窗格中,找出符合下列模式的殼層程式碼行:
ENDPOINT_ID="ENDPOINT_ID"
ENDPOINT_ID 是識別這個特定端點的數字。
複製這行程式碼,並在 Cloud Shell 工作階段中執行,設定
ENDPOINT_ID
變數。在 Cloud Shell 工作階段中執行下列指令,即可部署 Cloud Run 函式:
gcloud functions deploy classify_flower \ --region=us-central1 \ --source=function \ --runtime=python37 \ --memory=2048MB \ --trigger-http \ --allow-unauthenticated \ --set-env-vars=ENDPOINT_ID=${ENDPOINT_ID}
設定幾個殼層變數,供後續步驟中的指令使用:
PROJECT_ID=PROJECT_ID BUCKET_NAME=BUCKET_NAME
更改下列內容:
編輯應用程式,提供 Cloud Run 函式的觸發網址:
echo "export const CLOUD_FUNCTION_URL = 'https://us-central1-${PROJECT_ID}.cloudfunctions.net/classify_flower';" \ > webapp/function-url.js
將
webapp
目錄上傳至 Cloud Storage bucket:gcloud storage cp webapp gs://${BUCKET_NAME}/ --recursive
將剛剛上傳的網頁應用程式檔案設為可公開讀取:
gcloud storage objects update gs://${BUCKET_NAME}/webapp/** --add-acl-grant=entity=allUsers,role=READER
您現在可以前往下列網址,開啟網頁應用程式並取得預測結果:
https://storage.googleapis.com/BUCKET_NAME/webapp/index.html
開啟網頁應用程式並按一下花卉圖片,即可查看機器學習模型的花卉類型分類。網頁應用程式會以花朵類型清單的形式呈現預測結果,以及這張圖片包含各個花朵類型的機率。
建立端點
如要從您在上一頁訓練的機器學習模型取得線上預測結果,請建立 Vertex AI 端點。端點會透過一或多個模型提供線上預測。
幾分鐘後,「端點」表格中新端點旁邊會顯示
。同時,您也會收到電子郵件,指出您已成功建立端點,並將模型部署至端點。部署 Cloud Run 函式
您可以向 Vertex AI API 的 REST 介面傳送要求,從剛建立的 Vertex AI 端點取得預測結果。不過,只有具備aiplatform.endpoints.predict
權限的主體才能傳送線上預測要求。您無法將端點設為公開,供任何人傳送要求,例如透過網頁應用程式。
在本節中,請將程式碼部署至 Cloud Run 函式,以處理未經驗證的要求。您在閱讀本教學課程的第一頁時下載的範例程式碼,包含 function/
目錄中這個 Cloud Run 函式的程式碼。您也可以執行下列指令,探索 Cloud Run 函式程式碼:
less function/main.py
部署函式有下列用途:
如要部署 Cloud Run 函式,請按照下列步驟操作:
部署網頁應用程式來傳送預測要求
最後,在 Cloud Storage 中託管靜態網頁應用程式,透過訓練後的 ML 模型取得預測結果。網路應用程式會將要求傳送至 Cloud Run 函式,後者會預先處理要求,並從 Vertex AI 端點取得預測結果。
您下載的範例程式碼 webapp
目錄包含範例網頁應用程式。在 Cloud Shell 工作階段中,執行下列指令來準備及部署網頁應用程式:
在下列螢幕截圖中,網路應用程式已取得一項預測結果,並正在傳送另一項預測要求。

後續步驟
請按照教學課程的最後一頁,清除您建立的資源。