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メモリよりもはるかに大きなデータセットの学習を可能にする。モデルの精度と学習速度を維持したまま、1枚の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のボトルネックを克服すること。
  • XGBoostが既に備えているCPUベースの外部メモリ対応を、性能劣化を最小限に抑えてGPUに拡張すること。
  • GPUメモリを超えるデータセットの学習を、モデルの精度や学習時間を損なわずに行えるようにすること。
  • オープンソース利用を想定したスケーラブルで生産環境対応の実装を設計すること。

提案手法

  • 木の構築中に作業メモリの使用量を削減するために、勾配に基づくサンプリングを活用する。
  • パイipelインドで非同期なデータローディング戦略を用いて、メインメモリまたはディスクからGPUへデータをストリーミングする。
  • バインニングされた特徴量の表現をコンパクトに保つためにELLPACK形式を採用し、メモリトラフィックを削減する。
  • 2段階のGPU木構築プロセスを適用:前処理(バインニングと圧縮)とその後に続くヒストグラムベースの分割評価。
  • サンプリングが最適化の根本的目標を変更しないようにすることで、一貫したモデル挙動を維持する。
  • 後方互換性とモジュラーなコード構造を保ちながら、外部メモリGPUパイプラインをXGBoostライブラリに統合する。

実験結果

リサーチクエスチョン

  • RQ1PCIe帯域の制限がある中で、外部メモリ対応GPU学習が勾配ブースティングにおいて実用的に行えるか。
  • RQ2勾配に基づくサンプリングによって、GPUメモリ使用量をどれだけ削減できるか、かつモデル精度に悪影響を与えないか。
  • RQ3外部メモリGPU学習の性能が、大規模データセットにおけるインハウスGPU学習やCPUベースの学習と比べてどの程度か。
  • RQ4提案手法が、既存のワークフローを破壊することなく、広く使われているオープンソースライブラリXGBoostに統合可能か。
  • RQ5この手法を用いることで、1枚のGPUで学習可能な最大データセットサイズは、インハウス学習と比べてどの程度か。

主な発見

  • 外部メモリGPU実装は、GPUメモリサイズの10倍まで大きなデータセット(例:16 GiB GPUで903 GiBのデータセット)を処理可能であり、サンプリング比f=0.1の条件下で動作する。
  • モデルの精度はインハウス学習とほとんど同一である:HiggsデータセットにおけるAUCは、外部メモリ(f=1.0)で0.8396、インハウスで0.8398。
  • 外部メモリGPU学習(f=0.5)は427.41秒で完了し、CPU外部メモリ学習(1228.53秒)よりも著しく速く、インハウスGPU学習(241.52秒)よりも遅いが、GPUの加速効果が維持されている。
  • サンプリングが行われても、外部メモリGPU版はCPUベースの学習よりも高速であるため、GPUの加速効果が保たれていることが示された。
  • 最小限のオーバーヘッドでインハウスに近い性能を達成しており、生産環境での利用に適している。
  • 実装はオープンソースのXGBoostライブラリにマージされ、広範な採用とさらなる研究を促進している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。