Salesforce开源了每天用于执行超过30亿次推测的结构化机器学习函数库TransmogrifAI(发音为trans-mog-ri-phi),TransmogrifAI已经大规模的使用在产品服务上,作为构建人工智能平台Einstein的基础,也帮助Salesforce的数据科学家,为客户生产定制化模型的时间,可以从数周降至数小时。

尽管在过去十年机器学习已经有了巨大的进步,但构建出机器学习系统仍然不容易,Salesforce Einstein数据据科学资深总监Shubha Nabar提到,企业在为消费者构建机器学习产品时,倾向解决简单的用户案例或使用容易取得的数据集,一旦想使用更具多样性的数据或是案例,则情况就变得复杂有挑战性。 Salesforce的客户希望机器学习提供的服务,包括可以预测客户流失、销售预测、设备故障、特价接受程度,甚至是电子邮件点击的转化率,也就是说Salesforce需要为不同客户创建不同的机器学习模型,才能符合这样的客户需求。

训练全局的机器学习模型对Salesforce来说没有意义,每个客户的数据都是独一无二的,具有不同模式、样貌以及业务流程造成的偏差,要让客户可以真正得到机器学习的帮助,必须针对数千个不同案例,训练定制化机器学习模型。 Shubha Nabar表示,大多数自动化机器学习解决方案,要不是仅专注解决机器学习流程中的一部分,不然就是专为图形、语音或是自然语言等非结构化同质数据设计,但Salesforce需要的是能够快速产生大规模异质结构化数据的高性能模型解决方案,于是Salesforce开发了自家的机器学习函数库TransmogrifAI。

为了要产生可以适用不同客户的案例的机器学习模型,TransmogrifAI有许多特别的设计。 TransmogrifAI是基于Scala和SparkML的函数库,目标是让数据科学家只要输入几行程序代码,就能执行数据清理、特征工程或模型选择等工作,获得一个高性能的模型,还能进一步探索或是迭代出更好的模型。

SparkML工作管线使用了Transformer的抽象,以及用来转换TransmogrifAI专用的数据结构DataFrame的Estimator,而TransmogrifAI则创建在这些抽象基础之上。在TransmogrifAI中,模型的特征本质就是一个指向DataFrame的类别安全指标,拥有所有消息,包含名称、数据类型或是衍生的承袭信息。

特征是TransmogrifAI开发人员主要操作的Primitive,操作或是定义特征像是程序开发使用变量一样,而特征可以分享并且重复使用,另外,TransmogrifAI也能让开发人员可以轻松定义复杂的时间串行聚合数据。由于强类别带来的类别安全,TransmogrifAI可以对整个机器学习流程,进行类别检查,并尽可能尽早抓出错误,而非等到运行工作管线一段时间后才发现。类别安全还可以提升机器学习工作流程,每个阶段输入与输出的透明度,而这项好处可以大大降低训练模型所需要的知识。

TransmogrifAI除了提供开箱即用的自动Estimator,对于需要更多控制的用户,TransmogrifAI也具可高度定制化特性与弹性,每个Estimator都能参数化,用户可以直接设置或是调整参数,另外也可以在机器学习工作管线中,使用自定义的Transformer和Estimator,而为了要加速数据科学家的工作效率,这些自定义的工作都不复杂,Shubha Nabar提到,定制化Transformer就像定义Lambda表达式一样容易。

TransmogrifAI在Salesforce中大量采用,而且也剧烈改变了内部的工作流程,Shubha Nabar表示,Salesforce的数据科学家可以用最少的手动调整来产出数千种模型,并将这些训练模型的周期从数周缩短至数小时。

相关文章