本頁面說明如何使用 Google Cloud 控制台或 Vertex AI API,從文字情緒分析模型取得線上 (即時) 預測和批次預測。
線上預測與批次預測的差異
「線上預測」是對模型端點發出的同步要求。如要依據應用程式輸入內容發出要求,或是需要及時進行推論,您可以選用「線上預測」模式。
「批次預測」為非同步要求。您可以直接透過模型資源要求批次預測,不必將模型部署至端點。如果是文字資料,如果您不需要立即取得回應,並想透過單一要求處理累積的資料,就適合選用「批次預測」模式。
取得線上預測
將模型部署至端點
您必須先將模型部署至端點,才能使用模型進行線上預測。部署過程中,系統會將實體資源與模型建立關聯,讓模型以低延遲的方式提供線上預測結果。
您可以將多個模型部署至端點,也可以將模型部署至多個端點。如要進一步瞭解模型部署選項和用途,請參閱「關於模型部署」。
請使用下列其中一種方法部署模型:
主控台
在 Google Cloud 控制台的 Vertex AI 專區,前往「Models」頁面。
按一下要部署的模型名稱,開啟詳細資料頁面。
選取「Deploy & Test」(部署及測試) 分頁標籤。
如果模型已部署至任何端點,這些端點會列在「Deploy your model」(部署模型)部分。
按一下「Deploy to endpoint」(部署至端點)。
如要將模型部署至新端點,請選取「建立新端點」
,然後為新端點命名。如要將模型部署至現有端點,請選取「新增至現有端點」 ,然後從下拉式清單中選取端點。您可以將多個模型新增至端點,也可以將模型新增至多個端點。瞭解詳情。
如果將模型部署至已部署一或多個模型的現有端點,請務必更新要部署的模型和已部署模型的流量拆分百分比,確保所有百分比加總為 100%。
選取「AutoML Text」,然後按照下列方式設定:
如果將模型部署到新端點,請接受「流量分配」的 100%。否則,請調整端點上所有模型的流量拆分值,使其總和為 100。
為模型點選「完成」,確認所有「流量分配」百分比都正確無誤後,點選「繼續」。
系統會顯示模型部署的區域。這個地區必須與您建立模型的地區相同。
按一下「Deploy」(部署),將模型部署至端點。
API
使用 Vertex AI API 部署模型時,請完成下列步驟:
- 視需要建立端點。
- 取得端點 ID。
- 將模型部署至端點。
建立端點
如果將模型部署至現有端點,則可略過這個步驟。
gcloud
下列範例使用 gcloud ai endpoints create
指令:
gcloud ai endpoints create \
--region=LOCATION \
--display-name=ENDPOINT_NAME
更改下列內容:
- LOCATION_ID:您使用 Vertex AI 的區域。
- ENDPOINT_NAME:端點的顯示名稱。
Google Cloud CLI 工具可能需要幾秒鐘才能建立端點。
REST
使用任何要求資料之前,請先替換以下項目:
- LOCATION_ID:您的區域。
- PROJECT_ID:您的專案 ID。
- ENDPOINT_NAME:端點的顯示名稱。
HTTP 方法和網址:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints
JSON 要求主體:
{ "display_name": "ENDPOINT_NAME" }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
"done": true
為止。
Java
在試用這個範例之前,請先按照Java使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Java API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Node.js API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Python API 參考說明文件。
擷取端點 ID
您需要端點 ID 才能部署模型。
gcloud
下列範例使用 gcloud ai endpoints list
指令:
gcloud ai endpoints list \
--region=LOCATION \
--filter=display_name=ENDPOINT_NAME
更改下列內容:
- LOCATION_ID:您使用 Vertex AI 的區域。
- ENDPOINT_NAME:端點的顯示名稱。
請注意 ENDPOINT_ID
欄中顯示的數字。請在下一個步驟中使用這個 ID。
REST
使用任何要求資料之前,請先替換以下項目:
- LOCATION_ID:您使用 Vertex AI 的區域。
- PROJECT_ID:您的專案 ID。
- ENDPOINT_NAME:端點的顯示名稱。
HTTP 方法和網址:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints?filter=display_name=ENDPOINT_NAME
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "endpoints": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID", "displayName": "ENDPOINT_NAME", "etag": "AMEw9yPz5pf4PwBHbRWOGh0PcAxUdjbdX2Jm3QO_amguy3DbZGP5Oi_YUKRywIE-BtLx", "createTime": "2020-04-17T18:31:11.585169Z", "updateTime": "2020-04-17T18:35:08.568959Z" } ] }
部署模型
選取下方分頁,查看適用於您語言或環境的範例:
gcloud
下列範例使用 gcloud ai endpoints deploy-model
指令。
以下範例會將 Model
部署至 Endpoint
,而不會在多個 DeployedModel
資源之間分配流量:
使用下方的任何指令資料之前,請先替換以下項目:
- ENDPOINT_ID:端點的 ID。
- LOCATION_ID:您使用 Vertex AI 的區域。
- MODEL_ID:要部署的模型 ID。
-
DEPLOYED_MODEL_NAME:
DeployedModel
的名稱。您也可以使用Model
的顯示名稱做為DeployedModel
。 - MIN_REPLICA_COUNT:此部署作業的節點數量下限。節點數量可視推論負載需求增加或減少,最多可達節點數量上限,最少則不得低於這個數量。
-
MAX_REPLICA_COUNT:此部署作業的節點數量上限。
節點數量可視推論負載需求增減,最多可達這個節點數量,且絕不會少於節點數量下限。如果省略
--max-replica-count
標記,節點數量上限就會設為--min-replica-count
的值。
執行 gcloud ai endpoints deploy-model 指令:
Linux、macOS 或 Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --traffic-split=0=100
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --traffic-split=0=100
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --traffic-split=0=100
流量分配
在上述範例中,--traffic-split=0=100
標記會將 Endpoint
接收到的 100% 預測流量傳送至新的 DeployedModel
,也就是以臨時 ID 0
表示的 DeployedModel
。如果 Endpoint
已經有其他DeployedModel
資源,則可以在新舊資源之間分配流量。DeployedModel
舉例來說,如要將 20% 的流量傳送至新的 DeployedModel
,80% 的流量傳送至舊版,請執行下列指令:
使用下方的任何指令資料之前,請先替換以下項目:
- OLD_DEPLOYED_MODEL_ID:現有
DeployedModel
的 ID。
執行 gcloud ai endpoints deploy-model 指令:
Linux、macOS 或 Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
部署模型。
使用任何要求資料之前,請先替換以下項目:
- LOCATION_ID:您使用 Vertex AI 的區域。
- PROJECT_ID:您的專案 ID。
- ENDPOINT_ID:端點的 ID。
- MODEL_ID:要部署的模型 ID。
-
DEPLOYED_MODEL_NAME:
DeployedModel
的名稱。您也可以使用Model
的顯示名稱做為DeployedModel
。 - TRAFFIC_SPLIT_THIS_MODEL:要將多少預測流量從這個端點導向透過這項作業部署的模型。預設值為 100。所有流量百分比加總必須為 100%。進一步瞭解流量分配。
- DEPLOYED_MODEL_ID_N:選用。如果其他模型部署至這個端點,您必須更新流量分配百分比,讓所有百分比加總為 100%。
- TRAFFIC_SPLIT_MODEL_N:已部署模型 ID 鍵的流量分配百分比值。
- PROJECT_NUMBER:系統自動為專案產生的專案編號
HTTP 方法和網址:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
JSON 要求主體:
{ "deployedModel": { "model": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "automaticResources": { } }, "trafficSplit": { "0": TRAFFIC_SPLIT_THIS_MODEL, "DEPLOYED_MODEL_ID_1": TRAFFIC_SPLIT_MODEL_1, "DEPLOYED_MODEL_ID_2": TRAFFIC_SPLIT_MODEL_2 }, }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployModelOperationMetadata", "genericMetadata": { "createTime": "2020-10-19T17:53:16.502088Z", "updateTime": "2020-10-19T17:53:16.502088Z" } } }
Java
在試用這個範例之前,請先按照Java使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Java API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Node.js API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Python API 參考說明文件。
取得作業狀態
部分要求會啟動長時間執行的作業,需要一段時間才能完成。這些要求會傳回作業名稱,您可以使用該名稱查看作業狀態或取消作業。Vertex AI 提供輔助方法,可對長時間執行的作業發出呼叫。詳情請參閱「處理長時間執行作業」。
使用已部署的模型進行線上預測
如要進行線上預測,請將一或多個測試項目提交給模型進行分析,模型會根據模型目標傳回結果。如要進一步瞭解預測結果,請參閱「解讀結果」頁面。
主控台
您可以使用 Google Cloud 控制台要求線上預測。模型必須部署至端點。
API
使用 Vertex AI API 要求線上預測。模型必須部署至端點。
gcloud
建立名為
request.json
的檔案,並在當中加入下列內容:{ "instances": [{ "mimeType": "text/plain", "content": "CONTENT" }] }
更改下列內容:
- CONTENT:用於預測的文字片段。
執行下列指令:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
更改下列內容:
- ENDPOINT_ID:端點的 ID。
- LOCATION_ID:您使用 Vertex AI 的區域。
REST
使用任何要求資料之前,請先替換以下項目:
- LOCATION_ID:Endpoint 所在的區域。例如:
us-central1
。 - PROJECT_ID:您的專案 ID
- ENDPOINT_ID:端點的 ID
- CONTENT:用於預測的文字片段。
- DEPLOYED_MODEL_ID:用於進行預測的已部署模型 ID。
HTTP 方法和網址:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
JSON 要求主體:
{ "instances": [{ "mimeType": "text/plain", "content": "CONTENT" }] }
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict"
PowerShell
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
您應該會收到如下的 JSON 回應:
{ "prediction": { sentiment": 8 }, "deployedModelId": "1234567890123456789" }
Java
在試用這個範例之前,請先按照Java使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Java API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Node.js API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Python API 參考說明文件。
從文字情緒分析模型取得批次預測結果
如要提出批次預測要求,須指定輸入來源和輸出格式,Vertex AI 會將預測結果儲存在這些位置。
輸入資料規定
提交批次要求時,應在輸入內容中指定要送交模型預測的項目。如果是文字情緒分析模型,您可以使用 JSON Lines 檔案指定要預測的文件清單,然後將 JSON Lines 檔案儲存在 Cloud Storage 值區。下列範例顯示輸入 JSON Lines 檔案中的單行。
{"content": "gs://sourcebucket/datasets/texts/source_text.txt", "mimeType": "text/plain"}
要求批次預測
如要提出批次預測要求,可以使用 Google Cloud 控制台或 Vertex AI API。視您提交的輸入項目數量而定,批次預測工作可能需要一些時間才能完成。
Google Cloud 控制台
使用 Google Cloud 控制台要求批次預測。
在 Google Cloud 控制台的 Vertex AI 專區中,前往「Batch predictions」(批次預測) 頁面。
按一下「建立」開啟「新增批次預測」視窗,然後完成下列步驟:
- 輸入批次預測的名稱。
- 在「模型名稱」中,選取要用於這項批次預測的模型名稱。
- 在「Source path」(來源路徑) 中,指定 JSON Lines 輸入檔案所在的 Cloud Storage 位置。
- 在目的地路徑中,指定要儲存批次預測結果的 Cloud Storage 位置。輸出格式取決於模型目標。以文字為目標的 AutoML 模型會輸出 JSON Lines 檔案。
API
使用 Vertex AI API 傳送批次預測要求。
REST
使用任何要求資料之前,請先替換以下項目:
- LOCATION_IS:模型儲存位置和批次預測工作執行所在區域。例如:
us-central1
。 - PROJECT_ID:您的專案 ID
- BATCH_JOB_NAME:批次作業的顯示名稱
- MODEL_ID:用於進行預測的模型 ID
- URI:輸入 JSON Lines 檔案所在的 Cloud Storage URI。
- BUCKET:您的 Cloud Storage 值區
- PROJECT_NUMBER:系統自動為專案產生的專案編號
HTTP 方法和網址:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
JSON 要求主體:
{ "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": ["URI"] } }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_BUCKET" } } }
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
PowerShell
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
您應該會收到如下的 JSON 回應:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID", "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL_ID", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": [ "CONTENT" ] } }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "BUCKET" } }, "state": "JOB_STATE_PENDING", "completionStats": { "incompleteCount": "-1" }, "createTime": "2022-12-19T20:33:48.906074Z", "updateTime": "2022-12-19T20:33:48.906074Z", "modelVersionId": "1" }
您可以使用 BATCH_JOB_ID 輪詢批次工作的狀態,直到工作 state
為 JOB_STATE_SUCCEEDED
為止。
Java
在試用這個範例之前,請先按照Java使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Java API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Node.js API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Python API 參考說明文件。
擷取批次預測結果
批次預測工作完成後,預測的輸出內容會儲存在您於要求中指定的 Cloud Storage 值區。
批次預測結果範例
以下是文字情緒分析模型產生的批次預測結果範例。
{ "instance": {"content": "gs://bucket/text.txt", "mimeType": "text/plain"}, "prediction": {"sentiment": 8} }