研发工程师手把手教你实践Notebook开发方式

Jupyter Notebook是基于网页的用于交互计算的应用程序,可以被应用于全过程计算:开发、文档编写、运行代码和展示结果。Notebook这种交互方式特别适用于机器学习的学习和训练,现在越来越多的厂商提供基于Notebook的产品或者平台,EasyDL专业版也在2020年4月份上线了Notebook功能,该功能具有以下特点:

  1. 强大的代码编辑灵活性,满足深度自定义的模型自编程需求

  2. 提供高性能GPU训练资源(V100),并有充分的免费试用额度(目前为100小时)

  3. 打通EasyDL数据管理模块,支持高效数据导入

  4. 提供模型多版本管理以及效果对比

  5. 一键服务部署,并提供API级服务封装

接下来我们通过试过介绍来逐步展现这些特点:

EasyDL专业版Notebook具体使用步骤:

  1. 进入notebook操作页面https://ai.baidu.com/easydl/pro/app/projects/notebook ,若没有登录百度云账号的,会先跳转到登录页面,登录成功后到达EasyDL专业版Notebook操作界面。
    研发工程师手把手教你实践Notebook开发方式_第1张图片

  2. 这个时候还没有项目,我们来创建一个。点击“马上创建”,会有一个弹窗出来,这里需要选择任务类型是分类单标签/多标签还是物体检测,然后填好其它信息就可以创建啦。这里我选的是物体检测,在后面生成的代码模板会根据选择模型的不同而作出对应调整。
    研发工程师手把手教你实践Notebook开发方式_第2张图片

  3. 创建项目后,会获得一个空模型版本。接下来要准备打开notebook进行操作了,点击这里的“配置环境”,进来需要选一下paddle的版本,python的版本,以及GPU型号。现在默认都是GPU V100,限时免费,不仅超值,且配置非常优秀。
    研发工程师手把手教你实践Notebook开发方式_第3张图片
    研发工程师手把手教你实践Notebook开发方式_第4张图片

  4. 点击“启动Notebook”,此处可能需要稍等几分钟。

  5. 启动成功后,我们即可进入notebook:左边栏可以查看文件夹、数据集、运行环境和相关设置,右边显示了入口的Notebook和一个终端。
    我们注意看下文件夹,默认保留了三个文件夹,均与EasyDL的相关服务有关联,请勿随意删除。
    -PretrainedModel文件夹: 存放notebook中训练出的模型,可以用于后续在EasyDL中进行模型保存和发布
    -data文件夹:存放数据集的目录,初始时候是空的,后面从EasyDL导入的数据会存放在这里,具体导入步骤我们下一步再看
    -demo文件夹: 存放的预置的示例代码,使用入口是demo/train.sh
    研发工程师手把手教你实践Notebook开发方式_第5张图片

  6. 接下来就可以进入训练环节。首先,需要准备好数据,Notebook开发环境作为EasyDL专业版的一部分,与EasyDL专业版可共享数据集,可直接进行导入:

  • 先点击左侧导航栏的数据集,然后点击导入数据集,就可以选择若干个在专业版中已上传的数据集进行导入
    研发工程师手把手教你实践Notebook开发方式_第6张图片

  • 此时,在数据集tab下可以查看到选择的数据集正在进行导入
    研发工程师手把手教你实践Notebook开发方式_第7张图片

  1. 接下来看一下运行训练代码,我们可以直接用示例代码来先跑跑看,示例代码入口是demo/train.sh, 第一个参数是数据集路径,第二个参数是运行导出的模型路径。这里数据集的路径需要我们修改成实际导入的数据集路径,一般是/home/work/data/${dataset_id}, 这里dataset_id可以从数据集导入边栏里看到,也可以在导入成功之后直接查看data文件夹。
    研发工程师手把手教你实践Notebook开发方式_第8张图片
  2. 然后可以Notebook代码中修改数据集路径,点击运行即可开始训练模型。这里我用的是mnist的数据集,但是修改了框出的数字的位置,变成了物体检测的数据集。
    研发工程师手把手教你实践Notebook开发方式_第9张图片
    这个时候我们在终端ps看一下,可以看到训练任务正在运行:
    研发工程师手把手教你实践Notebook开发方式_第10张图片
  3. 运行完成速度与数据量有关,在完成后可以看到在PretrainedModel文件夹下有了这些模型文件:
    研发工程师手把手教你实践Notebook开发方式_第11张图片
  4. 大家可以对模型再进行调优,不过记住产出的模型都需要放在PretrainedModel文件夹下面,接着我们来发布这个demo模型

