动态 | 中科院计算所开源Easy Machine Learning系统,用交互式图形界面简化ML开发过程

AI科技评论按:6.13号上午,中科院计算所研究员徐君在微博中宣布,Easy Machine Learning 系统开源,欢迎大家下载。AI科技评论编辑第一时间为大家带来该系统的功能介绍。

在许多大数据应用中,机器学习算法已经成为至关重要的一部分。不过,机器学习的全部潜能还远远没被开发出来,因为使用机器学习算法很困难,尤其是在像Hadoop和Spark的分布式平台。主要障碍不仅是来自算法本身的运行,而且在真实应用中,运行它们的过程中往往包含多重步骤和不同算法。在这个演示中,展示了一个通用的基于数据流的系统,以减化在真实世界中应用机器学习算法的过程。在该系统中,学习任务被构造成一个有向非循环图(DAG),其中每个节点代表一个操作(例如,一个机器学习算法),每个边缘代表数据流从一个节点到它的后续节点。实现了交互图形用户界面,使用户能够以拖放的方式创建、配置、提交和监视任务。

图2显示了系统的体系结构。整个系统由三部分组成:提供基础服务的大数据基础结构,提供机器学习任务的核心构建模块的机器学习库,和提供友好界面降低使用机器学习的难度的机器学习工作室。

大数据基础结构

该系统是建立在开源大数据系统Hadoop和Spark之上的。所有的数据,机器学习算法以及其它相关的信息都存储在分布式文件系统HDFS和Hive数据管理系统,MySQL的相关数据库系统用于存储元数据。我们的系统也依赖于分布式计算框架Map-Reduce 和 Spark。所有计算资源都由Yarn管理.每一个提交的机器学习任务(数据流DAG)首先转换为一个工作流DAG,然后随着工作流的调动程序调动。

机器学习库

机器学习库实现了一系列流行的机器学习算法(如分类、主题建模、图形处理、信息推荐等)。对于每种算法,都在Spark上运行了单机版和分布式版,因为在数据不够大的时候,单机版往往比分布式版更有效。除了核心算法,该库也会执行必要的模块来支持核心算法,包括数据预/后处理实现所需要的功能模块、数据格式转换、特征提取、绩效评价等,所有的算法和模块可以通过命令行和java API来调用。这些算法构成了用户定义机器学习任务的核心构建块。

机器学习工作室

机器学习工作室的主要目标是提供一个友好的用户交互界面,使普通用户可以使用机器学习算法轻松地解决自己的问题。机器学习工作室是作为一个Web服务实现的,可以通过Web浏览器访问。它提供了以下主要功能:

1)资源管理

在机器学习库中实现的所有算法都可以从Studio系统中访问。该系统还提供了一些数据和任务,用于演示如何使用这些算法来解决问题。为了构造机器学习任务,用户可以直接使用系统中的算法和数据。他们还可以上传自己的数据和算法包。要上传一个算法包,用户需要指定运行该算法的命令行模式字符串的格式。字符串定义程序名、输入端口、输出端口和参数设置。这样,上传的算法可以在不同的参数设置下运行。在指定的任务数据流DAG中,该算法可以按照命令行模式运行。在提交机器学习任务之后,它将被分配一个唯一的ID,并存储在任务存储库中。用户可以在将来检查和重用任务。还可以将任务共享给其他用户。

2)任务设计

构造一个机器学习任务,用户可以将算法和数据集(节点)拖到工作面板上,将这些节点连接成一个数据流DAG,并设置所有节点的参数。如果用户可以在库中找到一个类似的工作(大多数情况下),可以直接复制现有的任务和进行必要的修改(添加/删除节点和边,改变参数)。通过在工作面板中选择一个节点,参数设置面板将显示在页面的右边,这使得用户可以为任务中相应的算法设置特定的参数值。提交一个机器学习任务后,工作室将检查数据流DAG的正确性,产生时间文件的文件路径,将数据流DAG转化为工作流DAG,最后提交工作流程DAG到 Oozie执行。

3)任务监视

