對於 AutoML 表格型模型、AutoML 圖片模型和自訂訓練模型,您可以在模型部署或建立端點時啟用或停用推論記錄。本頁面說明可用的不同型別推論記錄,以及如何啟用或停用這些記錄。
推論記錄類型
您可以透過幾種推論記錄,從推論節點取得資訊:
容器記錄:將推論節點的
stdout
和stderr
串流記錄到 Cloud Logging。偵錯時需要這些記錄。存取記錄:將每個要求的資訊 (時間戳記與延遲時間等) 記錄到 Cloud Logging。
在
v1
和v1beta1
服務端點上,存取記錄功能預設為停用。將模型部署至端點時,可以啟用存取記錄。要求/回應記錄:對線上推論要求和回應進行取樣,並記錄到 BigQuery 資料表。
您可以建立或修補推論端點,啟用要求/回應記錄。
您可以個別啟用或停用各類記錄。
推論記錄設定
建立端點、將模型部署至端點,或變更已部署的模型時,可以啟用或停用線上推論記錄。
如要更新存取記錄的設定,您必須取消部署模型,然後使用新設定重新部署模型。您可以更新容器記錄的設定,不必重新部署模型。
以較高的每秒查詢次數 (QPS) 執行的線上推論服務會產生大量記錄,這些記錄受到 Cloud Logging 定價政策的規範。如要估算線上推論記錄的價格,請參閱估算帳單金額一文。如要降低這項費用,可以停用推論記錄。
啟用及停用推論記錄
下列範例會標示出修改預設記錄設定的位置:
控制台
在Google Cloud 控制台中將模型部署至端點或建立新端點時,您可以在「記錄」步驟中指定要啟用哪些類型的推論記錄。選取核取方塊即可啟用「存取記錄」或「容器記錄」,取消選取則可停用這些記錄。
使用 REST API 更新容器記錄的設定。
使用 REST API 啟用要求/回應記錄功能。Google Cloud 控制台和 gcloud CLI 不支援要求/回應記錄設定。
如要進一步瞭解如何部署模型,請參閱「使用 Google Cloud 控制台部署模型」。
gcloud
如要變更已部署模型中啟用記錄的預設行為,請在 gcloud
指令中加入旗標:
v1
服務端點
執行 gcloud ai endpoints deploy-model
:
gcloud ai endpoints deploy-model ENDPOINT_ID\
--region=LOCATION \
--model=MODEL_ID \
--display-name=DEPLOYED_MODEL_NAME \
--machine-type=MACHINE_TYPE \
--accelerator=count=2,type=nvidia-tesla-t4 \
--disable-container-logging \
--enable-access-logging
v1beta1
服務端點
執行 gcloud beta ai endpoints deploy-model
:
gcloud beta ai endpoints deploy-model ENDPOINT_ID\
--region=LOCATION \
--model=MODEL_ID \
--display-name=DEPLOYED_MODEL_NAME \
--machine-type=MACHINE_TYPE \
--accelerator=count=2,type=nvidia-tesla-t4 \
--enable-access-logging \
--enable-container-logging
使用 REST API 更新容器記錄的設定。
使用 REST API 啟用要求/回應記錄功能。Google Cloud 控制台和 gcloud CLI 不支援要求/回應記錄設定。
如要進一步瞭解如何部署模型,請參閱「使用 Vertex AI API 部署模型」。
REST
如要變更已部署模型中啟用記錄的預設行為,請將相關欄位設為 True
:
v1
服務端點
如要停用容器記錄,請在呼叫 projects.locations.endpoints.deployModel
或 projects.locations.endpoints.mutateDeployedModel
時,將 disableContainerLogging
欄位設為 True
。
如要啟用存取記錄,請在透過 projects.locations.endpoints.deployModel
部署模型時,將 enableAccessLogging
設為 True
。
v1beta1
服務端點
如要啟用容器記錄,請在呼叫 projects.locations.endpoints.deployModel
或 projects.locations.endpoints.mutateDeployedModel
時,將 enableContainerLogging
欄位設為 True
。
如要啟用存取記錄,請在透過 projects.locations.endpoints.deployModel
部署模型時,將 enableAccessLogging
設為 True
。
如要進一步瞭解如何部署模型,請參閱「使用 Vertex AI API 部署模型」。
要求/回應記錄
您只能在透過 projects.locations.endpoints.create
建立端點時,或透過 projects.locations.endpoints.patch
修補現有端點時,啟用要求/回應記錄。
要求/回應記錄是在端點層級進行,因此系統會記錄傳送至同一端點下任何已部署模型的要求。
建立或修補端點時,請在 Endpoint 資源的 predictRequestResponseLoggingConfig
欄位中填入下列項目:
enabled
:設為True
即可啟用要求/回應記錄。samplingPercentage
:介於 0 到 1 之間的數字,用於定義要記錄之要求的比例。例如,將值設為1
可記錄所有要求,設為0.1
則可記錄 10% 的要求。BigQueryDestination
:用於記錄的 BigQuery 資料表。如果您只指定專案名稱,系統會建立名為logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
的新資料集,其中ENDPOINT_DISPLAY_NAME
須符合 BigQuery 命名規則。如果未指定資料表名稱,系統會建立名為request_response_logging
的新資料表。BigQuery 資料表的結構定義應如下所示:
欄位名稱 類型 模式 endpoint
STRING NULLABLE deployed_model_id
STRING NULLABLE logging_time
TIMESTAMP NULLABLE request_id
NUMERIC NULLABLE request_payload
STRING REPEATED response_payload
STRING REPEATED
以下為設定範例:
{ "predict_request_response_logging_config": { "enabled": true, "sampling_rate": 0.5, "bigquery_destination": { "output_uri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME" } } }
專屬端點和 Private Service Connect 端點的推論要求/回應記錄
如果是專屬端點和 Private Service Connect 端點,您可以使用要求/回應記錄功能,記錄 TensorFlow、PyTorch、sklearn 和 XGBoost 模型的要求和回應酬載 (酬載大小上限為 10 MB,超過上限的酬載會自動略過)。
要求/回應記錄僅適用於 predict
和 rawPredict
方法。
如要啟用要求/回應記錄,請在端點資源的 predictRequestResponseLoggingConfig
欄位中填入以下項目:
enabled
:設為True
即可啟用要求/回應記錄。samplingRate
:要記錄的要求和回應比例。設為大於 0 且小於或等於 1 的數字。例如,將值設為1
可記錄所有要求,設為0.1
則可記錄 10% 的要求。BigQueryDestination
:輸出內容的 BigQuery 位置,以專案或資料表的 URI 表示。
以下是建立專屬端點的設定範例,並啟用要求/回應記錄:
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints \
-d '{displayName: "ENDPOINT_NAME", \
dedicatedEndpointEnabled: true, \
predictRequestResponseLoggingConfig: { \
enabled: true, \
samplingRate: 1.0, \
bigqueryDestination: { \
outputUri:"bq://PROJECT_ID" \
} \
} \
}'
更改下列內容:
- LOCATION_ID:您使用 Vertex AI 的區域。
- PROJECT_NUMBER:您的 Google Cloud專案編號。
- ENDPOINT_NAME:端點的顯示名稱。
- PROJECT_ID:您的 Google Cloud 專案 ID。
以下是建立 Private Service Connect 端點的設定範例,並啟用要求/回應記錄功能:
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints \
-d '{displayName: "ENDPOINT_NAME", \
privateServiceConnectConfig: { \
enablePrivateServiceConnect: true, \
projectAllowlist: ["ALLOWED_PROJECTS"] \
}, \
predictRequestResponseLoggingConfig: { \
enabled: true, \
samplingRate: 1.0, \
bigqueryDestination: { \
outputUri:"bq://PROJECT_ID" \
} \
} \
}'
更改下列內容:
ALLOWED_PROJECTS
:以半形逗號分隔的專案 ID 清單,每個 ID 都以引號括住。 Google Cloud例如:["PROJECTID1", "PROJECTID2"]
。如果專案未列於此清單,您就無法從該專案將推論要求傳送至 Vertex AI 端點。請務必將 VERTEX_AI_PROJECT_ID 加入這個清單,這樣您就能從端點所在的專案呼叫端點。
要求/回應記錄和 Model Monitoring v1
要求/回應記錄和模型監控 v1 在後端使用相同的 BigQuery 資料表,記錄傳入的要求。為避免這個 BigQuery 資料表發生非預期的變更,同時使用這兩項功能時,系統會強制執行下列限制:
如果端點已啟用模型監控功能,您就無法為該端點啟用要求/回應記錄。
如果您在同一個端點上啟用要求/回應記錄,然後啟用模型監控功能,就無法變更要求/回應記錄設定。
後續步驟
- 估算線上推論記錄的價格。
- 使用 Google Cloud 控制台或 Vertex AI API 部署模型。
- 瞭解如何建立 BigQuery 資料表。