全部產品
Search
文件中心

Platform For AI:在推薦系統中應用FeatureStore管理特徵

更新時間:Sep 27, 2025

本文以FeatureStore的特徵表為例,為您介紹FeatureStore從建立與註冊到最終上線的過程,協助您瞭解如何從零開始搭建並上線一套完整的推薦系統。

背景資訊

推薦系統是一種能夠根據使用者的興趣和偏好,向使用者推薦個人化的內容或產品的系統。在推薦系統中,提取和配置使用者或物品的特徵資訊非常重要。通過本文提供的解決方案,您可以瞭解如何使用FeatureStore搭建推薦系統,以及FeatureStore在推薦系統中如何通過各個版本的SDK與其他推薦系統產品進行互動。具體表現為:在FeatureStore中建立專案,註冊特徵表,建立模型特徵,匯出訓練樣本表,從離線資料來源同步特徵到線上資料來源,利用訓練樣本表訓練模型,部署EAS模型服務,以及如何使用PAI-REC中的FeatureStore中的相關配置等整個推薦系統流程。

對於熟悉代碼的使用者,您可以通過直接運行Python Notebook查看具體配置流程,具體操作詳情請參見DSW Gallery

更多關於FeatureStore的資訊,請參見FeatureStore概述

如果您在配置或使用過程中有任何問題,可以搜尋DingTalk群號:34415007523,進入答疑群聯絡技術人員進行諮詢。

前提條件

在開始執行操作前,請確認您已完成以下準備工作。

依賴產品

具體操作

人工智慧平台 PAI

已開通PAI服務並建立PAI工作空間,操作詳情請參見開通PAI並建立預設工作空間

雲原生MaxCompute MaxCompute

特徵資料庫FeatureDB

巨量資料開發治理平台 DataWorks

Object Storage Service

已開通OSS服務,操作詳情請參見控制台快速入門

步驟一:準備資料

同步資料表

一般對於推薦情境,需要準備三張資料表:user側的特徵表item側的特徵表以及Label表

為方便實踐操作,我們在MaxCompute的pai_online_project專案中提前準備了類比產生的使用者表、物料表和Label表進行樣本說明。其中,使用者表、物料表每個分區大約有10萬條資料,在MaxCompute中分別佔用約70 MB;Label表每個分區約45萬條資料,在MaxCompute中佔用約5 MB。

