云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云数据库_cdn与直播_学生机

小七 141 0

使用NVIDIA GPU加速的XGBoost和Apache Spark缩短培训时间和成本™ 在数据块上

Nvidia的Niranjan Nataraja和Karthikeyan Rajendran的博客。Niranjan Nataraja是Nvidia的首席数据科学家,专门为数据科学任务构建大数据管道,并为数据中心运营和云游戏服务创建数学模型。Karthikeyan Rajendran是NVIDIA Spark团队的首席产品经理。本博客将展示如何利用XGBoost和Spark from Databricks笔记本电脑,以及利用NVIDIA gpu显著减少培训时间和成本所需的设置步骤。我们用一个来自NVIDIA的GeForce NOW团队的真实用例来说明GPU加速的好处,并向您展示如何在自己的笔记本电脑中启用GPU加速。关于XGBoostXGBOST是一个开源库,它提供了一个可以从许多编程语言(Python、java、R、斯卡拉、C++等)中使用的渐增框架。XGBoost可以在多个不同的分布式处理框架(apachehadoop、apachespark、apacheflink)下的一台机器或多台机器上运行。XGBoost模型可以在cpu和gpu上训练。然而,GeForce NOW团队的数据科学家在使用基于CPU的XGBoost时,在成本和培训时间方面遇到了重大挑战。GeForce NOW用例GeForce NOW是NVIDIA基于云的游戏流服务,提供从云端到笔记本电脑、台式机、屏蔽电视或Android设备的实时游戏体验。网络流量延迟问题会影响玩家的用户体验。GeForce现在使用XGBoost模型来预测多个互联网传输提供商的网络质量,因此游戏玩家的网络流量可以通过具有最高预测网络质量的传输供应商进行路由。XGBoost模型使用游戏会话网络指标为每个互联网服务提供商提供培训。GeForce现在每天为网络流量生成数十亿个事件,包括结构化和非结构化数据。NVIDIA的大数据平台合并来自多个来源的数据,并为每个游戏会话生成一个网络流量数据记录,作为训练数据。由于网络流量在一天中变化很大,因此需要使用最新的GeForce NOW数据对预测模型进行频繁的重新训练。鉴于大量的特征和大量的数据集,nvidiageforce现在的数据科学家依靠超参数搜索来建立高度精确的模型。对于一个包含数千万行行和大量特性的数据集,使用Hyperopt进行CPU模型训练需要在单个awsr5.4xlarge CPU实例上花费20多个小时。即使是使用2个CPU服务器实例的横向扩展方法,培训延迟也需要6个小时,基础设施成本呈螺旋上升趋势。释放NVIDIA GPU的力量加速XGBoost最近NVIDIA的一个开发者博客展示了GPU加速XGBoost模型培训的显著好处。NVIDIA数据科学家采用了类似的方法,与基于CPU的XGBoost相比,实现了22倍的加速和8倍的成本节约。如图1所示,一个GeForce现在生产的网络流量数据集有4000万行和32个特性,而在GPU上训练只需18分钟,而在CPU上则需要3.2小时(191分钟)。此外,图1的右侧比较了CPU集群成本和GPU集群成本,包括AWS实例和Databricks运行时成本。图1:基于GPU和CPU的网络质量预测培训在模型性能方面,对训练后的XGBoost模型在四种不同的度量上进行了比较。均方根误差平均绝对误差平均绝对百分比误差相关系数基于NVIDIA GPU的XGBoost模型在所有这些指标中具有相似的精确度。现在我们已经看到了性能和成本节约,接下来我们将讨论在Databricks GPU集群上运行示例XGBoost笔记本的设置和最佳实践。NVIDIA GPU快速入门在Databricks上加速XGBoostDatabricks在多个ML运行时支持XGBoost。这里是一个编写良好的用户指南,用于在单个节点和多个节点上运行XGBoost。要在GPU上运行XGBoost,只需进行以下调整:用GPU实例(而不是CPU实例)设置Spark集群修改XGBoost培训代码,将"tree\umethod"参数从"hist"切换到"gpu\hist"`设置数据加载为XGBoost培训设置NVIDIA GPU群集要进行基于NVIDIA GPU的XGBoost培训,您需要使用GPU和适当的Databricks ML运行时来设置Spark集群。我们为驱动程序节点使用了一个p2.xlarge(61.0 GB内存,1个GPU,1.22dBu)实例,为worker节点使用了两个p3.2xlarge(61.0GB内存,1GPU,4.15DBU)实例。我们选择了6.3ml(包括apachespark2.4.4、GPU、scala2.11)作为Databricks运行时版本。任何带有gpu的Databricks ML运行时都应该在Databricks上运行XGBoost。"tree\u method"参数上的代码更改启动集群后,在XGBoost笔记本中,需要将treemethod参数从hist更改为gpu\u hist。对于基于CPU的培训:xgb\u寄存器=xgboost.xgb回归器(目标='注册号:squarederror',…,tree_method='hist')对于基于GPU的培训:xgb\u寄存器=xgboost.xgb回归器(目标='注册号:squarederror',…,tree\u method='gpu\u hist')GPU模型培训入门英伟达的GPU加速XGBoost帮助GeForce实现了每8小时培训一次模型的服务级别目标,并显著降低了成本。从基于CPU的XGBoost切换到GPU加速版本非常简单。如果您也在努力加快培训时间或降低培训成本,我们鼓励您尝试一下!请看这里,了解在databrick7.xml运行时上利用gpu和apachespark3.0版本的新数据科学用例。你可以在GitHub上找到GeForce NOW PySpark笔记本。笔记本使用hyperopt进行超参数搜索,并使用DBFS的本地文件接口加载到工作节点上。免费试用Databricks。今天就开始吧