用户可以通过Studio监控提交任务的进度。在执行任务时,使用不同的颜色指示节点的状态:绿色成功完成,黄色运行不足,红色完成错误,灰色等待执行。成功节点的结果可以通过右击相应的输出端口进行检查和下载。打印到标准输出和标准错误控制台的信息也可以通过右键单击相应的节点来检查。通过这种方式,用户可以知道任务的状态,并在出现错误时调试其算法和任务。

4)任务重用

现有任务不仅可以作为设计新任务的模板,而且可以重用,以节省执行时间和系统资源。用户可以直接修改完成的任务(例如,修改参数的节点,添加节点和边,或删除节点和边等)并重新提交任务。在新提交的任务,只有受影响的节点会再次执行而未受影响的节点输出的结果将直接重复使用。为了解决实际任务,用户通常需要反复调整任务的数据流DAG和算法的参数。任务重用提供了一种有效的机制来节省用户的等待时间和资源。

系统优势

  • 它是一个简单易用且功能强大的系统。机器学习任务的数据流DAG描述直观且易于理解。许多不必要的细节被隐藏。另一方面,它仍然为专家用户提供了大量的详细资料(例如,参数设置,输入/输出端口等)。
  • 系统在一个任务中无缝集成多个程序。由于使用HDFS在不同的节点上交换信息,所以很少对DAG节点的程序形式有限制。该程序对应于一个节点,可以独立或分布式地执行。可以用C++、java、python编程语言,Perl或shell语言。
  • 系统中的数据、算法和任务是高度可重用的。用户可以利用系统开发的数据和算法构建不同的机器学习任务。也可以利用其他用户上传/共享的数据和算法,可以克隆一个任务来构造类似的任务。此外,现有任务的中间结果可以通过直接修改和追加新任务来重复使用。

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-06-13

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏GAN&CV

深度学习优化器算法详解:梯度更新规则+缺点+如何选择

转载自:https://mp.weixin.qq.com/s/RZc1PUgZs1BqRPeyBmTELA

1292
来自专栏iOSDevLog

iTerm2 科学上网

883
来自专栏吉浦迅科技

【入门篇】Jetson TX2深度学习Inference初体验

前面如果已经在Jetson TX2安装好JetPack和Caffe(【入门篇】一个小白在Jetson TX2上安装caffe的踩坑之旅 ),我们接下来可以尝试在...

5288
来自专栏大数据和云计算技术

图的最短路径问题

本节,我们讨论关于图的最后一个问题,最短路径问题。在一个有权重的有向图中,我们如何去找到他对应最短的路径内,这是哪怕在我们显示生活中也常见的一个文问题。

762
来自专栏MelonTeam专栏

[译]Android TensorFlow机器学习示例

原文地址:<https://blog.mindorks.com/android-tensorflow-machine-learning-example- ff...

1996
来自专栏专知

【下载】苹果发布Turi Create机器学习框架,5行代码开发图像识别

【导读】苹果公司在GitHub 上分享了一个机器学习框架TuriCreate。 这一框架有可视化界面,非常简单易用,可以让开发者更容易构建机器学习模型,甚至可以...

2838
来自专栏人人都是极客

3.训练模型之在GPU上训练的环境安装

一般来说我们会在笔记本或者 PC 端编写模型和训练代码,准备一些数据,配置训练之后会在笔记本或者 PC 端做一个简单验证,如果这些代码数据都 OK 的话,然后真...

3976
来自专栏AI研习社

Github 项目推荐 | 用于多元时间序列的 Python 模块 —— Seglearn

Seglearn 是一个通过滑动窗口分割的机器学习多元时间序列的 Python 模块。它为特征提取、特征处理和最终估计提供一个集成的 Pipeline。

872
来自专栏贾志刚-OpenCV学堂

Windows下TensorFlow安装与代码测试

Windows下TensorFlow安装与代码测试 一:Tensorflow介绍 TensorFlow是谷歌的深度学习应用开发框架,其思想基于数据流图与节点图实...

4118
来自专栏Python小屋

Python分离GIF动画成为多帧图像

首先需要使用命令pip install pillow安装Python扩展库pillow。 from PIL import Image import os gif...

2695

扫码关注云+社区