在GPU实例上使用RAPIDS加速机器学习任务
本文介绍了如何在GPU实例上基于NGC环境使用RAPIDS加速库,加速数据科学和机器学习任务,提高计算资源的使用效率。
前提条件
背景信息
RAPIDS,全称Real-time Acceleration Platform for Integrated Data Science,是NVIDIA针对数据科学和机器学习推出的GPU加速库。更多RAPIDS信息请参见官方网站。
NGC,全称NVIDIA GPU CLOUD,是NVIDIA推出的一套深度学习生态系统,供开发者免费访问深度学习和机器学习软件堆栈,快速搭建相应的开发环境。NGC网站提供了RAPIDS的Docker镜像,预装了相关的开发环境。
JupyterLab是一套交互式的开发环境,帮助您高效地浏览、编辑和执行服务器上的代码文件。
Dask是一款轻量级大数据框架,可以提升并行计算效率。
本文提供了一套基于NVIDIA的RAPIDS Demo代码及数据集修改的示例代码,演示了在GPU实例上使用RAPIDS加速一个从ETL到ML Training端到端任务的过程。其中,ETL时使用RAPIDS的cuDF,ML
Training时使用XGBoost。本文示例代码基于轻量级大数据框架Dask运行,为一套单机运行的代码。
说明 NVIDIA官方RAPIDS Demo代码请参见Mortgage Demo。
RAPIDS预装镜像已经发布到阿里云镜像市场,创建GPU实例时,您可以在镜像市场中搜索NVIDIA RAPIDS并使用RAPIDS预装镜像。
说明 该RAPIDS预装镜像使用Ubuntu 16.04 64-bit操作系统。
gn5优惠活动详情请参见异构计算GPU实例活动页。
操作步骤
如果您创建GPU实例时使用了RAPIDS预装镜像,只需运行RAPIDS Demo,从启动JupyterLab服务开始操作即可。详情请参见启动JupyterLab服务。
如果您创建GPU实例时没有使用RAPIDS预装镜像,按照以下步骤使用RAPIDS加速机器学习任务:
步骤一:获取RAPIDS镜像下载命令
完成以下操作,获取RAPIDS镜像下载命令:
步骤二:部署RAPIDS环境
完成以下操作,部署RAPIDS环境:
步骤三:运行RAPIDS Demo
完成以下操作,运行RAPIDS Demo:
代码执行过程
该案例基于XGBoost演示了数据预处理到训练的端到端的过程,主要分为三个阶段:
- ETL(Extract-Transform-Load):主要在GPU实例上进行。将业务系统的数据经过抽取、清洗转换之后加载到数据仓库。
- Data Conversion:在GPU实例上进行。将在ETL阶段处理过的数据转换为用于XGBoost训练的DMatrix格式。
- ML-Training:默认在GPU实例上进行。使用XGBoost训练梯度提升决策树 。
NoteBook代码的执行过程如下:
Dask Dashboard
Dask Dashboard支持任务进度跟踪、任务性能问题识别和故障调试。
Dask服务启动后,在浏览器地址栏中访问
http://您的GPU实例IP地址:8787/status
即可进入Dashboard主界面。相关函数
函数功能 | 函数名称 |
---|---|
下载文件 | def download_file_from_url(url, filename): |
解压文件 | def decompress_file(filename, path): |
获取当前机器的GPU个数 | def get_gpu_nums(): |
管理GPU内存 |
|
提交DASK任务 |
|
使用cuDF从CSV中加载数据 |
|
处理和提取训练数据的特征 |
|
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论