0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用RAPIDS加速实现SHAP的模型可解释性

星星科技指导员 来源:NVIDIA 作者:Nanthini 2022-04-21 09:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

机器学习( ML )越来越多地用于医疗、教育和金融服务等多个领域的决策。由于 ML 模型被用于对人们有实际影响的情况,因此了解在消除或最小化偏见影响的决策中考虑了哪些特征是至关重要的。

模型解释性 帮助开发人员和其他利益相关者理解模型特征和决策的根本原因,从而使流程更加透明。能够解释模型可以帮助数据科学家解释他们的模型做出决策的原因,为模型增加价值和信任。在本文中,我们将讨论:

对模型可解释性的需求

使用 SHAP 的可解释性

GPU – 从 RAPIDS 加速 SHAP 实现

使用 演示笔记本 在 Azure 机器学习上使用 SHAP 进行模型解释。

为什么我们需要解释性?

有六个主要原因证明机器学习中需要模型互操作性:

理解模型中的公平性问题

对目标的准确理解

创建健壮的模型

调试模型

解释结果

启用审核

了解模型中的公平性问题: 可解释模型可以解释选择结果的原因。在社会背景下,这些解释将不可避免地揭示对代表性不足群体的固有偏见。克服这些偏见的第一步是看看它们是如何表现出来的。

更准确地理解目标: 对解释的需要也源于我们在充分理解问题方面的差距。解释是确保我们能够看到差距影响的方法之一。它有助于理解模型的预测是否符合利益相关者或专家的目标。

创建稳健的模型: 可解释模型可以帮助我们理解预测中为什么会存在一些差异,这有助于使预测更加稳健,并消除预测中极端和意外的变化;以及为什么会出现错误。增强稳健性也有助于在模型中建立信任,因为它不会产生显著不同的结果。

模型可解释性还可以帮助调试模型,解释 向利益相关者提供成果,并使 auditing 以满足法规遵从性。

需要注意的是,在某些情况下,可解释性 MIG 不太重要。例如,在某些情况下,添加可解释模型可以帮助对手欺骗系统。

现在我们了解了什么是可解释性以及为什么我们需要它,让我们看看最近非常流行的一种实现方法。

使用 SHAP 和 cuML 的 SHAP 的可解释性

有不同的方法旨在提高模型的可解释性;一种模型不可知的方法是 夏普利值 。这是一种从联盟博弈论中衍生出来的方法,它提供了一种公平地将“支出”分配给各个功能的方法。在机器学习模型的情况下,支出是模型的预测/结果。它的工作原理是计算整个数据集的 Shapley 值并将其组合。

cuML 是 RAPIDS 中的机器学习库,支持单 GPU 和多 GPU 机器学习算法,通过 内核解释程序 和 置换解释者 提供 GPU 加速模型解释能力。 核形状 是 SHAP 最通用和最常用的黑盒解释程序。它使用加权线性回归来估计形状值,使其成为一种计算效率高的近似值方法。

内核 SHAP 的 cuML 实现为快速 GPU 模型提供了加速,就像 cuML 中的那些模型一样。它们也可用于基于 CPU 的模型,在这些模型中仍然可以实现加速,但由于数据传输和模型本身的速度,它们 MIG 可能会受到限制。

在下一节中,我们将讨论如何在 Azure 上使用 RAPIDS 内核 SHAP 。

使用解释社区和 RAPIDS 实现可解释性

InterpretML 是一个开源软件包,将最先进的机器学习可解释性技术集成在一起。虽然本产品的解释包中涵盖了主要的解释技术和玻璃盒解释模型, Interpret-Community 扩展了解释存储库,并进一步整合了社区开发的和实验性的解释性技术和功能,这些技术和功能旨在实现现实场景的解释性。

我们可以将其扩展到 解释 Microsoft Azure 上的模型 ,稍后将对其进行更详细的讨论。解释社区提供各种解释模型的技术,包括:

Tree 、 Deep 、 Linear 和 Kernel Explainers 基于形状,

模拟解释者 基于训练 全局代理模型 (训练模型以近似黑盒模型的预测),以及

