基于机器学习场景如何搭建特征数据管理中台?.docx
-
资源ID:73282125
资源大小:21.15KB
全文页数:10页
- 资源格式: DOCX
下载积分:14.8金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于机器学习场景如何搭建特征数据管理中台?.docx
基于机器学习场景,如何搭建特征数据管理中台?11月30日,2021亚马逊云科技re:Invent全球大会,即将浩大开启!2021re:Invent十周年度十分活动,内容的饕餮盛宴,涵盖产品、行业、社区等专题!立即预约免费学习60节公开课投票页面点击讲师头像|陈迪豪第四范式资深架构师编辑|Jane出品|AI科技大本营IDrgznai100本文为CSDN即将推出的?新战场决胜中台?专刊的第5篇文章。一、机器学习场景与高性能特征管理中台理想的机器学习场景是给到数据训练模型后就能直接上线效劳。然而真实的AI应用落地经过非常复杂并不是有数据、懂算法就可以了。首先建模具有一定门槛建模科学技术人才除了要懂机器学习算法还要知道熟悉建模业务场景会使用SQL、Python做数据处理、特征拼接、支持时序特征建模完成到上线要保持在线与离线一致性实现高性能硬实时预估效劳工程上涉及特征监控、读写别离、实时特征计算这些情况在真实的AI应用场景中都要考虑到。以我们合作的某银行事中反欺诈场景下的性能要求为例首先实时性要求P99响应时间在20毫秒以内比大众在业务里统计的平均延时要小很多只有1%的时间可以在20毫秒以上二是建模特征非常复杂在线以及离线的模型特征超过1000个三是窗口特征需要可以在实时场景中生成四是模型迭代周期短需要定期上线更新。在这种情况下对企业特征管理中台有什么要求1、存储以及计算必须是高性能的2、对离线特征的支持要与在线保持一致性3、训练得到的模型要支持端到端的预估4、支持单行以及时序特征5、预估效劳支持分布式高可用。其中为什么强调特征的离线在线一致性用开源软件一般可以做到的是离线积累一局部数据然后用开源的深度学习框架训练模型模型上线时把模型加载进来但是机器学习除了模型预估还包括前面的处理经过每个离线特征要支持在线预估都需要花几倍时间进展维护以确保离线数据到在线预估的特征数据是一致的。我们怎样保证离线在线一致性呢通过一个统一的特征描绘语言用户离线环境中用这种统一特征描绘语言进展表示与建模在线环境中直接使用这个建模脚本来上线。它的根本逻辑架构1、离线阶段是模型训练阶段使用分布式存储存储原始数据大数据处理引擎获得数据后进展划窗窗口有不同的聚合计算逻辑通过聚合计算得到一系列特征这种特征可能是跨行以及跨表的最后生成的数据处理经过特征签名可以直接给深度机器学习框架做训练。这是离线的阶段将数据处理局部翻译成Spark以分布式任务的方式运行。2、在线阶段肯定不能依赖Spark做实时预估只可以使用流式接口实现近实时的计算但因为我们有一个统一的特征描绘语言所以可以保证特征计算生成的代码与离线阶段是一样的这样也就保证了离线在线保持了计算逻辑的一致性。3、特征抽取的数据怎么来离线阶段可以通过读分布式存储然后通过划窗来获取AI特征管理中台中的存储组件包括一个实时特征时序数据库通过这个时序数据库可以获取在线的窗口数据然后实现一个高性能的模型评分效劳。二、特征管理中台的计算以及存储核心剖析这局部将主要介绍整体架构以及计算、存储两大引擎。如上图所示整体架构的左侧是用户接口用户可以用控制台、命令行、SDK的方式访问核心组件。底层是硬件包括HDD、SSD、网卡等中间层是特征管理的两个重要组件FE特征计算与存储引擎在线有超高性能全内存时序数据库得到的数据可以给自研的机器学习框架使用或给TensorFlow等开源的框架使用。我们的特征描绘语言是什么其实是针对机器学习场景中定制的DSL有针对这种语法的编译器以及解析器。语法可以参考下面的例子第1行代码表示创立一个窗口通过窗口的参数可以保证后续每一行的特征计算都在一个窗口数据内在窗口数据内可以做很多复杂的计算。第3行是单行计算特征很简单像大众用过的Spark或者Python都包含了很多特征计算如内置支持日期处理像条件表达式这类复杂的计算大众可以用SQL或Spark。另外我们自己跟标准窗口不一样的局部是根据科学家反应设计跨表的窗口计算、拼表计算特征、特殊拼表特征可以以在DSL中描绘。为什么要设计DSL首先机器学习产品中数据处理的逻辑是固定的它跟SQL不一样。SQL是通用数据处理语言很多方法是标准SQL中没有的对条件表达式的处理或者某种时间特征的计算都是通过自定义来支持的。通过这种描绘语言生成一个特征可以保证在线也可以使用。第二种接口是SQL。SQL是目前最流行的数据处理语言可以对全表做Partion分区分区后可以排序或做聚合计算可以以做全表的数据处理但标准的SQL是没方法上线的有很多支持SQL的系统如MySQL、Spark、Hive等固然支持了丰富的数据处理逻辑但都是不可以直接上线的。为什么SQL上线这么困难了因为SQL的聚合计算可以是当前行可以以是当前一段时间的窗口数据实际上假如在SQL里对当前行以后的数据做聚合计算就会造成差数据穿越问题。用一个机器学习场景中的例子进展解释你要计算当前交易是否属于欺诈交易获得的时间是在这个时间以前某一天的时间以及当前时间以后的某一个时间进展特征计算但在实际上线时是没方法获取将来数据作为特征计算的这种建模时就出现的穿越特征也会严重影响模型上线后的效果。这种特征可以通过SQL的窗口函数来获得我们称之为穿越特征也就是在特征计算时是不应该引用当前行以后的数据因为在真实线上预估中无法获取比当前行以后的数据。在我们的特征管理平台中对于时间窗口的定义就限制了following参数必须是CurrentRow不计算当前行以后的特征。在这种限制的情况下在线预估时就确保了窗口数据不会超过当前行前面的数据可以通过时序特征数据库来做聚合这种方式也保证优化后的SQL是符合机器学习在线预估的要求的可以直接上线到实时预估效劳中。我们对SQL还有一些定制化拓展例如对数据处理后的列可以做连续或离散的特征签名计算这是针对稠密以及稀疏特征常用的签名方法。因为机器学习的输入数据不一定是大宽表推荐系统中的输入一般都是非常稀疏离散的这种稀疏数据构造在SQL中是无法表示的我们通过语法的拓展让它直接生成样本文件这种样本文件本身支持稀疏以及稠密的格式可以直接对接开源的机器学习框架。除了面向用户的特征描绘语言特征管理中台还支持AutoML自动特征工程用户只需输入原始的多个表数据AutoML程序可以对它进展自动分组与自动特征挑选给出组合后的特征效果的评估在一定的计算资源下进展迭代优化最后生成SQL以及特征描绘语言配置在线效劳可以以直接使用导出的配置来上线。在计算引擎中还有非常多的功能优化点1、支持多行时序特征不只是针对单行计算还可以对多行做聚合2、支持强类型检查支持Map、List复杂构造以及Lambda表达式3、实现LastJoin功能实现超高性能的多表拼接功能4、实现定制化跨表Window功能实现高效的跨表划窗特征生成什么是跨表Window就是划窗的主表数据跟获取窗口数据的副表可以不是同一个表5、支持TensorFlow、LightGBM以及自研究机器学习机器等6、预热编译和内存编译器使用Javac的编译优化7、支持动态加载UDF、UDAF等用户自定义函数以及功能。计算性能也有很多优化1、优化Spark的Window实现支持CodeGen函数和跨表窗口计算2、同一进程内的内存编译优化充分利用Java编译器优化生成高性能bytecode3、支持特征级别的异常隔离用户在同个窗口的多个特征计算不会因为数据异常导致特征失败也不会影响其他特征4、对表达式也做了重写优化常量表达式可以直接交换对重复计算没有结果的表可以做提早剪枝并且复用中间表达式的变量5、在反欺诈机器学习场景中一样特征下与PySpark、SparkSQL相比提升了10倍性能6、支持RDMA以及FPGA硬件加速对生成样本做高性能压缩高性能版本比纯软件版本提升了3倍性能。上面提到的都是计算核心的组件再讲讲实现高性能、高并发、时序优化的存储核心自研的全内存分布式时序数据库。为什么是时序数据库因为我们在机器学习场景中很多特征都是基于时窗聚合而成的窗口的特征就要求数据按时间序列进展排序以及计算。对于常见的机器学习场景例如每笔交易都需要解析前序交易的情况IoT的场景下需要提早获得不同设备在不同时间段类的数据信息所以面向AI的时序数据库在机器学习场景中非常有价值。我们的时序数据库还支持多维度的查询以及聚合支持常见的按行数的数据淘汰策略以及TTL。在特征管理中台中还有基于英特尔傲腾持久内存AEP的优化这是一种全新的存储技术介于内存以及SSD之间的非易失性的存储跟写到SSD一样数据不会丧失同时可以把它当成内存来用。AEP存储的本钱比内存低很多但是会像内存一样优化实现高性能使用AEP优化以后性能可以进步3倍以上。基于这种新的存储介质可以实现根据热度的分层存储对非常热的数据可以把表放在全内存里对没那么热的数据可以放在AEP或硬盘存储中。三、特征管理中台在消费环境的应用理论在一个真实场景B2CAntifraud业务中交易表原始数据表有2张交易表以及7张属性表。它的数据量非常大总体特征超过800个特征包括基于卡号维度做窗口聚合等数据或基于设备维度来定义窗口大小以及时间段。模型训练需要的根底特征包括交易特征、卡特征、客户特征、商户特征和这几个特征的穿插组合。时序特征包括每张卡以及每个设备维度所统计过去交易的最大值、最小值、数量、是不是第一次交易等。最后用到的单表有5000万数据生成的特征有19亿维为什么这么高维因为用户的设备ID、所在的城市都会离散化为了防止冲突会用使用超高维稀疏值来存生成的总特征就有19亿维需要3T内存来计算。在特征管理中台还包括不同类型的数据以及特征脚本的管理支持远程调试环境支持单机的Notebook运行支持全流程的一键上线上线后预估接口是原始数据表输入不需要在原始输入上再做数据的预处理以及特征抽取处理。对此我们还提供了Python客户端用户可以写Python来执行特征抽取逻辑可以以使用支持的SQL语法后面可以基于这个特征描绘脚本来进展模型训练以及应用上线了。同时我们也支持TensorFlow的分布式训练以及内部机器学习框架的分布式计算模型部署只需要一个简单的命令部署成高可用的模型预估效劳可以看到在线预估的输入数据都是原始的表数据训练时输入表有多少列这里输入多少列就可以最后预估后返回特征抽取已经模型预估的结果。?新战场决胜中台?专刊已发布文章链接平安科技智能认知的“中台*本文为AI科技大本营原创文章转载请微信联络1092722531精彩推荐点击浏览原文或者扫描文首贴片二维码所有CSDN用户都可介入投票以及抽奖活动参加福利群每周还有优选学习资料、技术图书等福利发送推荐浏览你点的每个“在看我都认真当成了AI