strata beijing - deep learning in production on spark

Post on 10-Jan-2017

1.172 Views

Category:

Data & Analytics

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

skymind.io | deeplearning.org | gitter.im/deeplearning4j

深度学习在Spark平台上进入生产环境企业级深度学习的工作流程和使用商业级开源分布式深度学习Deeplearning4j的生产栈,

涵盖了从硬件到产品堆栈的详情

关于我们

Skymind是一家提供企业级人工智能深度学习开源平台及企业

支援的公司,肩负了提升深度学习开源平台核心竞争力的重要使

命。

主要目的是帮助企业、政府及集团设计与部署深度学习架构

Skymind以「专注平台开发、创新、整合、人性化」为理念,通过技

术与业务模式创新,构建完整的智能生态链,提升深度学习平台

的核心竞争力,为企业、政府及集团提供可靠和稳定的全方位人

工智能平台。

摘要

● 深度学习概述

● 企业在部署深度学习时遇到的难题

● Deeplearning4j(DL4J)● 企业深度学习部署流程

深度学习概述What is Deep Learning

Skymind 的合作伙伴:

什么是深度学习

● 深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络

● 深度学习技术大大提高了计算的精度与准确率。

● 能识别,分析并学习文字,图片,声音,视频以及时间序列数据。

● 能自动学习与发掘数据的特征● 未来计算机发展的必然趋势

深度学习

机器学习

数据量

精准

深度学习的优势在于它能随着数

据的增加,精准度也会随着提高

深度学习就像人一样,随着时间慢慢的累积经验和知识,判断和分析能力也随之增强

经典的人脸识别算法Eigenface在 LFW 中的识别率只有 60%,而深度学习算法的识别率是 99.47%,甚至超过了人眼在此测试集的识别率(99.25%)。

除了能识别人脸,深度学习还可以分析人脸的属性、特征与变化。

戴眼镜

红色口红

微笑

女生

褐色头发

闭眼

微妆

长发

23岁

人脸识别

硬件温度

硬件运行速度

硬件旋转率

硬件读取率

室外气温

硬件发出的声音使用量

电源信息

硬件应用

错误率

磁场信息硬件性能 硬件寿命

每个硬件都存有大量重要的信息,而 这些信息往往会被人忽略,或因为这些数据量都太大导致人类难以用来分析硬件的寿命及性能。使用深度学 习可以分析这些大数据,自动发现硬件损坏特征,进而可以有效的预测硬件寿

命及性能。

检测硬件寿命

企业在部署深度学习时遇到的难题Problems of Enterprise when Deploying Deep Learning

Skymind 的合作伙伴:

企业在部署深度学习时遇到的难题:建模(训练模型)

GPU 集群C 代码

Hadoop 集群:数据库Java 代码

建模、调模 大数据系统

数据输出、隔离、清理、转换、格式化、矢量化

非常耗时间

参考:http://www.forbes.com/sites/gilpress/2016/03/23/data-preparation-most-time-consuming-least-enjoyable-data-science-task-survey-says

企业在部署深度学习时遇到的难题:处理海量数据

把海量数据矢量化是非常辛苦而耗时的

企业在部署深度学习时遇到的难题:运行

GPU 集群C 代码

Hadoop 集群:运行Java 代码

建模、调模 大数据系统

部署深度学习模型在生产环境

重新编辑机器学习工具

企业在部署深度学习时遇到的难题

● 数据传输 Data Pipeline Problems○ 数据传输到另一个集群去处理会把影响整个深度学习模型训练流程的速度

○ 数据传输到另一个集群去处理会吧整个深度学习模型训练流程复杂化

● 集成问题 Integration Issues○ 数据摄取,抽取、转换、装载(ETL),矢量化,建模,评估与部署问题

○ 大多数的机器学习工具是由基于过时(上一代)的架构而设计

● 传统架构 Parallel iterative algorithm architecture are not common○ 并行迭代算法架构是很少的

Deeplearning4j (DL4J) 系列工具解决方案

Skymind 的合作伙伴:

让企业运用深度学习

● 不管拥有大数据或小数据,都可以方便的部署深度学习Ability to work with small and big data easily○ 避免为了升级到大数据系统(HADOOP)时把原本的机器学习工具都换掉

● 避免花费时间在数据矢量化与抽取、转换、装载(ETL)Ability not to get caught up things like Vectorization and ETL○ 专注于开发更好的深度学习模型

● 可以同时间实验、训练更多的深度学习模型Ability to experiment with lots of models○ 同时也要避免为了把深度学习部署到生产线时需要重新编辑机器学习工具

Skymind 开源深度学习平台:DL4J 系列工具

