生命周期管理模型统一目录

预览

这个特性是在公共预览

本文描述了如何使用模型统一目录作为机器学习的一部分工作流管理毫升的完整生命周期模型。砖MLflow模型注册的提供托管版本统一目录。模型统一目录扩展统一目录毫升模型的好处,包括集中式访问控制、审计、血统和模型发现工作区。模型统一目录兼容开源MLflow Python客户机。

统一目录中的关键特性的模型包括:

  • 命名空间和治理模式,所以你可以在环境、组织和管理模型的项目,或团队水平(“格兰特数据科学家只读访问生产模型”)。

  • 时间模型谱系(MLflow实验和运行产生模型在给定的时间)。

  • 模型服务

  • 模型版本。

  • 通过别名模型部署。例如,标志着“冠军”在你的版本的模型刺激目录。

本文包含的指令模型统一目录UI和API。

模型注册中心概念的概述,请参阅MLflow指南

请注意

本文文档模型统一目录,砖建议的管理和部署模型。经典空间模型的文档注册表,请参阅管理模型生命周期使用的工作区模型注册表。从工作空间模型为指导如何升级注册表统一目录,看看迁移工作流和模型来统一目录

需求

  1. 统一目录必须启用您的工作区中。看到开始使用统一目录创建一个目录Metastore统一,使它在一个工作区,并创建一个目录。如果没有启用统一目录,您仍然可以使用经典工作空间模型注册

  2. 工作区必须连接到一个统一的目录metastore支持继承的特权。这适用于所有metastores之后创建8月25日,2022年。如果运行在一个老metastore,按照文档升级。

  3. 你必须能够访问运行命令集群提供统一的目录

  4. 创建新的注册模型,你需要CREATE_MODEL特权模式,除了使用模式使用目录模式和包含它的目录上的特权。CREATE_MODEL是一个新的模式特权,您可以使用数据浏览器UI或格兰特吗SQL格兰特命令,如下所示。

    格兰特CREATE_MODEL模式<模式- - - - - -的名字><主要>

统一目录升级培训工作负载

本节包括指导统一目录升级现有培训工作负载。

安装MLflow Python客户机

支持模型统一目录包含在砖运行时13.2毫升以上。您还可以使用模型统一目录上面的砖运行时11.3 LTS和通过安装最新版本的MLflow Python客户机在你的笔记本上,使用下面的代码。

%皮普安装- - -升级“mlflow-skinny(砖)”dbutils图书馆restartPython()

统一目录中的配置MLflow客户机访问模型

默认情况下,MLflow Python客户机在砖工作区中创建模型模型注册表。升级到模型目录,统一配置MLflow客户:

进口mlflowmlflowset_registry_uri(“databricks-uc”)

培训和注册Catalog-compatible统一模型

权限要求:创建一个新的注册模式,你需要CREATE_MODEL使用模式封闭的模式上的特权使用目录附上目录权限。创建新的模型版本在注册模式下,你必须注册的所有者模型和使用模式使用目录包含模型的模式和目录上的特权。

毫升模型在加州大学必须有一个版本模型的签名。如果你不是已经在你的日志MLflow模型与签名模型训练工作负载,您可以:

  • 使用砖autologging自动日志,许多流行的ML框架模型与签名。看到支持框架MLflow文档

  • 与MLflow 2.5.0以上,你可以指定一个输入的例子mlflow。<味道> .log_model电话,自动推断模型的签名。有关更多信息,请参考MLflow文档

然后,通过模型的三级名字MLflow api,在表单中<目录>。<模式>。<模型>。下面的例子中创建和访问模型ml_team模式下的刺激目录。

注册一个模型来统一使用autologging目录

sklearn进口数据集sklearn.ensemble进口RandomForestClassifier#训练sklearn虹膜数据集模型X,y=数据集load_iris(return_X_y=真正的,as_frame=真正的)clf=RandomForestClassifier(max_depth=7)clf适合(X,y)#注意UC模型名称遵循这种模式# < catalog_name >, < schema_name >。< model_name >,对应#目录、模式和模型名称注册#在统一目录下创建的版本#将创建注册模型如果它不存在autolog_run=mlflowlast_active_run()model_uri=”:/{}/模式”格式(autolog_run信息run_id)mlflowregister_model(model_uri,“prod.ml_team.iris_model”)

注册一个模型统一目录自动推断签名

支持自动推断签名有MLflow 2.5.0及以上版本,和支持数据砖运行时11.3 LTS毫升以上。使用自动推断签名,使用以下代码来安装最新MLflow Python客户机在你的笔记本:

%皮普安装- - -升级“mlflow-skinny(砖)”dbutils图书馆restartPython()

下面的代码显示了一个示例的一个自动推断签名。

sklearn进口数据集sklearn.ensemble进口RandomForestClassifiermlflowstart_run():#训练sklearn虹膜数据集模型X,y=数据集load_iris(return_X_y=真正的,as_frame=真正的)clf=RandomForestClassifier(max_depth=7)clf适合(X,y)#把第一行的训练数据集作为模型输入的例子。input_example=Xiloc[[0]]#日志模型并注册它在加州大学一个新版本。mlflowsklearnlog_model(sk_model=clf,artifact_path=“模型”,#自动推断从输入签名及其预测输出示例。input_example=input_example,registered_model_name=“prod.ml_team.iris_model”,)

在UI视图模型

权限要求:查看注册模型及其模型版本在UI中,你所需要的执行特权注册模式,加上使用模式使用目录包含模型的模式和目录上的特权

你可以查看和管理注册模型和模型版本统一目录使用数据浏览

访问控制模型

