本案例使用經典的CTR點擊率預估數據集Avazu進行一體化模型訓練,并將離線調試完成的歸一化預測->獨熱編碼預測->向量聚合->FM預測流程完整部署到EAS。您在線上環(huán)境進行模型預測時,也可以使用離線訓練時的數據預處理和特征工程邏輯,以保障線上線下處理流程的一致性。
前提條件
已創(chuàng)建工作空間,詳情請參見創(chuàng)建工作空間。
已將MaxCompute資源關聯到工作空間,詳情請參見管理工作空間。
數據集
Avazu是經典的CTR點擊率預估數據集,PAI使用了Avazu的一個子集(包括20萬條樣本數據:訓練集16萬條;預測集4萬條)構建點擊率預估流程。數據詳情請查看Avazu,具體的字段如下。
列名 | 類型 | 描述 |
id | STRING | 廣告ID |
click | DOUBLE | 是否點擊 |
dt_year | INT | 點擊的年份 |
dt_month | INT | 點擊的月份 |
dt_day | INT | 點擊的時間(天) |
dt_hour | INT | 點擊的時間(小時) |
c1 | STRING | 匿名的離散變量 |
banner_pos | INT | 標題的位置 |
site_id | STRING | 地點ID |
site_domain | STRING | 地點Domain |
site_category | STRING | 地點類別 |
app_id | STRING | 應用ID |
app_domain | STRING | 應用Domain |
app_category | STRING | 應用類別 |
device_id | STRING | 設備ID |
device_ip | STRING | 設備IP |
device_model | STRING | 設備模型 |
device_type | STRING | 設備類型 |
device_conn_type | STRING | 設備連接類型 |
c14 - c21 | DOUBLE | 匿名離散變量(共8列) |
操作步驟
進入Designer頁面。
登錄PAI控制臺。
在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應的工作空間。
在工作空間頁面的左側導航欄選擇 ,進入Designer頁面。
構建工作流。
在Designer頁面,單擊預置模板頁簽。
在模板列表的保障離在線一致性的CTR預估方案區(qū)域,單擊創(chuàng)建。
在新建工作流對話框配置以下關鍵參數,其他參數可以使用默認配置。
其中:工作流數據存儲配置為OSS Bucket路徑,用于存儲工作流運行中產出的臨時數據和模型。
單擊確定。
您需要等待大約十秒鐘,工作流可以創(chuàng)建成功。
在工作流列表,雙擊保障離在線一致性的CTR預估方案工作流,進入工作流。
通過模板創(chuàng)建的工作流,如下圖所示。
在該工作流中,PAI將特征分為以下兩類:
數值型特征:PAI使用歸一化算法,將特征做歸一化處理。
離散型特征:PAI使用獨熱編碼組件處理。最后將兩類特征融合成一個向量,并使用FM算法訓練模型并推理。
運行工作流并查看輸出結果。
單擊畫布上方的。
工作流運行結束后,右鍵單擊畫布中的二分類評估-1,在快捷菜單,單擊可視化分析,或直接單擊畫布上方的。
在二分類評估-1對話框指標數據頁簽,查看預估準確率。
如果指標滿足要求,您可以將數據預處理、特征工程、模型預測的完整流程打包,并部署至EAS。
在畫布上方,單擊制作Pipeline模型。
手動選中歸一化批預測-2節(jié)點后(會自動選中右側的完整鏈路),單擊下一步。會把選中需要部署的數據處理鏈路和用到的模型打包成一個Pipeline模型。
在制作Pipeline模型對話框,確認模型打包信息,并單擊下一步,啟動Pipeline模型打包任務。打包任務大概需要3~5分鐘即可完成。
部署模型服務。
方式一:在制作Pipeline模型對話框,當運行狀態(tài)為成功時,單擊部署至EAS,會跳轉到EAS控制臺。配置服務名稱和資源部署信息后,單擊部署,即可完成模型部署,更多詳細內容,請參見Pipeline部署在線服務。
方式二:如果制作Pipeline模型對話框已關閉,您可以在畫布右上方單擊全部任務查看,在歷史任務對話框,查看制作任務運行狀態(tài)。當狀態(tài)為成功時:
您可以單擊操作列下的模型>部署,并按照控制臺操作指引部署模型服務。
您也可以單擊畫布上方的模型列表,在模型列表中選中打包的模型,單擊部署至EAS并按照控制臺操作指引部署模型服務。
在EAS控制臺,單擊已部署好的服務操作列下的在線調試,對服務進行在線調試,更多詳細內容,請參見服務在線調試。
其中:Body區(qū)域的請求數據可以輸入和數據集相同結構的測試數據,例如:
[{"id":"10000169349117863715","click":0.0,"dt_year":14,"dt_month":10,"dt_day":21,"dt_hour":0,"C1":"1005","banner_pos":0,"site_id":"1fbe01fe","site_domain":"f3845767","site_category":"28905ebd","app_id":"ecad2386","app_domain":"7801e8d9","app_category":"07d7df22","device_id":"a99f214a","device_ip":"96809ac8","device_model":"711ee120","device_type":"1","device_conn_type":"0","c14":15704.0,"c15":320.0,"c16":50.0,"c17":1722.0,"c18":0,"c19":35.0,"c20":100084.0,"c21":79.0}]
該數據在服務中會順序進行歸一化預測->獨熱編碼預測->向量聚合->FM預測,最終得到如下預測結果。