前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop之上的模型训练 - CDSW1.4新功能模块

Hadoop之上的模型训练 - CDSW1.4新功能模块

作者头像
Fayson
发布2018-08-17 17:25:18
8980
发布2018-08-17 17:25:18
举报
文章被收录于专栏:Hadoop实操Hadoop实操

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

Fayson的github: https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1.概述


CDSW1.4提供了一个新的实验室模块,可以让数据科学家运行批处理的实验。从而跟踪代码版本,输入参数和输出指标与文件。如下图所示,这个功能可以帮助数据科学家实现第三个步骤 - 训练和评估模型。

2.目的

2.1.挑战


模型开发一般都需要多次迭代,数据科学家对数据集,特征,库,算法和参数都需要进行多次探索实验与验证。即使是很小的变化也会对最终模型产生重大的影响。这意味着数据科学家需要能够并行的,按需迭代的重复相似的实验,因为他们依赖输出和分数的差异来调参,直到获得最优的结果。这种模型训练工作流需要文件系统的版本控制,输入参数和每次训练的输出。

如果没有版本化的实验,你需要严格的流程来持续的跟踪模型训练包括数据,参数和代码等,即使这样也可能无法重现和解释结果。这可能导致协作期间浪费时间或精力,更不用说引入的合规风险。

2.2.解决方案


CDSW1.4可以通过实验来实现ad-hoc的批处理和模型训练。实验是批量执行的工作负载,其中代码,输入参数和输出被版本化。此功能还提供轻量级跟踪输出数据的功能,包括文件,指标和元数据以进行比较。

3.概念


实验这个术语是指非交互式的批处理执行脚本,包括输入参数,项目文件和输出的版本管理。批处理实验与特定项目(很像会话或作业)相关联,并且没有调度概念,它们在创建时运行。为了支持项目文件的版本控制并保留运行级工件和元数据,每个实验都在一个隔离的容器中执行。

实验的生命周期

3.1.启动实验


从项目中选择一个脚本,它会作为实验的一部分运行,同时选择运行实验所需的资源包括CPU/内存。默认情况下,系统会根据脚本选择引擎内核。

3.2.构建


当你启动实验室,CDSW首先会构建一个新的版本化的引擎镜像,在这个引擎镜像中实验将单独执行。这个新引擎包括:

1.项目使用的基础引擎镜像。(Project > Settings)。

2.一个项目文件系统的快照。

3.从项目继承的环境变量。

4.在项目的构建脚本中明确指定的包(cdsw-build.sh)。你需要在cdsw-build.sh文件中提供实验所需的完整依赖项列表。作为引擎构建过程的一部分,CDSW会运行cdsw-build.sh脚本并在新镜像中安装所需的包或者库。

3.3.调度


一旦构建好引擎,实验就会像其他作业或者会话一样被调度执行。一旦将请求的CPU/GPU和内存分配给实验,它就会进入下个章节要介绍的执行阶段。

请注意,如果你的环境的内存和CPU较低,这个阶段可能需要消耗较长的时间。

3.4.执行


这个阶段是指你选择的脚本会在新构建的引擎环境中运行。跟你在Workbench控制台的会话中执行脚本一样,输出也会一样。

你可以在单个运行的Session选项卡中查看正在执行的进度。

你还可以转到项目Overview > Experiments页面,查看该项目中启动的所有实验及其当前状态。

Run ID: 一个数字ID,可以用来跟踪CDSW中所有启动的实验,不限于单个用户或项目。

4.跟踪指标


cdsw库包含一个track_metric函数,可用于记录与运行相关的50个指标,从而允许随时间跟踪准确度和分数。

该函数以key-value的形式接受输入。

代码语言:javascript
复制
cdsw.track_metric(key, value)

Python

代码语言:javascript
复制
cdsw.track_metric(“R_squared”, 0.79)

R

代码语言:javascript
复制
cdsw::track.metric(“R_squared”, 0.62)

这些指标你可以在项目的“Experiments”选项卡中进行查看,排序或通过值过滤实验。“Experiments”页面上的表格一次只允许显示三个指标。你可以在指标下拉列表中选择显示哪些指标。

注意:该功能不支持Scala实验

5.保存文件


CDSW允许你在实验完成后选择你想要访问和评估的工件。这些工件可以是从文本文件到图像的任何内容,也可以是通过运行构建的模型。

cdsw库包含一个track_file函数,可用于指定实验完成后应保留哪些工件。

Python

代码语言:javascript
复制
cdsw.track_file('model.pkl')

R

代码语言:javascript
复制
cdsw::track.file('model.pkl')

可以从运行的Overview页面访问指定的工件。 这些文件也可以保存到顶层项目文件系统并从那里下载。

注意:该功能不支持Scala实验

6.禁用实验功能


注意:该功能主要是指隐藏UI中的实验功能,而不会停止任何已经在排队等待执行的实验。

禁止CDSW中的实验功能可以按照如下步骤进行操作:

1.登录到CDSW

2.点击Admin > Settings

3.在Feature Flags区域内,禁用Enable users to run experiments复选框。

7.限制


1.实验不存储项目文件的快照。 您无法自动恢复实验的一部分运行的代码。

2.如果项目文件系统对于Git快照过程来说太大,实验将失败。一般来说,任何大于50MB的项目文件(代码,生成的模型工件,依赖项等)都必须是项目的.gitignore文件的一部分,以便它们不包含在实验构建的快照中。

3.无法删除实验。因此,请注意如何使用track_metrics和track_file函数。

  • 不要跟踪大于50MB的文件。
  • 每次实验不要跟踪超过100个指标。如果实验中有太多的指标调用可能会导致CDSW挂起。

4.“Experiments”页面上的表格一次只允许显示三个指标。你可以从指标下拉列表中选择显示哪些指标。 如果你要跟踪大量指标(100或更多),UI界面会变慢。

5.Scala实验不支持参数。

6.Scala实验不支持track_metrics和track_file函数。

7.当开始实验室,UI不会提示确认,或者实验失败时,也不会显示任何警告。

8.如果使用Pickle的pickle.dump()函数将训练过的模型保存到文件中,你需要引用模型文件的绝对路径而不是项目中的相对路径。 例如,要将模型保存到项目中名为saved_models的文件夹,请使用完整路径,如下所示:

代码语言:javascript
复制
pickle.dump(model, open("/home/cdsw/saved_models/sample_model.pkl", "wb"))

参考:

https://www.cloudera.com/documentation/data-science-workbench/latest/topics/cdsw_experiments.html

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档