管理模型生命周期使用的工作区模型注册表

请注意

这个文档包含了工作区模型注册表。砖推荐使用模型统一目录。模型在目录提供了集中式模型统一治理,cross-workspace访问、血统和部署。工作空间模型注册表将来会被弃用。

本文描述了如何使用工作空间模型注册作为机器学习的一部分工作流管理毫升的完整生命周期模型。工作空间模型注册表是一个Databricks-provided,托管版本MLflow模型的注册表。工作空间模型注册中心提供:

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

  • 模型服务

  • 模型版本。

  • 过渡阶段(例如,从分段生产或存档)。

  • 人则所以你可以自动触发行动基于注册事件。

  • 邮件通知的事件模型。

您还可以创建和查看模型描述和评论。

本文包含指令的工作空间模型注册界面和工作空间模型注册API。

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

创建或注册一个模型

你可以使用UI创建或注册一个模型,或注册一个模型使用API

使用UI创建或注册一个模型

有两种方法来注册一个模型在工作区中注册表。你可以注册一个现有的模型,已经记录到MLflow,或者您可以创建和注册一个新的空模型,然后分配一个以前记录模型。

注册一个现有的从一个笔记本记录模型

  1. 在工作区中,识别包含模型的MLflow运行你想注册。

    1. 单击实验图标实验的图标在笔记本的右栏。

      笔记本电脑工具栏
    2. 在实验中运行栏,单击外部链接图标旁边的日期。MLflow运行页面显示。这个页面显示了运行的细节包括参数、指标、标签和工件的列表。

  2. 在工件部分,单击目录命名xxx-model

    注册模式
  3. 单击注册模式在最右边的按钮。

  4. 在对话框中,单击模型箱,做以下之一:

    • 选择创建新的模型从下拉菜单。的模型名称字段出现。例如,输入一个模型名称scikit-learn-power-forecasting

    • 从下拉菜单中选择一个已存在的模型。

    创建新的模型
  5. 点击注册

    • 如果你选择创建新的模型,这个寄存器模型命名scikit-learn-power-forecasting,将模式复制到一个安全的注册表位置由工作区管理模型,并创建一个新版本的模型。

    • 如果你选择一个现有的模型,这注册一个新版本的选择模型。

    几分钟后,注册模式按钮更改链接到新注册模型版本。

    选择新创建的模型
  6. 点击链接打开新模型版本在工作区中模型注册界面。你还可以找到模型在工作区中注册表通过点击模型图标模型在侧边栏。

创建一个新的注册模型和分配一个记录模型

您可以使用创建模型按钮注册页面创建一个新的模型,空模型,然后指定一个记录模型。遵循以下步骤:

  1. 在模型注册页面,点击创建模型。输入模型的名称,然后单击创建

  2. 按照步骤1到步骤3注册一个现有的从一个笔记本记录模型

  3. 注册模型对话框中,选择模型您在步骤1中创建的名称并单击注册。这个寄存器名称创建一个模型,将模式复制到一个安全的位置由工作区管理模型注册表,并创建一个模型版本:版本1

    几分钟后,MLflow运行界面取代了寄存器模型按钮链接到新注册模型版本。你现在可以选择的模型模型注册模式对话框的下拉列表实验运行页面。你也可以注册新版本的模型通过指定它的名字在API命令创建ModelVersion

注册一个模型使用API

有三种编程方法来注册一个模型在工作区中注册表。所有方法将模式复制到一个安全的位置由工作区管理模型注册表。

  • 记录模型和注册到指定的名称在MLflow实验中,使用mlflow。< model-flavor > .log_model (…)方法。如果注册模型的名称不存在,这个方法注册一个新的模型,创建版本1,并返回一个ModelVersionMLflow对象。如果注册模型的名称已经存在,该方法创建一个新的模型版本并返回对象的版本。

    mlflowstart_run(run_name= <运行- - - - - -的名字>)作为运行:mlflow。<模型- - - - - -味道>。log_model(<模型- - - - - -味道> = <模型>,artifact_path=“< model-path >”,registered_model_name=“<模型名称>”)
  • 注册一个模型与指定名称所有实验运行完成后,你决定哪种模式最适合添加到注册表,使用mlflow.register_model ()方法。对于这个方法,需要运行IDmlruns: URI论点。如果注册模型的名称不存在,这个方法注册一个新的模型,创建版本1,并返回一个ModelVersionMLflow对象。如果注册模型的名称已经存在,该方法创建一个新的模型版本并返回对象的版本。

    结果=mlflowregister_model(“运行:< model-path >”,“<模型名称>”)
  • 创建一个新的注册模型指定的名称,使用MLflow客户机APIcreate_registered_model ()方法。如果模型名称存在,该方法抛出一个MLflowException

    客户端=MlflowClient()结果=客户端create_registered_model(“<模型名称>”)