您需要在DataWorks中執行SQL命令,將使用者表、物料表、Label表從pai_online_project專案同步到自己的MaxCompute中。具體操作步驟如下:

  1. 登入DataWorks控制台

  2. 在左側導覽列單擊資料開發與營運 > 資料開發

  3. 選擇已建立的DataWorks工作空間後,單擊進入資料開發

  4. 滑鼠移至上方至建立,選擇建立節點 > MaxCompute > ODPS SQL,在彈出的頁面中配置節點參數。

    參數

    取值建議

    引擎執行個體

    選擇已建立的MaxCompute引擎。

    節點類型

    ODPS SQL

    路徑

    商務程序/Workflow/MaxCompute

    名稱

    可自訂名稱。

  5. 單擊確認

  6. 在建立節點地區運行以下SQL命令,將使用者表、物料表、Label表從pai_online_project專案同步到自己的MaxCompute中。資源群組選擇已建立的獨享資源群組。

    同步處理的使用者表:rec_sln_demo_user_table_preprocess_all_feature_v1(單擊查看詳情)

    CREATE TABLE IF NOT EXISTS rec_sln_demo_user_table_preprocess_all_feature_v1
    like pai_online_project.rec_sln_demo_user_table_preprocess_all_feature_v1
    STORED AS ALIORC  
    LIFECYCLE 90;
    
    INSERT OVERWRITE TABLE rec_sln_demo_user_table_preprocess_all_feature_v1
    PARTITION(ds='${bdp.system.bizdate}')
    SELECT * except(ds)
    FROM pai_online_project.rec_sln_demo_user_table_preprocess_all_feature_v1
    WHERE ds = '${bdp.system.bizdate}';

    其中,${bdp.system.bizdate}是參數,分別替換為202310222023102320231024,可以通過補資料(補資料操作下面有具體步驟)執行擷取以下三個分區的資料:

    ds=20231022

    ds=20231023

    ds=20231024

    同步物料表:rec_sln_demo_item_table_preprocess_all_feature_v1(單擊查看詳情)

    CREATE TABLE IF NOT EXISTS rec_sln_demo_item_table_preprocess_all_feature_v1
    like pai_online_project.rec_sln_demo_item_table_preprocess_all_feature_v1
    STORED AS ALIORC  
    LIFECYCLE 90;
    
    INSERT OVERWRITE TABLE rec_sln_demo_item_table_preprocess_all_feature_v1
    PARTITION(ds='${bdp.system.bizdate}')
    SELECT * except(ds)
    FROM pai_online_project.rec_sln_demo_item_table_preprocess_all_feature_v1
    WHERE ds = '${bdp.system.bizdate}';

    其中,${bdp.system.bizdate}是參數,分別替換為202310222023102320231024,可以通過補資料(補資料操作下面有具體步驟)執行擷取以下三個分區的資料:

    ds=20231022

    ds=20231023

    ds=20231024

    同步Label表:rec_sln_demo_label_table(單擊查看詳情)

    CREATE TABLE IF NOT EXISTS rec_sln_demo_label_table
    like pai_online_project.rec_sln_demo_label_table
    STORED AS ALIORC  
    LIFECYCLE 90;
    
    INSERT OVERWRITE TABLE rec_sln_demo_label_table
    PARTITION(ds='${bdp.system.bizdate}')
    SELECT * except(ds)
    FROM pai_online_project.rec_sln_demo_label_table
    WHERE ds = '${bdp.system.bizdate}';

    其中,${bdp.system.bizdate}是參數,分別替換為202310222023102320231024,可以通過補資料(補資料操作下面有具體步驟)執行擷取以下三個分區的資料:

    ds=20231022

    ds=20231023

    ds=20231024

  7. 對已同步的表進行補資料操作。

    1. DataWorks控制台介面,單擊左側導覽列的資料開發與營運 > 營運中心,在下拉框中選擇對應工作空間後單擊進入營運中心

    2. 在左側導覽列單擊周期任務營運 > 周期任務,進入周期任務頁面。

    3. 單擊周期工作清單中的目標任務,開啟該任務的DAG圖。

    4. 按右鍵目標節點,選擇補資料 > 當前節點,選擇相應的補資料模式。

    5. 業務日期選擇2023-10-222023-10-24,單擊提交

完成上述操作後,您可以在自己的工作空間內查看使用者表rec_sln_demo_user_table_preprocess_all_feature_v1、物料表rec_sln_demo_item_table_preprocess_all_feature_v1和Label表rec_sln_demo_label_table,後續的實踐操作將以這三張表為例進行說明。

配置資料來源

FeatureStore一般需要配置兩個資料來源:離線資料來源(MaxCompute)和線上資料來源(FeatureDB/Hologres/TableStore)。本文以MaxComputeFeatureDB為例進行說明。

  1. 登入PAI控制台,在左側導覽列單擊資料準備 > 特徵平台(FeatureStore)

  2. 選擇工作空間後,單擊進入FeatureStore

  3. 配置MaxCompute資料來源。

    1. 資料來源頁簽,單擊建立資料來源,在彈出的頁面中配置MaxCompute資料來源具體參數。

      參數

      取值建議

      類型

      MaxCompute

      名稱

      可自訂名稱。

      MaxCompute專案名

      選擇已建立的MaxCompute專案。

  4. 配置FeatureDB資料來源。

    1. 如果您此前已經建立過FeatureDB資料來源,則無需此步驟。

    2. 資料來源頁簽,單擊建立資料來源,在彈出的頁面中配置FeatureDB資料來源具體參數。

      參數

      取值建議

      類型

      FeatureDB(首次使用請按照介面提示開通FeatureDB)

      名稱

      不支援自訂,預設為feature_db。

      使用者名稱

      設定使用者名稱。

      密碼

      設定密碼。

      VPC網路高速聯通(可選)

      配置成功後,您可以在VPC中使用FeatureStore SDK通過私網串連直接存取FeatureDB,提高資料讀寫效能,降低訪問延時。

      VPC

      選擇您使用FeatureStore的線上服務所在的VPC。

      可用性區域與交換器

      選擇可用性區域和交換器。請確保選擇了您線上服務機器所在可用性區域的交換器。建議選擇至少兩個可用性區域的交換器,從而實現業務的高可用性和穩定性。

    3. 完成後單擊提交

