两年Java开发经验,人机交互系统(2

同样假如有一个10TB的文件,我们要统计其中某个关键字的出现次数,传统的做法是遍历整个文件,然后统计出关键字的出现次数,这样效率会特别特别低。基于分布式存储以后,数据被分布式存储在不同的服务器上,那么我们就可以使用分布式计算框架(比如MapReduce,Spark等)来进行并行计算(或者说是分布式计算),即:每个服务器上分别统计自己存储的数据中关键字出现的次数,最后进行一次汇总,那么假如数据分布在100台服务器上,即同时100台服务器同时进行关键字统计工作,效率一下子可以提高几十倍。

2 目前有哪些深度学习分布式计算框架?


2.1 PaddlePaddle

PaddlePaddle是百度推出的开源分布式深度学习框架,致力于让更多中国企业和开发者方便地完成深度学习应用,该框架提供了丰富的API,可以轻松地完成神经网络配置,模型训练等任务。

• 优点:

 提供工业级中文 NLP 算法和模型库,涵盖文本分类、序列标注、语义匹配等多种NLP任务的解决方案,拥有当前业内效果最好的中文语义表示模型和基于用户大数据训练的应用任务模型,且同类型算法模型可灵活插拔。

 基于百度海量规模的业务场景实践, 同时支持稠密参数和稀疏参数场景的超大规模深度学习并行训练,支持千亿规模参数、数百个节点的高效并行训练。

 提供端到端的全流程部署方案,覆盖多硬件、多引擎、多语言,预测速度超过其他主流实现。同时,还提供了模型压缩、加密等工具。

 提供丰富的配套工具组件,在自动组网、强化学习、预训练模型、弹性训练等方面加速深度学习项目落地。

 中文文档齐全,方便本土开发。

• 缺点:

 开发语言单一,目前仅支持Python语言开发。

• 用途:

 生成对抗网络

 线性回归

 数字识别

 图像分类

 情感分析

 机器翻译

 个性化推荐

 词向量

 语义角色标注

• 案例:

 高尔夫球场的遥感检测:http://ai.baidu.com/support/news?action=detail&id=976

• Github地址:https://github.com/PaddlePaddle/Paddle

2.2 Deeplearning4j

Deeplearning4j是基于JVM、聚焦行业应用且提供商业支持的分布式深度学习框架,能在合理的时间内解决各类涉及大量数据的问题。Deeplearning4j与Kafka、Hadoop和Spark集成,可使用任意数量的GPU或CPU运行。

• 优点:

 支持Java、Scala和Python等多种语言开发。

 用多GPU运行图像处理任务时的性能可媲美Caffe,优于TensorFlow和Torch。

 可通过调整JVM的堆空间、垃圾回收算法、内存管理以及Deeplearning4j的ETL数据加工管道来优化Deeplearning4j的性能。

 跨平台性强,可在Linux服务器、Windows和OSX桌面、安卓手机上运行,还可通过嵌入式Java在物联网的低内存传感器上运行。

 提供多样化组件和工具,可快速搭建深度学习项目,DeepLearning4J的组件包括:

 DataVec进行数据摄取,将数据标准化并转换为特征向量。

 DeepLearning4J提供配置神经网络、构建计算图的工具。

 Keras Model Import(Keras模型导入)帮助用户将已训练的Python和Keras模型导入DeepLearning4J和Java环境。

 ND4J让Java能够访问所需的原生库,使用多个CPU或GPU快速处理矩阵数据。

 DL4J-Examples(DL4J示例)包含图像、时间序列及文本数据分类与聚类的工作示例。

 ScalNet是受Keras启发而为Deeplearning4j开发的Scala语言包装。它通过Spark在多个GPU上运行。

 RL4J用于在JVM上实现深度Q学习、A3C及其他强化学习算法。

 Arbiter帮助搜索超参数空间,寻找最理想的神经网络配置。

• 缺点:

 内存占用高,需要不断调整JVM已达到最优效果。

• 用途:

 语音识别

 情感分析

 欺诈检测

 推荐引擎

 相片聚类

 图像搜索

 命名实体识别

• 案例:

 官方示例:https://github.com/deeplearning4j/dl4j-examples

• Github地址:https://github.com/deeplearning4j/deeplearning4j

2.3 Mahout

Mahout是一个分布式线性计算框架,提供一些可扩展的机器学习领域经典算法的实现,旨在让数学家、统计学家和数据科学家快速实现自己的算法。

• 优点:

 包括聚类、分类、推荐过滤、频繁子项挖掘等诸多实现。

 基于Hadoop开发,可轻松实现分布式计算。

 快速高效实现数据挖掘算法,解决了并行挖掘的问题 。

• 缺点:

 实现的算法单一,仅适用于推荐,分类,聚类等单一场景。

 对训练的数据格式有要求,定制化数据存在一定难度。

• 用途:

 推荐系统

 聚类

 分类

• 案例:

 官方示例:https://github.com/apache/mahout/tree/master/examples

• Github地址:https://github.com/apache/mahout

2.4 Spark MLllib

MLlib(Machine Learnig lib)是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器。

MLlib是MLBase一部分,其中MLBase分为四部分:MLlib、MLI、ML Optimizer和MLRuntime。

MLlib目前支持4种常见的机器学习问题: 分类、回归、聚类和协同过滤。

• 优点:

 基于Spark开发,可轻松实现分布式计算。

 拥有庞大的Java生态链支持,文档丰富,业界有许多成功的方案可借鉴。

 Spark基于内存的计算模型适合迭代式计算,在内存中完成多个步骤的计算,只有必要时才会操作磁盘和网络,减少I/O和CPU资源的占用。

 具有出色而高效的Akka和Netty通信系统,通信效率高。

• 缺点:

 开发语言单一,基于Scala语言开发的多范式编程语言需要一定的学习成本。

 过度封装,若要修改某个实现环节,需修改源码重新编译。例如Spark内部使用计算两个向量的距离是欧式距离,若修改为余弦或马氏距离,需要修改源码并重新编译。

• 用途:

 推荐系统

 情感分析

 分类

 聚类

 回归

• 案例:

 官方示例:http://spark.apache.org/examples.html

• 项目地址:http://spark.apache.org/docs/1.1.0/mllib-guide.html

2.5 Ray

Ray是针对机器学习领域开发的一种新的分布式计算框架,该框架基于Python的机器学习和深度学习工作负载能够实时执行,并具有类似消息传递接口(MPI)的性能和细粒度。

• 优点:

 海量任务调度能力。

 毫秒级别的延迟。

 异构任务的支持。

 任务拓扑图动态修改的能力。

• 缺点:

 API层以上的部分还比较薄弱,Core模块核心逻辑估需要时间打磨。

 国内目前除了蚂蚁金服和RISELab有针对性的合作以外,关注程度还很低,没有实际的应用实例看到,整体来说还处于比较早期的框架构建阶段。

• 用途:

 增强学习

 分类

 聚类

 图像识别

 推荐系统

 文本翻译

• 案例:

 官方示例:https://github.com/ray-project/ray/tree/master/examples

• Github地址:https://github.com/ray-project/ray

2.6 Spark Stream

Spark是一个类似于MapReduce的分布式计算框架,其核心是弹性分布式数据集,提供了比MapReduce更丰富的模型,可以在快速在内存中对数据集进行多次迭代,以支持复杂的数据挖掘算法和图形计算算法。Spark Streaming[6]是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。

• 优点:

 能运行在100+的结点上,并达到秒级延迟。

 使用基于内存的Spark作为执行引擎,具有高效和容错的特性。

 能集成Spark的批处理和交互查询。

 为实现复杂的算法提供和批处理类似的简单接口。

• 缺点:

 开发语言单一,基于Scala语言开发的多范式编程语言需要一定的学习成本。

 过度封装,若要修改某个实现环节,需修改源码重新编译。例如Spark内部使用计算两个向量的距离是欧式距离,若修改为余弦或马氏距离,需要修改源码并重新编译。

• 用途:

 推荐系统

 用户画像

 日志分析

 舆情监控

 报表统计

• 案例:

 官方示例:http://spark.apache.org/examples.html

• 项目地址:http://spark.apache.org/streaming

2.7 Horovod

Horovod是Uber开源的又一个深度学习分布式计算框架,它的发展吸取了Facebook「一小时训练 ImageNet 论文」与百度Ring Allreduce的优点,可为用户实现分布式训练提供帮助。

• 优点:

 支持通过用于高性能并行计算的低层次接口 – 消息传递接口 (MPI) 进行分布式模型训练。有了MPI,就可以利用分布式 Kubernetes 集群来训练 TensorFlow 和 PyTorch 模型。

 分布式 TensorFlow 的参数服务器模型(parameter server paradigm)通常需要对大量样板代码进行认真的实现,但是 Horovod 仅需要几行。

• 缺点:

 国内文档少,需要一定的学习成本。

 开发语言单一,目前仅支持Python语言开发。

• 用途:

 分类

 聚类

 文本标注

 推荐系统

 图像识别

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后如何让自己一步步成为技术专家

说句实话,如果一个打工人不想提升自己,那便没有工作的意义,毕竟大家也没有到养老的年龄。

当你的技术在一步步贴近阿里p7水平的时候,毫无疑问你的薪资肯定会涨,同时你能学到更多更深的技术,交结到更厉害的大牛。

推荐一份Java架构之路必备的学习笔记,内容相当全面!!!

成年人的世界没有容易二字,前段时间刷抖音看到一个程序员连着加班两星期到半夜2点的视频。在这个行业若想要拿高薪除了提高硬实力别无他法。

你知道吗?现在有的应届生实习薪资都已经赶超开发5年的程序员了,实习薪资26K,30K,你没有紧迫感吗?做了这么多年还不如一个应届生,真的非常尴尬!

进了这个行业就不要把没时间学习当借口,这个行业就是要不断学习,不然就只能被裁员。所以,抓紧时间投资自己,多学点技术,眼前困难,往后轻松!

【关注】+【转发】+【点赞】支持我!创作不易!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
必备的学习笔记,内容相当全面!!!**

[外链图片转存中…(img-EizWsE4Z-1713459016240)]

成年人的世界没有容易二字,前段时间刷抖音看到一个程序员连着加班两星期到半夜2点的视频。在这个行业若想要拿高薪除了提高硬实力别无他法。

你知道吗?现在有的应届生实习薪资都已经赶超开发5年的程序员了,实习薪资26K,30K,你没有紧迫感吗?做了这么多年还不如一个应届生,真的非常尴尬!

进了这个行业就不要把没时间学习当借口,这个行业就是要不断学习,不然就只能被裁员。所以,抓紧时间投资自己,多学点技术,眼前困难,往后轻松!

【关注】+【转发】+【点赞】支持我!创作不易!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 11
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值