模型建设是一个复杂的过程,一般需要几个或十几个专业开发人员,耗费几个月乃至大半年才能够完成一个模型建设。如果有新的数据、样本更新,就需要重新计算分析才能完成。此外很多公司和机构并不具备独立建设模型的能力,因此会委托第三方机构帮助其建立模型或者直接使用一些通用标准模型。然而不同企业机构的业务场景不同,流程标准和需求目标有差异,直接使用通用标准模型往往不尽如人意。
越来越多的企业希望从积累的海量数据中挖掘出业务价值,因此开始组建自己的算法团队。一方面,避免模型建设外包时,带来的隐私数据泄露的风险;另一方面,能够构建专属业务的模型,并且可以根据业务、需求以及数据的更新及时进行更迭。
为了助力企业解决建模难、升级更新慢、模型管理复杂的问题,包含顶象等多家公司推出了专业模型解决方案。
以顶象Xintell智能模型平台为例。基于关联网络和深度学习技术,结合Hadoop生态和自研组件,将复杂的数据处理、挖掘、机器学习过程标准化,提供从数据处理、特征衍生、模型构建到最终模型上线的一站式建模服务,结合拖拉拽式操作大幅降低建模门槛,提升建模工程师、数据科学家的工作效率,让运营人员和业务人员也能直接上手操作实践,帮助企业通过对大数据的模型训练在反欺诈、风控、营销、客户分群等场景提供模型支持,并能够根据时间变化进行动态升级与优化,极大降低建模门槛。
建模灵活。支持HiveSQL脚本、Python脚本(Jupyter Notebook)和可视化建模三种开发方式,均可以发布为调度任务并可任意进行组合,实现强大的自动化流程。
可视化。可视化的建模方式,让不懂技术的业务人员,以拖拉拽的方式在画布上连接成流程图,不需要写代码或仅仅写少量的代码,能够以设定组件参数的方式训练出一个完整的模型。
部署快。Xintell基于企业本身的大数据平台,支持导入PMML格式和Python源码的任何第三方模型,能够能灵活地与企业已有的系统对接;一键式部署方便快捷,比同类建模产品的部署速度减少80%。
可解释性强。Xintell内置自研的一整套评分卡建模组件,适用于各种对可解释性要求高的建模场景。
Xintell是一个全生命周期的模型开发与管理平台
在软件工程领域,软件开发生命周期(Software Development Life Cycle,SDLC)包含了软件从开始到发布的不同阶段:需求收集、设计、软件开发、测试和质量保证、部署、维护。机器学习建模,作为软件开发的一个分支,同样遵循着这样的流程,而模型的开发仅仅是其中的一个环节。
建模人员有喜欢编程写代码的,也有喜欢可视化建模的。就提供模型开发功能而言,不同的建模平台之间大同小异,甚至作为一个以私有化部署方式为主的轻量级建模平台,Xintell在某些方面的功能和其他开放的数据科学平台相比是不足的,比如不提供常见的公共数据集和预训练模型、没有可以提供学习资源和交流的开发者社区。但Xintell的优势在于其覆盖了模型全生命周期的管理功能,在对模型工程化的支持方面,目前是领先于其他竞品的。
Python 建模
“低代码”建模
所谓工程化,至少包含以下环节:部署开发好的模型,实时或定期采集数据,调用模型,然后将模型的输出结果进行展示或对接下游业务系统,并监控模型的性能、定期评估模型的效果,必要时对模型进行迭代更新。
使用Xintell平台开发模型,可以保证整个工程化的过程是便捷、高效的。例如:支持一键将模型部署为在线模型(可指定部署的实例个数),以API的形式对外提供模型调用服务;自带对在线模型服务的监控功能;可将整套操作流程配置为定期自动运行的调度任务。因此,Xintell不仅仅是一个模型开发平台,更是一个模型管理平台,其功能覆盖了建模的全生命周期。
狭义的模型管理
狭义而言,模型管理分为两个方面:管理同一个模型的多个版本;管理多个不同的模型。
前者,部署在Xintell上的在线模型,可以一键切换版本。
后者,Xintell支持导入任意Python源代码或PMML格式的外部模型,然后进行批量预测,或部署为在线模型供实时调用。具体的功能介绍可参阅相关文档,在此不详细展开介绍。
“融合式”模型开发
广义的模型管理
广义而言,除了管理不同模型和模型的不同版本外,模型管理还包括:
数据管理。Xintell采用Hive表管理所有的数据,支持与常见的数据库进行对接,包括但不限于Hive、Oracle、MySQL、ES、MongoDB、Kafka、Cassandra等。可发布成数据同步任务,集成到调度任务中实现定时自动运行。Xintell也支持往Hive表中直接导入csv、txt、log等常见类型的数据文件。
各个表从不同的数据源汇总到Hive表中后,或进一步经过关联、清洗、加工,形成数据集市,供后续的建模等任务使用。
特征管理。不同的建模场景可能用到相同的业务数据,如果不进行集中管理,可能造成特征的重复加工。为了增加特征的可复用性,特别是存在数据加工人员和建模人员两个角色时,有必要对特征进行管理,辅以相关的特征说明。在特征管理方面的功能Xintell正在不断完善。目前已有二代征信特征库,未来计划开发更多场景的特征库,并提供通用的特征管理功能。
代码管理。不同项目空间的代码相互隔离,从而可以支持多个项目同时开发。支持将HiveSQL脚本和Python脚本发布版本,支持版本回溯,从而实现代码的版本管理。在调度任务中可以调度指定版本的脚本文件。
文档和资源管理。模型的代码目录下可以创建Markdown文档,记录模型的需求设计、代码说明等相关信息。除此之外,Xintell平台提供了文件资源管理功能,可以视作是一个简易的FTP,建模团队成员可以上传模型相关的文件资料(如测试报告、bad case、第三方库、数据字典等),与其他成员共享。
模型运维。Xintell提供了在线模型服务的仪表盘,可以便捷地查看历史上模型的调用量和平均耗时,及时发现模型的异常。通过将模型输出的结果和真实的标签按一定规范写入指定的表中,还可以监控模型的KS、PSI等指标,用于评估模型性能是否发生衰退。
权限管理。这是比较容易被忽视的一点,但对于团队协作是必不可少的。通常同一个项目空间下,有项目管理员和模型开发人员两种角色,可以配置不同角色的操作权限。特别地,团队成员之间可以互相查看代码,进行code review或相互学习;而通过加锁的功能,可以防止自己的代码或已发布的调度任务被他人误修改。
团队协作平台
软件工程中有一个名词叫“协同开发”,相关领域的专家们设计了各种协同开发工具,来帮助软件开发团队更好、更快地进行协作和开发,最为典型的代表之一就是Git,一个代码协作和管理工具。正因为其健全的模型管理功能,Xintell也可视为一个建模团队的协同开发平台。
一个典型的使用场景就是高校实验室。一位导师可能需要指导多个学生撰写数人工智能领域的论文,或是带领多个学生参与一个模型项目的开发。如果能有一套像Xintell这样的平台,给学生提供基本的模型开发和代码管理工具,给团队提供代码、资源共享的渠道,能大大提高协同开发的效率,减轻导师指导和管理的难度。
Xintell也是一个数据应用平台
从数据中挖掘价值,只有通过训练机器学习模型这一种方式吗?显然不是。模型只是数据应用的一种方式而已,其他常见的需求还有制作统计报表、构建关联网络并展示、输出数据处理与分析结果等。那么,Xintell平台的使用也不仅仅局限于需要建模的场景。
报表
业务人员往往需要将过往一段时间的业务数据从各个维度进行统计分析,然后做成报表,以便发现业务或客群的变化趋势,从而为更好地开展未来的业务提供决策依据,这就是BI。Xintell也提供了简易的报表制作的功能,相比常见的BI工具,Xintell的优势在于能够整合来着不同数据源的数据;可以实现复杂的数据分析与处理;以及可以通过调度任务实现定期自动生成报表。
当然,如果觉得Xintell中生成的报表不够美观、灵活,还可以通过数据同步的方式,将处理好的数据同步到其他专业的BI工具进行可视化。
知识图谱
事物之间普遍存在着纷繁复杂的联系的,模型利用的往往是个体的特征,无法刻画出个体之间的关联。而通过构建关联网络或图谱,进而划分团伙计算团伙指标或应用各类图算法,能够弥补这一短板。Xintell平台集成了图数据库ArangoDB,并封装了常见的图算法。关联网络技术常用于检测团伙欺诈风险,如代理人反欺诈、信用卡套现检测、信贷申请反欺诈、营销反欺诈等场景。
利用集成的图数据库,Xintell可以实现具有关联关系的数据(如团伙)的展示与查询。事实上,很多时候也有必要在图谱中展示模型预测的结果,如可以在代理人团队中展示对代理人欺诈风险的预测,以便进一步识别一些团队中的异常。
类似地,如果已经有或需要用其他图谱工具展示关联网络的话,可以在Xintell上完成节点表和关系表的加工,然后再同步到其他数据库中。
数据服务
Xintell支持配置数据服务,通过"导入字段",可以快速将Hive表的字段结构复制到数据服务中。业务方通过发起Http请求,提供查询参数访问数据服务。
常见的应用场景包括对外部系统提供用户画像、模型预测结果等的查询。
数据枢纽
调度任务这一功能是Xintell的一大灵魂。在私有化部署的Xintell平台上,当建模团队完成模型交付之后,客户未必会使用Xintell开发新的模型,但通常会创建新的调度任务,实现与模型并不直接相关的其他任务,比如数据集市的构建、指标的计算、报表的制作等。毫不夸张地说,调度任务可能比模型开发和管理更常用。
调度任务之所以强大,是因为其灵活。在Xintell平台上,可以将数据同步、HiveSQL脚本、Python脚本和可视化建模这四类发布成任务,然后通过连线的方式,在调用任务的画布中构建为任务流,并可以进一步指定任务流的运行时间和周期,实现任务流的定期定时自动运行。
当然,想要定期定时自动执行一段脚本,并非只能依赖于Xintell平台,但利用Xintell平台,可以对调度任务进行便捷地管理,如开启/关闭任务、任务错峰排期、配置任务预警等。事实上,在私有化部署的Xintell平台上,同时配置了几十个调度任务是非常常见的。
在某种意义上,可以将Xintell视为一个数据枢纽,而不是仅仅是模型平台。通过调度任务,可以实现从数据同步、数据处理、数据应用(数据统计分析,调用模型,构建关联网络,运用图算法)、数据可视化(图谱展示、报表生成)、数据价值输出(图谱查询,在线模型服务,数据服务,同步到其他业务系统)等一整套流程,其核心便是对数据的调度,故称之为枢纽,数据枢纽。而Xintell的价值也不仅仅在提供模型开发和管理的工具,更在于赋能客户,帮助客户更便捷地从自身的业务数据中挖掘出价值,并加以充分利用,反哺于其业务。
哪些企业适合选用Xintell?
毫无疑问,需要进行建模的团队肯定是Xintell的企业和组织,因为他们需要一个模型的协同开发、管理和运维平台。这个团队可以隶属于高校的实验室,可以隶属于某个企业甚至某个业务部门。但在笔者看来,任何一个拥有数据、希望从数据中挖掘价值从而为业务助力的企业,都是Xintell的潜在客户。特别是正在经历、或有计划进行数字化转型的传统行业的企业。他们在组建自己算法团队的同时,也亟需一套Xintell平台帮助他们管理包括模型在内的数据应用,特别是在对工程化的支持方面,Xintell是不二的选择。无论是组建自己的建模团队,还是希望将已有的模型进行集中管理,亦或进行其他数据应用的开发(如构建关联网络,提供图谱展示与查询),Xintell都有用武之地。
当前,采购Xintell平台的更多的是银行等金融行业的机构,显然,Xintell的市场潜力很大,机会远远没有被发掘。因为Xintell不仅仅是一个模型开发平台,更是一个模型管理平台、团队协作平台;不仅仅是一个数据服务平台,更是一个数据应用中台。