排列特征重要性( PFI )解释者 基于 布雷曼关于兰德森林的论文 ,其工作原理是对整个数据集一次一个特征的数据进行洗牌,并估计其对性能指标的影响;变化越大,功能越重要。它可以解释整体行为,而不是个人预测。

在社区中集成 GPU 加速 SHAP

为了使 GPU – 加速 SHAP 易于最终用户访问,我们将 integrated 从 cuML 的 GPU 内核解释者 添加到 interpret-community 包中。有权访问 Azure 上具有 GPU s 的虚拟机 ( NVIDIA Pascal 或更高版本)的用户可以安装 RAPIDS (》= 0.20 )并通过将 use _ ZFK5]标志设置为 True 来启用 GPU 解释程序。

from interpret.ext.blackbox import TabularExplainer

# "features" and "classes" fields are optional
explainer = TabularExplainer(model,
                          x_train,
                          features=breast_cancer_data.feature_names,
                          classes=classes,
use_gpu=True)

新添加的 GPUKernelExplainer 还使用 cuML K- 均值 来复制 shap.kmeans 的行为。 KMeans 减少了解释者要处理的背景数据的大小。它总结了通过 K 个平均样本传递的数据集,这些样本由数据点的数量加权。将 sklearn K-Means 替换为 cuML 使我们能够利用 GPU 的速度提升,即使在 SHAP 之前的数据预处理过程中也是如此。

基于我们的实验,我们发现,当与 cuML KerneleExplainer 一起使用时, cuML 模型在某些情况下会产生最高可达 270 倍的速度提升的最佳结果。我们还看到了具有优化和快速预测调用的模型的最佳加速,如优化的 sklearn 。 svm 。 LinearSVR 和 cuml 。 svm 。 SVR ( kernel =’ linear ‘) 所示。

Azure 中的模型解释

Azure 机器学习提供了一种通过 azureml-interpret SDK 包获取常规和自动化 ML 培训说明的方法。它使用户能够在训练和推理期间,在真实世界数据集上实现大规模的模型可解释性[2]。我们还可以使用交互式可视化来进一步探索整体和单个模型预测,并进一步了解我们的模型和数据集。 Azure 解释使用解释社区包中的技术,这意味着它现在支持 RAPIDS 形状。我们将浏览一个演示 Azure 上使用 cuML 形状的模型可解释性 的示例笔记本。

在 GPU 虚拟机上使用自定义 Docker 映像设置 RAPIDS 环境(本例中为标准的_ NC6s _ v3 )。

from azureml.core import Environment
environment_name = "rapids"
env = Environment(environment_name)
env.docker.enabled = True
env.docker.base_image = None
env.docker.base_dockerfile = """
FROM rapidsai/rapidsai:0.19-cuda11.0-runtime-ubuntu18.04-py3.8
RUN apt-get update && \
apt-get install -y fuse && \
apt-get install -y build-essential && \
apt-get install -y python3-dev && \
source activate rapids && \
pip install azureml-defaults && \
pip install azureml-interpret && \
pip install interpret-community==0.18 && \
pip install azureml-telemetry
"""
env.python.user_managed_dependencies = True

我们提供了一个脚本( train_explain.py ),它使用 cuML SVM 模型训练和解释了一个二进制分类问题。在这个例子中,我们使用 希格斯数据集 来预测一个过程是否产生希格斯玻色子。它有 21 个由加速器中的粒子探测器测量的运动学特性。

然后,该脚本使用 GPU SHAP KerneleExplainer 生成模型解释。

生成的解释使用我们的 ExplanationClient 上传到 Azure 机器学习,这是上传和下载解释的客户端。这可以在您的计算机上本地运行,也可以在 Azure 机器学习计算机上远程运行。

from azureml.interpret import ExplanationClient
# Get model explanation data
client = ExplanationClient.from_run(run)
global_explanation = client.download_model_explanation()
local_importance_values = global_explanation.local_importance_values
expected_values = global_explanation.expected_values
# Or you can use the saved run.id to retrive the feature importance values
client = ExplanationClient.from_run_id(ws, experiment_name, run.id)
global_explanation = client.download_model_explanation()
local_importance_values = global_explanation.local_importance_values
expected_values = global_explanation.expected_values
# Get the top k (e.g., 4) most important features with their importance values
global_explanation_topk = client.download_model_explanation(top_k=4)
global_importance_values = global_explanation_topk.get_ranked_global_values()
global_importance_names = global_explanation_topk.get_ranked_global_names()

