所有文档

          EasyDL定制AI训练平台

          【必读】Notebook项目开发流程概述

          目录

          1. Notebook任务简介

            1.1 基本概念

            1.2 基本流程

          2. Notebook建模

            2.1. 创建Notebook项目

            2.2. 配置并启动Notebook实例

            2.3 导入数据集

            2.4 训练模型

            2.5 保存模型

            2.6 配置模型

            2.7 校验模型

            2.8 部署模型


          Notebook任务简介

          EasyDL专业版Notebook为用户提供了基于Web的交互式开发环境。Notebook不但免去了用户准备开发环境的过程,而且可以帮助用户轻松的实现数据集、代码以及模型的管理。

          基本概念

          • 数据集:通过导入操作可以将EasyDL专业版中已创建的数据集下载到Notebook的data目录中。
          • 模型:在Notebook任务中,模型通过版本管理。在Notebook中保存模型可以生成新的模型版本。
          • 代码库:用于保存Notebook中除data以外的工作空间中的内容。代码库也通过版本管理,一般在保存模型时可以将生成模型的代码保存为新版本的代码库。在启动Notebook时可以使用指定版本的代码库来对Notebook的工作空间进行初始化。

          基本流程

          使用Notebook创建模型的流程如下所示:

          fig001.png

          Notebook建模

          EasyDL在不同任务类型的Notebook任务中都提供了Demo示例,用户在启动Notebook之后可以查看并基于示例代码以及用户数据训练模型。

          本文以单标签图像分类任务说明如何在Notebook构建训练模型,以及如何将已训练的模型发布为服务。

          创建Notebook项目

          项目用于组织和管理模型,一个项目下可以包含多个版本的模型。

          1. 在EasyDL专业版左侧导航栏中单击“Notebook”。
          2. 在“Notebook”页面单击“创建项目”,在弹出框中填写详细信息,示例如下:

            fig01.png

          3. 完成项目信息填写后单击“创建项目”,完成项目创建,如下所示:

            fig02.png

            可以看出,系统会自动为新创建的项目创建V1版本的模型,但由于此时该模型并不包含任何模型文件,因此不能执行配置和部署操作。

          配置并启动Notebook实例

          Notebook运行在Docker容器中,用户可以在启动Notebook前配置适合自己的代码执行环境。

          1. 配置Notebook环境。

            单击“配置环境”,在新页面中完成开发环境以及规格的配置,如下所示:

            fig03.png

          2. 完成配置后,单击“启动Notebook”。

            Notebook启动过程中需要完成资源的申请以及实例创建,请耐心等待。

          3. 在“环境启动成功”的通知框中,单击“进入”,页面跳转到Notebook中,如下所示:

            fig04.png

            • 文件夹:对应Notebook运行环境的“/home/work”目录,各预置的文件夹作用如下:

              • PretrainedModel:用于存储用户训练好的模型文件,可以将该文件夹下的模型文件保存为不同的模型版本。
              • data:用户导入的数据集保存在该文件夹下。
              • demo:该文件夹下保存了示例代码。
            • 数据集:用于导入用户已在EasyDL专业版中已创建的数据集。
            • 环境:用于查看环境资源和配置。
            • 设置:用于配置系统自动关闭的时间以及数据自动保存间隔。

          导入数据集

          通过导入操作可以将已创建的数据集下载到Notebook的运行环境中,导入的数据集会保存在“data”目录下以数据集ID命名的文件夹中,对于已标注的图片,下载内容包括原始图片文件和同名的json标注文件。

          1. 单击Notebook左侧页签中的“数据集”。
          2. 在操作面板中,单击“导入数据集”,系统在弹出框中显示已创建的数据集及其标注情况,如下所示:

            fig05.png

          3. 勾选待导入数据集前的复选框并单击“确认”,开始导入数据集,如下所示:

            fig06.png

            数据集导入操作是单向的,且当数据服务中的数据集有更新时,不会自动同步,需要手动重新刷新。

          训练模型

          用户可以在Notebook或终端中编写模型训练代码,并完成模型的训练。

          本节给出如何使用示例代码完成导入数据集的建模。示例代码结构如下所示:

          fig002.png

          用户只需要执行train.sh脚本即可启动模型训练,其输入参数如下所示:

          train.sh <数据目录> <模型保存目录>

          • 数据目录:数据集保存目录的绝对路径
          • 模型保存目录:请设置为/home/work/PretrainedModel/,否则会造成生成新模型版本时无法读取模型文件。

          上述代码结构不是必须的,用户可以自行编写代码训练模型,只需要将模型保存到/home/work/PretrainedModel/目录即可。 使用示例代码完成模型训练的步骤如下所示:

          使用示例代码完成模型训练的步骤如下所示:

          1. 在Notebook中执行如下代码查看已导入的数据集。

            ! ls /home/work/data/

          2. 在Notebook中执行train.sh脚本进行模型训练。

            ! bash demo/train.sh /home/work/data/96159/ /home/work/PretrainedModel/

          请根据实际情况修改上述代码中的数据集路径。

          1. 查看生成的模型文件。

            在Notebook左侧导航栏中单击“文件夹”,并打开“Pretrainedmodel”文件夹,如下所示:

            fig003.png

          保存模型

          模型只有保存为特定版本后,才可以执行预测和部署功能。

          请确保要保存的模型文件在/home/work/PretrainedModel目录下。模型支持版本管理功能,在保存时可以生成新版本也可以覆盖已有的且尚未部署的模型版本,每个版本的模型都可以独立部署。每个模型版本中保存的模型文件大小上限为1.5GB。

          在保存模式时也可以将训练模型的代码一并保存。代码支持版本管理功能,用户再次启动Notebook时,可以使用指定的代码版本来初始化Notebook工作空间即/home/work目录下data以外的空间。每个代码版本中保存的文件大小上限为150M。

          1. 单击Notebook页面右上角工具栏中的“保存模型”。
          2. 在“保存模型”对话框中配置模型属性,如下所示:

            fig07.png

            • 生成新版本:生成一个新的模型版本,版本号由系统自动生成,若当前最高版本为Vn,则新生成版本为Vn+1。
            • 覆盖现有可升级模型:未部署的模型可以被覆盖。
            • 框架版本:即生成模型时使用的Paddle版本。
          3. 单击“下一步”,选择要保存的模型文件:

            fig08.png

            当前项目文件为PreitraindModel目录下的文件列表。

          4. 单击“下一步”,选择代码版本文件:

            fig09.png

            • 生成新代码库版本:生成一个新的代码库版本,版本号由系统自动生成,若当前最高版本为Vn,则新生成版本为Vn+1。
            • 选择现有代码库版本:选择一个已有的代码库版本。
            • 代码库备注信息:用于记录代码库的描述信息。
          5. 单击“生成”,完成模型保存。

            在完成模型保存后,可以关闭Notebook,从而避免产生不必要的费用。

          配置模型

          只有为模型配置相应的出入参及数据处理逻辑后,才可以校验并发布服务。

          1. 在EasyDL专业版左侧导航栏中单击“Notebook”。
          2. 在已创建的“dogcat分类模型”项目的模型列表中,单击待部署版本模型所在行的“模型配置”。
          3. 配置“模型信息”,如下所示:

            fig10.png

            • 模型效果:建议记录准确率、召回率等评估指标,便于后续查阅以及进行多版本模型的对比。
            • 模型备注:建议记录模型训练使用的超参数等信息,便于后续查阅。
          4. 选择模型文件,如下所示:

            fig11.png

            可选项为生成当前模型版本时保存的模型文件。

          5. 配置出入参及数据处理逻辑。

            fig12.png

            在使用示例代码生成的模型文件时,可以使用默认脚本。

            注意事项

            • 该脚本用于将选择的模型文件发布成模型服务。
            • 用户可以通过修改PredictWrapper的preprocess和postprocess方法来实现自定义的请求预处理和预测结果后处理。
            • 当在EasyDL提交该脚本时,系统会根据用户选择的模型文件和脚本内容,来验证是否可以启动模型服务,只有验证通过,才可以进行模型效果校验以及部署模型服务。

            限制和建议

            1. CustomException必需存在且是异常类;在自定义的逻辑中,建议当处理进入错误的分支时,抛出CustomException并指定message,指定的message在请求回包中会作为error_msg返回。
            2. PredictWrapper类必需存在,且必需包含preprocess和postprocess两个方法。
            3. PredictWrapper的preprocess和postprocess方法,是用户自定义模型服务请求预处理和预测结果后处理的入口。
            4. preprocess方法接收的第一个参数为用户请求的json字典,对于图像类服务,传入图像的参数key必须是"image",且传入的是图片的base64编码。
            5. 系统会根据postprocess方法的返回结果result类型的不同,做以下处理:

              • dict: 不作修改
              • list: 转换为 {"results": result}
              • 其他: 转换为 {"result": result}
              • 最终的处理结果可以转换为json字符串,以确保能够正常将结果作为请求回包返回
            6. 单击“提交”,完成模型配置。

              提交后,系统会自动对当前版本模型进行代码验证,通过后模型会更新为“有效”状态。

          校验模型

          通过校验功能可以在线进行模型效果验证。只有状态为“有效”的模型才可以使用校验功能。

          1. 在EasyDL专业版左侧导航栏中单击“Notebook”。
          2. 在已创建的“dogcat分类模型”项目的模型列表中,单击已配置模型版本所在行的“效果校验”。
          3. 在“模型校验”页面单击“启动模型校验”,该功能启用后如下所示:

            fig13.png

          4. 单击“点击添加图片”并选择要校验的图片,校验结果如下::

            fig14.png

          部署模型

          在Notebook中创建的模型仅能发布为公有云API。

          1. 在EasyDL专业版左侧导航栏中单击“Notebook”。
          2. 在已创建的“dogcat分类模型”项目的模型列表中,单击“有效”状态模型版本所在行的“正式部署”。
          3. 在“部署模型”页面,完成相关配置,如下所示:

            fig15.png

          4. 单击“开始部署”,页面自动跳转到“我的服务”页面,可以查看模型的部署状态。

            • 服务名称:用于标识一个服务
            • 接口地址:部署后服务的接口地址。

            说明

            • 提交申请后,预计需要等待T+1工作日,可收到审核结果。
            • 如有其它疑问请提交工单咨询。
          上一篇
          视觉-脚本调参
          下一篇
          Notebook具体使用说明