Skip to main content
QUICK REVIEW

[论文解读] Out-of-Core GPU Gradient Boosting

Rong Ou|arXiv (Cornell University)|May 19, 2020
Domain Adaptation and Few-Shot Learning参考文献 9被引用 4
一句话总结

本文提出XGBoost中首个基于GPU的离外存储梯度提升算法,通过结合基于梯度的采样与高效的PCIe数据流技术,使模型可在远超GPU内存容量的数据集上进行训练。该方法在保持核心模型准确率与训练速度的同时,使单张16 GiB GPU的可训练数据集规模扩展至10倍。

ABSTRACT

GPU-based algorithms have greatly accelerated many machine learning methods; however, GPU memory is typically smaller than main memory, limiting the size of training data. In this paper, we describe an out-of-core GPU gradient boosting algorithm implemented in the XGBoost library. We show that much larger datasets can fit on a given GPU, without degrading model accuracy or training time. To the best of our knowledge, this is the first out-of-core GPU implementation of gradient boosting. Similar approaches can be applied to other machine learning algorithms

研究动机与目标

  • 解决GPU内存容量限制在训练大规模机器学习模型时的瓶颈。
  • 克服PCIe带宽限制对高效离外存储GPU计算的阻碍。
  • 将XGBoost现有的基于CPU的外部内存支持扩展至GPU,且性能损耗最小化。
  • 在不牺牲模型准确率或训练时间的前提下,实现对超过GPU内存容量的数据集的训练。
  • 设计可扩展、可生产部署的实现,用于XGBoost开源生态。

提出的方法

  • 利用基于梯度的采样技术,降低树构建过程中的工作内存占用。
  • 通过流水线化、异步数据加载策略,从主内存或磁盘向GPU流式传输数据。
  • 采用ELLPACK格式紧凑表示分箱特征,以减少内存访问流量。
  • 采用两步GPU树构建方法:预处理(分箱与压缩)后接基于直方图的分裂评估。
  • 通过确保采样不改变底层优化目标,保持模型行为的一致性。
  • 将离外存储GPU流水线集成至XGBoost库中,支持向后兼容与模块化代码结构。

实验结果

研究问题

  • RQ1尽管存在PCIe带宽限制,是否可以使离外存储GPU训练在梯度提升中变得实用?
  • RQ2基于梯度的采样在多大程度上可减少GPU内存使用,同时不降低模型准确率?
  • RQ3在大规模数据集上,离外存储GPU训练的性能与核心GPU及CPU训练相比如何?
  • RQ4所提方法是否可无缝集成至广泛使用的开源库XGBoost中,且不破坏现有工作流?
  • RQ5与核心训练相比,该方法在单张GPU上可训练的最大数据集规模是多少?

主要发现

  • 离外存储GPU实现支持最大达GPU内存10倍的数据集(例如,在16 GiB GPU上训练903 GiB数据集),采样比例f=0.1。
  • 模型准确率与核心训练几乎完全一致:在Higgs数据集上,离外存储(f=1.0)AUC为0.8396,核心训练AUC为0.8398。
  • 当f=0.5时,离外存储GPU训练耗时427.41秒,显著快于CPU离外存储(1228.53秒)与核心GPU(241.52秒)。
  • 即使采用采样,离外存储GPU版本仍快于基于CPU的训练,证明GPU加速能力得以保留。
  • 该方法实现接近核心性能,仅带来极小开销,具备生产环境部署可行性。
  • 该实现已合并至开源XGBoost库中,推动更广泛应用与进一步研究。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

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