安裝FeatureStore Python SDK

  1. 登入DataWorks控制台介面。

  2. 在左側導覽列單擊資源群組

  3. 獨享資源群組頁簽中,找到用途資料調度的資源群組,單擊相應調度資源後的image,選擇營運助手

  4. 單擊建立命令,在彈出的頁面中配置命令參數。

    參數

    取值建議

    命令名稱

    可自訂名稱。本文以install為例進行說明。

    命令類型

    手動輸入(無法使用pip命令安裝第三方包)

    命令內容

    /home/tops/bin/pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple https://feature-store-py.oss-cn-beijing.aliyuncs.com/package/feature_store_py-2.0.2-py3-none-any.whl

    逾時時間

    可自訂時間。

  5. 單擊確定,完成命令建立。

  6. 單擊運行命令,在彈出的頁面中單擊運行

  7. 可單擊image按鈕查看最新執行狀態,待狀態為成功時,即表示完成安裝。

步驟二:建立並註冊FeatureStore

您可以根據實際需求選擇通過控制台或者SDK兩種方式建立並註冊FeatureStore。由於後續匯出Training Set和同步資料都需要使用SDK,所以如果選擇控制台操作的方式,完成控制台配置後,仍需要使用FeatureStore Python SDK。

方式一:控制台操作

  1. 建立FeatureStore專案

    1. 登入PAI控制台,在左側導覽列單擊資料準備 > 特徵平台(FeatureStore)

    2. 選擇工作空間後,單擊進入FeatureStore

    3. 專案頁簽,單擊建立專案,在彈出的頁面中設定項目參數。

      參數

      取值建議

      名稱

      可自訂名稱。本文以fs_demo為例進行說明。

      描述

      可自訂描述。

      離線資料來源(Offline Store)

      選擇已建立的MaxCompute資料來源。

      線上資料來源(Online Store)

      選擇已建立的FeatureDB資料來源。

    4. 單擊提交,完成FeatureStore專案建立。

  2. 建立特徵實體(Feature Entity)

    1. 在FeatureStore專案列表頁面,單擊專案名稱,進入專案詳情頁面。

    2. 特徵實體頁簽中單擊建立特徵實體,在彈出的頁面中配置user特徵實體參數。

      參數

      取值建議

      特徵實體名稱

      可自訂名稱。本文以user為例進行說明。

      Join Id

      user_id

    3. 單擊提交

    4. 單擊建立特徵實體,在彈出的頁面中配置item特徵實體參數。

      參數

      取值建議

      特徵實體名稱

      可自訂名稱。本文以item為例進行說明。

      Join Id

      item_id

    5. 單擊提交,完成特徵實體建立。

  3. 建立特徵視圖(Feature View)

    1. 在特徵專案詳情頁面的特徵視圖頁簽,單擊建立特徵視圖,在彈出的頁面中配置user特徵視圖參數。

      參數

      取值建議

      視圖名稱

      可自訂名稱。本文以user_table_preprocess_all_feature_v1為例進行說明。

      類型

      離線

      寫入方式

      使用離線表

      資料來源

      選擇已建立的MaxCompute資料來源。

      特徵表

      選擇已準備的使用者表rec_sln_demo_user_table_preprocess_all_feature_v1

      特徵欄位

      勾選user_id主鍵。

      同步線上特徵表

      特徵實體

      user

      特徵生命週期

      保持預設。

    2. 單擊提交

    3. 單擊建立特徵視圖,在彈出的頁面中配置item特徵視圖。

      參數

      取值建議

      視圖名稱

      可自訂名稱。本文以item_table_preprocess_all_feature_v1為例進行說明。

      類型

      離線

      寫入方式

      使用離線表

      資料來源

      選擇已建立的MaxCompute資料來源。

      特徵表

      選擇已準備的物料表rec_sln_demo_item_table_preprocess_all_feature_v1

      特徵欄位

      勾選item_id主鍵。

      同步線上特徵表

      特徵實體

      item

      特徵生命週期

      保持預設。

    4. 完成後單擊提交,完成特徵視圖建立。

  4. 建立Label表

    1. 在特徵專案詳情頁面的Label表頁簽,單擊建立Label表,在彈出的頁面中配置Label表資訊。

      參數

      取值建議

      資料來源

      選擇已建立的MaxCompute資料來源。

      表名

      選擇已準備的Label表rec_sln_demo_label_table

    2. 單擊提交

  5. 建立模型特徵

    1. 在特徵專案詳情頁面的模型特徵頁簽,單擊建立模型特徵,在彈出的頁面中配置模型特徵參數

      參數

      取值建議

      模型特徵名

      自訂。本文以fs_rank_v1為例進行說明。

      選擇特徵

      選擇已建立的user特徵視圖和item特徵視圖。

      Label表名稱

      選擇已建立的Label表rec_sln_demo_label_table

    2. 單擊提交,完成模型特徵建立。

    3. 在模型特徵列表頁面,單擊已建立模型右側的詳情

    4. 在彈出的模型特徵詳情頁面的基本資料頁簽中,可查看匯出表名fs_demo_fs_rank_v1_trainning_set,後續基於該表進行特徵生產以及模型訓練。

  6. 安裝FeatureStore Python SDK,具體操作詳情請參見方式二:FeatureStore Python SDK操作

