功能說明
特徵一致性是演算法專案中常見的工程課題,指的是模型訓練的特徵和線上打分的特徵邏輯要一致,如果特徵不一致會導致產品或應用出現打分不一致、效果異常,所以建議定期執行特徵一致性檢查任務,避免因特徵不一致導致的效果下跌問題。
本功能用於自動化進行離線上特徵一致性對比工作,排查以下問題:
特徵名稱不一致,體現在線上的特徵名稱與離線的特徵不匹配
特徵類型不符, 相同的特徵名稱,線上離線類型不符
特徵缺失, 線上的特徵缺失,或者沒有構造出相應的特徵。傳入的上下文特徵沒有,或者線上服務沒有構造出相關特徵
特徵值不匹配,線上的特徵值的處理邏輯或者方法與離線的構造不一致
模型的特徵處理邏輯有誤,processor在打分之前,如果需要對特徵的處理,比如EasyRec,這塊特徵處理涉及特徵載入、特徵預設值、特徵的衍生(FG特徵)。這裡通過開啟EasyRec Processor debug模式,擷取產生的特徵,來做進一步的對比
對比流程
流程圖

流程說明
第一步:控制台建立一致性檢查任務開啟任務
要進行特徵一致性對比,首先要在控制台(推薦全鏈路服務平台->排查工具->一致性檢查)啟動配置好的的任務。
在啟動一致性檢查任務時,配置中心會先根據任務配置檢查和建立執行任務所必要的資源,它們用於處理特徵日誌和模型日誌。資源成功建立後,配置中心會增加服務參數。至此,任務成功開啟。
第二步:PAI-REC引擎擷取任務參數
PAI-REC引擎通過配置中心SDK擷取最新的配置中心服務參數,從中得到已開啟的的特徵一致性檢查任務的參數。
第三步:特徵日誌落盤和配置中心擷取日誌
PAI-REC引擎得到已開啟的的特徵一致性檢查任務的參數後,將服務過程中產生的特徵日誌落盤至MaxCompute中。
同時配置中心擷取到特徵日誌。
第四步:配置中心調用 PAI-REC 引擎特徵重放 API
配置中心在擷取到特徵日誌的同時,根據獲得的特徵日誌,按任務設定的比例,批量地調用 PAI-REC引擎特徵重放API( 特徵重放:指的是帶著上面PAI-REC引擎落盤的特徵,再請求一次PAI-REC引擎的另外一個介面,這個介面是專門用來開啟模型服務的debug模式的 )。
第五步:PAI-REC 引擎調用 EAS 模型
PAI-REC引擎接受到請求後,以debug模式調用EAS模型服務,在此過程中產生模型的debug資訊,debug資訊中包含了模型fg前後的所有特徵資訊 。
第六步:返回模型的debug資訊
EAS模型服務中產生模型的debug資訊返回PAI-REC引擎中,產生模型的debug日誌。
第七步:日誌落盤
PAI-REC引擎產生模型的debug日誌落盤至MaxCompute中。
第八步:特徵日誌作為離線樣本預測
取到MaxCompute中的特徵日誌,將特徵日誌作為離線樣本進行預測。
第九步:將離線特徵與線上特徵進行對比
取到MaxCompute中的模型日誌,將模型日誌中的線上特徵與離線預測結果中的離線特徵進行離線上的特徵對比,產生一致性檢查任務的檢查結果。
使用說明
1. 配置特徵一致性檢查任務
前置條件
在配置特徵一致性檢查任務前需要添加所需的資料來源,包括MaxCompute和模型EAS資料來源。如果需要輸出結果至OSS,那麼還需要添加OSS資料來源。
如何添加資料來源參考: 中繼資料管理操作參考文檔連結
操作步驟
點擊側邊欄中一致性檢查,進入特徵一致性檢查任務管理頁面,建立任務或編輯已有任務。





