功能介绍

模型仓库功能的核心定义是提供一个基于 Git 的版本控制存储系统,用于机器学习模型,使团队能够管理模型文件、跟踪版本并跨租户协作。它利用 Git LFS 进行大文件存储,并与 MLOps 工作流集成,以桥接模型开发和部署。

优势

  1. Git 原生版本控制
    • 通过提交/分支/标签跟踪模型更改,确保可重复性。
  2. 高速传输
    • CLI/Notebook 上传利用内部网络带宽(例如,AML Notebooks同机房加速)。
  3. 跨租户共享
    • 共享模型可以跨命名空间访问(例如,public 作为模型市场)。
  4. 无缝集成
    • 直接从仓库部署模型到推理服务。

适用场景

  • 团队协作
    • 多个数据科学家在同一个仓库中同时更新和版本化模型。
  • 模型审计
    • 通过 Git 提交/标签追踪历史版本以确保合规性。
  • 集中资产管理
    • 在统一中心组织私有/共享模型及其元数据(例如,标签/描述)。

带来的价值

  • 可重复性
    • 通过标签锁定模型版本(例如,production/v1.2)以避免训练-推理偏差。
  • 效率
    • CLI 上传绕过浏览器对大文件(>10GB)的限制。
  • 安全性
    • 通过 GitLab 凭证实现租户隔离,防止未授权访问。
  • 成本降低
    • 通过重复使用共享模型(例如,公共 BERT 权重)消除冗余存储。

主要特性

模型仓库创建与删除

  • 创建一个带有元数据(名称/描述/可见性)的空 Git 支持仓库。
  • 删除模型前需进行依赖检查(例如,确保没有活跃的推理服务)。

文件管理

  • Web UI 上传
    • 拖放文件/文件夹(限于小/中等大小)。
  • CLI/Git LFS
    • 使用 git lfs track 管理大文件(例如,*.bin*.h5)。
    • 示例:
      git clone <model_repo_url>
      git lfs install
      cp ~/local_model/* . && git add . && git commit -m "v1.0" && git push
      

版本控制

  • 分支管理
    • 维护平行版本(例如,experimentalmain 分支)。
  • 标签管理
    • 通过 UI/CLI 标记发布(例如,git tag -a v2.0 -m "稳定发布")。
  • 元数据同步
    • 自动读取默认分支的 README.md 以获取模型描述。

跨租户共享

  • 共享模型
    • 在创建时将可见性设置为“共享”,以便跨租户访问。
  • 公共市场
    • 使用 public 命名空间发布开源模型(例如,HuggingFace 转换)。

与 MLOps 集成

  • 准备部署
    • 从标记的模型版本一键启动推理服务。
  • Notebook 集成
    • 直接将模型拉入 AML Notebooks 进行测试:
      !git clone https://aml-public/resnet50.git
      

技术说明

  • Git LFS 要求
    • 必须包含 .gitattributes 以指定 LFS 追踪的文件(例如,*.zip filter=lfs diff=lfs merge=lfs)。
  • 默认分支规则
    • 配置错误的 README.md 元数据可能会阻止推理部署。

创建模型仓库

步骤 1

参数描述
名称必填,模型仓库名称。
标签自定义分类和搜索的标签(例如,“CV”,“NLP”,“生产”)。
描述仓库目的、模型类型或使用指南的详细说明。

步骤 2

创建一个空仓库。

步骤 3

上传模型文件

您可以通过以下任一方法上传模型文件:

选项 1:Web UI 上传

  • 使用文件管理界面上传文件
  • 将文件/文件夹拖放到指定区域
  • 支持格式:所有模型文件类型(.h5,.bin,.pt 等)
  • 进度跟踪与实时上传状态

选项 2:Git 命令行上传

  1. 获取仓库地址:
  • 导航至详细信息 → 基本信息
  • 复制 Git 仓库 URL(例如,https://<your-domain>/<namespace>/<repo-name>.git)
  1. 通过 Git 上传:

# 克隆仓库
git clone <repository-url>

# 导航至仓库目录
cd <repo-name>

# 初始化 Git LFS(如果尚未设置)
git lfs install

# 添加模型文件(替换为您的实际文件)
cp -r /path/to/your/model/files/* .

# 配置 LFS 跟踪(用于大文件)
git lfs track "*.h5" "*.bin" "*.pt"

# 提交并推送
git add .
git commit -m "添加模型文件 v1.0"
git push origin main