介绍
xgboost(extreme gradient boosting)是一个在gradient boosting decision tree(gbdt)框架下的开源机器学习库(https://github.com/dmlc/xgboost)。xgboost用于使用机器学习解决数据科学中的回归和分类问题。任务可以分布在一组机器上,以便更快地进行训练和推理。例如,xgboost4j-spark(https://xgboost.readthedocs.io/en/latest/jvm/xgboost4j_spark_tutorial.html)是一个将xgboost与apache spark集成的项目。
lightgbm(light gradient boosting machine)是微软开发的另一款基于gdbt的开源工具(https://www.microsoft.com/en-us/research/project/lightgbm/),与xgboost相比,它以更高效的训练而闻名。与xgboost类似,lightgbm培训可以分布在一个节点集群上,并通过减少节点之间的通信来降低任务分配的成本。
这个博客比较了在几个aws实例上运行的xgboost和lightgbm的性能。这些实例包括类型c5(skylake sp或cascade lake)、c6i(intel ice lake)、c6g(aws graviton2)和c7g(aws graviton3),大小为12xlarge。这些实例都配备了48个vcpu和96gb内存。
aws graviton3:第三代graviton处理器系列
aws graviton2处理器是aws使用arm neoverse内核设计的第二代处理器,与amazon ec2中的x86实例相比,为不同的工作负载提供了广泛的性价比改进。aws gravaton3是graviton处理器系列的第三代,与第二代相比,计算性能提高了25%。特定计算的性能可以提高2到3倍,例如浮点运算和密码运算,以及支持bfloat16的基于cpu的机器学习应用程序。与支持ddr4的实例相比,graviton3对ddr5的支持将内存带宽提高了50%。
基准环境
基准测试工具
xgboost集成在一个流行的python机器库scikit-learn中。我们使用scikit-learn_bench对xgboost进行基准测试,并对lightgbm进行少量修改。基准测试工具和参数在配置文件中传递。示例配置文件位于存储库的“config”目录中。基准测试使用python 3.10.4和以下版本的python库:
xgboost: 1.6.2
lightgbm: 3.3.2
scikit-learn: 1.1.2
对于xgboost,我们为以下数据集运行基准测试:
airline (binary classification)(https://www.stat.purdue.edu/~sguha/rhipe/doc/html/airline.html)
higgs (binary classification) (https://archive.ics.uci.edu/ml/datasets/higgs)
msrank (multi-class classification)(https://www.microsoft.com/en-us/research/project/mslr/)
对于lightgbm,我们呈现airline和higgs数据集的结果。
基准测试使用的参数如下:
xgboost的“hist”树方法类似于lightgbm的工作方式,可以提高训练速度。估计器(estimators)的数量设置为100,这是xgboost和lightgbm库的默认值。线程数设置为实例上可用的vcpu数,对于12xlarge的实例为48。
性能比较
xgboost训练性能
下图显示了三个数据集和不同实例类型的训练时间。结果表明,graviton3实例的训练时间比c5提高了52%,比c6i提高了36%,比graviton2提高了37%。
图1.xgboost训练时间比较
下表显示了airline、higgs和msrank数据集的xgboost训练时间。
xgboost推理性能
图2显示了三个数据集和不同实例类型的推理时间。结果表明,graviton3实例的推理时间比c5提高了45%,比c6i提高了26%,比graviton2提高了32%。
图2.xgboost推理时间比较
下表显示了三个数据集的xgboost推理时间。
lightgbm训练性能
图3显示了airline和higgs数据集以及不同实例类型的训练时间。结果表明,graviton3实例的训练时间比c5提高了53%,比c6i提高了42%,比graviton2提高了41%。
图3.lightgbm训练时间比较
下表显示了airline和higgs数据集的lighttgbm训练时间。
lightgbm推理性能
图4显示了两个数据集和不同实例类型的训练时间。结果表明,graviton3实例比c5提高了39%,比c6i提高了31%,比graviton2提高了31%。
图4.lightgbm推理时间比较
图4中图表的数据来自下表,显示了lightgbm以及airline和higgs数据集的推理时间:
基准测试考虑因素
默认情况下,scikit_learn_bench 使用了scikit-learn补丁,使用intel(r)extension for scikit learn(https://github.com/intel/scikit-learn-intelex)在支持sse2、avx、avx2和avx512的intel处理器上优化ml性能。然而,在本博客发布时,该补丁不支持梯度增强算法。
intel提供oneapi数据分析库(onedal)(https://github.com/oneapi-src/onedal)来加速intel机器上的ml算法。然而,它需要从标准xgboost和lightgbm模型到onedal的代码更改和转换。在本测试中,我们没有使用onedal转换和测试这些模型。
结论
xgboost基准测试表明,在选择用于性能分析的三个数据集(airline、higgs和msrank)中,graviton3实例的性能优于graviton2和x86实例。在某些情况下,graviton3比x86高出50%。对于lightgbm以及airline和higgs这两个数据集,在训练和推理操作中,表现出了类似的性能增强。
英特尔酷睿i5、i7处理器价格下调为了迎接AMD挑战
气凝胶隔热棉
CEVA公司将于大中华区举办下一代DSP技术研讨会
机器人业务在2018年未达预期,美的承诺不会对库卡集团进行裁员
变频器力矩的调整方法有哪些
在几个AWS实例上运行的XGBoost和LightGBM的性能比较
千呼万唤始出来!三星S8如果不爆炸,一定是当下最漂亮最强大的手机
华为2017年报:全球销售收入6036亿元人民币,同比增长15.7%(附报告详情)
怎样用遥控器控制房屋中的任何物品
深度剖析LED背光系统和电源解决方案
什么是视频解码器?
基于LonWorks总线技术实现锅炉自动化节能系统的设计
数字示波器和模拟示波器的差异在哪?
学生党降噪耳机怎么选?平价降噪耳机推荐
先声夺人:顶尖OEM厂商发布全球首批用于处理AI工作负载的NVIDIA认证系统
改进的抽水自动控制电路图
关于GD32F207ZE的PM2.5-甲醛-温湿度测量仪的介绍和应用
汽车工业4.0想要落地得从何干起
如何追究AI犯罪的民事责任?
数据分析方法可以提高IoT设备的安全性,应对网络攻击