全部文档
当前文档

共搜索到 0 条结果

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

SAM2 万物分割模型的开发与训练

最近更新时间:2026-06-01 10:44:03

背景信息

SAM2(Segment Anything Model 2)是 Meta 公司推出的开源万物分割大模型,在计算机视觉、具身智能等领域有广泛的应用。本文介绍如何使用星流训推平台完成 SAM2 模型的开发与训练。

约束限制

  • 原始数据集中存在隐藏文件,需要全部删除后再上传,才能保证后续训练正常进行。

  • SAM2 需要 torch>=2.5.1,建议使用 pytorch-2.6.0-devel 镜像,CUDA 版本选择 12.6。

  • 开源代码中有部分路径硬编码默认读取 /root 路径下的文件,为降低训练复杂度(避免修改源码及文件路径混淆),建议将源码放到 /root 目录下。

  • 训练任务必需 sam2.1_hiera_base_plus.pt 检查点文件,其余三个检查点文件(sam2.1_hiera_tiny.ptsam2.1_hiera_small.ptsam2.1_hiera_large.pt)可仅在需要时下载。

准备工作

下载和上传数据集至 KS3

您也可选择使用文件存储 KPFS,本实践以 KS3 为例。

  1. 下载数据集,可直接访问 SAM2 GitHub

    原始数据集中存在隐藏文件,需要全部删除后才能保证训练的正常进行

  2. 登录对象存储控制台

  3. 在左侧导航栏选择存储空间,新建存储空间。

    若已存在可用的存储空间,可直接点击空间名称。

  4. 进入目标存储空间详情页面,选择内容管理 > 上传文件,将数据集上传至 MOSE_release 文件夹中。

创建存储配置

  1. 进入星流平台,在顶部导航栏,选择训练与仿真 > 公共资产管理 > 存储配置

  2. 选择 KS3存储配置 页签,点击 +新建,根据如下要求配置各项参数,点击确定

    • 选择KS3实例:选择前文中已经上传了数据集的实例。

    • KS路径:选择上传有数据集的目录,本实践为 MOSE_release/processed_dataset

    • 挂载路径:拉起任务时数据挂载的路径,本实践为 /mnt/data

    • 其他参数:参考 KS3 存储配置相关操作指南

创建计算资源

  1. 参考资源组相关内容,创建包含GPU节点的资源组。

  2. 参考队列相关内容,创建含有GPU节点的队列。

实践流程

本实践的整体流程如下:

  1. 创建模型开发任务,配置开发环境基础参数。

  2. 连接开发环境,下载 SAM2 依赖与检查点文件,配置训练数据集路径。

  3. 将配置好的开发环境保存为自定义镜像。

  4. 基于自定义镜像新建模型训练任务并提交执行。

  5. 查看训练任务状态与日志,确认训练正常启动。

操作步骤

步骤一:创建模型开发任务

  1. 在左侧导航栏,选择开发任务,点击 +新建

  2. 根据以下要求配置各项参数,点击确定,等待开发任务状态转为运行中

    • 任务名称:用户自定义,根据实际情况填写。

    • 镜像类型:选择官方镜像

    • 镜像:选择 pytorch-2.6.0-devel(SAM2 需要 torch>=2.5.1),CUDA 版本选择 12.6。

    • 资源配置:选择前文准备工作中已提前创建好的资源组和队列即可。本次开发任务使用单卡开发,故 GPU 卡数设定为 1 即可。

    • 挂载配置:无需设置,开发任务主要用于配置模型训练环境,本示例采用 git clone 的方式获取源码。

    • 其他参数:根据实际情况填写或保持默认即可。

