公司博客上">
            <noscript>
             <img data-gatsby-image-ssr=

Databricks扩展MLflow模型注册表与企业功能

分享这篇文章

我们很高兴地宣布MLflow的新的企业级特性模型注册在砖上。模型注册表现在默认为所有使用Databricks的客户启用。bob体育亚洲版统一分析平台bob体育客户端下载

在这篇博客中,我们想强调Model Registry作为模型管理中心的好处,跨组织的数据团队如何共享和控制对模型的访问,以及如何使用Model Registry api进行集成或检查。

协作模型生命周期管理的中心枢纽

MLflow已经具备了这样的能力跟踪指标参数,工件作为实验的一部分;包模型和可重复的ML项目;而且将模型部署到批处理或实时服务平台bob体育客户端下载.基于这些现有功能,MLflow模型注册表[AWS] [Azure]提供了一个中央存储库来管理模型部署生命周期。

概述用于模型管理的MLflow集中式中心的CI/CD工具、体系结构和工作流程。"height=
概述用于模型管理的MLflow集中式中心的CI/CD工具、体系结构和工作流程。

大型组织中的数据科学家面临的主要挑战之一是缺少一个中央存储库来协作、共享代码,并管理模型、模型版本及其历史的部署阶段转换。跨组织的集中模型注册中心为数据团队提供了以下能力:

  • 发现已注册模型、模型开发的当前阶段、实验运行,以及与已注册模型相关的代码
  • 将模型转换到部署阶段
  • 在不同的阶段部署注册模型的不同版本,提供MLOps工程师能够部署和进行不同型号的测试
  • 为子孙后代和出处存档旧模型
  • 仔细阅读模型生命周期中的模型活动和注释
  • 控制模型注册、转换或修改的粒度访问和权限

MLflow Model Registry在整个生命周期中管理模型阶段。"height=
模型注册表在整个生命周期的不同阶段显示不同的版本。

模型阶段管理的访问控制

在当前数据和机器学习创新的十年中,模型已经成为宝贵的资产,对企业战略至关重要。这些模型被用作解决业务问题的解决方案的一部分,从预测机械故障到预测电力消耗或财务业绩;从欺诈和异常检测到购买相关物品的轻微建议。

与敏感数据一样,对于使用这些数据进行训练和评分的模型,必须使用访问控制列表(ACL),以便只有授权用户才能访问模型。通过一组acl,数据团队管理员可以在模型的生命周期内授予对已注册模型上的操作的细粒度访问,防止不恰当地使用模型或未经批准的模型转换到生产阶段。

在Databricks统一分bob体育亚洲版析平台中,您现在可以bob体育客户端下载在单个注册模型上设置权限,遵循通用Databricks的访问控制和权限模型[AWS] [Azure].

MLflow Model Registry提供了一个附加对象,用于在已注册模型上设置策略。"height=
Databricks资产访问控制策略。

从Databricks工作区中的Registered Models UI中,您可以为注册中心中的模型分配适当的权限,类似于笔记本或集群。

使用MLflow Model Registry UI设置权限。"height=
在Model Registry UI中使用acl设置权限

如下表所示,管理员可以为Model Registry中注册的模型分配四个权限级别:没有权限编辑,管理.根据团队成员对访问模型的需求,您可以为下面所示的每个能力向单个用户或组授予权限。

能力 没有权限 编辑 管理
创建模型 X X X X
在列表中查看模型及其模型版本 X X X
查看模型的详细信息、版本及其详细信息、阶段转换请求、活动和工件下载uri X X X
为模型版本申请阶段转换 X X X
向模型中添加新版本 X X
更新型号和版本描述 X X
重命名模型 X
在阶段之间转换模型版本 X
批准、拒绝或取消模型版本阶段转换请求 X
修改权限 X
删除型号和型号版本 X

模型注册表访问,能力和权限

如何使用模型注册表

通常,使用MLflow的数据科学家将进行许多实验,每个实验都有许多次运行,以跟踪和记录指标和参数。在这个开发周期的过程中,他们将在一个实验中选择最佳的运行,并将其模型注册到注册中心。此后,注册表将让数据科学家在模型发展过程中跟踪多个版本,因为他们为每个版本分配了一个生命周期阶段:暂存生产,或存档

有两种与MLflow模型注册表交互的方法[AWS] [Azure].第一种是通过与Databricks工作区集成的Model Registry UI,第二种是通过MLflow跟踪客户端api.后者为MLOps工程师提供了对注册模型的访问,以便与CI/CD工具集成,以测试或检查模型的运行及其元数据。

建模注册表UI工作流

