在 GitHub 上编辑

入门:管理模型

在本指南中,我们将使用 DVC Studio 来管理模型注册表。你可以在 DVC Studio 中查看我们的 示例模型,了解完成本指南所有步骤后的最终效果。

要执行本指南中的模型注册表操作,请按照以下步骤登录 DVC Studio,将其连接到你的 Git 账户,并将你的仓库添加为 DVC Studio 项目。

现在我们已经添加了一个模型,如果你进入 DVC Studio 的“模型”标签页并选择 pool-segmentation 模型,你应该会看到类似下图的内容。

Newly added model in the Model Registry

你还可以查看此时项目的状态,该状态已记录在我们的示例仓库中。

在后台,DVC Studio 使用一个名为 GTO 的命令行工具来执行大多数模型注册表操作。

你也可以在本地使用 GTO 设置模型注册表,而无需 DVC Studio。本章的可展开“底层原理”部分展示了具体实现方式。

当你注册模型版本、分配或移除阶段、或弃用模型时,GTO 会为选定的提交打上特定格式的 Git 标签,模型注册表通过解析这些标签来追踪模型的生命周期历史。

这意味着模型注册表使用的所有元数据实际上都存储在你的 Git 仓库中!

这也允许你直接使用 GTO 而非 DVC Studio 的用户界面来管理模型生命周期。例如,当你希望以编程方式触发某些模型注册表操作时,这会非常有用。你可以在 GTO 的文档中了解更多细节。

如果你完全没有 DVC Studio 账户,则必须为每个 Git 仓库单独管理模型注册表。

模型版本管理

现在我们的模型注册表中已经有了第一个模型,可以开始为该模型注册模型版本了。我们通过选择模型开发历史中的某个特定提交,并为其附加一个版本号,以便更方便地进行追踪。你现在可以直接在 DVC Studio 用户界面中完成此操作,如下所示。

Register model version

由于我们在最新的提交中已将模型保存至 DVC 并添加到了模型注册表,因此我们可以保留 DVC Studio 自动选中的提交。同时,我们也保留建议的版本号 v1.0.0。

一旦我们注册了第一个模型版本,DVC Studio 还会自动将其与实验跟踪关联起来,所有在此处跟踪的指标也会显示在模型注册表的每个模型版本中。

使用 DVC Studio 注册模型版本的操作,等价于以下 GTO 命令

gto register pool-segmentation [ref] --version v1.0.0

其中,[ref] 是我们在 DVC Studio 菜单中选择的 Git 引用/哈希值。

更多详情请参考gto register 命令参考文档

分配生命周期阶段

我们已经有了模型的第一个版本,现在是为其分配模型生命周期阶段的好时机。你可以创建任意数量、任意名称的生命周期阶段,但在本示例中,我们仅创建两个阶段:“dev”和“prod”。

每当模型版本被分配到某个阶段时,就会创建该阶段。现在,你可以将模型版本 1.0.0 分配给 "dev" 阶段,操作如下。

Assign model stage

当我们把模型分配到某个阶段时,可以自动触发 CICD 工作流中的操作,例如将模型部署到新的环境(我们将在 使用和部署模型 章节中探讨具体实现方式)。

使用 DVC Studio 将 "dev" 阶段分配给模型的操作,等价于以下 GTO 命令。

gto assign pool-segmentation --version v1.0.0 --stage dev

更多细节请参考 gto assign 命令文档

更改(和移除)阶段分配

假设我们已决定将模型版本 1.0.0 提升至生产环境,并表明它不再处于 "dev" 阶段。首先,像之前对 "dev" 阶段所做的那样,将该模型版本分配到 "prod" 阶段。

现在,若要从模型版本 1.0.0 中移除 "dev" 阶段,仅保留其在 "prod" 阶段的分配,请按照以下步骤操作:

Remove model stage

还可以注销模型版本,或将模型完全从注册表中弃用并删除。具体操作方法请参阅相关文档。

此时,注册表中该模型的详细视图应与我们在 示例中看到的内容 一致。

每次我们取消阶段分配、注销模型版本或弃用模型时,DVC Studio 都会在底层使用 GTO 库。你也可以手动使用 GTO 来执行这些操作。具体方法请参考 gto deprecate 命令文档

审计模型历史

我们在模型注册表中执行的每项操作都会留下记录,以便审计模型历史。如果你现在查看该模型的详情页面,应该会看到类似如下内容:

Model history

正如我们前面提到的,DVC 使用特殊的 Git 标签来跟踪模型注册表的操作,因此所有这些历史记录实际上都直接存储在你的 Git 仓库中。DVC Studio 可以解析这些标签,并以用户友好的方式展示给我们。

如果你查看 示例仓库中的标签,就会发现我们执行的所有模型注册表操作都被这些标签所记录。在下一节中,我们将学习如何利用这些标签来访问模型版本,并触发自动化部署或其他 CICD 工作流。

内容

🐛 发现问题?告诉我们!或者修复它:

在 GitHub 上编辑

有疑问?加入我们的聊天,我们会为您提供帮助:

Discord 聊天