模型注册表
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
机器学习模型注册表作为管理机器学习模型整个生命周期的中央仓库。它像一个专门的数据库,存储模型版本以及包括性能指标、验证结果和数据谱系信息在内的基本元数据。
使用 GitLab 模型注册表可以:
- 系统性地注册和版本化机器学习模型
- 跟踪全面的元数据,包括性能指标、参数和数据谱系
- 比较模型版本并监控其随时间的演变
- 维护模型行为和要求的清晰文档
有关模型注册表功能和能力的更多信息,请参见 epic 9423。
访问模型注册表
模型注册表由包注册表设置控制。 在使用模型注册表之前,请确保已启用包注册表。
要访问模型注册表,在左侧边栏中选择 Deploy > Model registry。
如果 Model registry 不可用,请确保它已启用。
要启用模型注册表或将可见性级别设置为公开或私有:
- 在左侧边栏中,选择 Search or go to 并找到您的群组。
- 选择 Settings > General。
- 展开 Visibility, project features, permissions。
- 在 Model registry 下,确保开关已打开,并选择您希望谁拥有访问权限。 用户必须拥有至少 Reporter 角色 才能修改或删除模型和模型版本。
使用 UI 创建机器学习模型
要通过 GitLab UI 创建新的机器学习模型:
- 在左侧边栏中,选择 Deploy > Model registry。
- 在 Model registry 页面,选择 Create/Import。
- 在下拉菜单中,选择 Create new model。
- 完成字段:
- 为您的模型输入一个唯一的名称。
- 可选。为模型提供描述。
- 选择 Create。
您现在可以在模型注册表中查看新创建的模型。
使用 UI 创建模型版本
要创建新的模型版本:
- 在模型详情页面,选择 Create new version。
- 完成字段:
- 输入遵循语义版本控制的唯一版本号。
- 可选。为模型版本提供描述。
- 上传与模型版本关联的任何文件、日志、指标或参数。
- 选择 Create & import。
新的模型版本现在在模型注册表中可用。
删除模型
要删除模型及其所有关联版本:
- 在左侧边栏中,选择 Deploy > Model registry。
- 找到您要删除的模型。
- 在最右侧的列中,选择垂直省略号 ( ) 和 Delete model。
或者,您可以从模型详情页面删除模型:
- 在左侧边栏中,选择 Deploy > Model registry。
- 找到您要删除的模型。
- 选择模型名称以查看其详情。
- 选择垂直省略号 ( ) 和 Delete model。
- 确认删除。
删除模型版本
要删除模型版本:
- 在左侧边栏中,选择 Deploy > Model registry。
- 找到您要删除版本的模型。
- 选择模型名称以查看其详情。
- 选择 Versions 标签页。
- 找到您要删除的模型版本
- 在最右侧的列中,选择垂直省略号 ( ) 和 Delete model version。
或者,您可以从模型版本详情页面删除模型:
- 在左侧边栏中,选择 Deploy > Model registry。
- 找到您要删除版本的模型。
- 选择模型名称以查看其详情。
- 选择 Versions 标签页。
- 选择版本名称以查看其详情。
- 选择垂直省略号 ( ) 和 Delete model version。
- 确认删除。
向模型版本添加工件
要向模型版本添加工件:
- 在左侧边栏中,选择 Deploy > Model registry。
- 找到模型。
- 选择模型名称以查看其详情。
- 选择 Versions 标签页。
- 选择版本名称以查看其详情。
- 选择 Artifacts 标签页。
- 可选。指定要上传文件的子文件夹路径。例如
config。 - 使用 select 选择要上传的文件。
- 选择 Upload。
或者,您可以将文件拖放到拖放区域。工件会自动上传。
由于每个文件的大小限制为 5 GB,您必须分割较大的模型。
从模型版本删除工件
要删除版本的工件:
- 在左侧边栏中,选择 Deploy > Model registry。
- 找到模型。
- 选择模型名称以查看其详情。
- 选择 Versions 标签页。
- 选择版本名称以查看其详情。
- 选择 Artifacts 标签页。
- 选择您要删除的每个工件旁边的复选框。
- 选择 Delete。
- 确认删除。
使用 MLflow 创建机器学习模型和模型版本
可以使用 MLflow 客户端兼容性创建模型和模型版本。 有关如何创建和管理模型及模型版本的更多信息,请参见 MLflow 客户端兼容性。 您也可以通过在模型注册表页面选择 Create Model 直接在 GitLab 上创建模型。
使用 MLflow 向模型版本添加工件、指标和参数
文件可以通过以下方式上传到模型版本:
- 包注册表,其中模型版本与名为
<model_name>/<model_version>的包关联。 - MLflow 客户端兼容性。查看详情。
用户可以通过 MLflow 客户端兼容性记录模型版本的指标和参数,查看详情
将模型版本链接到 CI/CD 作业
当通过 GitLab CI/CD 作业创建模型版本时,您可以将模型版本链接到该作业,从而方便地访问作业的日志、合并请求和流水线。 这可以通过 MLflow 客户端兼容性完成。查看详情。
模型版本和语义版本控制
GitLab 中模型版本的版本必须遵循 语义版本规范。 使用语义版本控制可以促进模型部署,通过传达新版本是否可以在不更改应用程序的情况下部署:
-
Major(整数):主要组件的变更表示模型发生了破坏性变更,并且使用该模型的应用程序必须更新才能正确使用此新版本。 新算法或添加必需的特征列是破坏性变更的示例,这些变更需要在主要组件上进行版本提升。
-
Minor(整数):次要组件的变更表示非破坏性变更,消费者可以安全地使用新版本而不会破坏,尽管消费者可能需要更新以使用其新功能。例如,为模型添加带有默认值的非必需特征列是次要版本提升,因为当未传递添加列的值时,推理仍然有效。
-
Patch(整数):补丁组件的变更意味着发布了一个新版本,该版本不需要应用程序执行任何操作。例如,模型的每日重新训练不会改变特征集或应用程序如何使用模型版本。自动更新到新补丁是安全的更新。
-
Prerelease(文本):表示尚未准备好用于生产环境的版本。用于标识模型的 alpha、beta 或发布候选版本。
模型版本示例
- 初始发布:1.0.0 - 模型的首次发布,没有变更或补丁。
- 新功能:1.1.0 - 向模型添加了新的非破坏性功能,提升了次要版本。
- 错误修复:1.1.1 - 修复了模型中的错误,提升了补丁版本。
- 破坏性变更:2.0.0 - 对模型进行了破坏性变更,提升了主要版本。
- 补丁发布:2.0.1 - 修复了模型中的错误,提升了补丁版本。
- 预发布:2.0.1-alpha1 - 模型的预发布版本,带有 alpha 发布。
- 预发布:2.0.1-rc2 - 模型的发布候选版本。
- 新功能:2.1.0 - 向模型添加了新功能,因此提升了次要版本。