你也可以注册一个模型砖起程拓殖的提供者databricks_mlflow_model

在UI视图模型

注册页面模型

页面显示当你点击注册模型模型图标模型在侧边栏。此页面显示所有的模型在注册表中。

你可以创建一个新的模型从这个页面。

管理员可以从这个页面,还工作空间设置权限为所有模型在工作区中模型注册表

注册模型

注册页面模型

为模型,模型显示注册页面点击注册模型的模型名称页面。注册模式页面显示所选模型和信息表的信息模型的每个版本。从这个页面中,您还可以:

模型版本页面

视图模型版本的页面,做以下之一:

  • 单击一个版本的名字最新版本列在页面注册模型。

  • 单击一个版本的名字版本列在页面注册模型。

这个页面显示一个特定版本的注册信息模型,还提供了一个链接到源运行(运行的版本的笔记本创建模型)。从这个页面中,您还可以:

模型版本

访问控制模型

学习如何控制模型在工作区中注册模型访问注册表,看看MLflow模型权限

过渡阶段模型

模型版本有一个以下阶段:没有一个,暂存,生产,或存档。的暂存阶段是用来模型测试和验证,虽然生产阶段是模型版本,已经完成了测试或审查流程和部署到应用程序已经住得分。存档的模型版本被认为是不活跃的,此时你可以考虑删除它。不同版本的模型可以在不同的阶段。

一个用户提供合适的许可可以过渡阶段之间的模型版本。如果你有权限模型版本过渡到一个特定的阶段,你可以直接过渡。如果你没有权限,你可以请求阶段过渡和用户有权限模型版本可以过渡批准、拒绝或取消请求

你可以使用UI或过渡模型阶段使用API

过渡阶段使用UI模型

按照下列指示来转换模型的阶段。

  1. 显示的列表可用模型阶段,你的可用选项,在一个模型版本页面,单击旁边的下拉列表阶段:和请求或选择一个过渡到另一个阶段。

    过渡阶段的选择
  2. 输入一个可选的评论,然后单击好吧

模型版本过渡到生产阶段

测试和验证后,可以过渡或请求一个过渡到生产阶段。

工作空间模型注册允许多个版本的注册模型在每个阶段。如果你想在生产中只有一个版本,你可以转换所有版本的模型目前在生产检查归档转变现有生产模型版本存档

批准、拒绝或取消请求模型版本阶段过渡

用户没有权限可以请求阶段过渡阶段过渡。请求出现在挂起的请求部分的模型版本页面:

过渡到生产

批准、拒绝或取消一个阶段转换请求,点击批准,拒绝,或取消链接。

过渡的创建者请求也可以取消请求。

视图模型版本活动

查看所有的转换请求,批准,等待,并应用于一个模型版本,活动部分。这个记录的活动提供了一个模型的生命周期的血统为审计或检查。

过渡使用API模型阶段

用户提供适当的权限模型版本过渡到一个新的阶段。

更新模型版本阶段提升到一个新的阶段,使用MLflow客户机APItransition_model_version_stage ()方法:

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

可接受的值<阶段>是:“暂存”|“暂存”,“存档”|“归档”,“生产”|“生产”,“没有”|“没有”

使用模型推理

预览

这个特性是在公共预览

模型是在工作区中注册模型后注册表,您可以自动生成一个笔记本使用批处理或流推理模型。或者,您可以创建一个端点使用实时服务的模型模型服务

在右上角注册页面模型或者是模型版本页面,点击使用模型按钮。配置模型推理对话框,它允许您配置批,流媒体,或者实时推理。

重要的

蟒蛇inc .)更新他们的服务条款为anaconda.org频道。基于新的服务条款你可能需要一个商业许可证如果你依靠蟒蛇的包装和分布。看到蟒蛇商业版常见问题解答为更多的信息。你使用任何蟒蛇的通道是由他们的服务条款。

