标题:Did you know GPU are not just for Deep Learning?
简介:GPU可以加速深度学习的模型训练,但很少有人知道GPU也可以加速其他机器学习算法,如线性模型、SVM和GBM Tree,同时GPU也可以加速数据处理。
采访链接:https://www.youtube.com/watch?v=hUlvFtuFqy8
个人介绍
Jean-Francois Puget (Kaggle ID CPMP)很早就获得了PhD学位,并在Constraint Programming 和 Math Programming领域发表了70多篇学术论文。
近年来Puget开始在Kaggle上时间机器学习,并参加了多场比赛。Puget是competition and discussion grandmaster, Kaggle排名最高前10。Puget现在NVIDIA工作。

https://www.kaggle.com/cpmpml
专访内容
CPU框架
Puget首先列举了现有比较成熟的数据科学框架,这些框架都与CPU联系紧密。此时CPU的计算能力限制了这些操作。
数据分析(Pandas) 机器学习(sklearn) 网络分析(networkx) 深度学习(Pytorch、TF) 可视化(Matplotlib)

RAPIDS介绍
然后Puget介绍了GPU的性能,多核计算,通讯带宽上限高。之后Puget介绍了RAPIDS
,一个可以使用GPU完成数据读取、模型训练与验证的工具。
在RAPIDS
中主要的是两个库:
cuDF
:完成数据读取、分析cuML
:完成机器学习模型训练
需注意的是RAPIDS
现在只支持GPU,且暂时需要用conda或docker安装,不支持pip。

案例1:cuML
在TReNDS Neuroimaging比赛中,cuML
与sklearn的速度对比:
sklean
的svm,运行时间1个小时 https://www.kaggle.com/cpmpml/scikit-learn-svm-on-trends-neuroimagingcuML
的svm,运行时间1分钟 https://www.kaggle.com/cpmpml/rapids-svm-on-trends-neuroimaging
cuML
的语法和APIsklean
非常相似,所以用起来没有难度。
案例2:Target Encoding
Puget首先介绍了Target Encoding原理和平滑操作,并讲解了具体的代码。


在参加RecSys 2020比赛中,cuDF
和原生pandas
进行target encoding的速度对比:
pandas
完成Target Encoding,运行93秒;cuDF
完成Target Encoding,运行1秒;
同时cuML
也将Target Encoding进行了封装,可以直接调用函数完成计算。

https://docs.rapids.ai/api/cuml/stable/api.html#cuml.preprocessing.TargetEncoder
案例3:XGBoost GPU版本
现在XGBoost也支持GPU,可以通过GPU完成速度加速,加速比10倍以上。

专访收获
Puget在讲解完案例后,还进行了一些问答答疑。问题主要是cuDF
与cuML
相关。在听完完整的专访后,我的感受有以下几点:
cuDF
与cuML
确实是能够利用GPU加速数据分析和模型训练,但现在安装比较费劲,但Kaggle环境以及支持这些。cuML
现在支持的机器学习方法比较少,如果有遇到支持的函数,可以考虑使用cuML
。如果想尝试新事物,还是推荐学习的。https://github.com/rapidsai/cudf https://github.com/rapidsai/cuml






