模型运营是做什么的(概念模型数据库)

编者注:文中超链接如果不能访问可以点击“阅读原文”访问本文原页面;读者可以查看将于2019年9月23至26日在纽约举办的Strata数据大会上的议题——模型开发、管理和运…

大家好,又见面了,我是你们的朋友全栈君。

编者注:文中超链接如果不能访问可以点击“阅读原文”访问本文原页面;读者可以查看将于2019年9月23至26日在纽约举办的Strata数据大会上的议题——模型开发、管理和运维,来获得更多的信息。

我们过去几年的调查表明,很多不同行业的机构对机器学习(ML)越来越感兴趣。有几个因素促成人们在产品和服务中运用机器学习。首先,机器学习社区已经在企业感兴趣的许多领域实现了研究的突破,并且大部分研究都通过预发表和专业会议演示进行了公布。我们也开始看到研究人员共享出在流行的开源框架中编写的示例代码,有些甚至共享出了预先训练好的模型。企业和机构现在还可以从更多的应用案例从中吸取灵感。非常有可能在你感兴趣的行业或领域里,你可以找到许多有趣的机器学习的应用并借鉴参考。最后,建模工具正在被改进和优化,同时自动化工具已经可以让新用户去解决那些曾经是需要专家才能解决的问题。

随着机器学习进入落地阶段,人们很自然地希望改进那些面向企业运用机器学习的工具。在之前的博文中,我们概述了在企业和机构内运用机器学习所需的基础技术,并且一些早期迹象表明模型开发和模型管理的工具已经开始获得用户的青睐。

 模型运营是做什么的(概念模型数据库)

图1 主要面向模型开发、管理和运维的工具的集合。图片来源:Ben Lorica

模型开发

企业越来越认真地看待机器学习的一个明确迹象就是:专门为管理机器学习模型开发生命周期而设计的工具(例如MLflow和Comet.ml)越来越受欢迎。为什么传统的软件工具不胜任了?在之前的一篇博文中,我们注意到一些区分一个项目是否是机器学习项目的关键属性:

  • 不像传统的软件,其主要目的是满足功能需求。机器学习的目标是优化一个指标。

  • 质量不仅仅依赖于代码,还包括数据、调参、规律地升级和再训练。

  • 参与机器学习的人总是希望能对新的库、算法和数据源进行尝试。因此工具就需要能把这些新的组件引入生产系统中。

MLflow等工具被更多地采用表明,实际上对新工具的需求是非常强烈的。这些机器学习开发工具专门用于帮助开发人员、机器学习工程师和数据科学家等团队进行协作、管理和再现机器学习的实验。模型开发类别中的许多工具允许用户系统地进行建模实验(例如超参数调优和网络架构搜索),同时重点关注于管理、跟踪和再现这些实验的便利性上。

模型管理

我们也开始见到有的公司对模型管理工具和能力有需求。正如长期以来,企业已经将数据视为资产一样,随着机器学习对企业和机构的运营变得越来越重要,模型必将被视为重要的资产。更确切地说,需要管理和保护为专门的应用构建或调优的模型(实际上这意味着模型+数据):

  • 用于授权和安全的数据库:谁读/写了某个模型?

  • 一个目录或者数据库,用来记录模型信息,包括某个模型什么时候被测试、训练和部署的。

  • 一个验证数据集的目录,以及对存储的模型的准确度测量结果。

  • (模型、特征向量和数据的)版本控制,以及能够进行前推、回滚或者允许多版本的能力。

  • 用于全面审计追踪的元数据和工件。

  • 谁批准并把模型发布到生产环节,谁能够监控模型的表现并收到告警,以及谁对模型负责。

  • 对于所有的参与者(运维、机器学习工程师、数据科学家和业务方)提供的可以定制页面展示的管理仪表盘。

模型运维、测试和监控

随着机器学习在产品和服务中应用的激增,我们需要一系列的角色、最佳实践和工具来在实际生产环境中部署、管理、测试和监控机器学习模型。已经出现了一些针对模型运维和测试的工具,它们主要可被用于部署和监控机器学习的模型。但很明显,我们仍处于提供这些领域解决方案的早期阶段。

