0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在几个AWS实例上运行的XGBoost和LightGBM的性能比较

jf_9aVl32Dp 来源:Arm软件开发者 作者:Arm软件开发者 2022-10-24 10:24 次阅读

介绍

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数据集的结果。

基准测试使用的参数如下:

13cd15be-52c3-11ed-a3b6-dac502259ad0.png

XGBoost的“hist”树方法类似于LightGBM的工作方式,可以提高训练速度。估计器(estimators)的数量设置为100,这是XGBoost和LightGBM库的默认值。线程数设置为实例上可用的vCPU数,对于12xlarge的实例为48。

性能比较

XGBoost训练性能

下图显示了三个数据集和不同实例类型的训练时间。结果表明,Graviton3实例的训练时间比C5提高了52%,比C6i提高了36%,比Graviton2提高了37%。

140a735a-52c3-11ed-a3b6-dac502259ad0.jpg

图1.XGBoost训练时间比较


下表显示了Airline、Higgs和MSRank数据集的XGBoost训练时间。

142b818a-52c3-11ed-a3b6-dac502259ad0.png

XGBoost推理性能

图2显示了三个数据集和不同实例类型的推理时间。结果表明,Graviton3实例的推理时间比C5提高了45%,比C6i提高了26%,比Graviton2提高了32%。

146fa4aa-52c3-11ed-a3b6-dac502259ad0.jpg

图2.XGBoost推理时间比较

下表显示了三个数据集的XGBoost推理时间。

14ab62ce-52c3-11ed-a3b6-dac502259ad0.png

LightGBM训练性能

图3显示了Airline和Higgs数据集以及不同实例类型的训练时间。结果表明,Graviton3实例的训练时间比C5提高了53%,比C6i提高了42%,比Graviton2提高了41%。

14ce21ce-52c3-11ed-a3b6-dac502259ad0.jpg

图3.LightGBM训练时间比较

下表显示了Airline和Higgs数据集的LighttGBM训练时间。

14f968d4-52c3-11ed-a3b6-dac502259ad0.png

LightGBM推理性能

图4显示了两个数据集和不同实例类型的训练时间。结果表明,Graviton3实例比C5提高了39%,比C6i提高了31%,比Graviton2提高了31%。

15223e58-52c3-11ed-a3b6-dac502259ad0.jpg

图4.LightGBM推理时间比较

图4中图表的数据来自下表,显示了LightGBM以及Airline和Higgs数据集的推理时间:

154f7472-52c3-11ed-a3b6-dac502259ad0.png

基准测试考虑因素

默认情况下,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这两个数据集,在训练和推理操作中,表现出了类似的性能增强。
审核编辑:彭静

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    3243

    浏览量

    42378
  • 机器学习
    +关注

    关注

    66

    文章

    8373

    浏览量

    132391
  • AWS
    AWS
    +关注

    关注

    0

    文章

    427

    浏览量

    24312
  • XGBoost
    +关注

    关注

    0

    文章

    9

    浏览量

    2208

原文标题:在AWS Graviton3上部署时XGBoost和LightGBM的性能改进

文章出处:【微信号:Arm软件开发者,微信公众号:Arm软件开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PWM信号的性能比较

    我正在研究一个项目,希望使用PWM信号,谁能给我性能比较?? 以上来自于百度翻译 以下为原文 i am working on a project wich requries a use of a
    发表于 06-19 08:38

    ARM Neoverse IP的AWS实例etcd分布式键对值存储性能提升

    是在给定时间段内完成的总操作数。本文中,我们比较AWS M6g实例(基于 Arm Neoverse IP的 Graviton2)与M5实例
    发表于 07-06 17:37

    Arm Neoverse V1的AWS Graviton3深度学习推理工作负载方面的作用

    机器学习 (ML) 是云和边缘基础设施中增长最快的部分之一。 ML 中,深度学习推理预计会增长得更快。本博客中,我们比较了三种 Amazon Web Services (AWS)
    发表于 08-31 15:03

    比较AWS M6g实例与M5实例的etcd吞吐量和延迟性能

    members)Table 5: etcdM5和M6g的时延性能结果 (Write to all members)下图显示了M5和M6g实例
    发表于 09-13 15:06

    讨论使用TerraformAWS上部署Arm EC2实例

    于将 A1 实例部署到您的云基础设施。除了选择 A1 实例类型外,无需执行任何不同或特殊操作即可在 AWS 运行 A1
    发表于 09-16 14:53

    胶体电池与铅酸电池性能比较

    胶体电池与铅酸电池性能比较
    发表于 11-06 16:43 35次下载

    电感器磁芯材料性能比较

    电感器磁芯材料性能比较表 Iron Powder
    发表于 12-22 11:31 2300次阅读

    不同材料的电池性能比较

    不同材料的电池性能比较 电池成份
    发表于 10-27 10:48 841次阅读

    陶瓷PTC与有机PTC的性能比较

    陶瓷PTC与有机PTC的性能比较     正温度系数的热敏电阻(PTC)作为一种新型过流保护元件,近几年来已在程控交换机的用
    发表于 11-28 10:04 2395次阅读

    各种电子管的防雷器件性能比较

    各种电子管的防雷器件性能比较 下为常用防雷元器件性能比较: 火花间隙(Arc chopping)
    发表于 11-30 09:32 840次阅读

    步进电机和交流伺服电机性能比较

    步进电机和交流伺服电机性能比较 步进电机和交流伺服电机性能比较 步进电机是一种离散运动的装置,它和现代数字控制技术有着本质的联系。目前国内的数字
    发表于 02-06 10:25 982次阅读

    基本放大电路性能比较

    基本放大电路性能比较,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-18 17:19 0次下载

    基于 Boosting 框架的主流集成算法介绍(

    本文是决策树的第三篇,主要介绍基于 Boosting 框架的主流集成算法,包括 XGBoostLightGBMXGBoost
    的头像 发表于 02-17 15:57 977次阅读
    基于 Boosting 框架的主流集成算法介绍(<b class='flag-5'>上</b>)

    XGBoost 2.0介绍

    XGBoost是处理不同类型表格数据的最著名的算法,LightGBM 和Catboost也是为了修改他的缺陷而发布的。近日XGBoost发布了新的2.0版,本文除了介绍让XGBoost
    的头像 发表于 11-03 10:12 452次阅读
    <b class='flag-5'>XGBoost</b> 2.0介绍

    电感器磁芯材料性能比较

    电子发烧友网站提供《电感器磁芯材料性能比较表.doc》资料免费下载
    发表于 02-27 15:57 0次下载