ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

12X速度提升:如何用Quantus批处理指标让Faithfulness指标计算快12倍

12X速度提升:如何用Quantus批处理指标让Faithfulness指标计算快12倍 12X速度提升如何用Quantus批处理指标让Faithfulness指标计算快12倍【免费下载链接】Quantus[JMLR 2023] Quantus is an eXplainable AI toolkit for responsible evaluation of neural network explanations项目地址: https://gitcode.com/gh_mirrors/qu/QuantusQuantus 是一个可解释AIXAI责任评估工具包JMLR 2023 论文配套开源项目本文以Faithfulness 指标faithfulness 评估为例讲解如何使用 Quantus 的批处理指标batched metrics实现让 Faithfulness 指标计算提速 12 倍并介绍batch_size关键参数与quantus.evaluate()的大规模评估工作流。为什么 Faithfulness 指标计算这么慢Faithfulness 指标回答的是解释与模型行为有多一致它会迭代地扰动输入把解释认为重要的特征替换/掩码掉再观察模型预测如何变化。以 Monotonicity 为例它从基线出发逐步加回重要性最高的特征每一步都需要一次完整的前向预测。旧实现采用逐样本循环对 batch 中每个样本单独调用模型预测GPU 经常吃不饱Python 循环本身成为瓶颈——样本越多等待越久。批处理指标从逐个算到向量化批量算的 12X 提速Quantus 官方更新说明明确写道New batch implementation for 12X speedup of existing faithfulness metrics (!)——现有 Faithfulness 指标的计算速度提升 12 倍。核心改动有三个批处理扰动函数如 quantus/functions/perturb_func.py 中的batch_baseline_replacement_by_indices一次完成整个 batch 所有样本的特征替换替代原来的逐样本baseline_replacement_by_indices批量模型推理扰动后的整批输入一次性送入模型GPU 矩阵运算被充分利用统一的evaluate_batch接口每个指标只需实现对一批数据做评估切分、预处理、聚合全部由基类托管。快速上手3 步跑通批处理评估先安装按需选择框架pip install quantus[torch]import quantus # 1) 实例化指标 metric quantus.Monotonicity(features_in_step1, display_progressbarTrue) # 2) 直接传入整批数据batch_size 控制内部切分粒度默认 64 scores metric( modelmodel, x_batchx_batch, y_batchy_batch, a_batcha_batch_saliency, batch_size64, )# 3) 大规模评估多个指标 × 多个解释方法 results quantus.evaluate( metrics{monotonicity: quantus.Monotonicity()}, xai_methods{Saliency: a_batch_saliency}, modelmodel, x_batchx_batch, y_batchy_batch, )关键参数与性能调优技巧 ️batch_size默认 64控制指标内部切分粒度。批越大 GPU 利用率越高但显存占用也越大显存不足时调小即可。懒生成解释不传a_batch时Quantus 按 batch 逐批调用explain_func生成解释避免一次性生成整批解释导致 OOM见batch_preprocess逻辑。return_aggregate/aggregate_func把逐样本分数聚合成单值默认np.mean方便横向对比不同解释方法。display_progressbar打开后批处理评估会显示 tqdm 进度条方便观察长任务。批处理指标是如何工作的源码走读主入口是 quantus/metrics/base.py 中的Metric.__call__流程为general_preprocess()统一通道布局、包装模型、对解释做归一化/取绝对值generate_batches()按batch_size把数据切分成小批并逐批产出batch_preprocess()必要时懒生成当前批的解释evaluate_batch()每个具体指标实现此方法完成整批扰动 整批预测例如 quantus/metrics/faithfulness/monotonicity.py 中先对整个 batch 排序归因索引再逐步替换并批量预测收集evaluation_scores按需聚合后返回。哪些 Faithfulness 指标享受提速Faithfulness 类别下 12 个指标全部支持批处理接口位于quantus/metrics/faithfulness/目录指标源文件Monotonicity单调性monotonicity.pyPixel Flipping像素翻转pixel_flipping.pyRegion Perturbation区域扰动region_perturbation.pySensitivity-Nsensitivity_n.pyIROFirof.pyROADroad.pyInfidelityinfidelity.pySufficiencysufficiency.pySelectivityselectivity.pyFaithfulness Correlation / Estimatefaithfulness_correlation.py / faithfulness_estimate.pyMonotonicity Correlationmonotonicity_correlation.py总结12X 提速 批处理扰动函数 批量模型推理 统一的evaluate_batch接口三者缺一不可用户开箱即用传入整批数据即可用batch_size调节速度与显存的平衡搭配quantus.evaluate()做多指标、多解释方法的大规模基准测试Faithfulness 评估从此不再是等待的艺术。⚡【免费下载链接】Quantus[JMLR 2023] Quantus is an eXplainable AI toolkit for responsible evaluation of neural network explanations项目地址: https://gitcode.com/gh_mirrors/qu/Quantus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表