FlorenceAI:重塑数据科学胡玛纳

2021年5月26日,下午04:25 (PT)

下载幻灯片

胡玛纳努力帮助我们服务的社区和我们的个别成员实现他们最好的健康——一个不小的任务在过去的一年!我们有机会重新考虑现有业务和重新定义一个协作为数百毫升平台数据科学家的样子。bob体育客户端下载我们毫升的主要目标平台,名叫FlorenceAI,是自bob体育客户端下载动化和加速大规模科学数据的交付生命周期解决方案。在本课程中,我们将走进一个端到端的例子,如何构建一个模型在FlorenceAI并将其部署到生产规模。工具强调包括Azure砖、MLFlow AppInsights和Azure数据工厂。

我们将使用幻灯片,笔记本和代码片段覆盖问题的框架和设计,最初的特征选择,模型设计和实验,集中生产代码来简化实现的框架。数以百计的数据科学家现在使用我们的特色商店,有成千上万的功能更新每日和每月的韵律在数年的历史数据。我们已经有几十个模型在生产和日常企业临床操作模型提供了一种新的视角。每一天,数十亿行数据生成给我们及时的信息。

我们已经有例子的团队操作数量级的速度和规模不范围内使用固定的本地资源。鉴于迅速采用从12个试点用户超过100毛前5个月,我们也会分享一些关于关键anecodotes早期创建的平台。bob体育客户端下载我们希望FlorenceAI启用胡玛纳的数据科学家集中他们的努力,他们添加最值我们可以继续提供高质量的解决方案,保持新鲜的,相关的和公平的在一个不断变化的世界。

在这个会话表:
大卫·麦克认知/机器学习主体,胡玛纳有限公司

成绩单

