没有合适的资源?快使用搜索试试~ 我知道了~
第十八章_后端架构选型及应用场景1
需积分: 0 0 下载量 3 浏览量
2022-08-03
17:31:47
上传
评论
收藏 4.98MB PDF 举报
温馨提示
试读
57页
第十八章 后端架构选型及应用场景18.1 为什么需要分布式计算?18.2 目前有哪些深度学习分布式计算框架?18.3 如何进行实时计算?18.3.1 什么是实时
资源详情
资源评论
资源推荐
第
十
八
章
后
端
架
构
选
型
及
应
用
场
景
18.1 为什么需要分布式计算?
18.2 目前有哪些深度学习分布式计算框架?
18.2.1 PaddlePaddle
18.2.2 Deeplearning4j
18.2.3 Mahout
18.2.4 Spark MLllib
18.2.5 Ray
18.2.6 Spark stream
18.2.7 Horovod
18.2.8 BigDL
18.2.9 Petastorm
18.2.10 TensorFlowOnSpark
18.3 如何进行实时计算?
18.3.1 什么是实时流计算?
18.3.2 实时流计算过程
18.4 如何进行离线计算?
18.4.1 数据采集
18.4.2 数据预处理
18.4.3 数据建模
18.4.4 ETL
18.4.5 数据导出
18.4.6 工作流调度
18.5 如何设计一个人机交互系统?
18.5.1 什么是人机交互系统?
18.5.2 如何设计人机交互系统的问答引擎算法架构?
18.5.3 如何处理长难句?
18.5.4 如何纠错?
18.5.5 什么是指代消解?如何指代消解?
18.5.6 如何做语义匹配?
18.5.7 如何在海量的向量中查找相似的TopN向量?
18.5.8 什么是话术澄清?
18.5.9 如何对结果进行排序打分?
18.5.10 如何评估人机交互系统的效果?
18.6 如何设计个性化推荐系统?
18.6.1 什么是个性化推荐系统?
18.6.2 如何设计个性化推荐系统的推荐引擎架构?
18.6.3 召回模块
18.6.4 排序模块
18.6.5 离线训练
18.6.6 用户画像
18.6.7 GBDT粗排
18.6.8 在线FM精排
18.6.9 算法介绍
18.6.10 如何评价个性化推荐系统的效果?
18.6.11 个性化推荐系统案例分析
18.7 参考文献
第十八章 后端架构选型及应用场景
18.1
为什么
需
要
分
布
式
计
算
?
在这个数据爆炸的时代,产生的数据量不断地在攀升,从GB,TB,PB,ZB.挖掘
其中数据的价值也是企业在不断地追求的终极目标。但是要想对海量的数据进行
挖掘,首先要考虑的就是海量数据的存储问题,比如Tb量级的数据。
谈到数据的存储,则不得不说的是磁盘的数据读写速度问题。早在上个世纪
90年代初期,普通硬盘的可以存储的容量大概是1G左右,硬盘的读取速度大概
为4.4MB/s.读取一张硬盘大概需要5分钟时间,但是如今硬盘的容量都在1TB左
右了,相比扩展了近千倍。但是硬盘的读取速度大概是100MB/s。读完一个硬盘
所需要的时间大概是2.5个小时。所以如果是基于TB级别的数据进行分析的话,
光硬盘读取完数据都要好几天了,更谈不上计算分析了。那么该如何处理大数据
的存储,计算分析呢?
一个很简单的减少数据读写时间的方法就是同时从多个硬盘上读写数据,比
如,如果我们有100个硬盘,每个硬盘存储1%的数据 ,并行读取,那么不到两
分钟就可以完成之前需要2.5小时的数据读写任务了。这就是大数据中的分布式
存储的模型。当然实现分布式存储还需要解决很多问题,比如硬件故障的问题,
使用多台主机进行分布式存储时,若主机故障,会出现数据丢失的问题,所以有
了副本机制:系统中保存数据的副本。一旦有系统发生故障,就可以使用另外的
副本进行替换(著名的RAID冗余磁盘阵列就是按这个原理实现的)。其次比如
一个很大的文件如何进行拆分存储,读取拆分以后的文件如何进行校验都是要考
虑的问题。比如我们使用Hadoop中的HDFS也面临这个问题,只是框架给我们实
现了这些问题的解决办法,开发中开发者不用考虑这些问题,底层框架已经实现
了封装。
同样假如有一个10TB的文件,我们要统计其中某个关键字的出现次数,传
统的做法是遍历整个文件,然后统计出关键字的出现次数,这样效率会特别特别
低。基于分布式存储以后,数据被分布式存储在不同的服务器上,那么我们就可
以使用分布式计算框架(比如MapReduce,Spark等)来进行并行计算(或者说是
分布式计算),即:每个服务器上分别统计自己存储的数据中关键字出现的次
数,最后进行一次汇总,那么假如数据分布在100台服务器上,即同时100台服
务器同时进行关键字统计工作,效率一下子可以提高几十倍。
18.2
目
前
有
哪
些
深
度
学
习
分
布
式
计
算
框架
?
18.2.1 PaddlePaddle
PaddlePaddle【1】是百度开源的一个深度学习平台。PaddlePaddle为深度
学习研究人员提供了丰富的API,可以轻松地完成神经网络配置,模型训练等任
务。
官方文档中简易介绍了如何使用框架在
线性回归
识别数字
图像分类
词向量
个性化推荐
情感分析
Markdown Revision 1;
Date: 2018/11/11
Editor: 梁志成
Contact: superzhicheng@foxmail.com
语义角色标注
机器翻译
等方面的应用
Github地址:https://github.com/PaddlePaddle/Paddle
18.2.2 Deeplearning4j
DeepLearning4J(DL4J)【2】是一套基于Java语言的神经网络工具包,可
以构建、定型和部署神经网络。DL4J与Hadoop和Spark集成,支持分布式CPU和
GPU。
Deeplearning4j包括了分布式、多线程的深度学习框架,以及普通的单线程
深度学习框架。定型过程以集群进行,也就是说,Deeplearning4j可以快速处理
大量数据。Deeplearning4j在开放堆栈中作为模块组件的功能,使之成为为微服
务架构打造的深度学习框架。
Deeplearning4j从各类浅层网络出发,设计深层神经网络。这一灵活性使用
户可以根据所需,在分布式、生产级、能够在分布式CPU或GPU的基础上与
Spark和Hadoop协同工作的框架内,整合受限玻尔兹曼机、其他自动编码器、卷
积网络或递归网络。
Deeplearning4j在已建立的各个库及其在系统整体中的所处位置
Github地址:https://github.com/deeplearning4j/deeplearning4j
18.2.3 Mahout
Mahout【3】是基于Hadoop的机器学习和数据挖掘的一个分布式框架。
Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。
Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘等。
Mahout算法库:
架构图
MLlib是MLBase一部分,其中MLBase分为四部分:MLlib、MLI、ML Optimizer
和MLRuntime。
ML Optimizer会选择它认为最适合的已经在内部实现好了的机器学习
算法和相关参数,来处理用户输入的数据,并返回模型或别的帮助分
析的结果;
MLI 是一个进行特征抽取和高级ML编程抽象的算法实现的API或平
台;
MLlib是Spark实现一些常见的机器学习算法和实用程序,包括分类、
回归、聚类、协同过滤、降维以及底层优化,该算法可以进行可扩
充;
MLRuntime 基于Spark计算框架,将Spark的分布式计算应用到机器
学习领域。
MLlib主要包含三个部分:
底层基础:包括Spark的运行库、矩阵库和向量库
算法库:包含广义线性模型、推荐系统、聚类、决策树和评估的算法
实用程序:包括测试数据的生成、外部数据的读入等功能
MLlib目前支持4种常见的机器学习问题: 分类、回归、聚类和协同过滤,
MLlib在Spark整个生态系统中的位置如图下图所示。
18.2.5 Ray
Ray【5】是加州大学伯克利分校实时智能安全执行实验室(RISELab)的研究
人员针对机器学习领域开发的一种新的分布式计算框架,该框架旨在让基于
Python的机器学习和深度学习工作负载能够实时执行,并具有类似消息传递接
口(MPI)的性能和细粒度。
增强学习的场景,按照原理定义,因为没有预先可用的静态标签信息,所以
通常需要引入实际的目标系统(为了加快训练,往往是目标系统的模拟环境)来
获取反馈信息,用做损失/收益判断,进而完成整个训练过程的闭环反馈。典型
的步骤是通过观察特定目标系统的状态,收集反馈信息,判断收益,用这些信息
来调整参数,训练模型,并根据新的训练结果产出可用于调整目标系统的行为
Action,输出到目标系统,进而影响目标系统状态变化,完成闭环,如此反复迭
代,最终目标是追求某种收益的最大化(比如对AlphoGo来说,收益是赢得一盘
围棋的比赛)。
剩余56页未读,继续阅读
文润观书
- 粉丝: 24
- 资源: 318
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0