面向数智营销的 AI FAAS 解决方案
丨目錄:
1.? 背景
2.? AI?FAAS解決方案
3.??FAAS研發平臺
4.? DolphinSQL服務
5.? 實時特征SQL化生產
6.? 典型案例
7.? 效果
8.? 展望
9.? 引用
??背景
隨著互聯網人口增長紅利逐步減緩和行業競對增強,用戶流量增長日益放緩,在廣告主面對阿里媽媽復雜營銷產品矩陣情況下,如何利用算法能力更加精細化賦能廣告主,從而提升大盤廣告營收和構建客戶生態成為新的增長點。廣告主工具側算法同學(下簡稱“B端算法”)會結合客戶的不同營銷訴求(拉新、蓄水、轉化、加購收藏等營銷目標)提供豐富的營銷工具,幫助廣告主提升投放效率,并幫助阿里媽媽客戶增長以及大盤營收;由于廣告主工具側算法人手少、場景多,要針對不同的場景來搭建不同的服務,導致算法同學會面臨服務多、開發成本高、運維成本高、大促保障難等諸多問題;通過和廣告主工具側算法同學深入溝通,主要面臨如下問題:
1. 迭代效率問題
開發成本高:場景多(至少50+的場景),服務多,每個服務都需要耗費大部分時間來搭建服務,申請機器資源;由于歷史原因部分服務以C++來實現,開發和迭代成本高;
監控體系不健全:整個服務的監控運維體系不健全,算法同學沒有時間來完善監控服務,導致服務出問題無法及時的發現;
運維成本高: ?服務比較多,運維體系不健全,服務出現問題,排查困難,另外升級迭代成本高。
2. 核心算子復用性不足
核心算子耦合在業務邏輯中,無法實現各個業務場景快速。
3. 場景復雜,特征時效性低
廣告主工具側場景復雜,沒有統一的實時特征生產流程,且目前模型使用的特征都是離線T+1,無法有效捕獲到用戶行為。
針對廣告主工具側算法場景存在的問題,以及廣告主工具側性能(QPS較低、rt容忍度高)特性,算法和工程希望合力設計一種更輕量方案,可以讓算法同學更專注業務邏輯,而工程同學更好專注工程框架,從而實現效率的極大提升,不同業務場景也可以快速享受到工程框架升級所帶來的效果提升; 通過和直通車客戶增長算法同學緊密合作,我們利用云原生FAAS+基于MPP統一SQL引擎(下稱為Dolphin)打造了一套面向廣告主工具側算法解決方案,成功將算法服務整體升級到新的AI FAAS框架,算法側的迭代效率也有了質的提升(單服務搭建從1-2周降至1-2天),多個場景算子復用也取得了不錯的業務收益。這里將我們面向數智營銷場景的AI FAAS經驗實踐做個總結,希望對大家有些許幫助。
??AI FAAS解決方案
針對廣告主工具算法側的核心訴求,我們從三個方面提供了輕量級的解決方案;針對迭代效率問題,我們將C++開發為主的服務升級為以Java為主的云原生faas平臺,從編碼層面提升了迭代效率,并基于faas打造了一整套集成開發、灰度、監控、運維、實驗、壓測、日志檢索、調試等流程的一站式AI FAAS研發平臺,算法更專注業務邏輯的迭代,性能和工程鏈路問題交給工程同學。
核心算子復用性能力,我們將算法側核心算子統一沉淀到到Dolphin插件中,統一以DolphinSQL服務化方式對外輸出,實現了核心算子的統一,并基于極光平臺支持算子的交互式分析,方便核心算子的多場景服務。
針對B端場景復雜,特征時效性問題,我們和算法同學一起梳理了特征工程鏈路,建立了基于埋點到特征生產的規范化接入流程,并基于SQL引擎實現了特征的SQL化生產,簡化實時特征開發和探查。
??Faas研發平臺
基于Faas[1]我們打造了一套B端算法研發平臺,主要包含研發管控平臺、算法工程框架、Dolphin引擎、運維工具等部分。
研發管控平臺,可支持服務一鍵拉起、調試、日志記錄、日志檢索以及實驗等能力;faas的發布能力基于阿里云函數計算[2],可支持服務的多機房部署、灰度、監控、自動擴縮容能力,無需申請機器資源,可實現快速交付、智能彈性、更低成本。
Faas服務的工程框架,基于SpringCloud[3]容器來定制化業務工程模板,在工程模板內部打通常用中間件(Diamond/Hsf/IGraph/Redis/SLS/Dolphin引擎/Sunfire等)以及提供常用的功能函數類庫(LogUtil/Concurrent等),實現上層業務開發一鍵接入,業務層整體開發體驗和SpringBoot保持一致。
運維工具包含準確性驗證、壓測、監控等,通過flink任務將faas日志實時回流到ODPS[4]表(對應離線HIVE表),用于在線日志分析和錯誤排查,同時在線查詢請求可生成壓測數據,用于上線前準確性驗證以及大促壓測;規范了業務側埋點規范,可實現一鍵埋點sunfire[6] (監控平臺)監控可見,實現業務側核心數據的實時感知。
??DolphinSQL服務
一般算法使用的工程技術架構大多源自C端技術,特點是可支撐高性能、高并發,不足是使用成本高,主要是因為架構解耦分離,各組件負責一類功能,這樣對于復雜的算法場景,需要在主程序方法中調用各種不同客戶端才可以實現,這對于工程同學都需要不小工作量去學習不同組件并整合進項目,讓B端算法同學親自操刀去開發的成本更是不低。面對B端算法場景,我們希望以統一SQL(類似數據湖[5])的方式來對外提供服務,屏蔽底層組件細節;對于算法同學而言SQL是基本技能,因此服務SQL化對于算法同學而言學習成本和理解成本都最低。
下圖是使用DolphinSQL前后的架構對比,可以清晰看出,升級前每個算法服務需要集成所有需要的客戶端,升級后算法業務主程序僅需要集成Dolphin客戶端即可,使用SQL可以實現整個算法計算流程。
模型預測探查
CREATE?MODEL?rtp_dolphin.dolphin_alime_ctr_v1_model with?(cm2_cluster?=?'rtp_ads_internal',zk_host?=?'test',zk_root?=?'test',biz?=?'test',out_fmt?=?'xml',debug?=?'false',attribute?=?'["test"]');SELECT?* FROM?rtp_dolphin.dolphin_alime_ctr_v1_model WHERE item_list?IN?(1000128836) AND?qinfo?=?'{}'????AND?context?=?'{"field_names":[],?"docs":[]?}';向量化召回
select?id,?pm_squared_euclidean_distance(feature,?'{0.1,0.1,0.1,0.1}')?as?distance? from?feature_tb?where?cate_id?in?(1,3,12) order?by?distance? asc?limit?10;組合優化
集成最優化計算函數庫,支持用SQL來計算最優化/約束求解,如線性規劃、整數規劃、全局整數優化等能力
SELECT?*?FROM?(?SOLVESELECT?quality?IN?(SELECT?*?FROM?solve_db_test?where?adgroup_id?=?461628001?limit?200)?as?u?MAXIMIZE?(?SELECT?SUM(quality?*?trade)?FROM?u)?SUBJECTTO?(SELECT?SUM(ctr_threshold?*?quality?*?impression??-?quality?*?click)?<=?0?FROM?u),?(SELECT?0?<=?quality?<=1?FROM?u),(select?SUM(quality)?<=?20?FROM?u)?USING?solverlp)?AS?s?where?quality?=?1;??實時特征SQL化生產
普通開發實時特征,需要掌握實時數據流、flink、存儲等眾多工程能力,才可以實現實時特征的開發,這個開發成本對于算法同學來說學習成本會很高,以至于他們都會主動放棄掉。基于算法同學對SQL的熟練掌握,我們打造了基于SQL引擎實時特征的開發、查詢等能力,通過定義標準化實時特征接入流程,實現一鍵接入日志中間層,并基于中間層靈活定制實時特征,通過類SQL快速定義實時序列特征,業務算法無需關注資源情況,直接可通過特征SDK進行查詢;整體的實時特征SQL生產如下所示,主要包含特征管理、特征生產SQL引擎、以及底層計算存儲。
實時特征的定義和開發/查詢
create?table?test_input? (user_id?String,tool_id?String,label?String,behavior_time?String )?with(bizType='tt',topic='test_input',pk='user_id',timeColumn='behavior_time' );--?創建輸出表 create?table?test_output?(user_id?String,tool_id?String,label?String,behavior_time?String )?with?(bizType='feature',pk='user_id' );insert?into?table?test_output select?user_id,concat_id(tool_id,?behavior_time,?50)?as?tool_id,concat_id(label,?behavior_time,?50)?as?label,concat_id(behavior_time,?behavior_time,?50)?as?behavior_time from?test_input group?by?user_id;select?user_id,?tool_id?from?test_output?where?user_id?in?(1234 );??典型案例
直通車關鍵詞推薦是B端框架支持的典型場景, 支持了數十個常用算法算子,如文本召回、向量化召回、模型預測、相關性、分詞、歸一化等核心算子;業務側僅需要通過極光平臺接入對應的數據表,以及定義模型、算子、以及實時特征開發;后續就可以基于已有工程框架和DolphinSQL快速搭建業務服務,通過dag配置和服務串聯即可實現服務發布;
??效果
目前B端算法解決方案已支持關鍵詞推薦、出價、成效預估、如意推薦、咨詢診斷以及洞察類等幾十個業務場景,整體取得不錯的收益,主要如下幾個方面:
迭代效率提升: 業務側迭代效率從之前的1-2周降低到1-2天,新增服務可在1個小時內部署完成;
運維效率提升: 每個算法服務都可實時感知到核心業務指標,出現問題可實時報警;另外基于SLS以及回流日志可實時分析日志,及時發現問題;
算子復用: 核心算子的統一收口到DolphinSQL引擎中,也基于SQL服務化快速復用到其他業務場景;
實時特征的開發上線: 基于SQL的實時特征開發,從之前的1-2周特征開發,降低到1-2個小時可完成特征定義、開發和上線。
??展望
接下來我們會持續優化產品體驗和性能,希望AI FAAS解決方案能支撐更多算法業務, 為客戶提供更好的廣告主工具,讓客戶的每一份經營都算數。主要優化方向:
FAAS研發平臺:? 繼續優化faas內核, 增強faas能力; 業務框架層支持更加易用的異步執行框架;
統一SQL能力:?支持物化SQL、向量化執行、豐富SQL特征生產算子等能力,提供性能更好、擴展性更好的統一SQL AI解決方案。
引用
[1] Function-As-A-Service?? https://cn.aliyun.com/analyst-reports/forrester-wave-function-as-a-service-platforms-q1-2021
[2] 函數計算 https://www.aliyun.com/product/fc
[3] Spring Cloud https://spring.io/projects/spring-cloud
[4] ODPS https://www.aliyun.com/product/odps
[5] 數據湖 https://www.aliyun.com/solution/doc/datalake
[6] Sunfire? https://help.aliyun.com/apsara/agile/v_3_4_0_20200930/rdc/paas-product-introduction/what-is-sunfire.html
END
也許你還想看
丨廣告深度學習計算:異構硬件加速實踐
丨廣告深度學習計算:召回算法和工程協同優化的若干經驗
歡迎關注「阿里媽媽技術」,了解更多~
瘋狂暗示↓↓↓↓↓↓↓
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的面向数智营销的 AI FAAS 解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 请查收 | 2021 阿里妈妈技术文章回
- 下一篇: 【阿里妈妈营销科学系列】第六篇:营销组合