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

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

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的形式接受输入。

cdsw.track_metric(key, value)

Python

cdsw.track_metric(“R_squared”, 0.79)

R

cdsw::track.metric(“R_squared”, 0.62)

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

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

5.保存文件


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

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

Python

cdsw.track_file('model.pkl')

R

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的文件夹,请使用完整路径,如下所示:

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实操

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2018-08-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏磨磨谈

利用火焰图分析ceph pg分布

性能优化大神Brendan Gregg发明了火焰图来定位性能问题,通过图表就可以发现问题出在哪里,通过svg矢量图来查看性能卡在哪个点,哪个操作占用的资源最多 ...

1162
来自专栏BeJavaGod

地图组件上的自定义区域叠加层显示 ArcGis + GeoJson

最近参与了一个IOT环境项目,需要对某个城市的某几个区域做环境监控与治理,其中就用到了地图叠加层的功能,粗看很复杂,其实很简单,先来看一下效果,然后再来讲一下如...

2232
来自专栏网络

HTML 正文内容提取库 Boilerpipe

Boilerpipe 是一个能从 HTML 中剔除广告和其他附加信息,提取出目标信息(如正文内容、发布时间)的 Java 库。 授权协议:Apache 开发语言...

3356
来自专栏AI研习社

GitHub项目推荐 | 用于对机器学习模型进行对抗性攻击、防御和基准测试的Python库:CleverHans 3.0.0

项目地址:https://github.com/tensorflow/cleverhans

3996
来自专栏人工智能LeadAI

TensorFlow从0到1 | 第十八章: 升级手记:TensorFlow 1.3.0

《TensorFlow从0到1》写到现在,TensorFlow的版本也从当时的1.1.0迭代到了8月初发布的1.3.0。可以预见在未来很长一段时间里,它仍会持续...

3017
来自专栏大数据智能实战

facebook faiss的安装测试

Faiss 是由 Facebook AI Research(FAIR)开发的一个用于有效的相似性搜索(similarity search)和稠密矢量聚类(clu...

7268
来自专栏PPV课数据科学社区

号称世界最快句法分析器,Python高级自然语言处理库spaCy

spaCy是Python和Cython中的高级自然语言处理库,它建立在最新的研究基础之上,从一开始就设计用于实际产品。spaCy带有预先训练的统计模型和单词向量...

4208
来自专栏生信技能树

【视频讲解】-使用rmarkdown来制作html报表

第一步:安装R语言及Rstudio 首先根据操作系统来安装R语言软件 最好是安装最新版 Download R for Windows from CRAN Dow...

4047
来自专栏ATYUN订阅号

多模型机器学习功能数据库EuclidesDB全新发布

EuclidesDB,一个多模型机器学习功能数据库,发布了0.1版本。EuclidesDB 0.1与PyTorch紧密耦合,为模型特征空间中包含和查询数据提供后...

931
来自专栏枕边书

分布算法之一致性哈希算法

在进行大型网站的web开发时,分布式这个词经常出现在我们面前。如: memcache、redis服务器等缓存服务器的负载均衡(分布式cache), MySQL的...

2499

扫码关注云+社区

领取腾讯云代金券