Press "Enter" to skip to content

RAPIDS:轻松使用GPU加速机器学习模型

介绍

随着人工智能(AI)的不断发展,对更快、更高效的计算能力的需求也在增加。机器学习(ML)模型可能需要很大的计算量,并且训练模型可能需要更长的时间。然而,通过使用GPU并行处理能力,可以显著加快训练过程。数据科学家可以更快地迭代,尝试更多的模型,并在更短的时间内构建性能更好的模型。

RAPIDS:轻松使用GPU加速机器学习模型 四海 第1张

有几个可供使用的库。今天我们将学习RAPIDS,这是一个简单的解决方案,可以在不需要任何GPU编程知识的情况下使用GPU加速机器学习模型。

学习目标

在本文中,我们将学习:

  • RAPIDS.ai的高级概述
  • RAPIDS.ai中的库
  • 使用这些库
  • 安装和系统要求

本文是Data Science Blogathon的一部分。

RAPIDS.AI

RAPIDS是一套开源软件库和API,用于完全在GPU上执行数据科学流程。RAPIDS提供了出色的性能和速度,使用了与最流行的PyData库相匹配的熟悉的API。它是基于NVIDIA CUDA和Apache Arrow开发的,这是其卓越性能的原因。

RAPIDS.AI如何工作?

RAPIDS使用GPU加速机器学习来加快数据科学和分析工作流程。它具有经过优化的GPU核心数据框架,有助于构建数据库和机器学习应用程序,并且设计与Python类似。RAPIDS提供了一套完全在GPU上运行数据科学流程的库。它于2017年由GPU Open Analytics Initiative(GoAI)和机器学习社区的合作伙伴创建,旨在使用基于Apache Arrow的GPU Dataframe加速端到端数据科学和分析流程。RAPIDS还包括与机器学习算法集成的Dataframe API。

更快的数据访问,更少的数据移动

Hadoop在处理复杂的数据流水线时存在一些限制。Apache Spark通过将所有数据保存在内存中来解决了这个问题,从而允许更灵活和复杂的数据流水线。然而,这也引入了新的瓶颈,即在具有数百个CPU节点的Spark集群上分析甚至几百GB的数据可能需要很长时间。为了充分发挥数据科学的潜力,GPU必须成为数据中心设计的核心,包括计算、网络、存储、部署和软件等五个要素。总的来说,基于GPU的端到端数据科学工作流程比基于CPU的工作流程快10倍。

RAPIDS:轻松使用GPU加速机器学习模型 四海 第2张

我们将学习RAPIDS生态系统中的3个库。

  • cuDF
  • cuML
  • cuGraph

cuDF:更快的Pandas替代品

cuDF是一个GPU数据框架库,用于替代pandas的数据框架。它构建在Apache Arrow列式内存格式之上,并提供了与pandas类似的API,用于在GPU上操作数据。cuDF可以通过利用GPU的并行计算能力加速pandas的工作流程。它可用于加载、连接、聚合、过滤和操作数据等任务。

在编程方面,cuDF是Pandas DataFrame的一种简单替代品。

import cudf

# 创建一个cuDF DataFrame
df = cudf.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})

# 执行一些基本操作
df['c'] = df['a'] + df['b']
df = df.query('c > 4')

# 转换为Pandas DataFrame
pdf = df.to_pandas()

使用cuDF也很简单,只需将Pandas DataFrame对象替换为cuDF对象即可。要使用它,我们只需要将“pandas”替换为“cudf”,就这样。以下是一个示例,演示如何使用cuDF创建DataFrame对象并对其执行一些操作:

cuML:更快的Scikit Learn替代品

cuML是一套由GPU加速的快速机器学习算法集合,专为数据科学和分析任务而设计。它提供了与sci-kit-learn类似的API,使用户可以使用熟悉的拟合-预测-转换方法,而无需了解如何编程GPU。

与cuDF一样,使用cuML也非常容易理解。以下是一个代码片段的示例。