可以从Databricks工作区访问Model Registry UI。从Model Registry UI中,您可以执行以下活动作为工作流的一部分:

  • 从Run页面注册一个模型
  • 编辑模型版本描述
  • 转换模型版本
  • 查看模型版本活动和注释
  • 显示和搜索已注册的模型
  • 删除模型版本

模型注册表api工作流

与模型注册中心交互的另一种方法是使用MLflow模型香精MLflow客户端跟踪API接口。如上面的UI工作流中所列举的,您可以使用api对已注册的模型执行类似的操作。这些api对于阅读或与需要访问模型进行夜间测试的外部工具集成非常有用。

从模型注册表加载模型

模型注册表的api允许您与您所选择的持续集成和部署(CI/CD)工具(如Jenkins)集成,以测试您的模型。例如,您的单元测试,通过上面提到的授予适当的权限,可以加载模型的一个版本进行测试。

在下面的代码片段中,我们加载了同一模型的两个版本:登台版的版本3和生产版的最新版本。

进口mlflow.sklearn#加载版本3.模型://URI作为参数model_version_uri =“模型:/ {model_name} / 3”.format (model_name =“scikit-learn-power-forecasting-model”Model_version_3 = mlflow.sklearn.load_model(model_version_uri)

现在Jenkins作业可以访问用于测试的模型的登台版本3。如果您想加载最新的产品版本,只需更改model:/URI来获取产品模型。

#在生产阶段加载模型model_production_uri =“模型:/ {model_name} /生产”格式(model_name =“scikit-learn-power-forecasting-model”Model_production = mlflow.sklearn.load_model(model_production_uri)

与Apache Spark Job集成

除了与您选择的部署(CI/CD)工具集成之外,您还可以从注册表加载模型,并在Spark批处理作业中使用它。一个常见的场景是将您注册的模型加载为火花UDF

#将模型加载为Spark udf进口mlflow.pyfuncBatch_df = spark.read.parquet()特征=['温度','风速','湿度']Pyfunc_forecast_udf = mlflow.pyfunc。model_production_uri spark_udf(火花)prediction_batch_df = batch_df.withColumn(“预测”pyfunc_forecast_udf功能(*))

检查,列出或搜索有关注册型号的信息

有时,您可能希望通过编程接口检查已注册模型的信息MLflow实体模型信息。例如,您可以使用一个简单的方法获取注册表中所有已注册模型的列表,并遍历其版本信息。

客户端= MlflowClient()rmclient.list_registered_models ():打印f " name ={rm.name}[(打印f“run_id ={mv.run_id}),打印f”状态={mv.current_stage}),打印f”版本={mv.version}))mvrm.latest_versions]

这个输出:

name = sk-learn-random-forest-reg-modelrun_id = dfe7227d2cae4c33890fe2e61aa8f54bcurrent_stage =生产版本= 1......

对于数百个模型,阅读或打印此调用返回的结果可能很麻烦。一种更有效的方法是搜索特定的模型名称并使用列出其版本详细信息search_model_versions ()方法,并提供一个过滤器字符串,如“name='sk-learn-random-forest-reg-model'”。

客户端= MlflowClient()mvclient.search_model_versions (“name = sk-learn-random-forest-reg-model”):pprintdict (mv),缩进=4“creation_timestamp”1582671933246“current_stage”“生产”“描述”包含100棵决策树的随机森林模型“受过scikit-learn培训”“last_updated_timestamp”1582671960712“名字”“sk-learn-random-forest-reg-model”“run_id”“ae2cc01346de45f79a44a320aab1797b”“源””。/ mlruns / 0 / ae2cc01346de45f79a44a320aab1797b /工件/ sklearn-model”“状态”“准备好了”“status_message”:没有,“user_id”(电子邮件保护)“版本”1...

总而言之,MLfow模型注册表默认情况下对所有Databricks客户可用。作为ML模型的中心枢纽,它为跨大型组织的数据团队提供协作和共享模型、管理转换、注释和检查沿袭。对于受控协作,管理员使用acl设置策略,以授予访问已注册模型的权限。

最后,您可以使用Databricks工作区的MLflow UI或MLflow api作为模型生命周期工作流的一部分与注册中心交互。

开始使用模型注册表

准备好开始或者自己尝试了吗?您可以阅读更多关于MLflow模型注册表以及如何使用它AWSAzure.或者你也可以试试笔记本的样本。AWS] [Azure

如果您是MLflow的新手,请阅读开放源代码bob下载地址MLflow快速入门,使用最新的MLflow 1.7.有关生产用例,请阅读相关内容在Databricks上管理MLflow并开始使用MLflow模型注册表。

如果您有兴趣了解在Databricks上使用MLflow管理整个ML生命周期的最新发展和最佳实践,请加入我们的互动MLOps虚拟事件

免费试用Databricks
看到所有公司博客上的帖子