要填寫的資訊包括:
任務名稱:自訂名稱
關聯情境:關聯的推薦情境,可下拉選擇,選擇的情境需要和引擎中所使用的配置情境是一樣的,還需要與請求體裡的情境一一對應
採樣比例:調整採樣數量,最大為 100%。設定較小的採樣率可以減輕任務對服務產生的QPS壓力,例如當QPS=10的時候,設定10%的採樣率,每秒鐘只採樣一條推薦請求的日誌
資料回落地址:選擇想要回落的相應的MaxCompute的project
PAI-EAS模型服務名稱:引擎對應所用到的EasyRec Processor服務名稱,需要從對應的模型中擷取一些參數,例如:OSS的模型地址、演算法名稱等
fg_json檔案名稱:DataWorks MaxCompute 中用於模型訓練的 fg 檔案名稱
user特徵表:選擇需要用到的user特徵資料表
user_id欄位:選擇的user特徵表的user_id欄位,也是表的主鍵
user表分區欄位:選擇相應的ds欄位,分區欄位顯示有兩種形式yyyymmdd與yyyy-mm-dd,可下拉選擇顯示的樣式
item特徵表:選擇需要用到的item特徵資料表
item_id欄位:選擇的item特徵表item_id欄位,也是表的主鍵
user表分區欄位:選擇相應的ds欄位,分區欄位顯示有兩種形式yyyymmdd與yyyy-mm-dd,可下拉選擇顯示的樣式
是否需要特徵比對:預設選擇是,如果選擇否模型的詳細特徵原則不會顯示
建議服務名稱:選擇需要用到日誌回放的服務名稱(建議服務名稱,是從系統配置中服務管理來的)
是否需要產生zip包:預設選擇否,如果不需要產生zip包,此時點擊確定任務建立成功;如果需要產生zip包,選擇是後,填寫相關對應的資訊,包括選擇OSS Bucket,填寫工作流程名稱、自訂EasyRec版本、自訂EasyRec包路徑、自訂fg_jar版本、特徵優先順序與特徵展示過濾後,點擊確定任務建立成功。

註:在建立一致性檢查任務前,需確保user表與item表為當天的資料。
2. 運行特徵一致性檢查任務和查看結果
運行任務
在特徵一致性檢查頁面,對應任務操作欄點擊運行任務來運行任務,需要填寫運行時間長度和運行環境(預發或生產),點擊確定後,等待任務結束,或者中途取消任務。


查看結果
在一致性檢查頁面的任務日誌中,可查看任務運行情況,一般來說任務執行的實際時間長度會大於設定的時間。這是因為需要額外的時間等待資料同步完成以及最後做分析。

當任務執行成功,點擊對應日誌操作欄的檢查結果來查看報表結果。

展示結果包括,Userid,Itemid,Requestid,打分差異表(按差異大小降序排序)等,點擊操作欄的特徵對比可以查看對應的特徵差異。


註:對item_id 來說,Online取值是‘-1024’,表示沒有取到正確的物品ID值;對title、author等欄位來說,Online取值都是預設值。
Requestid欄後的篩選按鈕可對Requestid進行篩選,在Requestid這一欄,如果你覺得某個Requestid沒有問題(例如x),則可以選擇x,那麼Requestid=x都會過濾掉。


3. 結果使用
若選擇了進階設定,會將產生的任務檔案以壓縮包(package.zip)的方式存至 OSS,OSS 的儲存地址為進階設定中所填地址。
下面說明壓縮包如何上傳至 dataworks 中手動運行任務
首先將 OSS 中的壓縮包下載至本地
進入 dataworks,順序點擊如下按鈕

點擊遷移助手,再點擊 DataWorks 匯入

點擊右上方 建立匯入任務

輸入自訂名稱,點擊上傳檔案,將本地的 壓縮包上傳,隨後點擊上傳確認即可
任務所在的檔案夾即為在進階配置中所填寫的 workflow_name 中