没有合适的资源?快使用搜索试试~ 我知道了~
深度学习后端架构选型及其应用场景选择
需积分: 0 0 下载量 8 浏览量
2024-03-29
10:00:37
上传
评论
收藏 4.37MB PDF 举报
温馨提示
试读
55页
深度学习后端架构选型 TensorFlow:由Google开发,适用于大规模的分布式训练和生产环境。TensorFlow提供了丰富的API和工具,支持多种语言接口,如Python、C++。它的特点包括灵活的计算图、强大的分布式训练框架、以及TensorBoard等可视化工具。TensorFlow特别适用于需要高度可扩展性和多平台部署的企业级应用。 PyTorch:由Facebook开发,以其动态计算图(也称为即时执行模式)和易用性而受到广泛欢迎。PyTorch提供了直观的API,支持快速原型设计和研究。PyTorch特别适合于研究和开发阶段,需要快速迭代和实验的场景。 MXNet:是一个高效的多语言深度学习框架,支持灵活的编程模式,既可以像PyTorch那样进行命令式编程,也可以像TensorFlow那样使用声明式编程。MXNet特别适合于在移动设备和边缘计算设备上进行模型部署。 应用场景选择 企业级生产部署:对于需要在多种设备和平台上部署的企业级应用,TensorFlow是一个不错的选择,特别是它的TensorFlow Serving组件可以简化模型的部署和扩展。
资源推荐
资源详情
资源评论
第十八章 后端架构选型及应用场景
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,可以轻松地完成神经网络配置,模型训练等任务。
官方文档中简易介绍了如何使用框架在
线性回归
识别数字
图像分类
词向量
个性化推荐
情感分析
语义角色标注
机器翻译
等方面的应用
Github地址:https://github.com/PaddlePaddle/Paddle
Markdown Revision 1;
Date: 2018/11/11
Editor: 梁志成
Contact: superzhicheng@foxmail.com
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算法库:
Mahout应用场景:
Github地址:https://github.com/apache/mahout
18.2.4 Spark MLllib
MLlib(Machine Learnig lib) 【4】是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数
据生成器。
MLlib是MLBase一部分,其中MLBase分为四部分:MLlib、MLI、ML Optimizer和MLRuntime。
ML Optimizer会选择它认为最适合的已经在内部实现好了的机器学习算法和相关参数,来处理用
户输入的数据,并返回模型或别的帮助分析的结果;
MLI 是一个进行特征抽取和高级ML编程抽象的算法实现的API或平台;
MLlib是Spark实现一些常见的机器学习算法和实用程序,包括分类、回归、聚类、协同过滤、降
维以及底层优化,该算法可以进行可扩充;
MLRuntime 基于Spark计算框架,将Spark的分布式计算应用到机器学习领域。
MLlib主要包含三个部分:
底层基础:包括Spark的运行库、矩阵库和向量库
算法库:包含广义线性模型、推荐系统、聚类、决策树和评估的算法
实用程序:包括测试数据的生成、外部数据的读入等功能
剩余54页未读,继续阅读
资源评论
fighting的码农(zg)-GPT
- 粉丝: 345
- 资源: 34
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功