概述
更新时间:
# 项目
您基于您的某个业务目标创建一个项目,并关联所需的镜像、数据、代码到该项目,然后利用关联的资产进行目标研发,即研发涉及的代码调试、模型训练都在项目中进行。
基于您的研发目标,项目整合了您所需的所有资源、研发行为和研发结果,有如下好处:
- 所需的数据、模型、代码及镜像都关联在项目中,便于研发过程中的问题回溯和问题复现。
- 对于该项目的研发行为都统一记录在项目中,便于您分析和总结研发过程,提高下次研发效率。
- 该项目所有训练结果均统一保存在一处,便于分析和对比每次训练后模型的变化。
# 研发流程
在本平台进行算法研发的主要流程如下图所示:

下表为您简介各流程含义:
| 流程 | 含义 |
|---|---|
| 1.资源准备 | (非必须)将 AI 研发所需的数据、预训练模型、镜像在平台中准备好,以便训练和调试时使用。如果使用公开/共享数据集、或社区的数据集,可不准备数据。 |
| 2.创建项目 | 基于您的某个业务目标创建一个项目,并在项目中进行开发与调试、模型训练、结果评估。创建项目时您需要关联该项目所需的资源,包括代码、数据集、镜像,其中代码和数据集也可在项目创建完成后再行关联或修改。 |
| 3.调试模型 | 选择镜像、资源来初始化一个开发环境用于调试模型。调试模型,在开发环境中,用少量数据喂给模型以调试模型,直至模型的学习能力达到您的预期。 |
| 4.训练 | 模型经过调试后已达到您的预期,此时您可以选择高算力的资源来提交一个离线训练,喂以大量的数据让模型学习,使之经过学习最终在某方面具备近乎人的推理/反应能力。 在离线训练中,您可以提交单机单卡、单机多卡、多机多卡的训练。 |
| 6.训练结果管理 | 离线训练完成后,所有的训练输出,包括日志、模型文件等都将保存在 结果 中,您可在项目的 结果 模块管理训练结果。 您可将模型文件导出为模型,然后作为预训练模型挂载到其他项目中进一步训练。 |
# 开发环境与离线训练
开发环境中也可进行训练,但我们建议开发环境仅在调试时使用。因调试时所需资源配置较低,无法达到离线训练的训练效率,若提高开发环境的配置,您在修改代码时又不会充分使用开发环境的资源,此时开发环境则占用了您的资源而又未被充分使用,会浪费了您的算力点。
下表对比了 开发环境 和 离线训练 的异同,供您了解:
| 对比项 | 开发环境 | 离线训练 |
|---|---|---|
| 适用场景 | 适用于调试代码时使用,该阶段的主要目标是让模型具备预期的学习能力,您可用少量数据测试是否达到了预期,然后不断调试代码直至达到预期。 | 适用于大量数据训练时使用,该阶段的主要目标是让具备学习能力的模型大量学习,从而具备近乎人的辨识能力。 |
| 训练能力 | 能力低,仅支持进行单机训练。 | 能力高,还支持多机多卡的分布式训练。 |
| 代码使用 | 因适用调试场景,开发环境关联的代码是 latest 版本的,latest 版本的代码支持随时修改并实时保存,您可以根据测试结果不断调试代码,直至达到预期。 | 因适用大量数据训练的场景,提交离线训练所关联的代码一定是个相对稳定的代码版本,训练过程无法更改代码。 |
| 数据安全 | 开发环境仅 /gemini/code/ 是持久化目录,输出到 $GEMINI_DATAOUT 目录下的训练结果在开发环境重启后会丢失,仅适合调试时短暂使用。 | 离线训练的结果则会在 $GEMINI_DATAOUT 目录下持久化保存,并且用户能够在 项目 的 结果 页面,直观的查看到每次离线训练的结果集。 |