Model Card Toolkit 概念

模型卡片 (Model Card)

模型卡片是机器学习文档,旨在为模型的开发和性能提供背景信息和透明度。它们可用于与研究人员、开发人员、记者等人共享模型元数据和指标。

模型卡片的部分使用场景包括:

  • 促进模型构建者与产品开发人员之间的信息交流。
  • 告知机器学习模型的使用者,以便他们就如何使用(或不使用)模型做出更明智的决定。
  • 提供有效的公众监督和问责所需的模型信息。

Schema

模型卡片 schema 是一个 proto 文件,用于描述模型卡片中可用的字段。此外还提供了一个 JSON 接口。这些对象可以与其它系统对接,用于存储、分析或可视化。

目前,模型卡片 schema 是强制执行的。在 Model Card Toolkit 2.0 中,此 schema 限制将被取消。

图形学

Model Card Toolkit 可以自动为 TFX 数据集和评估结果生成图形。图形也可以使用 Matplotlib 等工具手动创建,并写入 ModelCard 中 —— 详情请参阅 Model Card API

在模型卡片 schema 中,图形存储在 Graphic.image 字段中,并被编码为 base64 编码字符串。Model Card Toolkit 可以帮助生成 base64 图像

模型卡片工具包 (Model Card Toolkit)

Model Card Toolkit 允许您通过精简的 Python 接口生成 模型卡片文档,以及 Proto 和 JSON 对象

Model Card API

Model Card Toolkit 包含一个由 Python 类组成的 Model Card API。对模型卡片 Python 对象所做的更新会被写入模型卡片 proto 对象。

图形学

model_card_toolkit.utils.graphics.figure_to_base64str() 函数可用于将 Matplotlib 图形等图像转换为 base64 字符串。

保存和加载模型卡片

如果您已完成模型卡片的注释,并希望以 JSON 或 protobuf 格式序列化它,请使用 ModelCard.save() 方法。


import model_card_toolkit as mct

model_card = mct.ModelCard()
model_card.model_details.name = 'Fine-tuned MobileNetV2 Model for Cats vs. Dogs'
model_card.save('model_cards/cats_vs_dogs.json')

如果您想恢复并更新已保存的模型卡片,请使用 model_card_toolkit.model_card.load_model_card() 函数。


import model_card_toolkit as mct

model_card = mct.load_model_card('model_cards/cats_vs_dogs.json')
model_card.model_details.licenses.append(mct.License(identifier='Apache-2.0'))

模型卡片文档

默认情况下,生成的模型卡片文档是基于 default_template.html.jinja 的 HTML 文件。不过,您也可以提供自己的自定义 Jinja 模板。这些模板文件可以是任何基于文本的格式(HTML、Markdown、LaTeX 等)。我们提供了一个 Markdown 模板作为示例。

TFX 和 MLMD 集成

Model Card Toolkit 与 TensorFlow ExtendedML Metadata 工具集成。在初始化 Model Card Toolkit 时,可以使用元数据存储 (Metadata Store) 来预填充许多模型卡片字段,并生成训练和评估图表。

MCT 使用的 Artifacts(工件)

MCT 使用的 Executions(执行)

ModelCardGenerator 组件已移至 TFX Addons 库,从 2.0.0 版本开始不再打包在 Model Card Toolkit 中。在使用该组件之前,您需要安装 tfx-addons 包。

pip install tfx-addons[model_card_generator]

请参阅 ModelCardGenerator 指南并运行案例研究笔记本,以了解有关该组件的更多信息。