演讲者1:你好,欢迎来到会话《佛罗伦萨,AI改造数据科学胡玛纳。我的名字是大卫麦克和我是一个认知和机器学习负责人胡玛纳在数字健康组织和分析。今天我要走你是多么容易的通过一些关键方面建立一个模型平台我帮助创造过去18个月。bob体育客户端下载我希望你能学习新东西带回到你的组织。胡玛纳大胆的目标是解决整个人的需要。这种以会员为中心的观点是我们承诺的一部分帮助数以百万计的成员实现最好的健康。财富50强公司胡玛纳有一个广泛的可用资源,我们最近投资了大量的时间和资金投入战斗COVID-19大流行,食品不安全,孤独和社会孤立,和卫生保健方面的不公平现象,等等。
胡玛纳也产生了显著的承诺数字健康和分析,形成了一个顶级组织由希瑟·考克斯在2018年,通过先进的分析,经验设计、数据和技术,我们正在努力满足我们的同事,和我们服务的社区成员,任何时候,任何地方,无论如何。我一直在特权的胡玛纳自2015年底以来,当我开始在临床数据科学帮助领导胡玛纳的过渡到云上。我们现在bob体育客户端下载的平台支持数百个用户,利用云计算带来的灵活性。
FlorenceAI是自动化的云平台,加快交bob体育客户端下载付生命周期的数据科学解决方案在Azure的规模。它的名字的灵感来自于历史名城佛罗伦萨,意大利,令人惊奇的事情,继续在文艺复兴时期。虽然我们不是建筑创新发明砖头和石块被提升到新的高度像佛罗伦萨大教堂的穹顶,我们做得到与砖建立一些很酷的东西,高火花,毫升流,和Azure数据工厂,同时支持许多最流行的库今天毫升。
生态系统使数据科学家来解决复杂的问题,促进开源创新,消费与单个接口简化了模型,同时试图改变工作流来提高性能。bob下载地址今天,我将会涉及很多关键的基础支柱列在这里。
模型是什么可怕的成分。所以我们要有一些好东西开始。从那我们有特色商店。它有成千上万的特性可用于培训和得分,跨多个年,数以百计的实例可以使用数据科学家。灵活覆盖大多数用例,但足够具体,这样定制的情况下可以通过自助服务操作,使用相同的代码。我们把很多专业领域的功能设计,为整个人口预计算的,刷新定期在每月和每日的韵律。我们有广泛的元数据准备数据科学家理解和学习的功能,他们是怎样产生的,他们是什么意思。
我们支持他们在整个生命周期,从群体设计,最初的特征选择,然后到模型训练实验,循环和找到最好的模型。一旦完成,他们得分并注册模式,并记录他们所有的培训工件,以确保他们的工作是可再生的。然后,我们与他们合作开发得分所需的代码和测试他们的模型,我们促进生产之前和定期自动评分。
今天我想用一个例子问题通过这个平台来帮助跟踪工作流,以便您可以看到今天如何构建一个模型。bob体育客户端下载我们要预测慢性肾脏疾病最严重的阶段,在接下来的六个月。这是一个重要的慢性疾病,因为成员通过疾病进展,如果他们的崩盘结束在以后的阶段,他们可以透析更快和更低的生活质量。我们想延迟,只要可能,这就是为什么这是一个重要的问题要解决。你可以看到我的一些标准,用于定义队列,并建立了一组数字,有不同的阶段。你可以看到这里有一组相当不平衡类,这是一个常见的问题在今天的医疗。让我们来看看我们今天可以在平台构建这个模型。bob体育客户端下载
首先我们将从初始特征选择和做一些基本模型的训练。我要走你通过一个笔记本,这是一个模板,数据科学家可以从特征选择这样做。我们的目标是要从成千上万的功能特性的存储和他们创造任何自定义特性,几百的特性。
所以初始特征选择模板是砖的笔记本。我们安装了最初的一些事情和进口。我们也有一些不同的参数设置。从那里他们可以结合专题报道数据加载和定制功能。我们会把它变成一个培训和测试它,然后比较这两件事的分布在一起以确保这些东西是相似的。之后,我们会做一些基本的准备对他们进行分类和看一些东西基本消除早期的一些特性。所以我们将看看任何一个值或高百分比的值和排除。然后我们会做一些最终格式化之前我们准备做的管道模型。在火花3.0之前,没有真正一个简单的方法来做字符串索引的列。成千上万的可能,我们将我们自己的实现,为我们的用户。
索引的步骤后,我们得到一个典型的火花管道做准备,在我们进入功能选择。我们指数目标,学习如何编码我们的变量,以及归责的数值变量,然后把它们变成一个特性。从那里,我们给数据科学家选择使用特征选择的不同方面。我选择一个随机森林分类器在25树,和该模型适合我的索引数据。之后,我们有一个helper函数来帮助他们提取这些特征重要性的随机森林分类器,和排序(听不清)数据帧,这样他们会从最重要到最不重要。
然后他们可以显示,走过那些功能,看看他们是有意义的。我们可以使用一个非常低截止了数以百计的特性为我们第一轮建模。过程中变换特性略有不同的名字,所以我们使用这个代码块回到最初的功能描述。然后我们可以保存这些数据集,继续下一步。
从那里我们要做第一轮使用SparkML建模。我们有一个简单的helper函数的创建毫升流实验一致的为每个用户。我们还创建了一个单独的火花培训helper函数。我们这样做在一个类似的预科时尚初始特征选择。我们可以在这里看到我们输入交叉验证估计和参数网格搜索。这给了我们各种各样的选项能够用参数表示这些旨在引发任何类型的模型。
我们做实验后,然后我们将到达最好的模型。我们可以看到在顶部,从最好的模型,我们会有不同的参数估计。在我的例子中,一个逻辑回归出来是最好的模型。然后我们有不同的辅助函数,使我们能够做一些更详细的关于我们的模型,甚至它生成一个热图。这很重要,因为我们可以有一个多数类分类器和精度高,但这热图显示了我们,当我们使用类等待,我们最终得到很好的沿着对角线的预测,我们仍有一些在我们的多数预测类,有一个问题在中间一些中档阶段。
让我们看看这些火花辅助函数的细节在幕后发生了什么。这个实验效用有几个辅助函数我之前提到的笔记本,毫升流,实验创造,特征提取的重要性。这是SparkML设置网格搜索和交叉验证参数。我们这里有这个函数,我们开始毫升流运行,抓住我们的模型,抓住我们的测试的预测。从那里我们记录指标的测试集,然后我们也会抓住我们训练从十字架的每个指标参数轮进行验证。我们会抓住这些参数,这样我们可以图条形图的格式为每一轮绘制不同的精度。我们会保存,找出毫升流运行,以及最好的参数模型和模型对象本身。我们也会把它写为备份atl。
最好的模型,我们这里做类似的事情,开始我们毫升流运行和拟合模型。然后我们会得分的完整的训练集和测试集,记录这些指标和模型的最佳参数。如果这是一个二元分类器,我们可以创建一个岩石曲线,但在这种情况下,它是一个多分类器,所以我们要创造热图你之前看到。从那里我们将日志模型和atl支持它。
所以,我们真的可以鼓励再现性与可重用的代码。我们自动保存许多物品毫升流来看,这是所有工作空间范围和特定用户的工作空间内可以看到。我们也要求他们说几个工件使他们的模型重现,如输入模式,训练集和测试集,和与这些相关的成绩,以及任何他们在管道(听不清)准备。这些可以用于得分。
现在我们还没有做完。我们刚刚结束了第一轮建模,现在我们想看一看,看看深层神经网络可以帮助我们改善模型。那些可能不熟悉深神经网络。他们有相似的输入和功能,我们引进,但是他们有一系列的隐藏层,帮助一起工作来解释输入和目标之间的关系。将产生我们的预测,并因此在重复传递称为史诗。这些继续学习每一次我们通过使模型更好。
有一些额外的事情我们需要考虑当使用深层神经网络。我们想使用早期停止减少训练时间,而收益递减发生多个史诗。我们可以使用回调函数来记录事情每次史诗后,我们也可以做小块的数据,以确保它是我们想要的方式工作,让我们扩大后,一旦我们优化参数。
我们可以做这个初始搜索使用一种名为“超”的工具应用。这使我们能够定义一个参数搜索空间对我们来说是很慷慨的,,我们有两种不同的方式去搜索。我们可以做一次完整的(听不清),或者做完整的随机或介于两者之间。在我的例子中,我们要做完整的(听不清)向每一轮学习。所以你可以看到我们20试验模型和模型改进的每一次。但是我们可能想看看那些看到如果我们了解什么样的模型是最好的工作,当我们使用我们的训练数据样本。
值得庆幸的是,MLFlow平行坐标图,我们可以把我们的每个参数和图对每一轮的最好验证损失。我们可以看到在这种情况下,我们强调在第一层,我们这里有一组复杂的节点。如果我们有设置,然后我们看看层,我们看到这里的复杂的节点,它不会工作得很好我们的模型。但如果我们在这里有一个简单的组节点,工作很好很多。同时,我们看到低学习速率和高批量大小是很重要的。
既然我们已经做了一些初步探索司机,我们看到,我们为每个史诗运行非常快,但我们只使用我们的数据的一小部分。如果我们扩大使用Petastorm 10倍的数据量,我们大约10倍的时间长度,这需要花很长时间。所以我们引入Horovod帮助。Horovod允许我们使用的所有数据,和我们这里有16个工人,我们可以得到一个非常类似的时间我们看到每史诗,帮助我们火车上的所有数据要快得多。这是比仅仅使用Petastorm快四倍。
让我们看看我们如何设置Petastorm和Horovod运行在一个模板。这里的模板,我们这里所有的进口,我们有一个类似的设置如何我们最初的特征选择SparkML培训。我们创建一个训练和验证集和比较这些分布,然后做很多准备,我们使用相同的功能在火花。SparkML管道实际上,我们使用,我们会变换,在创建毫升流实验。从那里,我们可以单独训练我们的模型更容易。我们应用我们班准备的重量和做一点特性编码我们的目标我们TensorFlow数据正确的格式。我们还将设置Petastorm文件,然后我们将创建实际的神经网络模型和两个隐藏层和一些其它的参数。,用户可以定制他们的需求。
从这里,我们有helper函数建立多层次分类、TensorFlow Horovod。你可以看到,从我们之前的了解,我选择参数,我们有一个复杂的第一层和一个简单的第二层。我们有一个小的学习速率和更大的批量大小。他们还可以为每个运行操作这些很容易。让我们看看这个helper函数是怎么做的。我要跳下来。
这个helper函数建立类似于我们之前看到的。我们会有我们的ML流运行开始,我们会记录一些基本参数为我们超参数。从这里开始,我们将使用Horovod跑步训练我们的模型。让我们跳下去看看这是如何工作的。但是我们必须引进一些由于一些序列化要求进口。然后你可以看到我们的格式,我们需要将我们的数据转化为TensorFlow工作。我们也就扩展我们的特性和使用编码的标签,这样我们可以得到这些数据设置来运行。我们将添加在停止和早期优化器,然后我们会添加一些指标等多层次分类精度和召回之前编译它们。
这以后,我们将通过创建我们的检查站,然后我们回调。我们回调很重要,因为这可以让我们记录每一轮后的东西。设置是很重要的这只发生在这里的工人,否则它将被记录16次,我们不希望重复。然后我们将经历和符合我们的模型。在中间,你会看到我们只写出信息每次我们经过史诗。我们也会说我们的技术点重量只有一次,,并将这一模式复制到DBFS。
跳起来。在这里你可以看到,我们适合我们的模型,我们可以通过抓住指标历史和日志我们所有的个人指标从每个史诗。,让我们能够生成图表很容易MLFlow,看一下我们的学习曲线或者其他的东西你想看到从模型的训练。然后我们将日志其他一些诸如模型结构和模型对象本身。
切换回另一个模板,您可以看到,我们将继续运行完成后,我们会读到模型在得分,然后我们会预测和度量。然后我们甚至可以产生热量地图,我们之前看到并应用它回到我们运行后的事实。这将节省很多头痛的人,让人们也许不熟悉BioSpark和深度学习开始更容易。
我们通过这个练习之后,你可以看到我们改善我们的模型只是一点点。我们没有改变了F1的分数,但是你可以看到在这两个突出的区域,我们不是在预测多数类一样。我们看到好多了精密的后期。这给了我们更多的信心,我们有一个更好的模型。好吧,现在我们做的对吗?数据科学家工作全部完成。我们可以继续下一个项目。好,等一下。也许不是。
我们必须登记,分数,并保存模型,使其可重复的,并且将它部署到生产提供帮助。MLFlow的好处是,我们可以使用我们的分数火花UDF和阅读它。这样我们可以引进一个π火花数据帧与很容易得分只有几行代码,正如你们所看到的。因为我们有很多砖工作区,因为我们的团队是巨大的,我们需要能够设置正确。所以从那时起,我们有开发工作在他们的工作空间和注册模型。他们会促进生产状态之后,当它准备复习。从那里,我们将ML流运行与该注册关联模型,并使用它注册在我们生产工作区,我们举行我们的自动化工作一起在一个空间。这生成一个注册表,可以用于所有的数据科学家。然后,我们将使用我们的得分,随着官方版本。
我们也有一个helper函数,可以生成一个减价的描述元数据的模型。我们将总结的版本和路径模型,这样我们可以同时运行多个版本。集中的事情,让事情更可重用,我们建立了一个简单的框架,一个ADF部署这些模型。我们有三种不同的笔记本,一个特性工程、得分,得分验证笔记本。
我们也会检查依赖项,上游,如果任何其他进程都需要这些甚至开始之前完成。这可以防止错误数据流和错误缺失数据的发生。我们也会记录这个过程的任何失败或成功使用SQL server。通过数据科学家提交他们的模型(听不清),并允许我们使用ADO能够部署这些模型,我们可以让他们在各种环境中,有更多的控制版本和我们输入的参数,这将使他们可以运行在不同类型的数据。
数据科学bob体育外网下载家和AI工程师之间的伙伴关系是典型。所有模型都是同行评议的域和技术精度之前生产计划。我们有新车型的团队通知我们我们可以安排时间和他们在一起,以确保它们在正确的轨迹。作为生产工作准备他们的模型,我们将有一个清单之前完成部署。然后我们会与他们一起工作来创建请求,并把它拉进回购。从那里,工程师将帮助部署,通过管道,确保一切工作才投入生产。每个模型也随后进行初步审核(听不清)。我们是第一个主要的健康保险(听不清),这是我们监控和生产的一个重要方面。
我将文档一些早期赢得从我们的时间在这个平台上,一点点的被高估了。bob体育客户端下载我们缩放和自动化一个笨重的on-prem手动过程,涉及创造40个不同的条件。我们现在创建超过三倍的旗帜在云中,并从多个团队得到贡献者后我们的模板。我们现在每天在更新超过十亿行就一个半小时我们整个人口。另一个团队经历更快的准备,更多的迭代,和更好的调优和协作。我们能够减少工程特性从小时分钟步,并使他们的数据科学团队迭代模型速度运行,在06五个小时,现在半个小时或更少的复杂模型。我们也减少得分一步角度数字从一个星期到30分钟。这允许我们接触任何方面工程数据科学过程的特性,得分和培训。
我们也有很多共享资源,促进每一个人。数以百计的特性意味着更少的过程重复和更多的时间来改进模型。我们也有分数大规模使用这些udf的灵活性,我们(听不清)udf,无论算法的方案。
非常感谢你的倾听。我希望你学到新的东西,可以回到你的组织和提高模型训练和得分在胡玛纳你的组织就像我们所做的。非常感谢,感谢你的时间,希望你有时间来审查会议和享受其他的会议。

大卫麦克

大卫是一个认知和机器学习主要胡玛纳的数字健康和分析组织内。他于2015年底加入胡玛纳和他的头几年都专注于解决业务……
阅读更多