使用 Ray 扩展 Pinterest 的模型评估能力(第 4 部分)
BestBlog编程类文章 · 软件开发
📌 One-Sentence Summary 本文介绍 Pinterest 如何将基于 Ray 的推理与指标计算融合,使端到端评估时间最多缩短 32%,同时随实验数量增加实现线性扩展。 📝 Summary Pinterest Engineering 介绍了如何通过统一的指标契约,将 Ray 推理与指标计算融合,从而扩展模型评估能力。该方法在共享的 Ray 对象存储中按批次计算指标,消除了集群启动和数据传输开销。MAE、ROC-AUC 和 Precision@K 这 3 类指标通过 ReducibleMetric 抽象基类实现,该基类支持可分解指标、整体指标和分组指标。基准测试显示,融合后的流水线在不同数据集规模下将实际运行时间缩短了 25-32%,且运行时间随实验数量线性增长。 💡 Main Points 融合推理与指标计算,消除了集群启动和数据序列化开销。 通过在 Ray 推理任务中借助共享对象存储按批次计算指标,系统无需将预测结果写入 S3 再读回,从而降低了不同技术栈之间交接的成本。 ReducibleMetric 抽象基类为可分解指标、整体指标和分组指标提供统一接口。 该契约定义了 dataset_preprocessor、compute_partials 和 reduce_partials 方法,使指标能够针对任意批次进行计算,并在之后汇总。 Precision@K 等分组指标要求同一分组的数据集中存放,可通过 Apache Spark 按桶打包完整分组来实现。 分组会在各个桶中保持完整,因此可以高效并行执行,避免将同一分组拆分到不同的 Ray 工作节点上。 基准测试显示,融合后的流水线可将端到端评估时间缩短 25-32%。 在 Small(30K)、Medium(300K)和 Large(3M)数据集上使用 100 个实验进行测试后,各种规模的数据集都实现了稳定的时间节省;融合后的运行时间随实验数量线性增长(每个实验约 41s),而启动时间保持不变。 💬 Key Quotes 我们成功将 Ray 应用于 ML 基础设施栈中的另一个关键环节:模型评估。 在所有规模下,融合方案都将实际运行时间缩短了 25--32%。 融合后的运行时间大致呈线性增长(固定约 43 min + 每个实验约 41s),而启动时间基本保持不变。 我们定义了一套通用的指标契约,用于描述每种指标的计算布局,并在不同执行框架之间提供统一接口。 📊 Article Meta AI Screening: 82 Source: Pinterest Engineering Blog Author: Pinterest Engineering Category: 软件编程 Language: 英文 Read Time: 10 min Word Count: 2473 Tags: 编程与工程 , 机器学习 , 性能优化 , 分布式系统 , 模型评测与基准 Read Full Article