跳转到主要内容

CAIP 解释的辅助库。

项目描述

可解释人工智能 SDK

这是 Google Cloud Explainable AI 的 Python SDK,一个提供对在 AI Platform 上部署的机器学习模型进行洞察的解释服务。可解释人工智能 SDK 有助于可视化解释结果,并为解释服务定义 解释元数据

解释元数据告诉解释服务在您的解释请求中应使用哪些模型输入和输出。SDK 提供元数据构建器,帮助您在将模型部署到 AI Platform 之前构建和保存解释元数据文件。

可解释人工智能 SDK 还帮助您可视化 AI Platform 上部署的模型上的特征归因结果。

安装

可解释人工智能 SDK 支持使用以下构建的模型

  • Python 3.7 及更高版本
  • TensorFlow 1.15 或 TensorFlow 2.x。

可解释人工智能 SDK 已预安装在 Google Cloud AI Platform Notebooks 图像中。

对于其他平台

  1. 确保您已安装 Cloud SDK。为了与 Cloud AI Platform 通信,可解释人工智能 SDK 需要安装 Cloud SDK 的 shell 环境。

  2. 安装可解释人工智能 SDK

    pip install explainable-ai-sdk
    

元数据构建器

在您构建模型之后,您使用元数据构建器来创建您的解释元数据。这将生成一个用于 AI Platform 上模型部署的 JSON 文件。

在各自的文件夹中,TensorFlow 1.x 和 2.x 有不同的元数据构建器。

TensorFlow 2.x

对于 TensorFlow 2.x 版本,有一个元数据构建器可以接收一个 SavedModel,并将您的模型和元数据文件上传到云存储。

例如:

from explainable_ai_sdk.metadata.tf.v2 import SavedModelMetadataBuilder
builder = SavedModelMetadataBuilder(
    model_path)
builder.save_model_with_metadata('gs://my_bucket/model')  # Save the model and the metadata.

TensorFlow 1.x

对于 TensorFlow 1.x,可解释人工智能 SDK 支持使用 Keras、Estimator 和低级 TensorFlow API 构建的模型。对于这三个 TensorFlow API 中的每一个,都有一个不同的元数据构建器。以下是一个 Keras 模型的示例用法:

from explainable_ai_sdk.metadata.tf.v1 import KerasGraphMetadataBuilder
my_model = keras.models.Sequential()
my_model.add(keras.layers.Dense(32, activation='relu', input_dim=10))
my_model.add(keras.layers.Dense(32, activation='relu'))
my_model.add(keras.layers.Dense(1, activation='sigmoid'))
builder = KerasGraphMetadataBuilder(my_model)
builder.save_model_with_metadata('gs://my_bucket/model')  # Save the model and the metadata.

有关使用 Estimator 和 TensorFlow Core 构建器的示例,请参阅 v1 README 文件

进行预测和解释调用

可解释人工智能 SDK 包含一个模型接口,可以帮助您更轻松地与部署的模型进行通信。通过此接口,您可以调用 predict()explain() 函数,分别获取提供的数据点的预测和解释。

以下是使用模型接口的示例片段:

project_id = "example_project"
model_name = "example_model"
version_name = "v1"

m = explainable_ai_sdk.load_model_from_ai_platform(project_id, model_name, version_name)
instances = []

# ... steps for preparing instances

predictions = m.predict(instances)
explanations = m.explain(instances)

解释、归因和可视化

explain() 函数返回一个 Explanation 对象列表——每个输入实例一个 Explanation 对象。此对象使与返回的归因进行交互变得更容易。您可以使用 Explanation 对象获取特征重要性和原始归因,并可视化归因。

注意:目前,由于有效负载大小的限制,feature_importance()as_tensors() 函数仅在表格模型上工作。我们正在努力使这两个函数适用于图像模型。

获取特征重要性

feature_importance() 函数根据特征归因返回每个特征的重要性。请注意,如果特征具有多个维度,则根据聚合计算重要性。

explanations[0].feature_importance()

获取原始归因

要获取每个维度的特征归因,请使用 as_tensors() 函数返回原始归因作为张量。

explanations[0].as_tensors()

可视化归因

Explanation 类允许您直接可视化特征归因。对于图像和表格模型,您都可以调用 visualize_attributions() 来查看特征归因。

explantions[0].visualize_attributions()

以下是可视化示例:

An attribution visualization for a tabular model

注意事项

  • 此库与(并依赖于)TensorFlow 的任何主要版本。
  • 请勿在同一个 Python 运行时中导入 metadata/tf/v1metadata/tf/v2 文件夹。如果您这样做,可能会产生混合 TensorFlow 1.x 和 2.x 行为的意外副作用。

可解释人工智能文档

有关可解释人工智能的更多信息,请参阅 可解释人工智能文档

许可证

除非另有说明,否则此存储库中的所有文件均受 Apache License, Version 2.0 许可。

注意:我们目前不接受贡献。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

此发布没有可用的源分发文件。请参阅 生成分发存档的教程

构建分发

explainable_ai_sdk-1.3.3-py3-none-any.whl (122.3 kB 查看哈希值)

上传时间 Python 3

支持者