关键词:
大数据处理框架
自动配置
启发式搜索
性能预测模型
模型训练优化
摘要:
以大数据为代表的新型应用可以挖掘大量的高价值信息,对经济和社会发展具有重要意义。然而,这些应用的多样性特征使得程序员很难开发出一个适用于所有通用的处理软件。目前通用的方法是为用户提供高可配置的大数据处理框架,用户可以根据应用程序的特点和需求灵活配置大数据处理框架,使其能够支持应用程序的高效执行。然而,正确的配置大数据处理框架需要了解其结构和执行过程等细节信息,而这对大部分普通用户来说比较困难。
大数据处理框架的自动配置方法可以使用户在不了解框架实现细节的情况下,仍然能够进行合理的配置。目前的自动配置方法大部分都是在配置空间中进行启发式搜索,并利用性能预测模型为启发式搜索提供实时反馈。为实现高精度的性能预测,往往需要收集大量的框架配置和性能数据来训练复杂的预测模型,这就使得数据收集和模型训练等开销很大,需要针对大数据处理框架自动配置过程中的数据收集和模型训练的开销大等问题展开研究。
对于性能模型数据收集开销大的问题,提出一种基于样本选择的性能建模方法,可以有效的减小数据收集开销。在此基础上,利用遗传算法在大数据处理框架的配置空间中进行启发式搜索,实现框架的自动配置。在建立性能预测模型时,将数据收集过程与模型训练过程结合起来,根据模型训练的动态需求进行针对性的数据收集,从而能够在不影响模型精度的前提下,尽可能降低模型训练所需的数据量和数据收集开销。相比于传统的性能模型训练过程,此方法能够有效的降低训练数据之间的信息冗余,提高数据利用率,减小模型训练所需的数据量和数据收集开销。实验结果表明,此方法可以将数据收集开销降低15%左右,同时将性能预测模型的精度提高1%左右。
对于性能模型训练开销大的问题,分别从模型参数和训练样本两个角度对模型训练过程进行优化和加速。在模型参数方面,通过观察模型的迭代更新过程,发现不同的模型参数在迭代更新时,其收敛速度的差异性较大。然而,目前的方法在进行模型的迭代更新时,通常是从整体上进行收敛性判断,不考虑模型参数间收敛速度的差异性,这就会导致某些参数在收敛后仍然被多次更新,形成冗余计算,降低了计算效率。因此提出一种基于参数差异性的模型训练加速方法,将模型参数按其收敛速度的相似性进行分块,每个参数块中的模型参数的收敛速度相似,再对每个参数块进行并行更新和独立的收敛性判断,以降低训练过程中的冗余计算问题。在此过程中,由于参数块更新进度不一致可能会导致模型误差,但可从理论上证明,这部分误差不会影响到模型迭代更新的收敛性和计算结果的正确性。实验结果表明,相比于传统的参数并行策略,此方法可以将训练效率提升3倍左右,并将模型精度提高2%左右,同时此方法能够达到接近线性的并行加速比。
在训练样本方面,现有的方法在每轮迭代时,都需要基于训练数据计算梯度以更新模型。然而,在经过前面几轮迭代后,大部分样本对模型更新的影响都很小,然而目前的模型训练方法没有考虑到不同样本对模型更新的影响,每轮迭代仍然需要基于所有训练样本计算梯度去更新模型,这就导致计算效率低下。因此,提出一种基于样本多样性的模型训练加速方法,在模型迭代更新过程中,如果某个样本对模型状态更新影响较小,则不必每轮迭代都计算其梯度信息,而是采用数据重用策略以减小计算开销。这种做法能够提升计算效率,然而会在模型更新时引入误差,可从理论上证明,这部分误差不会影响到模型迭代更新的收敛性和计算结果的正确性。实验结果表明,相比于传统的模型更新策略,此方法可以将计算开销降低28%到54%左右,且几乎不影响模型预测精度。
综上所述,针对以大数据处理框架为代表的高可配置软件的自动配置问题,提出一种基于样本选择的模型构建策略,能够利用更少的训练数据得到精度更高的性能预测模型。同时,针对大规模训练集上的复杂模型训练问题,从模型参数和训练样本两个角度,对现有的训练过程进行改进,在不影响精度的前提下,提升模型的训练效率。