方式二:FeatureStore Python SDK操作

使用SDK的具體操作步驟請參見DSW Gallery

步驟三:匯出Training Set並訓練模型

  1. 匯出Training Set。

    1. 登入DataWorks控制台

    2. 在左側導覽列單擊資料開發與營運 > 資料開發

    3. 選擇已建立的DataWorks工作空間後,單擊進入資料開發

    4. 滑鼠移至上方至建立,選擇建立節點 > MaxCompute > PyODPS 3,在彈出的頁面中配置節點參數。

      參數

      取值建議

      引擎執行個體

      選擇已建立的MaxCompute引擎。

      節點類型

      PyODPS 3

      路徑

      商務程序/Workflow/MaxCompute

      名稱

      可自訂名稱。

    5. 單擊確認

    6. 複製以下內容到指令碼中。

      from feature_store_py.fs_client import FeatureStoreClient
      from feature_store_py.fs_project import FeatureStoreProject
      from feature_store_py.fs_datasource import LabelInput, MaxComputeDataSource, TrainingSetOutput
      from feature_store_py.fs_features import FeatureSelector
      from feature_store_py.fs_config import LabelInputConfig, PartitionConfig, FeatureViewConfig
      from feature_store_py.fs_config import TrainSetOutputConfig, EASDeployConfig
      import datetime
      import sys
      from odps.accounts import StsAccount
      
      cur_day = args['dt']
      print('cur_day = ', cur_day)
      offset = datetime.timedelta(days=-1)
      pre_day = (datetime.datetime.strptime(cur_day, "%Y%m%d") + offset).strftime('%Y%m%d')
      print('pre_day = ', pre_day)
      
      
      access_key_id = o.account.access_id
      access_key_secret = o.account.secret_access_key
      sts_token = None
      endpoint = 'paifeaturestore-vpc.cn-beijing.aliyuncs.com'
      if isinstance(o.account, StsAccount):
          sts_token = o.account.sts_token
      fs = FeatureStoreClient(access_key_id=access_key_id, access_key_secret=access_key_secret, security_token=sts_token, endpoint=endpoint)
      cur_project_name = 'fs_demo'
      project = fs.get_project(cur_project_name)
      
      
      label_partitions = PartitionConfig(name = 'ds', value = cur_day)
      label_input_config = LabelInputConfig(partition_config=label_partitions)
      
      user_partitions = PartitionConfig(name = 'ds', value = pre_day)
      feature_view_user_config = FeatureViewConfig(name = 'user_table_preprocess_all_feature_v1',
      partition_config=user_partitions)
      
      item_partitions = PartitionConfig(name = 'ds', value = pre_day)
      feature_view_item_config = FeatureViewConfig(name = 'item_table_preprocess_all_feature_v1',
      partition_config=item_partitions)
      feature_view_config_list = [feature_view_user_config, feature_view_item_config]
      train_set_partitions = PartitionConfig(name = 'ds', value = cur_day)
      train_set_output_config = TrainSetOutputConfig(partition_config=train_set_partitions)
      
      
      model_name = 'fs_rank_v1'
      cur_model = project.get_model(model_name)
      task = cur_model.export_train_set(label_input_config, feature_view_config_list, train_set_output_config)
      task.wait()
      print("task_summary = ", task.task_summary)
    7. 單擊右側調度配置,在彈出的頁面中配置調度參數。

      參數

      取值建議

      調度參數

      參數名

      dt

      參數值

      $[yyyymmdd-1]

      資源屬性

      調度資源群組

      選擇已建立的獨享資源群組。

      調度依賴

      選擇已建立的user表和item表。

    8. 節點配置並測試完成後,儲存並提交節點配置。

    9. 執行補資料操作。操作詳情請參見同步資料表

  2. (可選)查看匯出任務。

    1. 在FeatureStore專案列表頁面,單擊專案名稱,進入專案詳情頁面。

    2. 特徵實體頁簽中單擊工作中樞

    3. 單擊目標任務右側的詳情,即可查看該任務的基本資料、回合組態和任務日誌。

  3. 訓練模型

    EasyRec是一個開源的推薦系統架構,可以與FeatureStore無縫銜接,進行訓練模型、匯出模型、上線模型的操作。推薦您將fs_demo_fs_rank_v1_trainning_set表作為輸入,使用EasyRec訓練模型。

