模型卡工具組概念

模型卡

模型卡是機器學習文件,可提供模型的開發和效能背景資訊及透明度。模型卡可用於與研究人員、開發人員、記者等分享模型中繼資料和指標。

模型卡的部分用途包括:

  • 促進模型建構者和產品開發人員之間交換資訊。
  • 通知 ML 模型使用者,讓他們在如何使用模型 (或如何避免使用模型) 方面做出更明智的決策。
  • 提供有效的公眾監督和問責所需的模型資訊。

結構描述

模型卡結構描述是一種 proto,用於描述模型卡的可用欄位。JSON 介面也已推出。這些物件可以與其他系統介接,以進行儲存、分析或視覺化。

目前,模型卡結構描述受到嚴格執行。在模型卡工具組 2.0 中,這項結構描述限制將會解除。

圖形

模型卡工具組會自動為 TFX 資料集和評估結果產生圖形。圖形也可以使用 Matplotlib 等工具手動建立,並寫入 ModelCard - 詳情請參閱模型卡 API

在模型卡結構描述中,圖形會儲存在 Graphic.image 欄位中,並編碼為 base64 編碼字串。模型卡工具組可協助產生 base64 圖片

模型卡工具組

模型卡工具組可讓您透過精簡的 Python 介面產生模型卡文件,以及 Proto 和 JSON 物件

模型卡 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'))

模型卡文件

依預設,產生的模型卡文件是 HTML 檔案,以 default_template.html.jinja 為基礎。不過,您也可以提供自己的自訂 Jinja 範本。這些範本檔案可以是任何以文字為基礎的格式 (HTML、Markdown、LaTeX 等)。Markdown 範本會以範例形式提供。

TFX 和 MLMD 整合

模型卡工具組與 TensorFlow ExtendedML Metadata 工具整合。中繼資料儲存區可用於模型卡工具組初始化期間,以預先填入許多模型卡欄位並產生訓練和評估圖表。

MCT 使用的構件

MCT 使用的執行

  • Trainer:用於填入模型名稱和版本

ModelCardGenerator 元件已移至 TFX Addons 程式庫,且不再於 2.0.0 版起的模型卡工具組中封裝。您必須先安裝 tfx-addons 套件,才能使用這個元件

pip install tfx-addons[model_card_generator]

請參閱 ModelCardGenerator 指南並執行 案例研究筆記本,進一步瞭解這個元件。