携程大数据平台总监张翼 - 携程Spark算法平台及其应用

2020-02-27 385浏览

  • 1.携程Spark算法平台及其应用 2016-12-10
  • 2.公司简介 携程旅游网成立于1999年,总部设在上海, 目前有员工30000余人 2003年12月9日在美国纳斯达克成功上市 携程拥有超过2.5亿的注册会员 酒店预订:在全球200多个国家和地区拥有 超过120万家酒店的会员酒店 机票预订:产品覆盖全球六大洲5000多大 中城市 旅游度假:线路产品覆盖超过100多个目的 地国家和地区;2015年大陆地区度假产品 的服务人次超过2000万
  • 3.我的介绍 浙江大学本科,硕士毕业 近10年工作经验,5年大数据架构的经 验 之前在eBay中国研发中心和大众点评工 作过,从0开始组建团队,搭建起大众 点评数据平台的基础架构 目前是携程的大数据平台总监 关注大数据系统领域的发展,对Hadoop, HIVE,HBASE,Spark,Storm等有所研 究,致力于大数据系统和业务场景的结 合和落地,使数据和系统都能够对业务 (Business)产生价值
  • 4.目录 背景介绍 算法平台的功能 算法平台的架构和实现 算法平台的应用 算法平台未来的方向
  • 5.平台缘起 大背景:随着携程的业务发展,各个BU的机器学习的应用越来越多,训练 的数据集也越来越大,单机的模型训练方式很难满足实际的需要,所以越 来越多的同学会考虑使用Spark进行训练 直接使用Spark进行模型训练的难点(特别是对于非工程背景的数据科学 家): •  入门时间较长 •  环境设置麻烦 •  程序调试困难 •  关注太多细节 •  独立开发,经验,代码无法分享
  • 6.平台基本目标 服务工程经验较少的数据科学家 •  无需编程,模块拖拽完成模型训练处理流程的构建 •  执行过程可视化 •  方便地数据探索功能 覆盖机器学习应用的整个生命周期 •  覆盖模型训练,导出,线上服务整个机器学习应用的生命周期 系统开放,高度可定制 •  简便地模块定制,分享(适合工程能力强的资深用户)
  • 7.目录 背景介绍 算法平台的功能 算法平台的架构和实现 算法平台的应用 算法平台未来的方向
  • 8.平台功能简介 整个平台由以下4个功能模块构成: •  模型训练 •  创建模型训练流程(Pipeline) •  运行和调试模型训练流程 •  数据探索 •  模块定制(高级) •  训练结果导出 •  线上服务的开发支持
  • 9.机器学习Sample Case 使用协同过滤算法进行电影推荐(Data from Ne5lex) 1.  训练数据(用户对于电影的评分数据) 2.  分流(训练集 / 测试级 7:3) 3.  模型训练 4.  模型检验
  • 10.模型训练 – 流程创建 1. 点击相应模块,拖拽构成整个训练的流程
  • 11.模型训练 – 流程创建 2. 填写相关模块的参数
  • 12.模型训练 – 模块详解 模块分为两种类型: •  Transformer – 输入是1或多个DataFrame,输出是1或多个DataFrame •  Model Trainer - 输入是1或多个DataFrame,输出是一个Model •  特殊模块 Model Transformer — 输入1个模型, 1或多个DataFrame,输出 1或多个DataFrame
  • 13.模型训练 - 训练模型的运行和调试
  • 14.模型训练 - Scala和Python自定义模块
  • 15.模型训练 - 数据预览 对于每个模块输出的DataFrame,我们都提供了数据预览和用户自定义 SQL(SparkSQL)查询的功能
  • 16.模型训练 - 数据探索 数据绘图:集成Pandas,matplotlib
  • 17.模块定制 模块代码: •  一段普通的Spark的代 码 •  参数使用特殊的占位符 •  参数信息自动识别为配 置项 * 如果模块需要保存,则 相关逻辑必须封装为 spark.ml包中Transformer 和EsImator的形式
  • 18.训练结果的导出 导出的训练模型会保存在HDFS相关的路径下
  • 19.训练结果的导出 查看已经保存的模型
  • 20.线上服务开发的支持 提供Jar包,用户只要在maven中 添加依赖,就能够使用相关的 API 开发步骤: 1.  初始化 2.  将输入数据转化为DataFrame 3.  Load起已经保存的 Transformer和Model 4.  按照顺序调用Transform和 predict方法
  • 21.目录 背景介绍 算法平台的功能 算法平台的架构和实现 算法平台的应用 算法平台未来的方向
  • 22.总体架构 start Web Server run Zeppelin ThriW Server start Spark-Repl SparkIMain interpret create SparkContext YARN Cluster
  • 23.总体架构2 每个训练任务(称为pipeline)会单独起一个Zeppelin的ThriW Server 初始化(Lazy): •  Web Server调用Marathon(Mesos)的Res5ul API启动Zepplin ThriW Server •  Zepplin ThriW Server会在YARN集群中创建一个常驻的Spark任务 执行: •  Web Server中集成了Zeppelin Client,我们先将Pipeline和Module映射成为 Zeppelin的Note和Paragraph,然后就会被提交到Zeppelin的ThriW Server执 行 •  Zeppelin的ThriW Server使用Spark-Repl(Spark的交互界面就是使用这个实 现的),将scala的代码编译后提交到常驻在YARN集群的Spark任务中执行
  • 24.执行引擎 - Docker 负责Zeppelin ThriW Server的生命周期的管理 Web Server API API 执行引擎 Host Machine Container1 Container2 … Hive / Spark / Hadoop Env Marathon Mesos HM 2 …
  • 25.执行引擎 - Zeppelin Spark IMain Spark Interpreter Web Server Zeppelin Client RemoteInterpreterServer Notebook 将CML Studio的pipeline和module 转换为zeppelin的Note和paragraph ZeppelinThriWServer PySpark Interpreter ThriW Server SparkSQL Interpreter ……
  • 26.技术选型的考虑 选择Docker和Zeppelin的原因: •  Mesos提供了方便的资源管理的功能 •  Marathon提供了简便的应用管理的功能 •  Zeppelin则提供了一个Spark交互执行的引擎 由于人力资源的原因,使我们选择使用开源产品或是在开源项目的基础上 进行2次开发 •  整体加速了项目的进展 •  在二次开发的过程中锻炼了团队的技术能力
  • 27.经验分享 •  不断的打磨产品 •  目前的产品形态经过了几个不同版本的演化 •  产品的易用性和稳定性是它的生命,关注使用细节 •  Example1 最初版本每个模块的结果都会落地,每个模块的输入输 出都是需要用户手动填写的 •  Example2 批量结果导出的功能在最初的版本中不存在,只提供用 户手动导出单个模块的训练结果的功能 •  Example 3 数据探索的功能是根据用户的需求加入的
  • 28.技术经验和踩过的坑 技术经验分享(具体技术点) 1.  Python代码模块的加入:将Input的Dataframe注册成为临时表 2. Spark资源的释放:Zeppelin的后端获取到当前Zeppelin ThriW Server的状 态,如果状态超过一定时间为NO_OP,则关闭它 3.  XGBoost模块加入过程中的经验 •hcps://github.com/dmlc/xgboost/issues/1276nWorkers的值不能大于可用的核数,否则会出现Hang住不动的情 况 •hcps://github.com/dmlc/xgboost/issues/1284
  • 29.目录 背景介绍 算法平台的功能 算法平台的架构和实现 算法平台的应用 算法平台未来的方向
  • 30.机票 - 产品智能推荐 用户在携程上购买机票后, 携程会给他们推荐一些机票 的附加产品 我们根据 •  用户历史的购买行为的 信息 •  用户画像的信息 •  航班本身的信息 来预测用户购买这些产品的 概率,从而来决定是否默认 帮用户勾选上某些产品
  • 31.机票 - 客服话务量预测 根据 •  天气(主要) •  航班的信息 •  其他信息 来预测需要的客服人员的 数量(每周一次) 根据预测的客服的需求量 进行客服的自动排班
  • 32.度假 - 刷单行为的识别 1 度假平台上零售、代理产品的刷单比较猖獗,据估计非自营刷单占到订单 整体的30%左右。这些刷单产生了严重的负面影响,亟待清理。 全全5分5分好好评评 评评论论无无图图 评评论论均均来来自自PCP端C端 点点评评时时间间均均在在工工作作时时间间 典典型型刷刷单单 总总有有差差评评 评评论论带带图图 评评论论AAPPP、P、PCP都C都有有 点点评评时时间间分分散散 正正常常产产品品
  • 33.度假 - 刷单行为的识别 2 携程外网 基础数据 人工正例 恢复销 量点评 机器学习 规则系统 申诉渠道 人工负 例 刷单惩罚平台 在刷单识别项目开展初期,通过总 结业务经验、对各维度数据进行统 计分析,拟定了一系列规则来识别 刷单,取得的一定的进展 将繁复的人工规则设定、阈值调节 工作转化为新特征的整理,并通过 各个渠道积累正例和反例 通过分类(主要使用XgBoost)的 方式训练出自动判别刷单行为的模 型
  • 34.目录 背景介绍 算法平台的功能 算法平台的架构和实现 算法平台的应用 算法平台未来的方向
  • 35.未来的方向 近期的工作: •  进一步加强数据探索的功能 •  通用模块易用性的加强 •  集成Cross ValidaIon的功能 •  适配Spark2.0 未来的方向: •  数据流功能的通用化,支持Spark之外的Module •  项目开源
  • 36.WE ARE HIRING! yi.zhanga@ctrip.com 对大数据技术感兴趣 “程序员” 有产品思维的“攻城师” 欢迎加入我们! 共同打造业界领先的数 据平台和数据应用! 通过数据的技术让更多 人的旅行更加精彩和幸 福!
  • 37.THANKS