论文部分内容阅读
随着大数据时代的到来,探索数据蕴藏的价值越来越重要。将传统机器学习方法分布化,以适应越来越庞大的数据规模成为研究热点。现有基于参数服务器架构的分布式机器学习框架得到普遍认同。然而此框架仅提供抽象层次较低的底层数据访问接口,导致其在应用时存在数据访问行为和上层应用之间的耦合性高的问题,使得编程人员不易进行进一步的系统底层优化工作。研究基于数据访问依赖的分布式机器学习编程模型,提供方便部署高并发机器学习应用的编程框架具有重要的理论研究意义和实际应用价值。提出了一种基于数据访问依赖的新型分布式机器学习编程模型。该编程模型将参数服务器的底层数据访问接口进行封装,并将数据访问行为和上层应用进行解耦。首先,将应用逻辑分成不同的阶段,并用有向无环图来描述它们之间的依赖关系;其次将阶段的核心操作设计成针对一块连续区域的键值对进行重复性的操作并且定义相关的模型参数的更新机制;接着对于每个阶段所需的模型参数,提供一种描述数据依赖的方法。通过将有向无环图中的无依赖关系的阶段并行执行,以及将某个阶段内的键值区间自动化地分块和并行执行,提高了系统的并发度。同时通过系统的任务调度策略和参数一致性模型来影响数据传输的行为,进而减少猝发式网络传输造成网络资源带宽竞争现象的发生。这种解耦后的编程模型,既方便了编程,又为进一步地进行底层系统的优化提供了可能。在该分布式系统上部署了基于主题模型的文本聚类分析程序。测试结果表明,系统具有单个物理节点内的多线程可扩展性以及分布式情形下的可扩展性,系统并发度高。同时任务调度策略保证同步开销的时间小于整体时间的15%,表明调度策略减轻了猝发式网络传输对网络带宽资源的影响效果。通过计算评估文本分析模型训练的精确度,表明该系统可以正确地部署机器学习应用。