本頁提供相關指引,說明如何根據匯出至 BigQuery 的零售資料,從 Vertex AI 取得預測結果。我們提供多個 SQL 程式碼區塊,協助您將零售產品和使用者事件資料轉換為 Vertex AI 可用的格式。這些程式碼區塊後方會列出 Vertex AI 控制台的程序,說明如何建立資料集、訓練模型,然後產生預測。
事前準備
如要使用零售資料產生銷售預測,請務必先完成下列事項:
使用商家適用的 Vertex AI Search 上傳零售資料。詳情請參閱:
將商家適用的 Vertex AI Search 零售資料匯出至 BigQuery。這樣一來,BigQuery 中就會有產品資料表和使用者事件資料表,您可以在後續程序中使用這些資料表。詳情請參閱將資料匯出至 BigQuery。
或者,如果產品和使用者事件資料已在 BigQuery 中,在 Vertex AI Search for commerce 格式中,您可以使用該資料從零售資料產生銷售預測。在這種情況下,您不需要上傳零售資料並匯出至 BigQuery。如要進一步瞭解格式,請參閱「產品結構定義」和「關於使用者事件」。
請確認您已獲得
roles/aiplatform.user
IAM 角色,以便使用 Vertex AI 控制台執行程序。
建立匯總銷售資料表
本節中的 SQL 程式碼會將使用者事件資料表轉換為匯總銷售資料表。也就是說,使用者事件表格中每個至少售出一次的產品,都會匯總每週的銷售量。此外,SQL 程式碼還會執行下列作業:
在使用者事件表格中,如果產品首次銷售和最後一次銷售之間缺少任何時間戳記,系統會為每個缺少的時間戳記填入新的資料列,並將銷售量設為零。這樣才能避免銷售記錄出現缺漏。
如果使用者事件資料表中沒有至少一個產品具有至少 20 個時間戳記,系統會從資料表中隨機選擇一個產品,並填入足夠的資料列 (每列的銷售量皆為零),以達到 20 個時間戳記。這是為了配合 Vertex AI 的規定,訓練模型時至少要有 20 個時間戳記。
如要建立匯總銷售資料表,請按照下列步驟操作:
請按照下列方式,替換下列 SQL 範例程式碼中的變數:
starting_day_of_week. 一週的開始日。有效值:
MONDAY
、TUESDAY
、WEDNESDAY
、THURSDAY
、FRIDAY
、SATURDAY
、SUNDAY
。rdm_user_event_table. 您匯出至 BigQuery 的使用者事件資料表專案、資料集和資料表 ID。格式為
project_id.dataset_id.table_id
。rdm_product_table。匯出至 BigQuery 的產品資料表專案、資料集和資料表 ID。格式為
project_id.dataset_id.table_id
。aggregated_sales_table。新匯總銷售資料表的 BigQuery 專案、資料集和資料表 ID。使用與產品和使用者事件資料表相同的專案 ID。使用現有資料集的 ID。指定資料表 ID,但請勿使用現有資料表的 ID,除非您要覆寫該資料表。格式為
project_id.dataset_id.table_id
。
複製 SQL 程式碼範例。
在 Google Cloud 控制台中開啟 BigQuery 頁面。
如果尚未選取,請選取包含產品和使用者事件資料表的專案。
在「Editor」(編輯器) 窗格中,貼上 SQL 程式碼範例。
按一下
「執行」,然後等待查詢執行完畢。
新的匯總銷售資料表會寫入 BigQuery 中您使用 aggregated_sales_table 變數設定的位置。
處理產品表格
本節中的 SQL 程式碼會對匯出至 BigQuery 的產品資料表執行動作,移除重複和結構體欄位,並將 price_info 欄位取消巢狀結構,改為子欄位。這是必要步驟,因為 Vertex AI 不接受清單或巢狀結構。系統就會產生處理後的產品資料表。
如要處理產品表格,請按照下列步驟操作:
請按照下列方式,替換下列 SQL 範例程式碼中的變數:
rdm_product_table。匯出至 BigQuery 的產品資料表專案、資料集和資料表 ID。格式為
project_id.dataset_id.table_id
。processed_product_table。BigQuery 中新處理產品資料表的專案、資料集和資料表 ID。使用與產品和使用者事件資料表相同的專案 ID。使用現有資料集的 ID。指定資料表 ID,但請勿使用現有資料表的 ID,除非您要覆寫該資料表。格式為
project_id.dataset_id.table_id
。
CREATE OR REPLACE TABLE `PROCESSED_PRODUCT_TABLE` AS SELECT * EXCEPT (id, attributes, price_info, rating, expire_time, available_time, fulfillment_info, images, audience, color_info, promotions, publish_time, retrievable_fields, categories, brands, conditions, sizes, collection_member_ids, tags, materials, patterns), id as sku, price_info.price as price_info_price, price_info.currency_code as price_info_currency_code, price_info.cost as price_info_cost, FROM `RDM_PRODUCT_TABLE`
複製 SQL 程式碼範例。
在 Google Cloud 控制台中開啟 BigQuery 頁面。
如果尚未選取,請選取包含產品和使用者事件資料表的專案。
在「Editor」(編輯器) 窗格中,貼上 SQL 程式碼範例。
按一下
「執行」,然後等待查詢執行完畢。
新的處理後產品資料表會寫入 BigQuery 中,您使用 processed_product_table 變數設定的位置。
建立事件預測資料表
本節中的 SQL 程式碼會從使用者事件表格中,擷取至少售出一次的每個 SKU。這段程式碼會建立事件預測資料表,其中包含未來所有時間戳記中擷取的所有 SKU。未來的時間戳記是連續每週的時間戳記陣列,從使用者事件表格的最後一週 + 1 週開始,到使用者事件表格的最後一週 + future_length 週結束。您將 future_length 值設為模型要預測的未來週數。事件預測資料表中的每一列都可以透過 SKU 和時間戳記進行專屬識別。
如要建立事件預測資料表,請按照下列步驟操作:
請按照下列方式,替換下列 SQL 範例程式碼中的變數:
starting_day_of_week. 一週的開始日。有效值:
MONDAY
、TUESDAY
、WEDNESDAY
、THURSDAY
、FRIDAY
、SATURDAY
、SUNDAY
。rdm_user_event_table. 您匯出至 BigQuery 的使用者事件資料表的專案、資料集和資料表 ID。格式為
project_id.dataset_id.table_id
。events_prediction_table。新事件預測資料表在 BigQuery 中的專案、資料集和資料表 ID。使用與產品和使用者事件資料表相同的專案 ID。使用現有資料集的 ID。指定資料表 ID,但請勿使用現有資料表的 ID,除非您要覆寫該資料表。格式為
project_id.dataset_id.table_id
。rdm_product_table。匯出至 BigQuery 的產品資料表專案、資料集和資料表 ID。格式為
project_id.dataset_id.table_id
。future_length。模型將預測使用者事件表格最後一週之後的週數。
複製 SQL 程式碼範例。
在 Google Cloud 控制台中開啟 BigQuery 頁面。
如果尚未選取,請選取包含產品和使用者事件資料表的專案。
在「Editor」(編輯器) 窗格中,貼上 SQL 程式碼範例。
按一下
「執行」,然後等待查詢執行完畢。
新的事件預測資料表會寫入 BigQuery 中,位置是您使用 events_prediction_table 變數設定的位置。
建立 Vertex AI 訓練資料表
本節中的 SQL 程式碼會將匯總銷售資料表與處理過的產品資料表彙整。結果會是 Vertex AI 訓練資料表,Vertex AI 會使用這份資料表訓練模型。
如要建立 Vertex AI 訓練資料表,請按照下列步驟操作:
請按照下列方式,替換下列 SQL 範例程式碼中的變數:
vertex_ai_training_table. BigQuery 中新 Vertex AI 訓練資料表的專案、資料集和資料表 ID。使用與產品和使用者事件資料表相同的專案 ID。使用現有資料集的 ID。指定資料表 ID,但除非您要覆寫現有資料表,否則請勿使用現有資料表的 ID。格式為
project_id.dataset_id.table_id
。aggregated_sales_table。在 BigQuery 中,匯總銷售資料表的專案、資料集和資料表 ID (您在「建立匯總銷售資料表」中建立)。
processed_product_table。已處理產品資料表的 BigQuery 專案、資料集和資料表 ID,您已在「處理產品資料表」中建立這些 ID。
CREATE OR REPLACE TABLE `VERTEX_AI_TRAINING_TABLE` AS SELECT t1.*, t2.* EXCEPT(sku) FROM `AGGREGATED_SALES_TABLE` AS t1 LEFT JOIN `PROCESSED_PRODUCT_TABLE` AS t2 ON t1.sku = t2.sku
複製 SQL 程式碼範例。
在 Google Cloud 控制台中開啟 BigQuery 頁面。
如果尚未選取,請選取包含產品和使用者事件資料表的專案。
在「Editor」(編輯器) 窗格中,貼上 SQL 程式碼範例。
按一下
「執行」,然後等待查詢執行完畢。
新的 Vertex AI 訓練表格會寫入 BigQuery 中您使用 vertex_ai_training_table 變數設定的位置。
建立 Vertex AI 預測資料表
這個部分的 SQL 程式碼會將事件預測資料表附加至匯總銷售資料表,然後與處理過的產品資料表彙整。結果是 Vertex AI 預測資料表,用於建立預測。
如要建立 Vertex AI 預測資料表,請按照下列步驟操作:
請按照下列方式,替換下列 SQL 範例程式碼中的變數:
vertex_ai_prediction_table. 新 Vertex AI 預測資料表的 BigQuery 專案、資料集和資料表 ID。使用與產品和使用者事件資料表相同的專案 ID 和資料集 ID。除非要覆寫現有資料表,否則請勿使用現有資料表的 ID。格式為
project_id.dataset_id.table_id
。aggregated_sales_table。BigQuery 中匯總銷售資料表的專案、資料集和資料表 ID,您已在「建立匯總銷售資料表」中建立這些項目。
processed_product_table。已處理產品資料表的 BigQuery 專案、資料集和資料表 ID,您已在「處理產品資料表」中建立這些 ID。
events_prediction_table。BigQuery 中事件預測資料表的專案、資料集和資料表 ID,您已在「建立事件預測資料表」中建立該資料表。
CREATE OR REPLACE TABLE `VERTEX_AI_PREDICTION_TABLE` AS WITH append_predict_to_history AS ( SELECT add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity, last_day_of_week, quantity, search_quantity, sku FROM `AGGREGATED_SALES_TABLE` UNION ALL SELECT NULL AS add_to_cart_quantity, NULL AS category_page_view_quantity, NULL AS detail_page_view_quantity, last_day_of_week, NULL AS quantity, NULL AS search_quantity, sku FROM `EVENTS_PREDICTION_TABLE` ) SELECT t1.*, t2.* EXCEPT(sku) FROM append_predict_to_history AS t1 LEFT JOIN `PROCESSED_PRODUCT_TABLE` AS t2 ON t1.sku = t2.sku
複製 SQL 程式碼範例。
在 Google Cloud 控制台中開啟 BigQuery 頁面。
如果尚未選取,請選取包含產品和使用者事件資料表的專案。
在「Editor」(編輯器) 窗格中,貼上 SQL 程式碼範例。
按一下
「執行」,然後等待查詢執行完畢。
新的 Vertex AI 預測資料表會寫入 BigQuery 中,您使用 vertex_ai_prediction_table 變數設定的位置。
建立 Vertex AI 資料集
本節說明如何建立 Vertex AI 資料集,用於訓練預測模型。詳情請參閱 Vertex AI 說明文件中的「建立用於訓練預測模型的資料集」。
如要建立 Vertex AI 資料集,請按照下列步驟操作:
在 Google Cloud 控制台,依序前往「Vertex AI」專區和「Dataset」頁面。
按一下「建立」,開啟「建立資料集」頁面。
在「資料集名稱」欄位中,輸入新資料集的名稱。
選取「表格式」分頁標籤。
選取「預測」目標。
在「區域」清單中,選取您建立資料集時使用的區域,以便將零售資料匯出至 BigQuery。如果您在建立 BigQuery 資料集時選取 us,可以選取美國境內的任何區域。同樣地,如果您在建立 BigQuery 資料集時選取 eu,則可以選取歐盟境內的任何區域。詳情請參閱「將資料匯出至 BigQuery」。
按一下「建立」建立空白資料集,然後前往「來源」分頁。
選取「從 BigQuery 選取資料表或檢視表」。
在「Select a table or view from BigQuery」(從 BigQuery 選取資料表或檢視畫面) 下方,輸入您在「建立 Vertex AI 訓練資料表」中建立的 Vertex AI 訓練資料表專案、資料集和資料表 ID。格式為
project_id.dataset_id.table_id
。按一下「繼續」。
資料來源已與資料集建立關聯。
在「分析」分頁中,依序選取「系列 ID 欄」清單中的「sku」和「時間戳記欄」清單中的「last_day_of_week」。
按一下「訓練新模型」,前往「訓練新模型」頁面。如需訓練模型的說明,請參閱「訓練預測模型」。
訓練預測模型
本節說明如何使用您在「建立 Vertex AI 資料集」中建立的資料集,訓練預測模型。詳情請參閱 Vertex AI 說明文件中的「訓練預測模型」。
事前準備
訓練預測模型前,請先建立 Vertex AI 資料集。
訓練模型
在「訓練方法」頁面中,選取模型訓練方法。如要瞭解訓練方法,請參閱 Vertex AI 說明文件中的「訓練模型」。
按一下「繼續」。
在「Model details」(模型詳細資料) 頁面中,按照下列方式設定:
如果尚未選取「訓練新模型」,請選取此項目。
輸入新模型的名稱。
從「目標資料欄」清單中選取「數量 (整數)」。
從「資料精細程度」清單中選取「每週」。
輸入「背景資訊視窗」和「預測範圍」。
預測範圍會決定模型預測預測資料每列目標值的未來時間長度。預測期間是以資料精細度為單位指定。
「情境視窗」會設定模型在訓練期間 (和預測期間) 的回溯時間範圍。換句話說,對於每個訓練資料點,內容視窗會決定模型要回溯多遠,才能找出預測模式。如未指定背景區間,系統會預設為預測期間設定的值。「背景期間」是以「資料精細程度」為單位指定。
詳情請參閱 Vertex AI 說明文件中的「設定內容視窗和預測範圍的注意事項」。
按一下「繼續」。
在「訓練選項」頁面中,按照下列方式設定。請注意,如果
下拉式箭頭為灰色,或沒有下拉式箭頭,表示該值無法變更。在「資料欄名稱」清單中,為資料欄選取「轉換」值,如下所示:
如果「BigQuery 型別」值為「Float」、「Integer」或「Numeric」,請將「轉換」值設為「Numeric」。
如果「BigQuery 型別」值為「字串」或「布林值」,請將「轉換」值設為「類別」。
如果「BigQuery 類型」值為「Date」,請將「轉換」值設為「Timestamp」。
在「資料欄名稱」清單中,為資料欄選取「特徵類型」值,如下所示:
如果是 add_to_cart_quantity、category_page_view_quantity、detail_page_view_quantity 和 search_quantity,請將「特徵類型」值設為「共變量」。
在剩餘的資料欄中,針對可變更的資料欄,將「特徵類型」設為「屬性」。
在「資料欄類型」清單中,為資料欄選取「可預測」值,如下所示:
如果是 add_to_cart_quantity、category_page_view_quantity、 detail_page_view_quantity 和 search_quantity, 請將「預測時的供應情形」值設為「無法取得」。
在剩餘的資料欄中,針對可變更的資料欄,將「功能類型」值設為「可用」。
按一下「繼續」。
在「運算與定價」頁面中,輸入模型訓練時數上限。這項設定可協助你設定訓練成本上限。建立新模型時會涉及其他作業,因此實際經過的時間可能會比這個值長。如要瞭解訓練高品質模型可能需要多少時間,請參閱 Vertex AI 說明文件中的「訓練模型」一文。
點選「開始訓練」。
模型訓練可能需要數小時,視資料大小、複雜度和訓練預算 (如有指定) 而定。您可以關閉這個分頁,稍後再返回查看。模型訓練完成後,您會收到電子郵件通知。如要監控模型訓練進度,請參閱「監控訓練進度」。
監控訓練進度
在 Google Cloud 控制台,依序前往「Vertex AI」專區和「Training」頁面。
如果尚未選取,請選取「訓練管道」分頁標籤。您訓練的模型應會列於清單中。狀態從「訓練中」變更為「已完成」,即表示訓練完成。
建立預測
本頁面說明如何使用您在「訓練預測模型」中訓練的預測模型建立預測。
事前準備
您必須先訓練預測模型,才能建立預測。
向模型提出批次預測要求
在 Google Cloud 控制台的 Vertex AI 專區下方,前往「Batch predictions」(批次預測) 頁面。
按一下「建立」開啟「New batch prediction」(新的批次預測) 視窗,然後完成下列步驟:
輸入批次預測的名稱。
在「模型名稱」清單中,選取您在「訓練預測模型」中訓練的模型。
在「Version」清單中,選取模型版本。
在「選取來源」下方:
如果尚未選取「BigQuery 資料表」,請選取此項目。
在 BigQuery 中輸入專案、資料集和資料表 ID,以存取您在「建立 Vertex AI 預測資料表」一節中建立的 Vertex AI 預測資料表。格式為
project_id.dataset_id.table_id
。
在「批次預測輸出內容」下方:
在「輸出格式」清單中,選取「BigQuery 資料表」。
在 BigQuery 中輸入專案和資料集 ID,以建立批次預測輸出資料表。使用與產品和使用者事件資料表相同的專案 ID 和資料集 ID。格式為
project_id.dataset_id.
點選「建立」。「Batch predictions」(批次預測) 頁面隨即顯示。
狀態從「Pending」(待處理)變更為「Finished」(已完成) 時,表示預測已完成。批次預測完成時,您也會收到電子郵件通知。批次預測要求的輸出內容會傳回至您指定的 BigQuery 專案資料集。新輸出資料表的名稱為「predictions_」,並附加預測工作開始時間的時間戳記。如要進一步瞭解如何擷取及解讀預測結果,請參閱 Vertex AI 說明文件中的「擷取批次預測結果」和「解讀預測結果」。