NVIDIA cuML新版FIL加速树模型推理,大幅提升CPU和GPU性能
自2019年首次出现在cuML 0.9版本中以来,NVIDIA的森林推理库(FIL)一直专注于加速梯度提升树和随机森林模型在XGBoost、LightGBM、scikit-learn或NVIDIA cuML等框架中的推理速度。近日,随着RAPIDS 25.04的发布,FIL进行了全面的性能升级和功能拓展,能够更高效地处理大规模数据的实时预测任务。 新特性一览 自动优化 新版本的FIL增加了自动优化功能,通过内置的.optimize方法,可以在给定的批量大小下找到最佳性能参数,从而简化了调参过程。用户只需调用.optimize方法,后续的预测将自动使用优化后的超参数,从而实现更高的推理速度。通过检查.layout和.default_chunk_size属性,可以了解到选择了哪些超参数。 新的预测API 除了返回最终预测结果外,新版FIL还引入了两个新的预测方法:.predict_per_tree和.apply。前者可以返回每个树的单独预测结果,适用于实验性的集成技术和模型分析。后者则返回每棵树的叶子节点ID,有助于扩展森林模型的应用范围,如比较两行数据的相似性。 跨平台支持 早期版本的FIL主要针对GPU加速,但为了满足用户的多样化需求,新版FIL增加了对CPU的支持。这不仅便于本地测试小规模数据,还能在流量较低时使用CPU处理,节约成本,而在高流量时切换到GPU以提高速度。Python用户可以通过一个新的上下文管理器在CPU上运行FIL,而未来版本还将提供专门的CPU-only包。 性能提升 新版FIL通过减少内存访问次数来显著提升推理速度。每个决策节点的数据现在会自动存储为最小所需的格式(通常为8或16字节),并且节点布局更智能,处理器可以更快地获取下一个节点的信息。对于深度较大的树,推荐使用默认的深度优先(depth_first)布局;而对于浅层树,则可以选择分层(layered)或广度优先(breadth_first)布局,以适应不同的数据集。 此外,新引入的align_bytes超参数允许在depth_first和breadth_first布局中对树进行缓存行对齐,通常情况下这会在CPU上提供更好的性能,尤其是在使用64字节对齐的情况下。对于GPU,128字节对齐有时也有助于性能提升。 性能对比 通过对不同模型参数和批处理大小的广泛测试,cuML 25.04在75%的场景中优于旧版FIL,批处理大小为1的情况下性能提升尤为显著,达到了81%的模型。整体来看,新版本的中位数加速比分别为1.6倍和1.4倍。 与scikit-learn的RandomForest模型相比,FIL在所有测试场景中均表现出色。特别是针对单个样本的推理,新版本的FIL实现了高达239倍的加速。在大批次处理场景中,FIL的最大吞吐量也远超过scikit-learn的原生实现。 概述与未来展望 通过下载cuML 25.04版本,用户可以立即体验这些新的森林推理功能和性能提升。未来,这些功能还将集成到NVIDIA Triton推理服务器中,进一步提升模型部署的灵活性和效率。 业内评价 业内人士普遍认为,新的FIL版本不仅大幅提升了模型推理的速度,也为开发人员提供了更多的灵活性和简便性。这使得NVIDIA继续在高性能计算领域保持领先地位。对于需要实现实时预测和大规模数据处理的企业和研究机构来说,FIL无疑是一个重要的工具。 NVIDIA cuML是一个高性能的机器学习库,专为GPU加速设计,旨在简化数据分析和机器学习流程,提高模型训练和推理的效率。随着此次更新,FIL进一步巩固了其在树集成模型领域的优势地位。