注册信息访问控制模型统一目录,看看统一目录权限和可获得的对象。最佳的最佳实践在组织模型目录和模式,明白了组织你的数据

管理模型的发布与别名

别名允许您指定一个可变的模型,命名为参考模型在一个注册到一个特定的版本。

您可以使用别名来指定哪个模型版本部署工作流模型中在给定的环境中训练。例如,您可以指定当前“冠军”的模式版本,应该成为大多数生产流量使用别名。然后您可以编写别名的推理目标的工作负载,比如使用“冠军”版本进行预测。下面的流程演示了这种方法。

马克模型部署使用别名

权限要求:注册的所有者模型,加上使用模式使用目录包含模型的模式和目录上的特权。

上面的模型训练示例生成一个新的模型版本和登记注册的模式下刺激目录。在这个例子中,使用刺激目录并不意味着服务生产流量模型版本。模型版本的封闭目录、模式和注册模型反映其环境(刺激)和相关治理规则(例如,权限可以设置,因此只有管理员可以删除的刺激目录),但不是它的部署状态。

别名允许您更新部署状态模型的版本。模型版本已通过测试和验证后,您可以更新“冠军”别名指向新训练模型版本,显示下游推理工作负载,他们应该使用这个模型版本生产流量进行预测。例如:

mlflow进口MlflowClient客户端=MlflowClient()客户端set_registered_model_alias(“prod.ml_team.iris_model”,“冠军”,1)

负荷模型推理

消费模式版本的别名推理工作负载

权限要求:执行注册模式,加上使用模式使用目录包含模型的模式和目录上的特权。

您可以编写批推理工作负载,别名引用模型版本。例如,下面的代码片段加载并应用“冠军”模型版本批量推理。如果“冠军”版本更新引用一种新的模式,批处理推理工作负载自动选择下一个执行。这允许您从批解耦模型部署推理工作负载。

进口mlflow.pyfuncmodel_version_uri=“模型:/ prod.ml_team.iris_model@Champion”champion_version=mlflowpyfuncload_model(model_version_uri)champion_version预测(test_x)

查看完整的客户机api使用别名MLflow文档,包括api删除别名

消费模式版本的版本号推理工作负载

你也可以加载模型版本的版本号:

进口mlflow.pyfunc#负荷模型的版本1“prod.ml_team.iris_model”model_version_uri=“模型:/ prod.ml_team.iris_model / 1”first_version=mlflowpyfuncload_model(model_version_uri)first_version预测(test_x)

在工作区共享模型

只要你有适当的权限,您可以访问模型统一从任何工作区目录。例如,您可以访问的模型刺激dev工作区目录,方便生产基线比较新近发展起来的模型。

合作与其他用户(分享写权限)注册模型创建,您必须授予所有权模型的一组包含你自己和你想合作的用户。合作者也必须有使用目录使用模式包含模型的目录和模式上的特权。看到统一目录权限和可获得的对象获取详细信息。

注释版本的模型或模型

权限要求:注册的所有者模型,加上使用模式使用目录包含模型的模式和目录上的特权。

您可以提供信息模型或模型版本注释。例如,您可能想要包括的概述问题或信息所使用的方法和算法。

注释一个模型或模型版本使用UI

看到如何添加减记的评论数据对象

注释使用API模型或者模型版本

更新注册模型描述,使用MLflow客户机APIupdate_registered_model ()方法:

客户端=MlflowClient()客户端update_registered_model(的名字=“<模型名称>”,描述=“<描述>”)

更新版本描述模型,使用MLflow客户机APIupdate_model_version ()方法:

客户端=MlflowClient()客户端update_model_version(的名字=“<模型名称>”,版本= <模型- - - - - -版本>,描述=“<描述>”)

重命名一个模型(API)

权限要求:注册的所有者模型,CREATE_MODEL特权模式包含注册模型,和使用模式使用目录包含模型的模式和目录上的特权。

重命名一个注册模型,使用MLflow客户机APIrename_registered_model ()方法:

客户端=MlflowClient()客户端rename_registered_model(“<模型名称>”,“< new-model-name >”)

删除一个模型或者模型版本

权限要求:注册的所有者模型,加上使用模式使用目录包含模型的模式和目录上的特权。

您可以删除注册模型或模型版本注册模型中使用数据浏览界面或API。

删除一个模型或模型版本使用API

警告

你不能取消这个行动。当你删除一个模型中,所有模型构件由统一存储目录和删除所有与注册相关的元数据模型。

删除一个模型版本

删除一个模型版本,使用MLflow客户机APIdelete_model_version ()方法:

#删除版本1、2和3的模型客户端=MlflowClient()版本=(1,2,3]版本版本:客户端delete_model_version(的名字=“<模型名称>”,版本=版本)

删除一个模型

删除一个模型,使用MLflow客户机APIdelete_registered_model ()方法:

客户端=MlflowClient()客户端delete_registered_model(的名字=“<模型名称>”)

列表和搜索模型

你可以注册模型与MLflow统一目录的列表search_registered_models ()Python API:

客户端=MlflowClient()客户端search_registered_models()

你也可以搜索一个特定的模型使用名称和版本上市细节search_model_versions ()方法:

pprint进口pprint客户端=MlflowClient()(pprint(mv)mv客户端search_model_versions(“name = <模型名称>”)]

例子

这个例子演示了如何使用模型统一目录构建机器学习应用程序。

模型统一目录的例子

迁移工作流和模型来统一目录

下面的文章链接描述如何迁移工作流和模型(模型训练和批推理工作)从工作空间模型注册表统一目录。砖为改善治理建议使用模型统一目录,方便分享在工作空间和环境,和更灵活的MLOps工作流。