生命周期管理模型统一目录
预览
这个特性是在公共预览。
本文描述了如何使用模型统一目录作为机器学习的一部分工作流管理毫升的完整生命周期模型。砖MLflow模型注册的提供托管版本统一目录。模型统一目录扩展统一目录毫升模型的好处,包括集中式访问控制、审计、血统和模型发现工作区。模型统一目录兼容开源MLflow Python客户机。
统一目录中的关键特性的模型包括:
命名空间和治理模式,所以你可以在环境、组织和管理模型的项目,或团队水平(“格兰特数据科学家只读访问生产模型”)。
时间模型谱系(MLflow实验和运行产生模型在给定的时间)。
模型服务。
模型版本。
通过别名模型部署。例如,标志着“冠军”在你的版本的模型
刺激
目录。
本文包含的指令模型统一目录UI和API。
模型注册中心概念的概述,请参阅MLflow指南。
请注意
本文文档模型统一目录,砖建议的管理和部署模型。经典空间模型的文档注册表,请参阅管理模型生命周期使用的工作区模型注册表。从工作空间模型为指导如何升级注册表统一目录,看看迁移工作流和模型来统一目录。
需求
统一目录必须启用您的工作区中。看到开始使用统一目录创建一个目录Metastore统一,使它在一个工作区,并创建一个目录。如果没有启用统一目录,您仍然可以使用经典工作空间模型注册
工作区必须连接到一个统一的目录metastore支持继承的特权。这适用于所有metastores之后创建8月25日,2022年。如果运行在一个老metastore,按照文档升级。
你必须能够访问运行命令集群提供统一的目录。
创建新的注册模型,你需要
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客户:
进口mlflowmlflow。set_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=mlflow。last_active_run()model_uri=”:/{}/模式”。格式(autolog_run。信息。run_id)mlflow。register_model(model_uri,“prod.ml_team.iris_model”)
注册一个模型统一目录自动推断签名
支持自动推断签名有MLflow 2.5.0及以上版本,和支持数据砖运行时11.3 LTS毫升以上。使用自动推断签名,使用以下代码来安装最新MLflow Python客户机在你的笔记本:
%皮普安装- - -升级“mlflow-skinny(砖)”dbutils。图书馆。restartPython()
下面的代码显示了一个示例的一个自动推断签名。
从sklearn进口数据集从sklearn.ensemble进口RandomForestClassifier与mlflow。start_run():#训练sklearn虹膜数据集模型X,y=数据集。load_iris(return_X_y=真正的,as_frame=真正的)clf=RandomForestClassifier(max_depth=7)clf。适合(X,y)#把第一行的训练数据集作为模型输入的例子。input_example=X。iloc[[0]]#日志模型并注册它在加州大学一个新版本。mlflow。sklearn。log_model(sk_model=clf,artifact_path=“模型”,#自动推断从输入签名及其预测输出示例。input_example=input_example,registered_model_name=“prod.ml_team.iris_model”,)
访问控制模型
注册信息访问控制模型统一目录,看看统一目录权限和可获得的对象。最佳的最佳实践在组织模型目录和模式,明白了组织你的数据。
管理模型的发布与别名
别名允许您指定一个可变的模型,命名为参考模型在一个注册到一个特定的版本。
您可以使用别名来指定哪个模型版本部署工作流模型中在给定的环境中训练。例如,您可以指定当前“冠军”的模式版本,应该成为大多数生产流量使用别名。然后您可以编写别名的推理目标的工作负载,比如使用“冠军”版本进行预测。下面的流程演示了这种方法。
马克模型部署使用别名
权限要求:注册的所有者模型,加上使用模式
和使用目录
包含模型的模式和目录上的特权。
上面的模型训练示例生成一个新的模型版本和登记注册的模式下刺激
目录。在这个例子中,使用刺激
目录并不意味着服务生产流量模型版本。模型版本的封闭目录、模式和注册模型反映其环境(刺激
)和相关治理规则(例如,权限可以设置,因此只有管理员可以删除的刺激
目录),但不是它的部署状态。
别名允许您更新部署状态模型的版本。模型版本已通过测试和验证后,您可以更新“冠军”别名指向新训练模型版本,显示下游推理工作负载,他们应该使用这个模型版本生产流量进行预测。例如:
从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=mlflow。pyfunc。load_model(model_version_uri)champion_version。预测(test_x)
查看完整的客户机api使用别名MLflow文档,包括api删除别名。
注释版本的模型或模型
权限要求:注册的所有者模型,加上使用模式
和使用目录
包含模型的模式和目录上的特权。
您可以提供信息模型或模型版本注释。例如,您可能想要包括的概述问题或信息所使用的方法和算法。
重命名一个模型(API)
权限要求:注册的所有者模型,CREATE_MODEL
特权模式包含注册模型,和使用模式
和使用目录
包含模型的模式和目录上的特权。
重命名一个注册模型,使用MLflow客户机APIrename_registered_model ()
方法:
客户端=MlflowClient()客户端。rename_registered_model(“<模型名称>”,“< new-model-name >”)
删除一个模型或者模型版本
权限要求:注册的所有者模型,加上使用模式
和使用目录
包含模型的模式和目录上的特权。
您可以删除注册模型或模型版本注册模型中使用数据浏览界面或API。
列表和搜索模型
你可以注册模型与MLflow统一目录的列表search_registered_models ()Python API:
客户端=MlflowClient()客户端。search_registered_models()
你也可以搜索一个特定的模型使用名称和版本上市细节search_model_versions ()
方法:
从pprint进口pprint客户端=MlflowClient()(pprint(mv)为mv在客户端。search_model_versions(“name = <模型名称>”)]