步骤二:连接并配置开发环境

  1. 返回开发任务列表页面,点击指定任务操作列中的连接

  2. 在弹出的提示框中,选择 WebIDE,本次示例选择 Jupyter Notebook

  3. 进入 JupyterLab 页面,选择 Other > Terminal,打开终端。

  4. 在 Terminal 中执行如下命令,下载依赖。

    开源代码中有部分路径硬编码默认读取 /root 路径下的文件,为降低训练复杂度,建议将源码放到 /root 目录下。

    cd ~
    source activate base
    apt update && apt install git -y
    git clone https://github.com/facebookresearch/sam2
    cd sam2
    pip install -e .
    pip install -e ".[dev]"
  5. 执行如下命令,下载 checkpoints。

    apt update && apt install -y curl
    cd checkpoints
    ./download_ckpts.sh

    以上命令会下载四个 checkpoints 文件,其中训练任务必需的是 sam2.1_hiera_base_plus.pt。如仅执行训练任务,可注释掉 download_ckpts.sh 中其余三个下载任务,只保留该检查点。

    备选方案:也可使用下载链接将 checkpoints 文件下载到本地,挂载到开发环境后,通过 cp 命令复制到 /root/sam2/checkpoints 目录下。四个检查点文件分别为:

  6. 在 JupyterLab 页面的左侧工作区内找到 /sam2/configs/sam2.1_training/sam2.1_hiera_b+_MOSE_finetune.yaml 文件,编辑 dataset 片段为如下内容。

    训练数据存储配置的挂载路径为 /mnt/data

    dataset:
     # PATHS to Dataset
     img_folder: /mnt/data/train/JPEGImages # PATH to MOSE JPEGImages folder
     gt_folder: /mnt/data/train/Annotations # PATH to MOSE Annotations folder
     file_list_txt: null # Optional PATH to filelist containing a subset of videos
     multiplier: 2
  7. 以上步骤均执行成功后,退出开发环境。

步骤三:将开发任务保存为镜像

  1. 返回开发任务列表页面,在指定开发任务所在行,选择更多 > 保存镜像

  2. 按照如下要求配置各项参数,点击确定即可。

    • 镜像名称:用户自定义根据实际情况进行填写。

    • 镜像类型:选择个人版实例

    • 命名空间:选择可用的命名空间即可,若无,则点击新建命名空间进行创建

    • 镜像仓库:根据所选命名空间,选择可用镜像仓库。

  3. 在左侧导航栏中,选择公共资产管理 > 镜像管理 > 自定义镜像,上一步保存的镜像显示在列表中。

步骤四:新建模型训练任务

  1. 在左侧导航栏,选择训练任务

  2. 在训练任务列表页面,点击 +新建

  3. 在新建训练任务页面,根据以下要求配置各项参数,点击确定

    • 镜像类型:选择自定义镜像

    • 镜像:选择前文步骤三中已保存的镜像。

    • 启动命令:直接输入以下命令即可。

      cd /root/sam2
      python training/train.py \
       -c configs/sam2.1_training/sam2.1_hiera_b+_MOSE_finetune.yaml \
       --use-cluster 0 \
       --num-gpus 1

      参数说明:

      • -c:指定训练配置文件路径

      • --use-cluster 0:不使用集群模式

      • --num-gpus 1:使用 1 张 GPU

    • 资源配置

      • 资源组和队列:选择准备工作中已创建好的计算资源即可。

      • 训练框架:选择 pytorch

      • 任务资源:本实践采用单节点训练,Master 为 1,Worker 设为 0,并配置相应 GPU 卡数为 1,CPU 和内存根据实际情况设置即可。

    • 存储配置:选择准备工作中已创建的 KS3 存储配置。本实践各参数配置如下:

      • 存储类型:选择对象存储 KS3

      • 挂载路径:训练数据的挂载路径,与前文设置一致 /mnt/data

    • 其他参数:根据实际情况进行设置。

步骤五:查看模型训练结果

  1. 在训练任务界面查看任务状态,显示运行中即表示训练任务已顺利拉起。

  2. 点击任务名称/ID 进入详情页面,选择日志页签,查看训练任务拉起日志,确认训练正常启动。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