Skip to main content
QUICK REVIEW

[논문 리뷰] GPUTreeShap: Massively Parallel Exact Calculation of SHAP Scores for Tree Ensembles

Rory Mitchell, Eibe Frank|arXiv (Cornell University)|2020. 10. 27.
Machine Learning and Data Classification인용 수 8
한 줄 요약

GPUTreeShap는 트리 앙상블에서 정확한 SHAP 값 계산을 위한 GPU 최적화된 다중 병렬 재구성된 TreeShap 알고리즘을 제안한다. 재귀적 하위문제를 박스 패킹 스케줄링된 SIMT 작업으로 재구성함으로써, 다중 코어 CPU 대비 SHAP 값 계산에서 최대 19배의 속도 향상과 상호작용 값 계산에서 최대 340배의 성능 향상을 달성하여 대규모 환경에서 실시간 해석 가능성 구현을 가능하게 한다.

ABSTRACT

SHAP (SHapley Additive exPlanation) values provide a game theoretic interpretation of the predictions of machine learning models based on Shapley values. While exact calculation of SHAP values is computationally intractable in general, a recursive polynomial-time algorithm called TreeShap is available for decision tree models. However, despite its polynomial time complexity, TreeShap can become a significant bottleneck in practical machine learning pipelines when applied to large decision tree ensembles. Unfortunately, the complicated TreeShap algorithm is difficult to map to hardware accelerators such as GPUs. In this work, we present GPUTreeShap, a reformulated TreeShap algorithm suitable for massively parallel computation on graphics processing units. Our approach first preprocesses each decision tree to isolate variable sized sub-problems from the original recursive algorithm, then solves a bin packing problem, and finally maps sub-problems to single-instruction, multiple-thread (SIMT) tasks for parallel execution with specialised hardware instructions. With a single NVIDIA Tesla V100-32 GPU, we achieve speedups of up to 19x for SHAP values, and speedups of up to 340x for SHAP interaction values, over a state-of-the-art multi-core CPU implementation executed on two 20-core Xeon E5-2698 v4 2.2 GHz CPUs. We also experiment with multi-GPU computing using eight V100 GPUs, demonstrating throughput of 1.2M rows per second -- equivalent CPU-based performance is estimated to require 6850 CPU cores.

연구 동기 및 목표

  • 대규모 트리 앙상블 모델에서 SHAP 값 계산의 계산 병목 현상을 해결하여 학습 시간을 초월할 수 있도록 한다.
  • 불규칙한 재귀 구조와 데이터 종속성으로 인해 GPU 아키텍처에 복잡한 TreeShap 알고리즘을 매핑하는 데 도전하는 문제를 해결한다.
  • GPU 전체 병렬 처리를 활용하여 실세계 ML 파이프라인에서 고처리량, 저지연의 SHAP 계산을 가능하게 하여 실시간 해석 가능성을 확보한다.
  • 특성 수에 따라 제곱적으로 증가하는 복잡도를 가지며 고차원 데이터에서 특히 비용이 큰 SHAP 상호작용 값 계산의 시간 소모를 줄인다.
  • 다중 GPU에 효율적으로 스케일링되는 생산용 오픈소스 GPU 백엔드를 XGBoost에 통합하여 제공한다.

제안 방법

  • 각 트리 경로별로 독립적이고 크기가 변하는 하위문제로 재구성하여 데이터 병렬 실행을 가능하게 하기 위해 재귀적 TreeShap 알고리즘을 재구성한다.
  • 하위문제를 워프 단위로 그룹화하기 위해 박스 패킹 휴리스틱을 적용하여 GPU 스레드 블록 스케줄링을 효율적으로 하고 최적의 할당률을 극대화한다.
  • CUDA 커널을 사용하여 각 하위문제를 단일 명령어 다중 스레드(SIMT) 작업으로 매핑하고, 워프 수준의 기초 원리를 활용해 동적 프로그래밍을 수행한다.
  • 학습 데이터에서의 커버 가중치를 활용하여 경로 평가 중 누락된 특성의 조건부 기대값을 추정한다.
  • 불필요한 특성 쌍을 생략함으로써 SHAP 상호작용 값 계산의 알고리즘 복잡도를 최적화하여 시간 복잡도를 O(TLD²M)에서 O(TLD³)로 감소시킨다.
  • GPUTreeShap를 XGBoost의 백엔드로 통합하여 모델 재학습 없이도 GPU 가속된 SHAP 추론을 원활하게 구현할 수 있도록 한다.

실험 결과

연구 질문

  • RQ1재귀적 TreeShap 알고리즘이 다중 병렬 GPU 아키텍처에서 효율적이고 확장 가능한 실행을 가능하게 하기 위해 재구성될 수 있는가?
  • RQ2GPU 수준의 병렬 처리와 워프 스케줄링은 대규모 트리 앙상블에서 SHAP 값 계산의 처리량을 어느 정도 향상시킬 수 있는가?
  • RQ3모델 크기, 데이터셋 크기, GPU 수가 증가함에 따라 GPUTreeShap의 성능 스케일링 특성은 어떻게 되는가?
  • RQ4SHAP 상호작용 값 계산은 표준 SHAP 값보다 훨씬 비용이 많이 들기 때문에, 성능 향상의 잠재력은 어느 정도인가?
  • RQ5정확도를 유지하면서 사전 처리 및 특성 프루닝을 통해 SHAP 상호작용 계산의 알고리즘 복잡도를 줄일 수 있는가?

주요 결과

  • 단일 NVIDIA Tesla V100-32 GPU를 사용할 경우, GPUTreeShap는 표준 SHAP 값 계산에서 최대 19배, SHAP 상호작용 값 계산에서 최대 340배의 성능 향상을 달성하여 40코어 CPU 대비 성능을 확보한다.
  • 처리량은 GPU 수에 따라 선형적으로 증가하며, 여덟 대의 V100 GPU를 사용할 경우 1.2백만 행/초의 처리량을 달성하여 약 6,850개의 CPU 코어에 해당한다.
  • 패션_mnist-large와 같은 고차원 데이터셋의 경우, 단일 GPU를 사용하여 SHAP 상호작용 값 계산 시간을 약 6시간에서 약 1분으로 단축시켰다.
  • 특성 서브셋 프루닝을 통해 SHAP 상호작용 값 계산의 알고리즘 복잡도를 O(TLD²M)에서 O(TLD³)로 감소시켜 대규모 특성 집합에서의 성능 향상을 크게 향상시켰다.
  • 대규모 배치 크기에서 GPUTreeShap는 더 높은 병렬 처리 능력과 단일 행당 낮은 지연 시간 덕분에 180개 이상의 테스트 행을 초월한 이후 CPU를 능가하는 처리량을 보였다.
  • 구현은 생산용으로 준비되어 있으며 XGBoost에 통합되어 기울기 부스팅 트리 모델에 대한 종단 간 GPU 가속 해석 가능성을 제공한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.