MLflow模型记录之前v1.18(砖运行时的8.3毫升或更早)与conda默认登录违约通道(https://repo.anaconda.com/pkgs/作为一个依赖项。因为这个许可改变,砖已经停止使用违约渠道模式登录使用MLflow v1.18以上。默认通道记录是现在conda-forge,点在社区管理https://conda-forge.org/

如果你登录一个模型之前MLflow v1.18没有排除违约通道从conda环境模型,该模型可能有依赖违约频道,你可能没有。手动确认模型是否有这种依赖性,你可以检查通道的价值conda.yaml打包的文件与记录模型。例如,一个模式conda.yaml与一个违约通道的依赖可能看起来像这样:

渠道:- - - - - -违约依赖关系:- - - - - -python = 3.8.8- - - - - -皮普- - - - - -皮普:- - - - - -mlflow- - - - - -scikit-learn = = 0.23.2- - - - - -cloudpickle = = 1.6.0的名字:mlflow-env

因为砖不能确定你使用的水蟒库与模型进行交互是允许你和蟒蛇的关系下,砖不是迫使其客户进行任何更改。如果你使用Anaconda.com回购通过使用砖是允许在蟒蛇的条件下,您不需要采取任何行动。

如果你想换频道中使用模型的环境中,您可以重新注册模型来注册一个新的工作空间模型conda.yaml。你可以通过指定的通道conda_env参数的log_model ()

更多的信息log_model ()API,看到MLflow味道你正在与文档模型,例如,为scikit-learn log_model

的更多信息conda.yaml文件,请参见MLflow文档

配置模型推理对话框

配置批推理

当你遵循这些步骤,以创建一批推理笔记本,笔记本是保存在您的用户文件夹下Batch-Inference与模型文件夹在文件夹的名字。你可以根据需要编辑的笔记本。

  1. 单击批推理选项卡。

  2. 模型版本下拉,选择要使用的模型版本。前两个项目下拉模型的当前生产和分段版本(如果存在的话)。当您选择这些选项之一,笔记本自动使用生产或临时版本的运行时间。你不需要更新笔记本继续发展模型。

  3. 单击浏览旁边的按钮输入表。的选择输入数据对话框出现了。如果有必要,你可以改变的集群计算下拉。

    请注意

    统一目录启用工作区,选择输入数据对话框允许您选择从三个层次,<目录名称>。<数据库名称>。<表名称>

  4. 选择包含模型的输入数据的表,并单击选择。进口笔记本电脑自动生成该数据并将其发送到模型中。您可以编辑生成的笔记本如果数据需要任何之前转换输入到模型中。

  5. 预测是保存在一个文件夹的目录dbfs: / FileStore / batch-inference。默认情况下,保存在一个文件夹名称相同的预测模型。每次运行生成的笔记本写到一个新文件与时间戳添加到该目录的名字。你也可以选择不包括覆盖该文件的时间戳和随后的笔记本的运行;指令提供了生成的笔记本。

    你可以改变预测的文件夹保存输入到一个新文件夹的名字输出表的位置字段或通过单击文件夹图标浏览目录并选择一个不同的文件夹。

    将预测保存到一个位置统一目录,您必须编辑笔记本。例如笔记本显示如何训练机器学习模型,使用数据统一目录并把结果返回给统一目录,看看培训和注册机器学习模型与统一目录

配置流推理使用三角洲住表

当你按照以下步骤创建一个流推理笔记本,笔记本是保存在您的用户文件夹下DLT-Inference与模型文件夹在文件夹的名字。你可以根据需要编辑的笔记本。

  1. 单击流(δ生活表)选项卡。

  2. 模型版本下拉,选择要使用的模型版本。前两个项目下拉模型的当前生产和分段版本(如果存在的话)。当您选择这些选项之一,笔记本自动使用生产或临时版本的运行时间。你不需要更新笔记本继续发展模型。

  3. 单击浏览旁边的按钮输入表。的选择输入数据对话框出现了。如果有必要,你可以改变的集群计算下拉。

  4. 选择包含模型的输入数据的表,并单击选择。使用生成的笔记本创建一个数据变换作为源和整合了MLflow输入表PySpark推理UDF执行模型预测。您可以编辑生成的笔记本如果需要任何额外的转换之前或之后的数据模型。

  5. 提供输出三角洲住表名。笔记本用给定的名称创建一个生活表,并使用它来存储模型预测。您可以修改生成的笔记本定制所需的目标数据集——例如:定义一个直播表作为输出,添加模式信息或数据质量约束。

  6. 您可以创建一个新的三角洲生活表管道用这个笔记本或将其添加到现有管道作为额外的笔记本图书馆。

提供反馈

这个特性在预览,我们希望得到你的反馈。提供反馈,点击提供反馈在配置模型推理对话框。

比较模型版本

在工作区中您可以比较模型版本模型注册表。

  1. 注册页面模型,选择两个或两个以上的模型版本通过点击复选框左边的模型版本。

  2. 点击比较

  3. 的比较< N >版本屏幕出现,显示一个比较的参数表格,模式和指标选择模型的版本。在屏幕的底部,您可以选择的绘图类型(散射、轮廓或平行坐标)和情节的参数或指标。

控制通知偏好

您可以配置工作空间模型注册通过电子邮件通知您关于注册活动模型和模型指定的版本。

在注册页面模型,通知我菜单显示了三个选项:

邮件通知菜单
  • 所有的新活动:发送电子邮件通知所有活动模型版本的这个模型。如果您注册创建模型,这个设置是默认的。

  • 我跟着活动版本只有模型版本:发送电子邮件通知你。这个选择,你收到通知所有模型版本,你遵循;你不能关闭的通知特定的模型版本。

  • 沉默的通知:不发送电子邮件通知活动在这注册模型。

以下事件触发邮件通知:

  • 创建一个新的模型版本

  • 请求一个阶段过渡

  • 阶段过渡

  • 新评论

你是自动订阅模型通知当你有下列:

  • 模型版本的评论

  • 模型版本的过渡阶段

  • 要求模型的过渡阶段

看看你模型版本后,看下的状态字段模型版本页面,或表的模型版本注册页面模型

关掉所有电子邮件通知

您可以在工作区中关掉邮件通知模型注册用户设置菜单的设置选项卡:

  1. 点击用户设置图标设置在左下角的砖工作区。

  2. 点击用户设置

  3. 电子邮件首选项选项卡。

  4. 关掉工作空间模型注册邮件通知

一个帐户管理员可以关掉整个组织的电子邮件通知管理员设置页面

最大数量的电子邮件发送

工作空间模型注册限制每个用户发送的邮件数量每一天的活动。举个例子,如果你收到一天20封电子邮件关于新模型版本为注册创建模型、空间模型注册发送电子邮件指出每日限制已经达到,也没有额外的电子邮件关于这个事件被发送到第二天。

增加邮件的数量的限制,请联系您的砖的代表。

人则

预览

这个特性是在公共预览

人则使您能够监听工作空间模型注册事件所以你的集成可以自动触发动作。您可以使用人自动化和集成你的机器学习管道与现有CI / CD工具和工作流。例如,您可以触发CI构建当创建一个新的模型版本或通知你的团队成员通过松弛每次模型过渡到生产要求。

注释版本的模型或模型

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

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

砖UI提供了几种方法来标注模型和模型版本。您可以添加使用描述或评论文本信息,你可以添加搜索键-值标签。描述和标签可用于模型和模型版本;评论仅供模型版本。

  • 旨在提供信息模型描述。

  • 评价提供一种方法来维护一个正在进行的讨论活动模型版本。

  • 标记允许您定制模型元数据能很容易地找到特定的模型。

添加或更新一个模型或模型的描述版本

  1. 注册模式模型版本页面,点击编辑旁边描述。一个编辑窗口。

  2. 在编辑窗口中输入或编辑的描述。

  3. 点击保存保存您的更改或取消关闭窗口。

    如果你进入了一个描述模型的版本,描述出现在描述列在表注册页面模型。列显示最多32个字符或者一行文本,哪个是短的。

模型版本添加评论

  1. 向下滚动模型版本页面,点击旁边的向下箭头活动

  2. 在编辑窗口中输入你的评论和点击添加评论

为一个模型或者模型版本添加标签

  1. 注册模式模型版本页面,点击标签图标如果尚未打开。标签表出现。

    标签表
  2. 点击的名字价值字段和标签的键和值类型。

  3. 点击添加

    添加标签

编辑或删除标记为一个模型或者模型版本

编辑或删除现有标签,使用的图标行动列。

标签的行为

注释一个模型使用API版本

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

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

建立或更新一个标记注册模型或者模型版本,使用MLflow客户机API“set_registered_model_tag ()”)或“set_model_version_tag ()”方法:

