基于預熱與懶刪除的算法TF模型更新方案

為提高廣告、素材、活動、插件等投放收益,這些流量入口都會對接算法,通過算法能力進行精準投放;對接算法則需要在業務系統引入算法TF模型(本地深度模型),算法系統會把對線上流量特征、收益等深度學習生成的TF模型加載到對應業務系統的NAS服務中,十分鐘更新一次;業務系統從NAS讀取算法TF模型存儲到本地緩存,也需要十分鐘讀取一次做更新。在實際投放中,如活動推薦,業務系統會將用戶流量信息(deviceId、ua、ip等)、活動候選集和本地緩存的TF模型傳入算法接口,由算法退出一個最優活動,然后進行投放。

主要缺陷

  1. 模型更新,正在使用的線程因模型丟失而異常退出。

  2. 服務剛啟動或模型更新后,加載速度非常慢,流量瞬間打入會出現大量超時而異常退出。

主要目的

加快投放響應,提升用戶體驗;提高算法接入質量,最大化收益

基本構思

利用隊列將本地緩存的算法TF模型進行排序,隊列大小設置成3(可同時緩存三個TF模型,一個待刪除,一個在使用,一個預熱),利用隊列的先進先出特性對緩存的TF模型做刪除操作,刪除操作只在隊列滿時。模型更新后不直接使用,先利用配置或線上流量進行模型預熱加載,預熱完成后再使用。

具體實施例

服務啟動初始化流程:


啟動初始化
  1. 服務啟動后,先從本地NAS服務中讀取TF模型;
  2. 對取出的模型進行預熱處理,
  3. 將預熱好的TF模型插入隊列并存入本地Guava緩存。

服務運行中預熱與懶刪除流程:


運行中預熱與懶刪除
  1. 服務接受到活動的投放請求后,會先從本地的Guava緩存中獲取模型;
  2. 若緩存未過期則取出TF模型直接使用推出活動并返回;
  3. 若緩存已過期,先使用過期的模型同時異步從隊列的頭部取出一個TF模型放入緩存;
  4. 接著從NAS服務中讀取新的TF模型,進行預熱處理;
  5. 從隊列尾部刪除一個TF模型(最舊的一個),并將更改預熱的TF模型從頭部插入隊列,結束異步線程,任務完成。

主要優點

異步預熱,提升投放鏈路響應,避免流量等待預熱過期造成浪費;惰性刪除,防止實時刪除正在使用的模式導致投放失敗。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容