a) 要到EasyDL的操作台上进行发布,首先需要对模型进行保存:点击文件→保存模型
研发工程师手把手教你实践Notebook开发方式_第12张图片
b) 首先在弹窗中选择模型框架。
选择生成“新版本”,在EasyDL控制台的项目下就会有个新版本
选择“覆盖现有可升级模型”,就会覆盖EasyDL操作台显示的旧版本
研发工程师手把手教你实践Notebook开发方式_第13张图片
c) 然后选择要保存的文件:注意这里选择的几个文件都是必须选中的,否则会导致发布失败!
研发工程师手把手教你实践Notebook开发方式_第14张图片
d) 然后选择对应的代码进行保存:
研发工程师手把手教你实践Notebook开发方式_第15张图片
e)最后点击生成,稍等后就会收到提示:“版本生成成功”!

  1. 然后我们回到EasyDL专业版的操作台,由于保存的时候选的是生成新版本,这里可以比开始多了一个V2版本:
    研发工程师手把手教你实践Notebook开发方式_第16张图片
  2. 然后点击模型配置,准备发布。这里可以填写模型的相关信息,然后选择模型文件,也就是刚才在Notebook页面保存模型时选择的文件:
    研发工程师手把手教你实践Notebook开发方式_第17张图片
    之后可以对出入参、模型预测时的预处理及后处理代码进行编辑。比如我想修改发布后预测接口返回字段的格式,这里加了个size字段,可以参考下图稍做改动,点击提交。
    研发工程师手把手教你实践Notebook开发方式_第18张图片
  3. 提交之后,在专业版的操作台,可以看到V2版本的状态处于“代码验证中”,稍等状态变成有效之后,可以点击“效果校验”,生成demo。
    研发工程师手把手教你实践Notebook开发方式_第19张图片
  4. 点击“效果校验”,启动模型校验:
    研发工程师手把手教你实践Notebook开发方式_第20张图片
  5. 稍等几分钟,启动完成之后,我们用一张图来测试下,可以看到识别出了数字是1(预测标签为1),而且标注出了数字的位置,模型的效果较好。
    研发工程师手把手教你实践Notebook开发方式_第21张图片
  6. 最后进行正式部署,看看新添加自定义size字段是不是会出现:

a) 点击正式部署,填写API名称和自定义URL字段
b) 然后就会到审核中的状态了,在审核结束后即可进行API调用
研发工程师手把手教你实践Notebook开发方式_第22张图片
c) 审核通过了,可以看到服务详情,里面有我们设置的调用的URL
研发工程师手把手教你实践Notebook开发方式_第23张图片
d) 此时可以尝试调用API,具体的调用鉴权问题,可以参考官方文档:https://ai.baidu.com/ai-doc/EASYDL/Dk38n3yck
在下方,可以看到调用结果中有"size"属性了:
研发工程师手把手教你实践Notebook开发方式_第24张图片
以上为EasyDL Notebook建模功能完整使用流程介绍,后续EasyDL还会在这个基础上不断进行迭代升级,包括在Notebook中提供丰富的预置预训练模型、Notebook代码自动迁移至EasyDL分布式训练集群等功能,为开发者提供更加灵活易用的AI模型开发方式。

EasyDL是基于飞桨深度开发平台为企业级开发者打造的零门槛AI开发平台,提供数据处理、模型训练、模型部署全流程功能。其中,EasyDL专业版支持开发者深度开发高精度AI模型,全面支持飞桨Master模式,内置百度海量数据训练的预训练模型,可以在少量训练数据上达到更优的训练效果。

立即尝试EasyDL专业版:https://ai.baidu.com/easydl/pro

你可能感兴趣的:(百度大脑,notebook,人工智能)