import cudf
from cuml import LinearRegression

# 创建一些示例数据
X = cudf.DataFrame({'x': [1, 2, 3, 4, 5]})
y = cudf.Series([2, 4, 6, 8, 10])

# 初始化并拟合模型
model = LinearRegression()
model.fit(X, y)

# 进行预测
predictions = model.predict(X)
print(predictions)

你可以看到,我将“sklearn”替换为“cuml”,将“pandas”替换为“cudf”,就这样。现在这段代码将使用GPU,操作速度会更快。

cuGRAPH:更快的Networkx替代品

cuGraph是一个无缝集成到RAPIDS数据科学生态系统中的图算法库。它允许我们使用存储在GPU数据帧、NetworkX图甚至CuPy或SciPy稀疏矩阵中的数据轻松调用图算法。它提供了30多种标准算法的可扩展性能,例如PageRank、广度优先搜索和均匀邻居采样。

与cuDF和cuML一样,cuGraph也非常容易使用。

import cugraph
import cudf

# 使用边缘信息创建一个数据帧
edge_data = cudf.DataFrame({
    'src': [0, 1, 2, 2, 3],
    'dst': [1, 2, 0, 3, 0]
})

# 使用边缘数据创建一个图
G = cugraph.Graph()
G.from_cudf_edgelist(edge_data, source='src', destination='dst')

# 计算图的PageRank
pagerank_df = cugraph.pagerank(G)

# 打印结果
print(pagerank_df)

是的,使用cuGraph就是这么简单。只需将“networkx”替换为“cugraph”就可以了。

系统要求

使用RAPIDS的最大优点是,您不需要拥有专业的GPU。只要您的游戏或笔记本电脑GPU符合系统要求,就可以使用它。

使用RAPIDS需要满足以下最低系统要求:

  • NVIDIA Pascal™或更高级别的GPU,计算能力为6.0及以上
  • Ubuntu 20.04或22.04,CentOS 7,Rocky Linux 8或Windows 11上的WSL2
  • 最新的CUDA版本和NVIDIA驱动程序

安装

现在,来谈谈安装问题,请检查系统要求,如果符合要求,就可以开始了。

请访问以下链接,选择您的系统,选择您的配置,并进行安装。

下载链接:https://docs.rapids.ai/install

性能基准

下面的图片显示了对“加利福尼亚道路网络数据集”的数据加载和操作进行性能基准测试的cuDF和Pandas的结果。您可以从此网站了解有关代码的更多信息:https://arshovon.com/blog/cudf-vs-df

RAPIDS:轻松使用GPU加速机器学习模型 四海 第3张

您可以通过访问官方网站https://rapids.ai来查看所有基准测试。

在在线笔记本中体验Rapids

Rapids提供了几个在线笔记本,供您查看这些库。请访问https://rapids.ai查看所有这些笔记本。

优势

RAPIDS的一些优点包括:

  • 最小的代码更改
  • 使用GPU加速
  • 更快的模型部署
  • 迭代以提高机器学习模型的准确性
  • 提高数据科学生产力

结论

RAPIDS是一套开源软件库和API的集合,它允许您完全在NVIDIA GPU上使用熟悉的PyData API执行端到端的数据科学和分析流程。它可以在没有任何麻烦或需要GPU编程的情况下使用,使得操作更加简单和快速。

以下是我们到目前为止所学到的总结:

  • 如何在没有GPU编程的情况下,显著利用GPU加速ML模型?
  • 它是各种广泛可用的库(如Pandas、Scikit-Learn等)的完美替代品。
  • 要使用RAPIDS.ai,我们只需要做一些最小的代码更改。
  • 它比传统基于CPU的ML模型训练更快。
  • 如何在我们的系统中安装RAPIDS.ai。

如果有任何问题或反馈,请发送电子邮件至:[email protected]

常见问题

本文中显示的媒体不归Analytics Vidhya所有,仅由作者自行决定使用。

Leave a Reply

Your email address will not be published. Required fields are marked *