Skip to main content
QUICK REVIEW

[论文解读] XGBoost: Scalable GPU Accelerated Learning

Rory Mitchell, Andrey Adinets|arXiv (Cornell University)|Jun 29, 2018
Advanced Image and Video Retrieval Techniques参考文献 4被引用 34
一句话总结

本文提出了一种在 XGBoost 中实现的多 GPU 加速梯度提升算法,实现了训练、预测、梯度计算和决策树构建的端到端 GPU 并行化。通过使用特征量化和运行时数据压缩,该方法将 GPU 内存使用量减少了四倍,并在单个配备 8 张 V100 GPU 的云实例上,于三分钟内处理了 1.15 亿个样本,其速度和精度均优于 CPU 及其他 GPU 优化基线模型。

ABSTRACT

We describe the multi-GPU gradient boosting algorithm implemented in the XGBoost library (https://github.com/dmlc/xgboost). Our algorithm allows fast, scalable training on multi-GPU systems with all of the features of the XGBoost library. We employ data compression techniques to minimise the usage of scarce GPU memory while still allowing highly efficient implementation. Using our algorithm we show that it is possible to process 115 million training instances in under three minutes on a publicly available cloud computing instance. The algorithm is implemented using end-to-end GPU parallelism, with prediction, gradient calculation, feature quantisation, decision tree construction and evaluation phases all computed on device.

研究动机与目标

  • 通过多 GPU 系统实现大规模数据集上梯度提升模型的可扩展、高速训练。
  • 通过运行时数据压缩和特征量化,在保持高计算效率的同时减少 GPU 内存使用量。
  • 为梯度提升流程的所有阶段(包括树构建、预测和梯度评估)实现端到端 GPU 加速。
  • 在 GPU 上支持所有标准 XGBoost 学习任务——回归、分类、多分类和排序,并与现有 API 完全兼容。
  • 在多种真实世界数据集上,性能优于领先的 CPU 和 GPU 优化梯度提升框架。

提出的方法

  • 该算法使用特征量化将输入特征表示为离散桶,从而将树构建问题简化为高效的梯度直方图累积。
  • 一种运行时数据压缩技术通过位运算将量化值打包为 log₂(max_value) 位,将 GPU 内存使用量最多减少四倍。
  • 决策树构建在多个 GPU 上并行进行,每个 GPU 构建部分直方图,并通过 NCCL 的 AllReduce 操作进行合并。
  • 通过在合并后的直方图上使用并行前缀和(扫描)操作,高效计算分裂增益,从而找到最优分裂点。
  • 预测和梯度评估被映射到 GPU,每个训练样本对应一个线程,充分利用高内存带宽和并行性。
  • 该实现支持在 GPU 上进行逻辑回归和线性回归目标函数计算,其他目标函数(如多分类、排序)目前仍由 CPU 计算。

实验结果

研究问题

  • RQ1端到端 GPU 加速能否显著减少大规模梯度提升模型的训练时间?
  • RQ2运行时数据压缩在不牺牲性能的前提下,对减少 GPU 内存使用量有多有效?
  • RQ3基于 AllReduce 的直方图聚合能否在多个 GPU 上高效实现多 GPU 并行化,用于决策树构建?
  • RQ4与 LightGBM 和 CatBoost 等最先进的 CPU 和 GPU 优化替代方案相比,GPU 加速的 XGBoost 实现的性能(速度和精度)如何?
  • RQ5在现代硬件上,GPU 加速 XGBoost 的数据集大小上限和训练速度上限是多少?

主要发现

  • 在配备 8 张 Tesla V100 GPU 的单个云实例上,XGBoost GPU 实现处理 1.15 亿个训练样本的时间不足三分钟。
  • 在 6 个基准数据集中的 3 个上,该算法是所有评估方法中最快的,包括最大的数据集(含 1.15 亿行的航空数据集),相比最接近的竞争对手实现了接近 3 倍的加速。
  • 在所有六个数据集上,运行时间均未超过两分钟,表明其具有稳定的可扩展性和高效性。
  • 通过使用位运算对量化特征值进行运行时压缩,该方法将 GPU 内存使用量减少了四倍或更多。
  • 该实现保持了高精度,在 6 个数据集中的 2 个上与最佳 CPU 基线 XGBoost 结果相当或略优。
  • 该算法在增加 GPU 数量时表现出高效的可扩展性,在航空数据集上,训练时间从 1 张 GPU 的 280 秒减少到 8 张 GPU 的 240 秒,表明多 GPU 扩展能力强劲。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。