一个伟大愿景:让深度学习更简单

2017/06/19 13:39
阅读数 35

阅读全文

 

当15年前推出MapReduce时,它展示了整个世界对于未来的不屑一瞥。硅谷科技公司的工程师第一次可以分析整个互联网。然而,MapReduce提供了非常低级API,结果使这个“超级力量”成为了奢侈品,只有极少数的高学历的,有很多资源的工程师才可以使用它。

今天,深度学习已经达到了“MapReduce”当时的地位:它已经显示出了很大潜力,它是人工智能的“超级力量”。它的力量在过去的几年创造的价值很让人吃惊,例如:自动驾驶汽车和AlphaGo这些都被认为是奇迹。

然而,今天利用深度学习的超级力量与过去的大数据一样具有挑战性。深度学习框架由于低级API而具有陡峭的“学习曲线” ;扩展分布式硬件需要大量的人工工作; 即使是大量的时间和资源的结合,深度学习实现成功也需要繁琐的工作和实验参数。因此深度学习也通常被称为“黑魔法”。

七年前,我们开始了一个Spark项目,其目标是通过提供高级API和统一的引擎来实现机器学习,ETL,流式传输和交互式SQL,从而实现“大众化”大数据的“超级力量”的目标。今天,Apache Spark已经为软件工程师们及SQL分析师们都提供了大量数据。

继续这个民主化的愿景,我们很高兴地宣布深度学习管道,这是一个新的开源库,旨在使每个人都能轻松地将可扩展的深度学习整合到他们的工作流程中,使他们能从机器学习从业者过渡到商业分析师,真正的将技术应用于实际生活中。

深度学习管道基于Apache Spark的ML管道培训,并使用Spark DataFrames和SQL部署模型。它包括用于深度学习的常见的高级API,因此有些功能可以在几行代码中高效地完成,比如说:

·    图像加载(Image loading)

·    在Spark ML管道中应用预先训练的模型(Apply pre-trained models as transformers in a Spark ML pipeline)

·    迁移学习(Transfer learning)

·    分布式超参数调优(Distributed hyperparameter tuning)

·    在DataFrames和SQL中部署模型

接下来,我们通过实例详细描述这些功能。要在Databricks上尝试这些和更多的例子,请查看笔记本深度学习流水线在数据库中

图像加载(Image loading

在图像上应用深度学习的第一步是加载图像的能力。深度学习管道包括可以将数百万图像加载到DataFrame中的实用程序功能,并以分布式方式自动解码它们,从而允许进行大规模操作。

df = imageIO.readImages("/data/myimages")

我们还正在努力增加对更多数据类型的支持,如文本和时间序列。

应用可预测的预训练模型(Applying Pre-trained Models for Scalable Prediction)

深度学习管道支持以分布式的方式运行预训练的模型,可用于批量和流式数据处理。它包含了一些最受欢迎的模型,使用户在不需要花费昂贵的培训模型的前提下,能够直接开始深度学习。例如,以下代码使用InceptionV3创建一个Spark预测流水线,InceptionV3是用于图像分类的最先进的卷积神经网络(CNN)模型,并且预测了我们刚加载的图像中是什么样的对象。当然,这个预测是利用Spark一起完成的。

 

阅读全文

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部