模型卡工具包概念

模型卡

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

模型卡的一些用例包括

  • 促进模型构建者和产品开发人员之间信息交换。
  • 告知 ML 模型的用户,以便他们能够更明智地决定如何使用它们(或如何不使用它们)。
  • 提供有效公共监督和问责制所需的模型信息。

模式

模型卡模式 是一个 proto,描述了模型卡的可用字段。还提供了一个 JSON 接口。这些对象可以与其他系统进行交互,以进行存储、分析或可视化。

目前,模型卡模式受到严格执行。在模型卡工具包 2.0 中,将取消此模式限制。

图形

模型卡工具包会自动为 TFX 数据集和评估结果生成图形。也可以使用 Matplotlib 等工具手动创建图形,并将其写入模型卡 - 有关详细信息,请参阅 模型卡 API

在模型卡模式中,图形存储在 Graphic.image 字段中,并以 base64 编码字符串 形式编码。模型卡工具包可以帮助您 生成 base64 图像

模型卡工具包

模型卡工具包 允许您使用简化的 Python 接口生成 模型卡文档 以及 Proto 和 JSON 对象

模型卡 API

模型卡工具包包含一个模型卡 API,该 API 由一个 Python 类 组成。对模型卡 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 集成

模型卡工具包与 TensorFlow ExtendedML Metadata 工具集成。在模型卡工具包初始化期间,可以使用元数据存储库预填充许多模型卡字段,并生成训练和评估图。

工件 由 MCT 使用

执行 由 MCT 使用

  • 训练器:用于填充模型名称和版本

ModelCardGenerator 组件已移至 TFX Addons 库,并且从 2.0.0 版本开始不再打包在模型卡工具包中。在使用该组件之前,您需要安装 tfx-addons

pip install tfx-addons[model_card_generator]

请参阅 ModelCardGenerator 指南 并运行 案例研究笔记本,详细了解该组件。