特徵群組是與 BigQuery 資料表或檢視區塊相關聯的特徵註冊庫資源,內含特徵資料。特徵群組可以包含多個特徵,每個特徵都與特徵資料來源中的資料欄相關聯。如要在特徵登錄中註冊特徵資料來源,請建立特徵群組,然後新增特徵。
建立特徵群組並關聯 BigQuery 資料來源後,即可建立特徵,並與資料來源中的資料欄建立關聯。請注意,雖然建立特徵群組時可以選擇是否要關聯資料來源,但您必須先關聯 BigQuery 資料表或檢視區塊,才能在該特徵群組中建立特徵。每個特徵都會對應至與特徵群組相關聯的資料來源中的資料欄。
為什麼要使用特徵群組和特徵?
您可以選擇是否註冊特徵資料來源。不過,在下列情況中,您必須建立特徵群組和特徵,藉此註冊特徵資料:
使用時間序列格式的歷來資料訓練模型:如果特徵資料來源包含最新和歷來特徵資料,且同一實體 ID 有多筆特徵記錄,請新增
feature_timestamp欄,將這類資料格式化為時間序列。在這個情境中,您必須使用特徵群組和特徵註冊資料來源。接著,您可以按照下列步驟提供特徵:匯總多個來源的特徵:建立特徵檢視區塊執行個體時,使用特徵群組匯總多個 BigQuery 資料來源的特定資料欄。
提供空值特徵值:在線上供應期間,如果只想提供最新特徵值 (包括空值),請建立特徵群組並將
dense參數設為true,藉此註冊特徵資料來源。在特徵檢視畫面中使用持續資料同步功能:如要在特徵檢視畫面中使用持續資料同步功能,必須先註冊特徵。
監控特徵是否有異常情形:如要設定特徵監控,以便擷取特徵統計資料及偵測特徵偏移情形,就必須註冊特徵。
不適合使用特徵群組和特徵的情況
如要提供嵌入內容 ,請勿建立特徵群組和特徵,藉此註冊資料來源。在這種情況下,您必須直接將 BigQuery 資料表或檢視區塊與特徵檢視區塊建立關聯,藉此設定線上提供。
如要進一步瞭解如何在不註冊特徵資料來源的情況下設定線上提供,請參閱「從 BigQuery 來源建立特徵檢視區塊」。
控管存取權
您可以在下列層級控管功能群組的存取權:
控管
FeatureGroup資源的存取權:如要控管特定個人、Google 群組、網域或服務帳戶的功能群組存取權,請為功能群組設定 IAM 政策。控管 BigQuery 資料來源的存取權:根據預設,特徵群組會使用為專案設定的預設服務帳戶。Vertex AI 特徵儲存庫會將 BigQuery 資料檢視者身分與存取權管理 (IAM) 角色指派給這個服務帳戶。這樣一來,專案中具備建立特徵群組權限的使用者,就能存取 BigQuery 中的特徵資料來源。如要限制 BigQuery 資料來源的存取權,或授予其他使用者存取權,您可以設定特徵群組,使用專屬的服務帳戶。針對設定專屬服務帳戶的每個特徵群組,Vertex AI 特徵儲存庫會產生專屬的服務帳戶電子郵件地址。
事前準備
建立特徵群組前,請先完成下列必要條件:
請確認專案中至少已建立一個網路商店執行個體,即使您想建立新的網路商店執行個體也一樣。如果您使用新專案,請先建立網路商店執行個體,再建立特徵群組。
在 BigQuery 資料表或檢視表中設定特徵資料格式,使其符合資料來源準備指南。
確認 BigQuery 資料來源至少包含一個含有
string或int值的實體 ID 欄。驗證 Gemini Enterprise Agent Platform,除非您已完成驗證。
選取這個頁面上範例的預計用途分頁:
控制台
使用 Cloud de Confiance 控制台存取 Cloud de Confiance by S3NS 服務和 API 時,不需要設定驗證。
Python
如要在本機開發環境中使用本頁的 Python 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
設定 gcloud CLI,使用您的聯合身分。
詳情請參閱「 使用聯合身分登入 gcloud CLI」。
-
為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果系統傳回驗證錯誤,請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱「 設定本機開發環境的驗證機制」。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。
詳情請參閱 Cloud de Confiance 驗證說明文件中的「使用 REST 進行驗證」。
-
建立特徵群組,註冊特徵資料來源
使用下列範例建立特徵群組,並關聯特徵資料來源,例如 BigQuery 資料表或檢視區塊。
控制台
重要事項:您無法透過 Cloud de Confiance 控制台,使用專屬服務帳戶建立特徵群組。如要使用專屬服務帳戶建立特徵群組,請使用 REST API 或 Agent Platform Python SDK。請按照下列操作說明,使用 Cloud de Confiance 控制台建立特徵群組:
在 Cloud de Confiance 控制台的「Agent Platform」部分,前往「特徵儲存庫」頁面。
在「特徵群組」部分中,按一下「建立」,開啟「建立特徵群組」頁面的「基本資訊」窗格。
指定「特徵群組名稱」。
選用:如要新增標籤,請按一下「新增標籤」,然後指定標籤名稱和值。您可以為特徵群組新增多個標籤。
在「BigQuery 路徑」欄位中,按一下「瀏覽」,選取要與特徵群組建立關聯的 BigQuery 來源資料表或檢視區塊。
在「實體 ID 資料欄」清單中,從 BigQuery 來源資料表或檢視畫面選取實體 ID 資料欄。
請注意,如果 BigQuery 來源資料表或檢視區塊有名為
entity_id的資料欄,則這是選用步驟。在這種情況下,如果未選取實體 ID 欄,特徵群組會使用entity_id欄做為預設實體 ID 欄。按一下「繼續」。
在「Register」(註冊) 窗格中,按一下下列任一選項,指出是否要將功能新增至新功能群組:
加入 BigQuery 資料表中的所有資料欄:為 BigQuery 來源資料表或檢視表中的所有資料欄,在特徵群組中建立特徵。
手動輸入特徵:根據 BigQuery 來源中的特定資料欄建立特徵。為每個特徵輸入「特徵名稱」,然後在清單中點選對應的 BigQuery 來源資料欄名稱。
如要新增更多特徵,請按一下「新增其他特徵」。
建立空的特徵群組:建立特徵群組,但不新增特徵。
點選「建立」。
Python
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。 詳情請參閱 Python API 參考文件。
注意:這個範例會使用預設服務帳戶設定建立特徵群組。project:專案 ID。location:要建立特徵群組的區域,例如us-central1。feature_group_id:要建立的新特徵群組名稱。bq_table_uri:要為特徵群組註冊的 BigQuery 來源資料表或檢視區塊 URI。entity_id_columns:包含實體 ID 的資料欄名稱。您可以指定一或多個欄。- 如要只指定一個實體 ID 欄,請使用下列格式指定欄名:
"entity_id_column_name"。 - 如要指定多個實體 ID 欄,請採用下列格式指定欄名:
["entity_id_column_1_name", "entity_id_column_2_name", ...]。
- 如要只指定一個實體 ID 欄,請使用下列格式指定欄名:
REST
如要建立 FeatureGroup 資源,請使用 featureGroups.create 方法傳送 POST 要求。
使用任何要求資料之前,請先修改下列項目的值:
- LOCATION_ID:要建立特徵群組的區域,例如
us-central1。 - SERVICE_AGENT_TYPE:選用。特徵群組的服務帳戶設定。如要為功能群組使用專屬服務帳戶,請輸入
SERVICE_AGENT_TYPE_FEATURE_GROUP。 - PROJECT_ID:專案 ID。
- ENTITY_ID_COLUMNS:包含實體 ID 的資料欄名稱。您可以指定一或多個欄。
- 如要只指定一個實體 ID 欄,請使用下列格式指定欄名:
"entity_id_column_name"。 - 如要指定多個實體 ID 欄,請採用下列格式指定欄名:
["entity_id_column_1_name", "entity_id_column_2_name", ...]。
- 如要只指定一個實體 ID 欄,請使用下列格式指定欄名:
- FEATUREGROUP_NAME:要建立的新特徵群組名稱。
- BIGQUERY_SOURCE_URI:要為特徵群組註冊的 BigQuery 來源資料表或檢視區塊 URI。
- TIMESTAMP_COLUMN:選用。在 BigQuery 來源資料表或檢視表中,指定包含特徵時間戳記的資料欄名稱。
只有在資料格式為時間序列,且包含特徵時間戳記的資料欄並未命名為feature_timestamp時,才需要指定時間戳記資料欄名稱。
- STATIC_DATA_SOURCE:選用。如果資料未採用時間序列格式,請輸入
true。預設為false。
- DENSE:選用。指出 Vertex AI 特徵儲存庫在從與特徵群組相關聯的特徵檢視畫面提供資料時,如何處理空值:
false:這是預設設定。Vertex AI 特徵儲存庫只會提供最新的非空值特徵值。如果特徵的最新值為空值,Vertex AI 特徵儲存庫會提供最近的非空值歷史記錄值。不過,如果該特徵的目前值和歷史值皆為空值,Vertex AI 特徵儲存庫就會將空值做為特徵值。true—對於排定資料同步的特徵檢視畫面,Vertex AI 特徵儲存庫只會提供最新的特徵值,包括空值。如果特徵檢視區塊持續同步資料,Vertex AI 特徵儲存庫只會提供最新的非空值特徵值。不過,如果特徵的目前值和歷史值皆為空值,Vertex AI 特徵儲存庫會將空值做為特徵值。如要進一步瞭解資料同步類型,以及如何在特徵檢視畫面中設定資料同步類型,請參閱「同步特徵檢視畫面中的資料」。
HTTP 方法和網址:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups?feature_group_id=FEATUREGROUP_NAME
JSON 要求內文:
{
"service_agent_type": "SERVICE_AGENT_TYPE",
"big_query": {
"entity_id_columns": "ENTITY_ID_COLUMNS",
"big_query_source": {
"input_uri": "BIGQUERY_SOURCE_URI",
}
"time_series": {
"timestamp_column": ""TIMESTAMP_COLUMN"",
},
"static_data_source": STATIC_DATA_SOURCE,
"dense": DENSE
}
}
如要傳送要求,請選擇以下其中一個選項:
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/featureGroups?feature_group_id=FEATUREGROUP_NAME"
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/featureGroups?feature_group_id=FEATUREGROUP_NAME" | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.UpdateFeatureGroupOperationMetadata",
"genericMetadata": {
"createTime": "2023-09-18T03:00:13.060636Z",
"updateTime": "2023-09-18T03:00:13.060636Z"
}
}
}