本次演讲描述了将一个大型随机森林分类器从scikit-learn迁移到Spark的MLlib。我们将训练时间从2天缩短到2小时,减少了失败的运行,并使用MLflow更好地跟踪实验。Kount为在线信用卡交易等数字交互提供了确定性。我们的评分之一使用随机森林分类器,每棵树有250棵树和100,000个节点。我们使用scikit-learn使用6000万个样本进行训练,每个样本包含超过150个特征。内存需求超过750 GB,耗时2天,并且对数据库中断或训练执行不太可靠。为了将工作流迁移到Spark,我们使用HDFS构建了一个6节点集群。这提供了1.35 TB的RAM和484内核。使用MLlib和并行化,我们的随机森林的训练时间现在不到2小时。培训数据保存在我们的生产环境中,这需要一个部署周期来将本地开发的代码移动到我们的培训服务器上。
新的实现使用Jupyter笔记本进行远程开发和服务器端执行。MLflow跟踪所有输入参数、代码和git修订号,而性能和模型本身作为实验工件保留。新的工作流对服务中断具有鲁棒性。我们的培训管道从Vertica数据库开始。最初,这个连接需要8个小时才能完成,任何问题都会导致重新启动。使用sqoop和多个连接,我们在45分钟内提取数据。旧的技术使用易失性存储,每次实验都需要数据。现在,我们一次从Vertica提取数据,然后更快地从HDFS重新加载数据。虽然这是一项重大的任务,但转移到Spark生态系统将临时和实际操作的培训过程转换为完全可重复的管道,以满足可追溯性和速度的监管和业务目标。
乔希·约翰斯顿(Josh Johnston)领导Kount的人工智能科学团队打击数字欺诈。他的算法在不到250毫秒的时间内运行,每天保护数亿美元的支付交易。此前,他为DARPA大挑战建造了自动驾驶汽车,爆炸物处理机器人的自治,以及VR和AR的科学可视化。他拥有卡内基梅隆大学机器人硕士学位和杜克大学电气和机械工程学士学位。