《FFA2023AI特征工程专场资料汇总.docx》由会员分享,可在线阅读,更多相关《FFA2023AI特征工程专场资料汇总.docx(140页珍藏版)》请在课桌文档上搜索。
1、FD鬻来蚂蚁特征平台是什么特征平台是多计算模式融合的高性能AI数据处理框架,能够满足Al训练和推理场景对特征低延迟产出、高并发访问及离在线一致的数据诉求蚂蚁特征平台核心作用及发展历程flink model-serviceonlineoffline-特征选择/清洗/特征快照 数仓,J样本拼接(特征+标签)A *场型训练F Ai model算法同学1、灵活定义实时特征计算范式2、大规模特征仿真回溯(流批一致)3、实时数据冷启动(流批协同)4、高性能的在线特征查询服务特征大战模仿K/回潮特征平台架构图(UniVerSaI-featuregineasedarchitecture)Iabe-DataOD
2、g历KMl照HMlMsg_Row_DataCDPS-历史消原Hinka网批语义自动转换Monitor1WrAttttMMm、FLINKtCFORWARDtHASA20出实时即未来A-T*MfWtR大规模数据POint-n-TimeJoinflink-based样本特征补全1.ables(features+label)model-trainingmodeOffline-特征生产实时特征生产-Skyline4,模型预测服务Online-Online-StorageSofaMQ计算范式SLs固窗计算计算优化滑窗计算序列计算大规模CoUntdi计算计算DAG归一化计算任务合并计算参数自动优化计算试跑调
3、试(一)冷启动数据源改写Iink流批语义转换flink-basedhbaseIindormphstore特区DSL甯征*述JR)梆洌表11,f2,f3;*iMttUserid=XXXtPtane=XXM:v1,f2:v2AggDataImergeDateSQLJAVATransfonnSAggregaie视图层(10优他R)IOttMlttask-场景化推导计算范式TaSk合并与调度Source-transform-filteridemCalc(tumbleWin_1d_agg_sink)sinkSource-transform-filteridemCalc(tumbleWin_1d_agg_
4、sink)Calc(tumblewin_1d_agg_sink)Source-transform-filterdimJoinCalc(HopWin_1d_agg_sink)Source-transform-filterdimjoinCalc(Hopwin_1d_agg_sink)FiIter上推、列裁剪、结构归一化框架结构相同计算可合并部署(也可完全独立)特征实时计算优化FUNKCU)赛电十FORWARDE禾采AsIAMeemnmemrend优化前19:03:28点击一次I最近3min点击次1一_-!9;0119:0219:0319:0419:0519:06计算资源睁胀同质计算无法共享资源输出
5、。爆炸性能面I域破优化后最近3min点击次数X输出Xj419:03*19:06.1910219:05i19:0119:04PH3pane6Paneipane219:0119:0219:0319:040519:06解决了计算State爆炸,同质计茸合井,滑窗IO放大优化思路State缩流:滑窗State依靠中间帐存储,刷出时基于窗口范围聚合IO刷出:根据数据索引判断滑窗数据是否刷出,新的Pane无数据则不刷出计算资源节省:同质计算复用中间帐state,例如“近1小时登录次数”近3小时登录次数”、“近1天要录次数”3个特征复用同一份State优化结果(聚合算子场景):State缩盘:滑窗State
6、缩减1013倍IO放大降低,稀疏数据场景90%过滤计算资源节省:节省计售资源50%以上特征冷启动FLINKflinktSQL2 .FlinkSQL-SQLParser-AST(SQLNode)3ST(sqlNode)遍历转换:Window转groupby流SOUrC皆专批SOUrCe4 .AST(sqlNode)-flink批SQL5 .Flink批任务运行、追齐数据150亿事件数据量,90天窗口,600core3小时完成冷启动一次邺止百个来源射勾存储的特征高请求、低RT、低长尾毛刺大量特三专换逻辑由业务用户编写在线特征查询百万级QPS单QPS查询上百特征AVG-RT10msP99.99-RT
7、MEStepl.数据分层抽象业务同学T11T1111笥SI饼发A个个个仆个个个小;v聋StOFe2Storeltable2FLINKC实时FORWARD(未来买豕天内付款金金额、selectsur:amount)asfromtrade_tablewheregmt_occurtotalamount24HStep2.构建全局最优IO计划Step3.10分层并发FeaturesFeaturesFeature:Feature3Featurel5HQPS(单QPS查询100特征)结果拆分Storezstore1OPS只有6OW存储查询(中位数业务)用户A-Iel用户A-Id用户B-Id用户B-2dnow
8、()-24Hnow();全局Q优化5W叩S秒变500W存储查询?W三10合并算法,相同查询去窟合并同卷不同列合并为一次查询同表、不同行合并为batchGet同表、同列按大VerSiO询下层Ig上层特征并蜘行,提高并行度JJ什么是特征仿真?FLINKU)FORWARD实时E未来mnmersnd用户最近7天的交易金额这个特征可能有用,帮我根据历史的线上流量回溯下这个特征历史数据?算法模型驱动表:历史上某个时间点的查询请求最近7天的交易金额过去现在未来时间轴Timetravel的大规模数据计算在风控,消费信贷等领域是必备能力传统方案FLlNKU)实时FORWARD即未来产页计算BlinkSQLICr
9、eateviewresultviewas特征查询SQLSelectfromgroupsum(amount)asamount_1dstreamtablebyuserjd,tumble(,ts,1DAY);Selectsum(amount_1d)fromresult_viewwherets=now()-7Day二用户最近7d交易总金额仿真离线计算SQL/selectsum(amount)from(selectuid,amount,tsfromstream_table)asjoin(selectuid,tsfromdriverjable)asdons.uid=d.uidwheres.tsd.ts-7
10、DAY)groupbyuid驱动数据(询请求);ud1,t1,window1uid1,t2,widow2uid1,t3,window310亿Join数据会严重膨胀Iuid1,t_1,data_1uid1,t_2,data_2juid1,t_3,data_3-Juid1,t_4,data_43uid1,t_5,data_5每条驱动表数据都要去JoiiI明细数据,大量ShilffIe,数据膨胀严重仿真计算核心挑战及解决思路FLlNFORWARD臊来mnmersnd挑战:大数据在PlT语义下计算的性能和稳定性O思路:,在离线语义的一致。平台侧负责“流计算语义”到“PIT批计算语义”转换,对用户透明算
11、优化 数据预处理减少无用数据进入join 聚合计算拆账优化(基于账的2阶段聚合,解决join不动问题) 任务按时间分拆分并行(减少单批次JOinShUffle数据量)特征仿真流程FUNK 9实时FORWAHDf 未 来 Njut、天账detaildetaildetailhourhourhourdaydayday逐层聚合,减少数据ShUffIedetaildetail.hour让大规模PTjoin能算的动:.f,/拆账计算大幅减少join数据量/中间账二次聚合过程根据中间帐小时分2023-05-0303:05:56同质计算特征公用中间账,加速计算效率区进行数据裁剪,大幅降低单key的Scan范围
12、USerl在历史某时刻“用户7d付款总金额”特征值2023-05-1003:05:56detailhourdayhourdetail3点粉一5分:563号03点4号9号10号03点3点0分5分:56mncemr-m.刘首维字节跳动推荐架构工程师刘方奇字节跳动推荐架构工程师FLl呸二)实时FORWARD未来字节推荐面向下一代特征工程架构演进之路FIJNh%一FORWARDE未采mmemrenul07业务挑战02新一代推荐特征生产范式03数据湖在字节推荐样本的应用04基于Hink的流批一体样本入湖F(S端涉来CXB3rWm. no w01业务挑战JFLINK2实时FdRWxwB未来点击进入直播间中
13、本地生活直播.团购一经险同城关注商城推荐团购经哈同城关注Hfe城推荐HIPHOP工淋浴器全套被指DiSS周杰伶MC热狗登上热搜第一!大桥49y289v3i6i.SSHHi:wgrnH秒杀品网汉斯格雅枪灰色冷热沐浴1万人收藏体然我行我素优勒书年:架可移动小推车书才己鲁2.7J5件Feeds电商FLJN.C实电+FORWARD!E未来字节推荐场景下持续面临的挑战业务规模极大,DAU 6亿+, PB级数据) 视频除,电商,直播,本地生活多场景 那模!Q I 性不同的场景对特征工程存在特化需求)高效支持抽象通用能力,提升特征开发人效1 1用户在特征生产的全周期体验Z(稳定性,性能和表达能力持续提升FL
14、lN4?实时FORWARD未来02新一代特征推荐生产范式推荐特征生产新一代架构图nFLlNKFORWARQ4tgfam实时未来ET,AIAMLSQLcodeValidationCompilerPfcinner-算子编排rScheduler作业调度DAG化管线编译I-SQLPythonSDKIPythonTableapiMiniTest流批推断作业优化meta88metagraphonlineFeatureStoreDataSourceStreamingUnifiedCatalogofflineBigTable1.ake立即上手WhyPythonSDK高效开发快速验证FLIN取U)实时FORWA
15、RD未来Mn0)&(view.add_cart_delta0).feature_compute_function(UDFCounter(),Behind the scene:llnified Compilerargs-_).add-sliding-window(sizes=2,6junit=TimeUnit.MINUTE(5).add_sliding_window(sizes=3,6,12,unit=TimeUnit.HOUR(1)fg.batch_event_time(server_time”用mestamp.TIMESTAMP_SECoND)fg.set_sinkfeature_store
16、_sink)StreamingJobBatchJobUnifiedCompilerinPythonSDKFUNKCFORWARD实时未来mcenn管线化编译流批属性逻辑算子/计算图定义计算图校验编译流程接口CompilePhase构建F揣媪鬻来特征生产Planner一什么是特征生产Planner负责将特征生产业务前端传入的作业DSL,经过解析和校验后,进行领域特化的算子编排和优化,产出相对最优的计算引擎可执行的若干任务的执行计划的组件JjE计算PlannerFIJN取CFORWARD实时E未来mCemrTn迭代思路与目标已有成果支持纯SQL算子编排全局统计类特征全部onPlanner,编译产出
17、最优FlinkSQL基于FlinkSQL实现流批一体,流式SQL负责高时效特征生产,批式SQL负责特征数据仓库链路和小流量测试资源收益超过50%,节省4w+Core当前问题窗口类特征计算依赖自定义算子,有大量自定义算子技术积累,需要复用窗口类特征的计算Pattern相对固定,计算图缺乏扩展,表达能力有限配置复杂度高,自定义计算逻辑较多,流批配置差异较大作业存在优化空间,调优门槛较高方案与目标我们在窗口类特征构建Planner,接管相关作业执行计划的生成实现SQL算子和非SQL算子统一编排全面提升Planner的理解能力,提升计算逻辑描述能力配置归一,实现计算侧的流批一致作业自动优化,降低调优成
18、本E计算PlannerFLINMm实时FORWARD未来mam*RnLRSQL-Like流批统算子Lib管理业务算子库业务特化优化规则通用优化规则FlinkStreamSQL有效字段裁剪CaIcMergeView复用冗余节点移除冗余计算函数移除窗口合并窗口级联Fmer节点推断FeatureTable相互转化MiniBatchSt二阶段聚合推断Shuffle消除推断窗口”计算推断DSLParserDSLVaIidator元信息解析基本属性流批统一PlannerDSL层子图拆分/合并CBO/RBOft化FlinkBatchSQLDAGSQL/UDF算子统一编排器元信息管理流批一致性相关信息基本属性
19、多阶段优化流批一致性陋优化执行计划优化与翻译流批统一执行计划构建层FlinkBatchDataStream执行弓i擎层FlinkStreamDataStream运行时统计信息特征定义RuntimeCodegen基本信息流批一致性相关信息FUnCtion定义UnifiedCatalogSparkBatchRDD/DataFrame统一的PlannerDSL设计原则 以FiiIlkSQL/HiveSQL为基础 无侵入式扩展语法 推荐相关概念作为语法成员 增加非SQL算子的描述能力 流批计算的描述完全一致特征计算PlannerParSer实现 Flink汹基于JaVaCC实现 HiveSQLSTAn
20、tlr4实现不修改已有语法文件(CREATEFUNCTIONCREATEASouFcet();SinkJ():FLINKCFORWARDfiisaboB实时E未来mnmevsi语法扩展支持创建FeatureFunction指定到特征计算专用UserFunction支持CreateFeature来创建特征支持将Feature转换成表流批一致性常规FIinkSQL语句流批对齐CreateFeature流批语法相同流式批式Function通过CreateFeatureFunction屏蔽fromcom.x.x.,;*-o-w!CREATEdow_counter_1TIME_WINDOWS(INTER
21、VALwindow_counter(delta)view1,INTERVAL);event_nameFEATUREfeatur-viwWindOW_counter_1;Sinktfeature_viewJliE计算 Planner计算描述能力优化FLlNK头时FORWARD E 条来m cenr-m.关键工作 Feature &Table 互转能力多子图优化算子情性优化&翻译Source To Leaf 构建 DAG/UM7算子统TSfit绿色为自定义算子tfeSQLj(,蓝色为FeaturaoTabIe的专用算子白色为起止算子关键工作SQL算子/UDF算子统一编排Feature&Table互
22、转能力绿色为自定义算子红色为SQL算子蓝色为FeatUreToTabIe的专用算子Zj.渐变为PIanner入的转换算子白色为起止算子RootToLeaf构建DAGFLlNMLP 实时FORWARD 未 来计算描述能力优化关键工作 SQLM子/UDFM- TSHP, Feature fiable53t多阶段子图优化算子情性优化&翻译Root To Leaf 构建 DAG特征Planner1.eafToROOt优化DAG&算子翻译绿色为自定义算子:k红色为SQL算子;蓝色为FeatUreToTablel专用算子渐变为Planner自动插入的!专换算子白色为起止算子特征计算Planner的计算流批
23、统一FLINKrU)FORWARD实时E未来mcer-m.为什么要做这件事?特征生产领域特征调研批式执行逻辑 尽可能对齐流式,算子FUnCtiOn最大程度复用小流量测试不能很好地模拟线上行为关键解法:批式执行时构建Tinle-DataMiXed数据流 Flink在TaSk层面处理的是Data-Time-(Status)的混合序列 我们在OPerator层面模拟Time-DataMiXed数据流的执行效果 模拟时间在系统中的推进,控制时间的流动Key=3,Key=2,Key=2,Key=2sKey=2, Key=1,Key=1,Key=1,Data=454Data =NiIData =NiIDa
24、ta=14Data=77:Data =NiIData=145Data =145TS=312TS=MAXTS=1024:TS=MAXTS=1051核心问题批式执行不能很好地对齐流式时间属性基于时间的自定义窗口Timer触发逻辑难以模拟特征计算PlannerFLlNKrr)FORWARD血2O2S实时E未来mmemretml基于DataStream的计算流批统一关键工作实现TimeSimUIationOPeratOr,Planner按需插入Sort节点和Tra计I5Ianner转换相关节点为时间模拟专用节点节点翻译使用TimeSimUIationoPerator收益-DSL到算子代码,计算流批统一
25、线上小流量测试全部使用该能力,大幅提升用户体验插入自动插入插入插入TSTraitSimulateOperatorwithdfi插入TSTrait自动插入sort自动插入sortCertainSQLOperatorConvertSQLToUdfOperatorExternalSortby(key&ts)OperatorExternalSortby(key&tsTimeSimulateTimeSimulatetDperatojvithudiOperatonwithudiExternalSortby(key&ts)Operator小数据量线上场景试点中TimeSimulateOperatorwithudfOperatorFLINKf Q 实时FORWARD未 来HASBAEJ)图耽 MfAML流批一体的特征生产实践我们是如何实践流批一体的?CatalogServicePythonSDKRethink流批一体 流批一体更多是手段而不是目的 实现业务上的流批一体,给用户流批一体的体验 借助引擎的