更多EasyRec相關的問題,請通過DingTalk群(32260796)加入阿里雲人工智慧平台PAI諮詢群聯絡我們。

步驟四:上線模型

訓練並匯出模型後,可以進行部署和上線的操作。如果是自建推薦系統,FeatureStore提供FeatureStore Python/Go/Cpp/Java SDK,可以與各式各樣的自建推薦系統進行銜接。您也可以通過DingTalk群(32260796)聯絡我們諮詢和商討具體方案。如果是阿里雲系列產品,可以和FeatureStore無縫銜接,快速搭建推薦系統上線。

本文以阿里雲系列產品為例介紹上線模型操作。

步驟一:例行同步資料節點

上線前需要將資料同步節點例行,即例行將資料從離線資料來源同步到線上資料來源中,線上會即時地從線上資料來源中讀取。本樣本需要將user特徵表和item特徵表提交例行,具體操作如下。

  1. 登入DataWorks控制台

  2. 在左側導覽列單擊資料開發與營運 > 資料開發

  3. 選擇已建立的DataWorks工作空間後,單擊進入資料開發

  4. 同步例行user表。

    1. 滑鼠移至上方至建立,選擇建立節點 > MaxCompute > PyODPS 3

    2. 複製以下內容到指令碼中,完成user_table_preprocess_all_feature_v1例行同步。

      user_table_preprocess_all_feature_v1 同步例行(單擊查看詳情)

      from feature_store_py.fs_client import FeatureStoreClient
      import datetime
      from feature_store_py.fs_datasource import MaxComputeDataSource
      import sys
      
      cur_day = args['dt']
      print('cur_day = ', cur_day)
      
      access_key_id = o.account.access_id
      access_key_secret = o.account.secret_access_key
      fs = FeatureStoreClient(access_key_id=access_key_id, access_key_secret=access_key_secret, region='cn-beijing')
      cur_project_name = 'fs_demo'
      project = fs.get_project(cur_project_name)
      
      feature_view_name = 'user_table_preprocess_all_feature_v1'
      batch_feature_view = project.get_feature_view(feature_view_name)
      task = batch_feature_view.publish_table(partitions={'ds':cur_day}, mode='Overwrite')
      task.wait()
      task.print_summary()
    3. 單擊右側調度配置,在彈出的頁面中配置調度參數。

      參數

      取值建議

      調度參數

      參數名

      dt

      參數值

      $[yyyymmdd-1]

      資源屬性

      調度資源群組

      選擇已建立的獨享資源群組。

      調度依賴

      選擇已建立的user表。

    4. 節點配置並測試完成後,儲存並提交節點配置。

    5. 執行補資料操作。操作詳情請參見同步資料表

  5. 同步例行item表。

    1. 滑鼠移至上方至新增,選擇建立節點 > MaxCompute > PyODPS 3,在彈出的頁面中配置節點參數。

    2. 單擊確認

    3. 複製以下內容到指令碼中。

      item_table_preprocess_all_feature_v1 同步例行(單擊查看詳情)

      from feature_store_py.fs_client import FeatureStoreClient
      import datetime
      from feature_store_py.fs_datasource import MaxComputeDataSource
      import sys
      
      cur_day = args['dt']
      print('cur_day = ', cur_day)
      
      access_key_id = o.account.access_id
      access_key_secret = o.account.secret_access_key
      fs = FeatureStoreClient(access_key_id=access_key_id, access_key_secret=access_key_secret, region='cn-beijing')
      cur_project_name = 'fs_demo'
      project = fs.get_project(cur_project_name)
      
      feature_view_name = 'item_table_preprocess_all_feature_v1'
      batch_feature_view = project.get_feature_view(feature_view_name)
      task = batch_feature_view.publish_table(partitions={'ds':cur_day}, mode='Overwrite')
      task.wait()
      task.print_summary()
    4. 單擊右側調度配置,在彈出的頁面中配置調度參數。

      參數

      取值建議

      調度參數

      參數名

      dt

      參數值

      $[yyyymmdd-1]

      資源屬性

      調度資源群組

      選擇已建立的獨享資源群組。

      調度依賴

      選擇已建立的item表。

    5. 節點配置並測試完成後,儲存並提交節點配置。

    6. 執行補資料操作。操作詳情請參見同步資料表

  6. 同步完成後,可以在Hologres中查看最新同步的特徵。

