Spark上的深度学习库MMLSpark 介绍

6 月 2 日,微软正式发布微软认知工具包(Microsoft Cognitive Toolkit,曾用名 CNTK) 2.0 版本。2.0 完整版适用于生产级和企业级的深度学习工作负载,包含自测试版发布以来新增的几百项功能。认知工具包 2.0 能够简化深度学习过程,并能与更广泛的 AI 生态系统无缝整合;不但支持深受深度学习开发者欢迎的 Keras (用户友好型开源神经网络库),还能够支持 NVIDIA 最新版本的深度学习 SDK 及高级图形处理单元(GPU)架构(例如 NVIDIA Volta),加快训练进程。2.0 完整版的新功能还包括用模型评估的 Java 语言绑定、以及对已受训练模型进行压缩的新工具——经过压缩的模型即便在智能手机等资源受限设备上的图像识别等应用中也可以运行。

6 月 7 日,微软发布 Microsoft Machine Learning Library for Apache

(用于 Apache Spark 的机器学习库, MMLSpark)。作为专门为大规模数据处理而设计的快速通用计算引擎,Apache Spark 为用户提供了创建可扩展 ML 的有力平台。新发布的 MMLSpark 能够将诸如深度学习等前沿机器学习技术应用于更大的数据集,并为用户提供能够应对诸如文本、分类数据等多种类型数据的 API , 大大提高数据分析师使用 Apache Spark 的工作效率及实验速度。

MMLSpark可以与微软认知工具包和OpenCV完美整合。

微软发现,虽然SparkML可以建立可扩展的机器学习平台,绝大多数开发者的精力都耗在了调用底层API上。MMLSpark旨在简化PySpark中的重复性工作。

MMLSpark为Apache Spark提供了一些深入的学习和数据科学工具,包括将Spark Machine Learning管道与Microsoft Cognitive Toolkit(CNTK)OpenCV无缝集成,使您能够快速创建功能强大,高度可扩展的大型图像预测和分析模型和文本数据集。

MMLSpark需要Scala 2.11,Spark 2.1+,以及Python 2.7或Python 3.5+。请参阅Scala和 PySpark的API文档 

显着特点

  • 将图像从HDFS轻松摄取到Spark DataFrame例如:301
  • 使用OpenCV的转换预处理图像数据(示例:302
  • 使用CNTK进行预训练的深层神经网络(例如:301
  • 使用来自Keras的预先训练的双向LSTM进行医疗实体提取(例如:304
  • 在Azure上的N系列GPU虚拟机上训练基于DNN的图像分类模型
  • 在SparkML中通过单个变换器(例如:201),使用方便的API在自由格式的文本数据上实现自动格式化,
  • 列车分类和回归模型容易通过数据的隐式特征化(例如:101
  • 计算一组丰富的评估指标,包括每个实例的指标(例如:102

参见我们的笔记本的所有例子。


下载 MMLSpark: https://hub.docker.com/r/microsoft/mmlspark/


以UCI的成人收入普查数据集举例,使用其他项目预测收入:

如果直接使用SparkML,每一列都需要单独处理,整理为正确的数据类型;在MMLSpark中只需要两行代码:

model = mmlspark.TrainClassifier(model=LogisticRegression(), labelCol=” income”).fit(trainData)
predictions = model.transform(testData)

深度神经网络(DNN)在图像识别和语音识别等领域不逊于人类,但是DNN模型的训练需要专业人员方可进行,与SparkML的整合也十分不易。MMLSpark提供了方便的Python API,可以方便地训练DNN算法。MMLSpark可以方便地使用现有模型进行分类任务、在分布式GPU节点上进行训练、以及使用OpenCV建立可扩展的图像处理管线。

以下3行代码可以从微软认知工具集中初始化一个DNN模型,从图像中抽取特征:

cntkModel = CNTKModel().setInputCol(“images”).setOutputCol(“features”).setModelLocation(resnetModel).setOutputNode(“z.x”)
featurizedImages = cntkModel.transform(imagesWithLabels).select([‘labels’,’features’])
model = TrainClassifier(model=LogisticRegression(),labelCol=”labels”).fit(featurizedImages)

MMLSpark已经发布到Docker Hub上,使用下面的命令即可在单机部署:

docker run -it -p 8888:8888 -e ACCEPT_EULA=yes microsoft/mmlspark

MMLSpark使用MIT协议授权。

查看英文原文

MMLSpark项目地址: https://github.com/Azure/mmlspark

https://blogs.technet.microsoft.com/machinelearning/2017/06/07/announcing-microsoft-machine-learning-library-for-apache-spark/


你可能感兴趣的:(深度学习,MMLSpark)