生成的解释上传到 Azure 机器学习运行历史记录后,您可以在 Azure 机器学习工作室 中的解释仪表板上查看可视化。

图 1 :显示模型性能和特性重要性的解释仪表板。

我们在 Azure 中的单个 explain _全局调用上对 CPU 和 GPU 实现进行了基准测试。 explain _ global 函数在使用 explain _ local 时返回聚合特征重要性值,而不是实例级特征重要性值。我们比较了 cuml 。 svm 。 SVR ( kernel =’ rbf ‘)与 sklearn 。 svm 。 SVR ( kernel =’ rbf ‘)对形状为( 10000 , 40 )的合成数据的影响。

从表 1 中我们可以观察到,当我们使用 GPU 虚拟机( Standard _ NC6S _ v3 )时,与具有 16 个内核的 CPU 虚拟机( Standard _ DS5 _ v2 )相比, 2000 行解释的速度提高了 420 倍。我们注意到,在 16 核 CPU 虚拟机上使用 64 核 CPU 虚拟机(标准_ D64S _ v3 )可以产生更快的 CPU 运行时间(大约 1 。 3 倍)。这种更快的 CPU 运行仍然比 GPU 运行慢得多,而且更昂贵。 GPU 运行速度快了 380 倍,成本为 0 。 52 美元,而 64 核 CPU 虚拟机的成本为 23 美元。我们在 Azure 的美国东部地区进行了实验。

图 2 : Azure 上 CPU 和 GPU 虚拟机的比较。

表 1 :标准 DS5 和标准 NC6s _ v3 的比较。

从我们的实验来看,在 Azure 上使用 cuML 的 KernelExplainer 被证明更具成本和时间效率。随着行数的增加,速度会更好。 GPU SHAP 不仅解释了更多的数据,而且还节省了更多的资金和时间。这会对时间敏感的企业产生巨大影响。

这是一个简单的例子,说明如何在 Azure 上使用 cuML 的 SHAP 进行解释。这可以扩展到具有更有趣的模型和数据集的更大示例。

关于作者