步驟二:建立與部署EAS模型服務

模型服務是為了接收Recommendation Engine的請求,根據請求對對應的item進行打分,返回分數。其中EasyRec Processor內部包含了FeatureStore Cpp SDK,可以實現低延時、高效能的取特徵操作,EasyRec Processor從Feature Store Cpp SDK取完特徵後,送入到模型進行推理,拿到打分後返回給Recommendation Engine。

部署模型服務的流程如下。

  1. 登入DataWorks控制台

  2. 在左側導覽列單擊資料開發與營運 > 資料開發

  3. 選擇已建立的DataWorks工作空間後,單擊進入資料開發

  4. 滑鼠移至上方至新增,選擇建立節點 > MaxCompute > PyODPS 3

  5. 複製以下內容到指令碼中。

    import os
    import json
    config = {
      "name": "fs_demo_v1",
      "metadata": {
        "cpu": 4,
        "rpc.max_queue_size": 256,
        "rpc.enable_jemalloc": 1,
        "gateway": "default",
        "memory": 16000
      },
      "model_path": f"oss://beijing0009/EasyRec/deploy/rec_sln_demo_dbmtl_v1/{args['ymd']}/export/final_with_fg",  # 訓練模型路徑,可自訂。
      "model_config": {
        "access_key_id": f'{o.account.access_id}',
        "access_key_secret": f'{o.account.secret_access_key}',
        "region": "cn-beijing",  # 請替換為PAI產品實際部署地區,本文以cn-beijing為例進行說明。
        "fs_project": "fs_demo",  # 請替換為您的FeatureStore專案名稱,本文以fs_demo為例進行說明。
        "fs_model": "fs_rank_v1",  # 請替換為您的FeatureStore模型特徵名稱,本文以fs_rank_v1為例進行說明。
        "fs_entity": "item",
        "load_feature_from_offlinestore": True,
        "steady_mode": True,
        "period": 2880,
        "outputs": "probs_is_click,y_ln_playtime,probs_is_praise",
        "fg_mode": "tf"
      },
      "processor": "easyrec-1.9",
      "processor_type": "cpp"
    }
    
    with open("echo.json", "w") as output_file:
        json.dump(config, output_file)
    
    # 第一次部署時運行下面這行
    os.system(f"/home/admin/usertools/tools/eascmd -i {o.account.access_id} -k {o.account.secret_access_key} -e pai-eas.cn-beijing.aliyuncs.com create echo.json")
    
    # 例行更新時運行下面這行
    # os.system(f"/home/admin/usertools/tools/eascmd -i {o.account.access_id} -k {o.account.secret_access_key} -e pai-eas.cn-beijing.aliyuncs.com modify fs_demo_v1 -s echo.json")
  6. 單擊右側調度配置,在彈出的頁面中配置調度參數。

    參數

    取值建議

    調度參數

    參數名

    dt

    參數值

    $[yyyymmdd-1]

    資源屬性

    調度資源群組

    選擇已建立的獨享資源群組。

    調度依賴

    選擇對應的訓練任務和item_table_preprocess_all_feature_v1。

  7. 節點配置並測試完成後,運行查看部署情況。

  8. 部署完成後,注釋掉第34行代碼,並將37行取消注釋,提交任務例行。

  9. (可選)您可以在模型線上服務(EAS)頁面的推理服務頁簽,查看已部署的服務。操作詳情請參見自訂部署

  10. (可選)當使用 Hologres 等只能通過指定 VPC 訪問的資料來源時,需要打通 EAS 和對應資料來源的 VPC 網路。例如,當使用 Hologres 時,可以在 Hologres 的網路資訊頁面看到指定 VPC 對應的 VPC ID交換器 ID 等資訊,需要在 EAS 服務頁面的右上方點擊配置高速連結按鈕,填入對應的 VPC ID交換器 ID,最後還需要填寫安全性群組名稱,可以選擇已有安全性群組或者建立安全性群組,注意其允許存取的連接埠要符合 Hologres 連結的要求,一般 Hologres 連結使用80連接埠,因此選擇的安全性群組需要開放80連接埠才能正常串連。都填寫完成後,單擊確定,待服務正常更新完成後即可使用。