有三个常见问题会在模型发布到生产环境后降低机器学习的价值。第一个是概念漂移。由于现实世界的变化,生产环境中的模型的准确性会随着时间的推移而降低,这是由于训练模型的数据与需要预测的数据之间的差距变得越来越大。第二个问题是地域。当模型被部署到新的地理位置、新的用户群或商业客户时,之前训练的模型通常不会以预期的准确度工作。对每个客户、地理区域、人口统计群体进行在线准确性测量对于偏差监控和确保面对不断增长的客户群时的准确性非常重要。第三是数据质量。由于机器学习模型对输入数据的含义很敏感,传统数据质量工具经常忽略的数据分布变化会对模型的准确性造成严重影响。

除了需要监控当前部署的模型是否按预期运行之外,另一个挑战确保新的模型在生产环境中确实有更好的表现。一些新出现系统允许将“现有模型”与“挑战者模型”进行比较,包括让挑战者处于“暗启动”或“离线”模式(这意味着挑战者模型是对生产流量进行评估但尚未部署到生产环境中)。其他值得注意的项目包括:

  • 用于持续集成和持续测试模型的工具。模型返回有效值,并不意味着模型“正确”。它必须满足准确度的要求。在部署模型之前,需要有一种方法来针对给定的度量指标和验证集来测试这一点。

  • 在线测量每个模型的准确性(用户在“真实场景”中得到的准确度是多少?)。与此相关的是需要监控偏差、地区效应和相关风险。例如,指标得分需要根据人口统计数据(男性和女性是否获得类似的准确度?)或语言区域(德语和西班牙语用户是否获得类似的准确度?)进行细分。

  • 能够针对不同客户进行服务质量管理的能力,包括速率限制、请求大小限制、计量、机器人检测和IP地理围栏。

  • 有能力扩展(并且是自动扩展)、确保模型安全、监控模型和排除运行中模型的故障。扩展有两个维度:模型能服务的流量上限和需要的模型数量。

模型运维和测试仍然是一个新生的领域,相关的系统性的检查表才刚刚出现。来自谷歌2017年的一篇论文中的概述让我们可以判断模型运维和测试还需要多少工具。本文附带一份28项的检查表,详细说明了想拥有可靠的生产级机器学习系统需要考虑的事项:

  • 特征和数据:包括七点内容:检查隐私控制、特征验证、探索特征的必要性和特征的成本以及其他与数据相关的测试。

  • 模型的开发测试:七项健全性检查,包括:检查更简单的模型是否足够用、对于关键数据切片(例如,地区、年龄、新近度、频率等)的表现、模型老化的影响以及其他重要的因素。

  • 基础设施测试:七个考虑因素,包括:模型训练的可重复性、模型可以轻松回滚、端到端模型管道的集成测试、针对金丝雀过程的模型测试。

  • 监控:作者列出了确保模型按预期工作的七点内容,包括:对模型老化的测试,性能指标(训练、推断、吞吐量),验证训练和服务代码会生成类似的结果,以及其他基本项。

新角色

围绕机器学习的讨论往往涉及到数据科学家和模型构建专家的工作。随着许多公司开始进入机器学习的落地实施阶段,这种情况开始发生变化。机器学习工程师、数据工程师、开发人员和领域专家对机器学习项目的成功至关重要。目前,很少有(如果有的话)团队拥有如同Google 2017年的论文里所述检查表一样广泛内容的检查表。构建真实世界里的生产级机器学习模型的任务仍然需要把跨越许多功能领域的工具和团队拼凑在一起。然而,随着模型治理和模型运维和测试的工具开始变得精致并且变得更加广泛可用,专家(“MLops团队”)将会负责使用这些工具。自动化工具也将是一个重要组件,它们要能使企业和机构构建、管理和监控更多的机器学习模型。

模型运营是做什么的(概念模型数据库) 

图2 企业和机构对于管理机器学习的工具的需求。图片来源:Ben Lorica

我们开始看到出现了一些能让团队管理机器学习模型的开发生命周期的专用工具。像MLflow这样的工具可以被用来跟踪和管理机器学习实验(主要是离线阶段,并使用测试数据)。还有一些新工具则涵盖了模型管理、生产环境部署,模型服务和监控等方面,但目前他们倾向于只针对某个机器学习库(比如TFX)或建模工具(SAS模型管理器)。实际的情况是,企业需要对于语言库、建模工具和使用的环境更灵活的应用能力。幸运的是,初创公司和大企业已经开始构建用于在企业中实现机器学习的综合工具。

