您现在所在位置: 首页 > 睿道新闻

大数据培训学习之可视化技术

发布时间:2020-09-24点击数:


  随着大数据时代的到来,人们迫切需要以机器学习算法为核心的高性能数据分析技术在由普通机器组成的大型集群中应用,为实际业务提供服务和指导,进而实现数据的最终变现。和传统的在线在线在线分析处理OLAP不同,大数据深度分析主要是基于大规模机器学习技术,一般而言,机器学习模型的训练过程可以归结为:在大规模训练数据上定义目标函数,并通过一种循环迭代算法实现。因此,相对于传统的OLAP,基于机器学习的大数据分析有其独特之处。


  迭代性:由于用于优化的问题往往没有闭式解,因此模型参数的确定不是一次就能完成,需要循环迭代多次逐步逼近最优值点。


  容错性:机器学习的算法设计和模型评估允许存在非最优值点,同时多个迭代的特性也允许在循环过程中出现某些错误,因此模型的最终收敛不受影响。


  参数收敛的不均匀性:模型中的一些参数经过几轮迭代之后就不再发生变化,而另一些参数的收敛则需要较长的时间。


  理想的大数据分析系统与其它计算系统的设计有很大的不同,它直接将传统的分布式计算系统应用到大数据分析中,大量的资源被浪费在通信、等待、协调等非有效计算上。


  MPI(messagepassinginterface,信息传递接口)虽然编程接口灵活、功能强大,但由于编程接口复杂,且对容错性的支持较少,无法支持大规模数据的复杂操作,因此研究人员转向开发一系列接口简单、容错能力强的分布式计算框架服务于大数据分析算法,如MapReduce、Spark和ParameterServer等参数服务器。


  MapReduce是一种分布式计算框架,它把处理数据分为两大类操作,即Map操作和Reduce操作,从而简化编程接口,提高系统的容错能力。但MapReduce受制于过于简化的数据操作抽象,不支持循环迭代,因此对复杂的机器学习算法的支持较差,Mahout基于MapReduce的分布式机器学习库Mahout需要将迭代操作分解成多个连续的Map和Reduce操作,通过读写HDFS文件的方式将前一个循环的操作结果传递给下一个循环以完成数据交换。这一过程中,磁盘读写操作需要大量的训练时间,训练效率非常低。要解决MapReduce的上述问题,Spark基于RDD定义了更丰富的数据操作接口,包括Map和Reduce。与MapReduce不同的是,Job中间的输出和结果可以保存在内存中,因此无需再读和写HDFS,这使Spark能够更好地应用于需要迭代的大数据分析算法,如数据挖掘和机器学习。MLLIB是一个基于Spark实现的机器学习算法库,它显示了它与Mahout相比的优越性,在实际应用系统中被广泛使用。


  近几年来,随着待分析数据规模的迅速扩大,分析模型的参数也迅速增加,这对现有的大数据分析模式提出了挑战。举例来说,在大型主题模型LDA中,人们期望训练出超过百万个主题,因此在训练期间可能需要更新上百亿,甚至上千亿的模型参数,这远远超过了一个节点的处理能力。为解决以上问题,研究者提出了参数服务器(ParameterServer)的概念,见图5。对于参数服务器系统,将大型模型参数集中存储在分布式服务器集群中,将大型训练数据分散存储在不同的工作节点(worker)上,使各工作节点在计算时只需保存一小部分参数即可,有效地解决了大型数据分析模型的训练问题。当前的参数服务器实现主要有卡内基梅隆大学的Petuum,PSLit等。



  • 友情链接

关注东软睿道公众号了解更多IT行业资讯

添加东小萌微信
获取更多IT学习资源