概述
更新时间:
# 项目
基于某个业务目标创建项目,上传代码到项目中,并在项目中启动开发环境进行调试,提交离线训练进行规模性训练,所需的数据/模型、镜像均已提前在平台中准备好,提交任务时做好关联即可在调试和训练时使用。
如上图所示:
数据/模型提前上传至平台;平台提供开箱即用的官方镜像,非官方镜像需提前在本平台制作好;同时将代码上传至项目中。
开发环境:供您调试使用,调试后环境可保存为镜像供后续训练使用。启动开发环境,系统会,
- 基于初始化时关联的镜像构建开发环境。
- 将初始化时关联的数据、模型、以及上传的代码,挂载到开发环境的相应路径下。
离线训练:在项目中提交离线训练,支持多机多卡。离线训练提交后系统会,
- 基于提交时关联的镜像创建训练环境。
- 将提交时关联的数据、模型,以及上传到项目的代码,挂载至训练环境相应路径下。
- 按照用户设置的 “启动命令” 开始训练,并输出结果到相应目录。
项目输出,即离线训练的输出,你可以将输出的相关结果导为模型,再次挂载到项目中使用。
优势
基于研发目标,项目整合了此次研发的过程和结果,有如下好处:
- 对于该项目的研发过程都统一记录在项目中,便于您分析和总结研发过程,提高下次研发效率。
- 该项目训练结果均统一保存在一处,便于分析和对比每次训练后模型的变化。
# 开发环境与离线训练
建议您在开发环境中进行调试,而利用离线训练功能进行训练。
下表对比了 开发环境 和 离线训练 的异同,供您了解:
对比项 | 开发环境 | 离线训练 |
---|---|---|
适用场景 | 适用于调试时使用,该阶段的主要目标是:调试好环境,且让模型具备预期的学习能力,从而为后续训练做好准备。该阶段建议用少量数据测试是否达到了预期,然后不断调试代码直至达到预期。 | 适用于大量数据训练时使用,该阶段的主要目标是让具备学习能力的模型大量学习,从而具备近乎人的辨识能力。 |
训练能力 | 能力低,仅支持进行单机训练。 | 能力高,还支持多机多卡的分布式训练。 |
数据安全 | 开发环境仅 /gemini/code/ 是持久化目录,输出到 $GEMINI_DATAOUT 目录下的训练结果在开发环境重启后会丢失,仅适合调试时短暂使用。 | 离线训练的结果则会在 $GEMINI_DATAOUT 目录下持久化保存,并且用户能够在 项目 的 结果 页面,直观的查看到每次离线训练的结果集。 |
# 项目代码
代码指定了以何种方式训练模型、提取训练数据的何种特征等,是训练模型的必要资产。
代码需上传至目标项目中,支持如下三种上传方式,详见上传代码。
- 平台内 “网页上传”(包含 “SFTP 上传”)
- 远程 ssh 连接开发环境上传
- 开发环境中 gitclone 代码