步驟三:配置PAI-REC

PAI-REC是Recommendation Engine服務,其中整合了FeatureStore的Go SDK,可以與FeatureStore和EAS無縫銜接。

具體配置步驟如下。

  1. 配置FeatureStoreConfs。

    • RegionId:修改為產品實際所在地區,此處以cn-beijing為例。

    • ProjectName:已建立的FeatureStore專案名稱,fs_demo

        "FeatureStoreConfs": {
            "pairec-fs": {
                "RegionId": "cn-beijing",
                "AccessId": "${AccessKey}",
                "AccessKey": "${AccessSecret}",
                "ProjectName": "fs_demo"
            }
        },
  2. 配置FeatureConfs。

    • FeatureStoreName :和上一步FeatureStoreConfs中的設定pairec-fs保持一致。

    • FeatureStoreModelName :已建立的模型特徵名稱,fs_rank_v1

    • FeatureStoreEntityName :已建立的特徵實體名稱,user。表示讓PAI-REC中的FeatureStore Go SDK來模數型fs_rank_v1中特徵實體為user側的特徵。

        "FeatureConfs": {
            "recreation_rec": {
                "AsynLoadFeature": true,
                "FeatureLoadConfs": [
                    {
                        "FeatureDaoConf": {
                            "AdapterType": "featurestore",
                            "FeatureStoreName": "pairec-fs",
                            "FeatureKey": "user:uid",
                            "FeatureStoreModelName": "fs_rank_v1",
                            "FeatureStoreEntityName": "user",
                            "FeatureStore": "user"
                        }
                    }
                ]
            }
        },
  3. 配置AlgoConfs。

    此配置代表告訴PAI-REC去串連哪一個EAS模型打分服務。

    • Name:和部署的EAS服務名稱一致。

    • UrlAuth:EAS服務給出的資訊,您可以在EAS模型線上服務頁面單擊服務名稱,然後在概覽頁簽的基本資料地區單擊查看調用資訊擷取URL和Token。更多詳細配置可參見EAS常見問題

        "AlgoConfs": [
            {
                "Name": "fs_demo_v1",
                "Type": "EAS",
                "EasConf": {
                    "Processor": "EasyRec",
                    "Timeout": 300,
                    "ResponseFuncName": "easyrecMutValResponseFunc",
                    "Url": "eas_url_xxx",
                    "EndpointType": "DIRECT",
                    "Auth": "eas_token"
                }
            }
        ],