데이터 분석
colab gpu를 통해 xgboost 모델을 빠르게 학습시키는 방법
hoonhoon04
2022. 11. 15. 17:11
kaggle의 Predict Future Sales 데이터 셋을 분석하던 중 xgboost를 활용하여 머신러닝 모델을 학습시키게 되었습니다.
train data의 row 수가 2935849개로 xgboost 모델 파라미터 튜닝하기엔 학습 속도가 너무 느렸습니다. 그리하여 colab gpu를 활용하여 속도를 향상할 수 있는 방법을 찾았고, 다음처럼 진행하면 됩니다.
1. colab에서 런타임을 눌러 '런타임 유형 변경'을 클릭하게 되면 아래와 같은 창이 뜹니다. 이때 하드웨어 가속기를 GPU로 변경해줍니다.
2. 필요한 모델을 colab에 import 합니다.
import xgboost
from xgboost import XGBRegressor
3. 기존 xgboost를 uninstall 하고 pre-built binary wheel xgboost를 설치해줍니다.
(xgboost 공식문서 참고)
!pip uninstall xgboost
!pip install xgboost-0.81-py2.py3-none-manylinux1_x86_64.whl
4. xgboost 모델의 여러 파라미터들을 정해주고 tree_method에 "gpu_exact", "gpu_hist" 둘 중 하나를 선택하여 모델을 구성합니다.
xgb_model = XGBRegressor(..., tree_method = "gpu_exact", seed=24)
실제 어느 정도의 시간차이를 보이는지 측정한 결과를 보여드리겠습니다.
- tree_method="gpu_exact"인 경우
- tree_method="gpu_hist"인 경우
- colab gpu를 사용하지 않는 경우
제일 빠른 것과 비교하였을 때 걸린 시간이 대략 50배 정도 차이 나는 것으로 보아 gpu를 사용하는 것이 훨씬 효율적임을 알 수 있었습니다.