本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

【j2开奖】专栏 | 第四范式先知平台的整体架构和实现细节(2)

时间:2016-11-17 19:06来源:118论坛 作者:开奖直播现场 点击:
要获得一个成功的高维度模型,就需要好的机器学习系统,这个系统应当具备两个特征:横向可扩展的高计算性能和算法本身在收敛过程中的正确性。为此

要获得一个成功的高维度模型,就需要好的机器学习系统,这个系统应当具备两个特征:横向可扩展的高计算性能和算法本身在收敛过程中的正确性。为此,我们的算法工程团队开发了一系列的基础设施组件,组成了大规模分布式机器学习框架 GDBT(General Distributed Brain Technology)。GDBT 是一个由 C++编写的,完全分布式的适合于机器学习计算场景的计算框架,可以运行在单机、MPI、Yarn、Mesos 等多个分布式环境。

大规模分布式机器学习框架 GDBT

机器学习是一种数据驱动的实现人工智能的方式,机器学习在实际应用中的大数据、高维度背景导致需要一个高效计算的平台,同时,监督学习领域著名的 No Free Lunch 定理指出,没有一个机器学习模型能够对所有的问题都是最有效的。所以在不同的实际问题里,需要使用不同的机器学习算法或者对机器学习算法做适应性地调整,去达到更好的实际效果。因此在实际的应用中,需要能够非常容易地开发出适应实际问题的机器学习算法。相比于传统的 ETL 计算,机器学习算法的计算过程有很多自身的要求和特点。

在框架设计上,没有普适的最好的框架,只有最适合自身应用场景的框架。GDBT 框架的设计初衷主要就是打造一个专门为分布式大规模机器学习设计的计算框架,兼顾开发效率和运行效率。GDBT 框架不是某一种算法,而是一种通用的机器学习算法计算框架,使算法工程师可以基于 GDBT 开发各种传统或者创新算法的分布式版本,而不用过多地关心分布式底层细节

目前比较流行的计算框架比如 Hadoop、Spark 其重点任务大多是 ETL 类的任务。前面提到机器学习计算任务相比于传统的 ETL 计算任务有很多自身的特点,时间有限这里可以简单地展开一下。

在计算方面:相比于 ETL 会做的一些相对「简单」的运算,机器学习算法会对数据做相对复杂的运算,一些非线性的模型,比如深度学习模型会需要比较密集的计算;在实际的应用中,需要考虑不同计算资源的特性;分布式计算中,由于分布式带来的通讯、同步、灾备等等的 overhead 需要调整计算模式来尽可能地降低。

在通讯方面:很多机器学习算法在计算过程中会频繁使用到全局或者其他节点的信息,对网络吞吐和通讯延迟的要求要远高于 ETL 任务。同时,很多机器学习任务对于一致性的要求要低于 ETL 任务,在系统的设计上可以使用放松的一致性要求。

在存储方面:ETL 需要处理来源不同的各种数据,比较少的反复迭代运算,很多机器学习算法会对数据做反复的迭代运算,可能会有大量的不断擦写的中间数据产生,对存储的使用效率、访问效率有着更高的需求。

在灾备和效率的权衡方面:容灾策略有两方面的额外开销,一方面来自于执行过程中为了容灾所需要做的额外的诸如状态保存之类的操作,另一方面来自于灾难恢复时所需要进行的额外重复计算开销。这两方面的开销是此消彼长的。与 ETL 计算任务不同,机器学习计算任务流程相对复杂,中间状态较多,在较细的粒度上进行容灾会增加执行过程中的额外开销。因此在容灾策略和容灾粒度上,机器学习计算任务和 ETL 计算任务之间的权衡点不一样。

GDBT 计算框架针对机器学习任务在计算、通讯、存储、灾备等方面做了深入的优化。时间有限,这里可以简单的讲一点 GDBT 的工作,有兴趣了解更多的同学可以会后再和我们联系,或者加入第四范式一起解决这些有趣的问题:)

在计算方面,计算硬件发展到今天,提升计算能力的主要方式是堆积计算能力的分布式并行计算,比如现在做深度学习非常流行的 GPU 本身也是一种并行计算硬件,针对不同需求的计算硬件的种类也在变多,比如 FPGA 等等。对于大数据、高维度、复杂的机器学习计算任务,GDBT 框架充分考虑了分布式并行计算的特点,针对不同的硬件资源、不同的算法场景做了调度、计算模式、机器学习算法部件的抽象等的优化。GDBT 框架本身在设计上也刻意避免了现在一些框架设计容易走入的误区。比如:为了分布式而分布式,但是忘记了分布式带来的 overhead。GDBT 框架针对单机、分布式模式分别进行了优化,框架本身会对不同规模的计算任务、不同的计算环境做自适应的调整选择更高效的实现。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容