构建模型卡
模型卡是一个文件,它与模型和分词器文件一样重要,甚至可以说更重要。它是模型的中心定义,可以确保其他社区成员可以重复使用模型,并确保结果的可重复性,同时提供一个平台,让其他成员可以在此基础上构建自己的工件。
记录训练和评估过程有助于其他人了解对模型的预期——提供有关所使用数据以及进行的预处理和后处理的充分信息,可以确保识别和理解模型的局限性、偏差和适用及不适用的情境。
因此,创建一个明确定义模型的模型卡非常重要。这里,我们提供一些提示来帮助您完成此操作。创建模型卡是通过您之前看到的README.md文件完成的,它是一个 Markdown 文件。
“模型卡”的概念起源于 Google 的一个研究方向,最早在 Margaret Mitchell 等人的论文“Model Cards for Model Reporting”中分享。这里包含的许多信息都基于该论文,我们建议您阅读一下,以了解为什么在重视可重复性、可重用性和公平性的世界中,模型卡如此重要。
模型卡通常从对模型用途的简短、高级概述开始,然后在以下部分提供更多详细信息
- 模型描述
- 预期用途和局限性
- 如何使用
- 局限性和偏差
- 训练数据
- 训练过程
- 评估结果
让我们看看每个部分应该包含什么。
模型描述
模型描述提供了有关模型的基本详细信息。包括架构、版本、是否在论文中介绍过、是否有原始实现可用、作者以及有关模型的概况信息。任何版权应在此处进行归属。有关训练过程、参数和重要免责声明的概况信息也可以在本节中提及。
预期用途和局限性
在这里,您描述了模型的预期用例,包括可以应用模型的语言、领域和范围。模型卡的这一部分还可以记录已知超出模型范围或可能表现不佳的区域。
如何使用
本节应包括一些有关如何使用模型的示例。这可以展示pipeline()
函数的使用、模型和分词器类的使用以及您认为可能有帮助的任何其他代码。
训练数据
这部分应表明模型是在哪些数据集上训练的。欢迎简要介绍数据集。
训练过程
在本节中,您应该描述从可重复性角度来看所有与训练相关的方面。这包括对数据进行的任何预处理和后处理,以及模型训练的轮次数量、批次大小、学习率等详细信息。
变量和指标
在这里,您应该描述用于评估的指标以及要衡量的不同因素。提及哪些指标、在哪个数据集和哪个数据集拆分上使用,可以轻松比较模型的性能与其他模型的性能。这些应基于前面的部分,例如预期用户和用例。
评估结果
最后,请说明模型在评估数据集上的表现。如果模型使用决策阈值,请提供评估中使用的决策阈值,或提供针对预期用途的不同阈值下的评估详细信息。
示例
查看以下内容,获取一些精心制作的模型卡示例
更多来自不同组织和公司的示例请点击这里查看。
注意
发布模型时,模型卡并非强制要求,您在创建模型卡时也不必包含上面描述的所有部分。但是,显式记录模型只会对未来用户有利,因此我们建议您尽可能多地填写您所知和所能做到的部分。
模型卡元数据
如果您已经探索过 Hugging Face Hub,您应该已经看到一些模型属于特定的类别:您可以按任务、语言、库等进行过滤。模型所属的类别是根据您在模型卡标题中添加的元数据确定的。
例如,如果您查看camembert-base
模型卡,您应该在模型卡标题中看到以下行
---
language: fr
license: mit
datasets:
- oscar
---
此元数据由 Hugging Face Hub 解析,然后识别此模型为法语模型,使用 MIT 许可证,在 Oscar 数据集上进行训练。
该完整模型卡规范允许指定语言、许可证、标签、数据集、指标以及模型在训练时获得的评估结果。