DataVec● 深度学习专用的矢量处理器● 数据标准化处理器● 处理非结构化数据

Deeplearning4j● 企业级商用的开源深度学习平台● 专为Java和Scala编程的深度学习

ND4J● 转为JVM开发的科学运算引擎● JavaCPP:Java 到 Objective-C 的桥

Arbiter● 深度学习模型检测、评估器● 调整及优化机器学习模型

DataVec● 机器学习的ETL(抽取、转换、装载)操作

● 主要目的是把原始数据(Raw Data)转化成可用的矢量格式,让所有的深度学习

工具都可以使用

● 支持CSV、原始文本及、图像数据

● 拥有强大功能:数据特征处理、数据清理、数据规范化。这些功能都可以在Spark上

● 开源工具 ASF 2.0许可证:github.com/deeplearning4j/DataVec

主要解决企业的数据输出、隔离、清理、转换、格式化、矢量化等问题

Deeplearning4j● 深度学习界的 “Hadoop”

○ Java, Scala, Python 接口

○ ASF 2.0许可证

● 专为Java和Scala编程的深度学习

○ 支持并行迭代算法架构(Yarn + Spark)○ 支持GPU与集群GPU建模、模型训练

● 可以在本地计算机,或集群(Hadoop/ Yarn + Spark)运行

● 开源工具:github.com/deeplearning4j/deeplearning4j

让企业可以轻松在HADOOP大数据系统上使用深度学习建模与运行模型

● JavaCPP: 由 Skymind 深度学习工程师 Samuel Audet 创建

○ Java 到 Objective-C 的桥,可像其他 Java 对象一样来使用 Objective-C 对象。

● CPU 后瑞

○ OpenMP、OpenBlas 或 MKL、与SIMD的扩展

● GPU 后瑞

○ 最新CUDA 及 CuDNN● 开源工具 ASF 2.0许可证:github.com/deeplearning4j/nd4j

让企业在不需要把HADOOP大数据系统的数据输出和隔离的情况下,在同一个集群上

充分的利用GPU,CPU和内存,使用深度学习建模、模型训练和运行深度学习模型。

ND4J

企业深度学习部署流程Enterprise Deep Learning Workflow

Skymind 的合作伙伴:

深度学习建模(模型训练)流程

ETL抽取、转换、装载

DataVec

Vectorization矢量化

DataVec

Modeling建模

DL4J

Evaluation模型评估

Arbiter

ND4JGPUCUDA

CPUMKL

EDW

MPP 数据库

- 操作仪表盘 - 基础设施投资- 客户记分卡 - 带宽分配- 呼叫数据记录(CDR)分析 - 产品开发- 主动维护

深度学习智能层分析

传统数据来源 新兴或非传统的数据来源

安全系统

操作系统HDFS (HADOOP DISTRIBUTED FILE SYSTEM)

HADOOP分布式文件系统

YARN:数据操作系统

Oth

ers

Scrip

t

SQL

NoS

QL

Stre

am

Sear

ch

Bat

ch

客户关系管理

订阅数据

企业资源计划

产品目录

帐单数据

网络数据

点击流

服务器日志

在线咨询

呼叫细节

传感器数据

商品清单

社会媒体

数据管理

数据治理整合

在 HADOOP 系统上使用 Deeplearning4j

数据源 数据对接

Logs

IoT

RDBMS

DL4J:训练出来的机械学习模型

GPUCUDA

CPUMKL

机械学习

模型机械学习

模型

WEB层

基于JVM的应用程式层

Protocol Buffers

1

2

3

- 使用Protocol Buffers (Protobuf) 沟通- kafka 与 DL4J 之间使用Flat Buffers- 二进制格式

针对故障使用多种机械学习模型应对多种需求。每个模型将会在一台机上运算。无分布式运行(因此也没有平均化),因为之间的沟通是低效的。

把实时预测连接上图形用户界面(GUI)运行模型

解决了企业在部署深度学习时遇到的难题

GPU 集群C 代码

Hadoop 集群Java 代码

数据库 + 建模、调模 + 运行模型

+

DataVec● 深度学习专用的矢量处理器● 数据标准化处理器● 处理非结构化数据

Deeplearning4j● 企业级商用的开源深度学习平台● 专为Java和Scala编程的深度学习

ND4J● 转为JVM开发的科学运算引擎● 可以在最低内存的配置下高效运行

Arbiter● 深度学习模型检测、评估器● 调整及优化机器学习模型

跨平台 认证与合作伙伴

使用Java, Scala 和 Clojure编程的平台

Deeplearng4j系列工具

完全兼容于所有企业的大数据系统

深度学习开发者讨论区

gitter.im/deeplearning4j

微信群讨论区

top related