半小时,将你的Spark SQL模型变为在线服务

讲师:
王太泽
第四范式特征工程数据库负责人
曾在百度担任资深研发工程师
一直致力于解决机器学习模型从离线到在线特征一致性问题和性能问题。

时间:
6月23日 19:00

直播介绍
SparkSQL在机器学习场景中应用模型从批量到实时面临的问题

SparkSQL 转换成实时执行成本高
离线特征和在线特征保持一致困难
离线效果与在线效果差距大
我们是如何解决这些问题
相对传统实现方式我们优势
SparkSQL实时上线demo

展开查看详情

1.半小时,将你的Spark SQL模型 变为在线服务 第四范式特征工程数据库负责人-王太泽 第四范式(北京)技术有限公司 Copyright ©2020 4Paradigm All Rights Reserved.

2.第四范式介绍 第四范式 王太泽 第四范式成立于2014年底,是国际领先的人工智能平台与技术 第四范式特征工程数据库负责人 服务提供商,公司以“Empower AI Transformation and Advance AI For Everyone”为企业愿景,旨在让AI成为驱动社 曾在百度担任资深研发工程师 会进步、企业增长的引擎。 在第四范式一直致力于解决机器学习模型从离线到在线特征一 目前,第四范式已为金融、零售、能源、医疗、制造、互联网、 致性和性能问题 媒体等行业成功落地上万个AI应用,助力各行业企业的AI创新 变革。 Copyright ©2020 4Paradigm All Rights Reserved.

3. 目录 01 | SparkSQL在机器学习场景中应用 02 | 当我们要上线实时模型遇到的问题 - 多表数据组织没有一个离线到在线的映射 - SQL 转换成实时执行成本高 - 离线特征和在线特征保持一致困难 - 离线效果与在线效果差距大 03 | 我们是如何解决这些问题 04 | 相对传统实现方式我们优势 05 | 为什么不使用传统数据库去实时执行SparkSQL 06 | SparkSQL实时上线demo 07 | 下期预告 Copyright ©2020 4Paradigm All Rights Reserved.

4.SparkSQL在机器学习场景中应用 SparkSQL在特征变换主要用于以下几点 1. 多表场景,用于表之间拼接操作,比如交易信息表去拼接账户表 应用场景 2. 使用udf进行简单的特征变换,比如对时间戳进行hour函数处理 反欺诈场景 新闻推荐 商品推荐 3. 使用时间窗口和udaf进行时序类特征处理,比如计算一个人最近1天的消 费金额总和 管道检测 信用评分 … 特征变换 SparkSQL 模型训练 机器学习引擎 SparkSQL很好的解决离线模型训练特征变换的问题 Copyright ©2020 4Paradigm All Rights Reserved.

5.当我们要上线实时模型遇到的问题 多表数据离线到在线 SQL转换成实时执行 离线特征和在线特征 离线效果达标但是在 怎么映射 成本高 保持一致困难 线效果无法满足业务 需求 Copyright ©2020 4Paradigm All Rights Reserved.

6.多表数据离线到在线怎么映射 比如我们在反欺诈场景,会存在交易表,卡信息表,账户 信息表,然后离线sparksql对这些表进行拼接然后再做特 征变化是非常容易,但是如果要在实时模型推理场景做特 征变换该怎么做了,是按照交易表,卡信息表,账户表分 类,还是干脆把他们合成一张表,给在线用了?按照离线 分表,没有一个能够实时在线执行的sql存储,合并在一起 有可能会导致拼错结果 Copyright ©2020 4Paradigm All Rights Reserved.

7.SQL转换成实时执行成本高 转换成本高主要有几个原因 1. 数据科学家前期会考虑模型效果,会做很多特征,sql 规模可能是几千代码,可读性也很差 2. 业务团队开发需要了解数据科学家写的sql,然后转换 成一个高性能版本,读懂特征脚本困难,转换成本高 3. 数据科学家和业务团队开发直接沟通也会在理解不一 致的地方,会频繁来回去沟通,互相依赖 4. 时序特征开发和保持一致更复杂,因为会处理多行数 据,出现一致性问题概率更大 5. 完成整个转换开发所需时间都是以半年时间算起 Copyright ©2020 4Paradigm All Rights Reserved.

8.离线特征和在线特征保持一致困难 离线和在线特征很难保持一致 1. 不是同一套代码,很多边界问题难以对齐,比如左边 图示,一个count函数,sql的count会不包含null,但 是业务开发手写count可能就会包含null,导致结果不 一致 Copyright ©2020 4Paradigm All Rights Reserved.

9.离线效果很棒在线却无法业务需 求 因为特征不一致,让在线模型效果衰退,最终导致整个模型无法满足业务团 队的需求 在一定召回率的情况下的准确率 Copyright ©2020 4Paradigm All Rights Reserved.

10.我们是如何解决这些问题 通过特征工程数据库让SparkSQL 的能力得到了补充 1. 以数据库的形式,解决了离线表到在线的映射问题, 我们对前面给出的答案就是离线表是怎么分布的,在 线也就怎么分布 2. 通过同一套代码去执行离线和在线特征转换,让在线 模型效果得到了保证 3. 数据科学家与业务开发团队的合作以sql为传递介质, 而不再是手工去转换代码,大大提升模型迭代效率 4. 通过llvm加速的sql和in-memory的存储,能够保证sql 能够在非常低延迟返回结果 第四范式架构实践 Copyright ©2020 4Paradigm All Rights Reserved.

11.相比传统实现方式我们的优势 解决在线模型效果衰退问题 大大提升模型上线的效率 传统模式在线效果衰退到60分,而我们能够到达90分 标准化了数据科学家和工程团队合作模式,让数据科学家专注 模型效果更优化,让工程团队更加关注模型打分后在业务上的 问题 Copyright ©2020 4Paradigm All Rights Reserved.

12.为什么不使用传统数据库去实时执行SparkSQL 执行引擎不是同一套代码 没有面向机器学习场景特征变换做优化 传统数据库的sql执行引擎与sparksql的执行引擎不是同一套代 第四范式的特征工程数据库是面向机器学习场景优化的,在对 码,就会导致一致性问题 比传统数据库上面执行效率有非常大的优势 时间窗口50列sum操作(毫秒) 6 5 4 3 2 1 0 tp50 tp90 tp99 tp999 Copyright ©2020 4Paradigm All Rights Reserved. 窗口条数1000 窗口条数2000 窗口条数3000

13.快速将spark sql 模型变成实时服务demo 整个demo200多行代码,制作时 间不超过半个小时 1. train_sql.py 特征计算与训练, 80行代码 2. predict.py 模型推理http服务, 129行代码 Copyright ©2020 4Paradigm All Rights Reserved.

14.下期预告 第四范式自研sql引擎对sparksql 试用申请,回复fedb拉入群进行 Apache Spark中国技 加速优化 试用交流 术社区 将给大家分享第四范式如何通过数据库执 行引擎加速sparksql执行效率一倍提升 Copyright ©2020 4Paradigm All Rights Reserved.

15.Thanks. 商务咨询 TEL 媒体合作 contact@4paradigm.com 400-3520-3325 pr@4paradigm.com 北京总部 上海总部 深圳总部 新加坡总部 北京市海淀区上地东路35号颐 上海市浦东新区浦东南路1111号 深圳市南山区文化中心区文心二路 Fourth Paradigm Southeast Asia 泉汇C座写字楼303室 新世纪办公中心15层 海德二道茂业时代10层10A单元 PTE LTD 1 Fusionopolis Place, #03-20 Galaxis (West Lobby), Singapore, 138522