Recent years have witnessed significant success in Gradient Boosting Decision Trees (GBDT) for a wide range of machine learning applications. Generally, a consensus about GBDT's training algorithms is gradients and statistics are computed based on high-precision floating points. In this paper, we investigate an essentially important question which has been largely ignored by the previous literature: how many bits are needed for representing gradients in training GBDT? To solve this mystery, we propose to quantize all the high-precision gradients in a very simple yet effective way in the GBDT's training algorithm. Surprisingly, both our theoretical analysis and empirical studies show that the necessary precisions of gradients without hurting any performance can be quite low, e.g., 2 or 3 bits. With low-precision gradients, most arithmetic operations in GBDT training can be replaced by integer operations of 8, 16, or 32 bits. Promisingly, these findings may pave the way for much more efficient training of GBDT from several aspects: (1) speeding up the computation of gradient statistics in histograms; (2) compressing the communication cost of high-precision statistical information during distributed training; (3) the inspiration of utilization and development of hardware architectures which well support low-precision computation for GBDT training. Benchmarked on CPUs, GPUs, and distributed clusters, we observe up to 2$\times$ speedup of our simple quantization strategy compared with SOTA GBDT systems on extensive datasets, demonstrating the effectiveness and potential of the low-precision training of GBDT. The code will be released to the official repository of LightGBM.
翻译:近些年来,Gradient 推动决定树(GBDT)在一系列广泛的机器学习应用中取得了显著成功。 一般来说,我们对GBDT培训算法的共识是梯度,根据高精度浮动点计算统计数据。 在本文中,我们调查了一个基本重要的问题,而以前文献基本上忽略了这个问题:在培训GBDT时,代表梯度需要多少位子来表示梯度?为了解开这个谜题,我们提议以非常简单而有效的方式,在GBDT的培训算法中对所有高精度梯度进行量化。 令人惊讶的是,我们理论分析和经验研究都表明,在不伤害任何性能的情况下,梯度的必要精确度可能非常低,例如,2或3位位。 在低精度梯度梯度梯度梯度下,GBDT培训中的大多数算术操作可以被8、16或32位数位整数的整齐操作所取代。 显而易见,这些发现可能会为从几个方面对GBDDT进行更高效的广泛培训铺平道路:(1) 加速计算梯度统计梯度数据,在他级训练的梯度上进行更精确的计算,对调的精确的计算,在他级的精度上显示的精度的精度的精度的精度的精度的精度的精度的精度的精度的精度的精度的精度的精度的精度,将利用,在计算中,对精度的精度的精度的精度的精度的精度的精度的精度的精度上,对精度将利用的精度的计算。