概述

更新时间:

# 项目

基于某个业务目标创建项目,上传代码到项目中,并在项目中启动开发环境进行调试,提交离线训练进行规模性训练,所需的数据/模型、镜像均已提前在平台中准备好,提交任务时做好关联即可在调试和训练时使用。

如上图所示:

  • 数据/模型提前上传至平台;平台提供开箱即用的官方镜像,非官方镜像需提前在本平台制作好;同时将代码上传至项目中。

  • 开发环境:供您调试使用,调试后环境可保存为镜像供后续训练使用。启动开发环境,系统会,

    • 基于初始化时关联的镜像构建开发环境。
    • 将初始化时关联的数据、模型、以及上传的代码,挂载到开发环境的相应路径下。
  • 离线训练:在项目中提交离线训练,支持多机多卡。离线训练提交后系统会,

    • 基于提交时关联的镜像创建训练环境。
    • 将提交时关联的数据、模型,以及上传到项目的代码,挂载至训练环境相应路径下。
    • 按照用户设置的 “启动命令” 开始训练,并输出结果到相应目录。
  • 项目输出,即离线训练的输出,你可以将输出的相关结果导为模型,再次挂载到项目中使用。

优势
基于研发目标,项目整合了此次研发的过程和结果,有如下好处:

  • 对于该项目的研发过程都统一记录在项目中,便于您分析和总结研发过程,提高下次研发效率。
  • 该项目训练结果均统一保存在一处,便于分析和对比每次训练后模型的变化。

# 开发环境与离线训练

建议您在开发环境中进行调试,而利用离线训练功能进行训练。
下表对比了 开发环境离线训练 的异同,供您了解:

对比项 开发环境 离线训练
适用场景 适用于调试时使用,该阶段的主要目标是:调试好环境,且让模型具备预期的学习能力,从而为后续训练做好准备。该阶段建议用少量数据测试是否达到了预期,然后不断调试代码直至达到预期。 适用于大量数据训练时使用,该阶段的主要目标是让具备学习能力的模型大量学习,从而具备近乎人的辨识能力。
训练能力 能力低,仅支持进行单机训练。 能力高,还支持多机多卡的分布式训练。
数据安全 开发环境仅 /gemini/code/ 是持久化目录,输出到 $GEMINI_DATAOUT 目录下的训练结果在开发环境重启后会丢失,仅适合调试时短暂使用。 离线训练的结果则会在 $GEMINI_DATAOUT 目录下持久化保存,并且用户能够在 项目结果 页面,直观的查看到每次离线训练的结果集。

# 项目代码

代码指定了以何种方式训练模型、提取训练数据的何种特征等,是训练模型的必要资产。
代码需上传至目标项目中,支持如下三种上传方式,详见上传代码

  • 平台内 “网页上传”(包含 “SFTP 上传”)
  • 远程 ssh 连接开发环境上传
  • 开发环境中 gitclone 代码