相关内容:

  • “现代深度学习:工具和技术”:人工智能圣何塞大会上的一个教学课程。

  • 《成为一个机器学习企业意味着对基础技术的投资》

  • 《用于机器学习开发和模型管理的特殊工具正变得非常重要》

  • 《在调优机器学习模型成为真正的产品和服务过程中学到的经验教训》

  • Harish Doddi的《简化机器学习生命周期管理》

  • Ira Cohen的《应用机器学习来获取关于机器学习算法的洞察》

  • Ameet Talwalkar的《对于神经网络架构搜索的随机搜索和可再现》

  • 《机器学习的深度自动化》

  • 《我们需要构建机器学习工具来增强机器学习工程师》

  • 《管理机器学习的风险》

 

模型运营是做什么的(概念模型数据库)

Ben Lorica是O’Reilly Media公司的首席数据科学家,同时也是O’Reilly Strata数据会议和人工智能会议的内容日程主管。他曾在多种场景下应用商业智能、数据挖掘、机器学习和统计分析技术,这些场景包括直销、消费者与市场研究、定向广告、文本挖掘和金融工程。他的背景包括在投资管理公司、互联网初创企业和金融服务公司就职。

Harish Doddi是Datatron Technologies的联合创始人兼首席执行官。在此之前,他先在Oracle任职。后来在推特从事开源技术方面的工作,包括Apache Cassandra和Apache Hadoop,并建立了推特的照片存储平台Blobstore。在Snapchat,他关注于Snapchat的后端。他还在Lyft研究了激增定价模型。Harish拥有斯坦福大学的计算机科学硕士学位,专业方向是系统和数据库,他还拥有海德拉巴得国际信息技术学院的计算机科学学士学位。

David Talby是Pacific AI的首席技术官。他正在帮助各类快速发展的公司应用大数据和数据科学技术来解决医疗保健、生命科学和相关领域的实际问题。David在构建和运营互联网规模的数据科学和业务平台以及构建世界一流的敏捷分布的团队方面拥有丰富的经验。在加入Pacific AI前,他曾在微软的Bing Group工作,负责Bing Shopping在美国和欧洲的业务运营。他还在在西雅图和英国为亚马逊工作。在那里他建立并管理分布的团队,帮助扩展亚马逊财务系统。David拥有计算机科学博士学位和计算机科学与工商管理硕士学位。

This article originally appeared in English: “What are model governance and model operations?”.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126527.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 基于Linux搭建Apache网站服务配置详解

    基于Linux搭建Apache网站服务配置详解

  • 微商分销商城购物系统的优势

    微商分销商城购物系统的优势不论买方还是卖方都可以实时查看数据,这些线上的发展模式。微信分销商城是微信公众平台推出的商品营销模式,都是基于微信的一个总店,快速精准的管控微信的各级分店,可控制性强不管是什么类型的营销,传播力度广卖家能够在许多平台上进行推广自己的产品,专为微信而打造微信分销商的功能从前台的服务系统到后台的运营系统,都可以根据自己的需求进行实时查对核实分析,打开微信公众号开通微信分销商城即可,抖音等,若需系统的更好发展。这种多渠道分销可以帮助微商者快速发展下线,数据上有清晰的记录,从招募、运营、分销管理.

  • 基于web的实验室设备管理系统难点_web信息管理系统

    基于web的实验室设备管理系统难点_web信息管理系统这里写自定义目录标题基于web的实验室设备管理系统新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入基于web的实验室设备管理系统使用SSM框架、新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标

    2022年10月13日
  • java中判断字符串是否日期格式的方法建议收藏

    大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。此处内容已经被作者隐藏,请输入验证码查看内容验证码:请关注本站微信公众号,回复“”,获取验证码。在微信里搜索“”或者“…

  • linux ubuntu 关闭防火墙命令,Linux下开启/关闭防火墙命令「建议收藏」

    iptables用于过滤数据包,属于网络层防火墙.firewall能够允许哪些服务可用,那些端口可用….属于更高一层的防火墙。firewall的底层是使用iptables进行数据过滤,建立在iptables之上。1)永久性生效,重启后不会复原开启:chkconfigiptableson关闭:chkconfigiptablesoff2)即时生效,重启后复原开启:service…

  • Java中StringBuilder类「建议收藏」

    Java中StringBuilder类「建议收藏」提要大家要知道字符串(String)在进行拼接操作时,每一次拼接,都会构建一个新的String对象这样耗时又浪费内存解决方法就是StringBuilder类,就可以解决这个问题StringBuilder类中方法和String类基本一样我举例几个使用最多的方法创建//创建StringBuilderStringBuildersb=newStringBuilder(“老八”);System.out.println(sb);//输出如果括号里不填默认是空字符串

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号