客户端=MlflowClient()客户端set_registered_model_tag()(的名字=“<模型名称>”,关键=“<键值>”,标签=“<标签值>”)
客户端=MlflowClient()客户端set_model_version_tag()(的名字=“<模型名称>”,版本= <模型- - - - - -版本>,关键=“<键值>”,标签=“<标签值>”)

重命名一个模型(API)

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

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

请注意

您可以重命名一个注册模型只有在它没有版本,或所有版本都没有或归档阶段。

寻找一个模型

你可以搜索模型在工作区中模型注册使用UI或API。

请注意

当你搜索一个模型,只有你至少有模型“可读”权限返回。

寻找一个模型使用UI

显示注册模式,点击模型图标模型在侧边栏。

搜索一个特定的模型,在搜索框中输入文本。您可以输入一个模型的名称或任何部分的名称:

注册模型搜索

你也可以搜索标签。在这种格式输入标签:标签。<键> = <值>。搜索多个标签,使用操作符。

标签关键词搜索

你可以搜索模型名称和标签使用MLflow搜索语法。例如:

名称和标签关键词搜索

寻找一个模型使用API

你可以搜索模型在工作区中模型注册中心注册MLflow客户机API方法search_registered_models ()

如果你有设置标签在你的模型,你也可以搜索的标签search_registered_models ()

