使用 What-If 工具面板进行模型理解

What-If Tool

What-If 工具 (WIT) 提供了一个易于使用的界面,用于扩展对黑盒分类和回归 ML 模型的理解。使用此插件,您可以对大量示例执行推理,并立即以多种方式可视化结果。此外,可以手动或以编程方式编辑示例,并通过模型重新运行,以查看更改的结果。它包含用于调查数据集子集上的模型性能和公平性的工具。

该工具的目的是为人们提供一种简单、直观且强大的方式,通过无需任何代码的视觉界面来探索和调查经过训练的 ML 模型。

可以通过 TensorBoard 或直接在 Jupyter 或 Colab 笔记本中访问该工具。有关更深入的详细信息、演示、演练以及特定于在笔记本模式下使用 WIT 的信息,请参阅 What-If 工具网站

要求

要在 TensorBoard 中使用 WIT,需要两件事

  • 您希望探索的模型必须使用 TensorFlow Serving 使用 classify、regress 或 predict API 进行服务。
  • 要由模型推断的数据集必须位于 TensorBoard Web 服务器可访问的 TFRecord 文件中。

用法

在 TensorBoard 中打开 What-If 工具面板时,您将看到一个设置屏幕,您可以在其中提供模型服务器的主机和端口、正在服务的模型的名称、模型类型以及要加载的 TFRecords 文件的路径。填写完这些信息后,单击“接受”,WIT 将加载数据集并使用模型运行推理,显示结果。

有关 WIT 的不同功能以及它们如何帮助您了解模型和进行公平性调查的详细信息,请参阅 What-If 工具网站 上的演练。

演示模型和数据集

如果您想使用预训练模型在 TensorBoard 中测试 WIT,您可以从 https://storage.googleapis.com/what-if-tool-resources/uci-census-demo/uci-census-demo.zip 下载并解压缩预训练模型和数据集。该模型是一个二元分类模型,它使用 UCI 人口普查 数据集来预测一个人是否年收入超过 50,000 美元。此数据集和预测任务通常用于机器学习建模和公平性研究。

将环境变量 MODEL_PATH 设置为计算机上生成的模型目录的位置。

按照 官方文档 安装 docker 和 TensorFlow Serving。

使用 docker 通过 docker run -p 8500:8500 --mount type=bind,source=${MODEL_PATH},target=/models/uci_income -e MODEL_NAME=uci_income -t tensorflow/serving 服务模型。请注意,您可能需要使用 sudo 运行命令,具体取决于您的 docker 设置。

现在启动 tensorboard 并使用面板下拉菜单导航到 What-If 工具。

在设置屏幕上,将推理地址设置为“localhost:8500”,将模型名称设置为“uci_income”,并将示例路径设置为下载的 adult.tfrecord 文件的完整路径,然后按“接受”。

Setup screen for demo

在该演示上使用 What-If 工具可以尝试的一些操作包括

  • 编辑单个数据点,并查看推理结果的相应变化。
  • 通过部分依赖图探索数据集中的各个特征与模型推理结果之间的关系。
  • 将数据集切片成子集,并比较切片之间的性能。

有关工具功能的深入了解,请查看 What-If 工具演练

请注意,此模型试图预测的数据集中的真实特征名为“Target”,因此在使用“性能和公平性”选项卡时,您将在真实特征下拉菜单中指定“Target”。