Nanthini 是 NVIDIA 的数据科学家和软件开发人员。她在 RAPIDS 团队工作,该团队专注于使用 GPU 加速数据科学管道。她的工作包括进行概念验证、开发和维护功能、将 RAPIDS 与外部框架集成,以及通过示例用例演示这些工具的使用。最近,她一直致力于 RAPIDS 框架和微软解释之间的集成。 2019 ,她获得了宾夕法尼亚大学计算机科学硕士学位。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5272

    浏览量

    136075
  • 机器学习
    +关注

    关注

    67

    文章

    8565

    浏览量

    137228
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    知识分享-嵌入式系统可靠模型

    形式,以实现系统可靠的成倍提升,这时一般会采取可靠并联结构模型。注意:系统可靠的串、并联模型
    的头像 发表于 03-11 16:43 395次阅读
    知识分享-嵌入式系统可靠<b class='flag-5'>性</b><b class='flag-5'>模型</b>

    谷歌正式发布Gemma Scope 2模型

    Scope 工具包推动了可解释性科学的发展,该工具旨在帮助研究人员理解我们轻量级开放模型系列 Gemma 2 的内部运作机制。
    的头像 发表于 01-24 14:01 740次阅读

    利用NVIDIA Cosmos开放世界基础模型加速物理AI开发

    NVIDIA 最近发布了 NVIDIA Cosmos 开放世界基础模型(WFM)的更新,旨在加速物理 AI 模型的测试与验证数据生成。借助 NVIDIA Omniverse 库和 Cosmos,开发者可以大规模生成基于物理学的合
    的头像 发表于 12-01 09:25 1445次阅读

    RSA加速实现思路

    。 ②使用同步FIFO存取模乘结果S,无需外部读写地址线实现字段更新与读取操作同时进行。 ③使用双DFF结构实现各字段右移一位,当前字段最高位补下一个字段的最低位。 图2 RSA算法加速结果 最后给出RSA算法的
    发表于 10-28 07:28

    脉冲神经元模型的硬件实现

    息电位 vrest。 LIF神经元模型在生物可解释性上低于其他模型,只体现了神经元计算的关键特性,并不能够解释真实神经元的脉冲是如何生成,也不包括丰富的神经元行为特性。但由于其简单的操
    发表于 10-24 08:27

    有哪些常见的AI算法可以用于装置数据的异常检测?

    在装置数据(如工业设备传感器数据、电子装置运行参数、化工装置工况数据等)的异常检测中,AI 算法的选择需结合数据特点(如 时序、维度、标注情况 )、检测目标(如实时、精度、可解释性)及部署环境
    的头像 发表于 09-18 09:27 1065次阅读
    有哪些常见的AI算法可以用于装置数据的异常检测?

    【「AI芯片:科技探索与AGI愿景」阅读体验】+AI的科学应用

    配备科学发现仍需人类的直觉和灵感 ④正价可解释性和透明 ⑤解决伦理和道德问题六、AI芯片用于“AI科学家”系统 AI芯片的作用:七、用量子启发AI技术发现新型超材料的案例 超材料特点: 可以控制能力
    发表于 09-17 11:45

    NVIDIA RAPIDS 25.06版本新增多项功能

    神经网络(GNN)的统一 API,以及无需更改代码即可实现的支持向量机加速功能。在本篇博客中,我们将介绍其中的几项重要更新。
    的头像 发表于 09-09 09:54 1268次阅读

    成都汇阳投资关于大模型白热化,应用加速分化

           大模型加速多模态研发 ,闭源模型逐步逆袭开源 多模态技术路线尚未收敛 , 国内外大模型厂商持续刷新 SOAT。 图片领域 ,GPT-4o 图像生成功能引发热潮后 ,谷
    的头像 发表于 09-09 09:30 1091次阅读

    端到端发展趋势下,云算力如何赋能智能驾驶技术跃迁?

    学习网络中,让系统直接从传感器数据生成车辆控制指令。这种方法在提升系统响应速度、优化复杂场景表现以及减少模块间误差积累方面展现出显著优势,但同时,为了满足足够庞大的智能驾驶辅助需求,端到端模型也面临数据量、算力需求、可解释性和安
    的头像 发表于 09-08 09:16 1166次阅读
    端到端发展趋势下,云算力如何赋能智能驾驶技术跃迁?

    Transformer在端到端自动驾驶架构中是何定位?

    状态的主观理解。随后,该模型再将理解结果交由行为规划子模块去执行,使得端到端过程具有一定结构化逻辑,从而兼顾可解释性与泛化能力。
    的头像 发表于 08-03 11:03 1536次阅读

    模型推理显存和计算量估计方法研究

    GPU、FPGA等硬件加速。通过分析硬件加速器的性能参数,可以估算模型在硬件加速下的计算量。 四、实验与分析 为了验证上述估计方法的有效
    发表于 07-03 19:43

    模型在半导体行业的应用可行分析

    有没有这样的半导体专用大模型,能缩短芯片设计时间,提高成功率,还能帮助新工程师更快上手。或者软硬件可以在设计和制造环节确实有实际应用。会不会存在AI缺陷检测。 能否应用在工艺优化和预测维护中
    发表于 06-24 15:10

    中国科学院西安光机所在计算成像可解释性深度学习重建方法取得进展

    图1 MDFP-Net网络结构 近日,中国科学院西安光机所空间光学技术研究室在计算成像可解释性深度学习重建方法研究取得创新进展。相关研究成果发表于计算机视觉与图形学领域国际著名期刊
    的头像 发表于 06-09 09:27 825次阅读
    中国科学院西安光机所在计算成像<b class='flag-5'>可解释性</b>深度学习重建方法取得进展

    云知声四篇论文入选自然语言处理顶会ACL 2025

    结果正式公布。云知声在此次国际学术盛会中表现卓越,共有4篇论文被接收,其中包括2篇主会论文(Main Paper)和2篇Findings。入选的4篇论文聚焦大语言模型知识溯源、图文音多模态大模型、大语言模型
    的头像 发表于 05-26 14:15 1457次阅读
    云知声四篇论文入选自然语言处理顶会ACL 2025