打印(f“找到注册模型与一个特定的标记价值”)客户端search_registered_models(f“tags. <键值> = <标签值>”):pprint(dict(),缩进=4)

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

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

这个输出:

{“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}{“creation_timestamp”: 1582671960628,“current_stage”:“没有”,“描述”:没有,“last_updated_timestamp”: 1582671960628,“名称”:“sk-learn-random-forest-reg-model”,“run_id”:“d994f18d09c64c148e62a785052e6723”,“源”:“。/ mlruns / 0 / d994f18d09c64c148e62a785052e6723 /工件/ sklearn-model ',“状态”:“准备好了”,“status_message”:没有,“user_id”:没有,“版本”:2}

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

你可以删除一个模型使用UI或API。

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

警告

你不能取消这个行动。你可以转换模型版本归档阶段而不是从注册表删除它。当你删除一个模型中,所有的模型构件存储空间模型注册和删除所有与注册相关的元数据模型。

请注意

你可以只删除模型和模型版本在没有或归档阶段。如果注册模型版本暂存或生产阶段,你必须转变他们没有或归档阶段之前删除模型。

删除一个模型版本:

  1. 点击模型图标模型在侧边栏。

  2. 点击一个模型的名字。

  3. 点击一个模型版本。

  4. 点击删除模型版本在屏幕的右上角和选择删除从下拉菜单。

删除模型:

  1. 点击模型图标模型在侧边栏。

  2. 点击一个模型的名字。

  3. 点击删除模型在屏幕的右上角和选择删除从下拉菜单。

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

警告

你不能取消这个行动。你可以转换模型版本归档阶段而不是从注册表删除它。当你删除一个模型中,所有的模型构件存储空间模型注册和删除所有与注册相关的元数据模型。

请注意

你可以只删除模型和模型版本在没有或归档阶段。如果注册模型版本暂存或生产阶段,你必须转变他们没有或归档阶段之前删除模型。

删除一个模型版本

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

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

删除一个模型

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

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

工作区之间复制MLflow对象

导入或导出MLflow对象或从你的砖工作空间,您可以使用社区驱动的开源项目bob下载地址MLflow进出口迁移MLflow实验、模型和工作区之间运行。

使用这些工具,您可以:

  • 与其他数据共享和协作科学家在同一个或另一个跟踪服务器。例如,您可以克隆一个实验从另一个用户到您的工作区。

  • 复制一个模型从一个空间到另一个,比如从开发到生产工作区。

  • 从你当地的跟踪服务器复制MLflow实验和运行你的砖工作区。

  • 备份关键任务的实验和模型到另一个砖工作区。

例子

这个例子演示了如何使用工作空间模型注册表来构建一个机器学习的应用程序。

工作空间模型注册表实例