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

    文章

    4702

    浏览量

    128708
  • 机器学习
    +关注

    关注

    66

    文章

    8378

    浏览量

    132415
收藏 人收藏

    评论

    相关推荐

    基于LIBS技术的煤炭灰分、挥发分和热值定量分析及特征工程研究

    光谱进行了可解释性实验。 一、引言 煤质分析对于促进煤炭资源的合理利用具有重要意义,其中煤炭的灰分、挥发分和热值是影响燃煤电厂混煤入炉、炉膛燃烧等工作的关键信息。传统的LIBS光谱检测需要耗费很长时间从煤样光谱中筛选元
    的头像 发表于 11-20 11:05 66次阅读
    基于LIBS技术的煤炭灰分、挥发分和热值定量分析及特征工程研究

    RAPIDS cuDF将pandas提速近150倍

    在 NVIDIA GTC 2024 上,NVIDIA 宣布,RAPIDS cuDF 当前已能够为 950 万 pandas 用户带来 GPU 加速,且无需修改代码。
    的头像 发表于 11-20 09:52 79次阅读
    <b class='flag-5'>RAPIDS</b> cuDF将pandas提速近150倍

    一种基于因果路径的层次图卷积注意力网络

    机电系统中数据驱动故障检测模型的性能和可解释性。引入了一种混合因果发现算法来发现监测变量之间的继承因果关系。顺序连接因果变量的因果路径用作接收场,使用多尺度卷积来提取特征。基于分层注意力机制来聚合
    的头像 发表于 11-12 09:52 188次阅读
    一种基于因果路径的层次图卷积注意力网络

    FPGA加速深度学习模型的案例

    FPGA(现场可编程门阵列)加速深度学习模型是当前硬件加速领域的一个热门研究方向。以下是一些FPGA加速深度学习模型的案例: 一、基于FPG
    的头像 发表于 10-25 09:22 146次阅读

    常见AI大模型的比较与选择指南

    在选择AI大模型时,明确具体需求、了解模型的训练数据、计算资源要求和成本,并考虑模型可解释性和社区支持情况等因素至关重要。以下是对常见AI大模型
    的头像 发表于 10-23 15:36 479次阅读

    LLM大模型推理加速的关键技术

    LLM(大型语言模型)大模型推理加速是当前人工智能领域的一个研究热点,旨在提高模型在处理复杂任务时的效率和响应速度。以下是对LLM大模型推理
    的头像 发表于 07-24 11:38 776次阅读

    基于FPGA的脉冲神经网络模型应用探索

    随着人工智能技术的飞速发展,脉冲神经网络(Spiking Neural Network, SNN)作为一种模拟生物神经系统处理信息的计算模型,因其独特的生物可解释性和低能耗特性而受到广泛关注。然而
    的头像 发表于 07-12 10:08 479次阅读

    【大规模语言模型:从理论到实践】- 阅读体验

    直观地解释和理解。这可能会影响模型可解释性和可信赖,特别是在需要高度可靠的场景中。 通过修改注意力机制的计算方式或引入新的架构来降低
    发表于 06-07 14:44

    【大语言模型:原理与工程实践】大语言模型的评测

    模型解释如“种瓜得瓜,种豆得豆”这样的中文古语。对于模型的回答,我们主要依据准确和全面两个指标进行评估。准确
    发表于 05-07 17:12

    【大语言模型:原理与工程实践】核心技术综述

    中应用,需要考虑到性能、可扩展性和安全等因素。 大语言模型正在快速发展,新技术不断涌现。未来的研究可能集中在提高模型效率、理解和可解释性以及确保
    发表于 05-05 10:56

    Meta发布SceneScript视觉模型,高效构建室内3D模型

    Meta 表示,此模型具备创建室内 3D 模型的高效与轻便,仅需几KB内存便能生成完整清晰的几何图形,同时,这些形状数据具备可解释性,便于用户理解和编辑。
    的头像 发表于 03-26 11:16 550次阅读

    爱立信推出认知软件新功能

    日前,爱立信宣布在其专为运营商设计的认知软件组合中,新增采用“可解释性人工智能(Explainable AI,XAI)”的新功能,进一步加速在网络设计和优化中采用人工智能后的价值转化。
    的头像 发表于 02-22 09:22 5210次阅读

    顶刊TIP 2023!浙大提出:基于全频域通道选择的的无监督异常检测

    Density-based方法:基于密度的方法通常采用预训练的模型来提取输入图像的有意义嵌入向量,测试图像时通过计算嵌入表示与参考表示分布之间的相似度以得到异常分数。这种方法在MVTec AD等数据集上取得了较高的指标分数,但需要预训练模型加持且
    的头像 发表于 01-11 16:02 1049次阅读
    顶刊TIP 2023!浙大提出:基于全频域通道选择的的无监督异常检测

    华为云AI峰会揭示大模型实践难题

    除此之外,还存在行业训练数据安全控制、大模型幻觉缓解消除及可解释性、构建具有强大逻辑推理规划能力的大模型、基于图数据的知识增强技术、通用结构化数据特性对齐和预训练,以及视觉领域下一个token预测任务建模等挑战。
    的头像 发表于 12-25 10:33 769次阅读

    新火种AI|比尔盖茨表态:生成式AI已成过去接下来是可解释AI的天下

    可解释AI。比尔.盖茨预测,未来10年(2030年-2039年),AI领域的主角将成为可解释AI。   大部分人预判:GPT-5将明显优于GPT-4,成为生成式AI领域天花板。 尽管OpenAI还没有对外界公布GPT-5的确切上线时间,甚至还曾遭到马斯克等人的反对,被其
    的头像 发表于 12-06 10:36 734次阅读
    新火种AI|比尔盖茨表态:生成式AI已成过去接下来是<b class='flag-5'>可解释</b>AI的天下