RAPIDS cuML 的最新进展承诺在速度和可扩展性方面对均匀流形近似和投影(UMAP)算法带来显著提升。UMAP 是一种流行的降维算法,广泛用于生物信息学和自然语言处理等领域。根据 Jinsol Park 在NVIDIA 开发者博客上的详细介绍,这些改进利用 GPU 加速来解决大型数据集处理的挑战。
解决 UMAP 的挑战
UMAP 的性能瓶颈传统上是建立全邻居图,这个过程随着数据集规模的增长变得越来越耗时。最初,RAPIDS cuML 使用暴力方法进行图构建,虽然详尽,但导致了不良的可扩展性。随着数据集规模的扩大,该阶段所需的时间呈二次增长,通常占用了 99% 或更多的处理总时间。
此外,整个数据集需要适合 GPU 内存的要求也提出了额外的障碍,特别是在处理超过消费级 GPU 内存容量的数据集时。
用 NN-Descent 带来创新解决方案
RAPIDS cuML 版本 24.10 通过一种新的分批近似最近邻 (ANN) 算法解决了这些挑战。这种方法使用了 RAPIDS cuVS 库中的最近邻下降 (NN-descent) 算法,能够有效地通过减少所需的距离计算次数来构建全邻居图,从而提供了传统方法所无法比拟的速度提升。
批处理的引入进一步增强了可扩展性,允许大数据集按片段进行处理。这种方法不仅适用于超过 GPU 内存限制的数据集,而且还能保持 UMAP 嵌入的准确性。
显著的性能提升
基准测试结果展示了这些优化带来的深刻影响。例如,一个包含 2000 万点和 384 维的数据集实现了 311 倍的加速,将 GPU 处理时间从 10 小时减少到仅 2 分钟。这项巨大的改进是在不影响 UMAP 嵌入质量的情况下实现的,可信度得分的一致性可以证明这一点。
无需更改代码即可实现
RAPIDS cuML 版本 24.10 的一个突出特点是其使用便捷。用户可以在不需要改变现有代码的情况下利用性能改进。UMAP 估算器现在包含了额外的参数,对于那些希望在图构建过程中拥有更大控制权的用户,可以指定算法并调整设置以实现最佳性能。
总的来说,RAPIDS cuML 在 UMAP 处理方面的进步标志着数据科学领域的一个重要里程碑,使研究人员和开发者能够在 GPU 上更高效地处理更大的数据集。
Image source: Shutterstock