前言
模型卡是模型仓库中与模型和分词器文件同等重要的文件。它是模型的中心定义,确保了社区成员的可重用性和结果的再现性,并为其他成员提供了一个构建他们工件的平台。
记录训练和评估过程有助于他人了解对模型的期望——并提供足够的信息关于使用的数据以及进行的预处理和后处理,确保可以识别和理解模型的局限性、偏见以及在何种情况下模型有用和没有用。
因此,创建一个清晰定义你模型的模型卡是非常重要的步骤。在这里,我们提供一些帮助你完成这个步骤的建议。创建模型卡是通过你之前看到的README.md文件完成的,这是一个Markdown文件。
“模型卡”的概念源自于谷歌的一个研究方向,首次在Margaret Mitchell等人发表的论文《Model Cards for Model Reporting》中提出。这里包含的许多信息都是基于那篇论文的,我们建议你阅读一下它,以了解在重视可复制性、可重用性和公平性的世界里,为什么模型卡如此重要。
模型卡通常以对模型用途的非常简短、高层次的概述开始,接着在以下部分提供更多详细信息:
- 模型描述
- 预期用途和限制
- 使用方法
- 局限性和偏见
- 训练数据
- 训练过程
- 评估结果
让我们来看看每个部分应该包含什么内容。
src link: https://huggingface.co/learn/nlp-course/chapter4/4
Operating System: Ubuntu 22.04.4 LTS
参考文档
模型描述
模型描述部分提供了关于模型的基本细节。这包括架构、版本、是否在论文中介绍、是否有原始实现、作者以及关于模型的一般信息。任何版权声明也应该在这里注明。此外,还可以在这一部分提到关于训练过程、参数和重要免责声明的一般信息。
预期用途和限制
在这里,你描述了模型预期的使用场景,包括它可以在哪些语言、领域和领域中应用。模型卡的这一部分还可以记录已知不在模型范围内的领域,或者模型可能表现不佳的地方。
使用方法
这一部分应该包括一些如何使用模型的示例。这可以展示 pipeline() 函数的用法、模型和分词器类的用法,以及任何其他你认为可能有帮助的代码。
训练数据
这一部分应该指明模型是在哪些数据集上训练的。对数据集的简要描述也是受欢迎的。
训练过程
在这一部分,你应该描述所有从可复制性角度来看有用的训练相关方面。这包括对数据进行的任何预处理和后处理,以及模型训练的周期数、批量大小、学习率等细节。
变量和指标
在这里,你应该描述你用于评估的指标,以及你正在测量的不同因素。提及使用了哪些指标,在哪个数据集以及哪个数据集划分上使用,使得与其他模型的性能比较变得容易。这些应该受到前几部分的影响,例如预期的用户和使用场景。
评估结果
最后,提供模型在评估数据集上表现如何的指示。如果模型使用决策阈值,要么提供评估中使用的决策阈值,要么提供针对预期用途在不同阈值下评估的细节。
示例
查看以下内容,以获取一些精心制作的模型卡示例:
来自不同组织和公司的更多示例可在此处找到。
注意
发布模型时,模型卡不是必需的,制作模型卡时也不需要包含上述所有部分。然而,明确记录模型信息只会对未来的用户有益,因此我们建议您根据您的知识和能力尽可能填写更多部分。
模型卡元数据
如果您已经对 Hugging Face Hub 进行了一些探索,您应该已经看到,有些模型属于特定的类别:您可以通过任务、语言、库等进行筛选。模型所属的类别是根据您在模型卡头部添加的元数据来确定的。
例如,如果您查看 camembert-base 模型卡,您应该在模型卡头部看到以下几行:
---
language: fr
license: mit
datasets:
- oscar
---
Hugging Face Hub 会解析这些元数据,然后识别出这个模型是一个具有 MIT 许可证的法语模型,它在 Oscar 数据集上进行了训练。
完整的模型卡规范允许指定语言、许可证、标签、数据集、指标,以及模型在训练期间获得的评估结果。
结语
第二百二十三篇博文写完,开心!!!!
今天,也是充满希望的一天。