概述

更新时间:

# 项目

基于某个业务目标创建项目,上传代码到项目中,并在项目中启动开发环境进行调试,提交离线训练进行规模性训练,创建推理服务进行在线推理。

projDesc

如上图所示:

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

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

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

    • 基于提交时关联的镜像创建训练环境。
    • 将提交时关联的数据、模型,以及上传到项目的代码,挂载至训练环境相应路径下。
    • 按照用户设置的 “启动命令” 开始训练,并输出结果到相应目录。
  • 推理服务 :供您进行推理、检验模型性能。平台支持在项目内创建、升级和回滚推理服务,可配置模型/数据集/镜像提交推理。推理服务创建/更新后,系统会,

    • 基于创建时关联的镜像构建推理副本。
    • 将提交时关联的数据、模型、代码,挂载至推理副本相应路径下。
    • 按照用户设置的“启动命令”启动在线推理服务。
  • 训练输出,即离线训练的输出,你可以将输出的相关结果导出为模型,再次挂载到项目中使用。

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

  • 对于该项目的研发过程都统一记录在项目中,便于您分析和总结研发过程,提高下次研发效率。
  • 该项目训练结果均统一保存在一处,便于分析和对比每次训练后模型的变化。
  • 可将训练结果应用于部署推理服务,便于您检测模型效果、寻找模型优化方向。

# 开发环境与离线训练

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

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

# 项目代码

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

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