Hugging Face's logo
加入 Hugging Face 社区

并获得增强文档体验的访问权限

开始使用

模型卡

模型卡是什么?

模型卡是随模型提供的文件,提供了方便的信息。在底层,模型卡是简单的 Markdown 文件,带有额外的元数据。模型卡对于可发现性、可重复性和共享至关重要!您可以在任何模型仓库的 README.md 文件中找到模型卡。

模型卡应描述

  • 模型
  • 其预期用途和潜在限制,包括偏见和道德考量,如 Mitchell, 2018 中所述
  • 训练参数和实验信息(您可以嵌入或链接到实验跟踪平台以供参考)
  • 用于训练模型的数据集
  • 模型的评估结果

模型卡模板可在此处获得 这里

如何在注释模型卡中描述如何填写模型卡的每个部分 注释的模型卡

Hub 上的模型卡有两个关键部分,信息重叠

模型卡元数据

模型仓库将呈现其 README.md 作为模型卡。模型卡是 Markdown 文件,顶部有一个 YAML 部分,其中包含有关模型的元数据。

添加到模型卡的元数据支持发现和更轻松地使用您的模型。例如

  • 允许用户在 https://huggingface.co/models 处过滤模型。
  • 显示模型的许可证。
  • 将数据集添加到元数据中将向您的模型页面添加一条消息,显示为 用于训练的数据集:,并链接相关数据集(如果它们在 Hub 上可用)。

数据集、指标和语言标识符是在 数据集指标语言 页面上列出的。

将元数据添加到您的模型卡

有几种不同的方法可以将元数据添加到您的模型卡中,包括

  • 使用元数据 UI
  • 直接编辑 README.md 文件的 YAML 部分
  • 通过 huggingface_hub Python 库,请查看 文档 了解详细信息。

许多具有 Hub 集成 的库将在您上传模型时自动将元数据添加到模型卡中。

使用元数据 UI

您可以使用元数据 UI 将元数据添加到您的模型卡中。要访问元数据 UI,请转到模型页面,然后单击模型卡右上角的 编辑模型卡 按钮。这将打开一个编辑器,显示模型卡 README.md 文件,以及一个用于编辑元数据的 UI。

此 UI 将允许您将关键元数据添加到您的模型卡中,并且许多字段将根据您提供的信息自动完成。使用 UI 是将元数据添加到您的模型卡中最简单的方法,但它不支持所有元数据字段。如果您想要添加 UI 不支持的元数据,则可以直接编辑 README.md 文件的 YAML 部分。

编辑 README.md 文件的 YAML 部分

您也可以直接编辑 README.md 文件的 YAML 部分。如果模型卡还没有 YAML 部分,您可以在文件顶部添加三个 ---,然后包含所有相关元数据,并在另一组 --- 后关闭该部分,如下例所示

---
language: 
  - "List of ISO 639-1 code for your language"
  - lang1
  - lang2
thumbnail: "url to a thumbnail used in social sharing"
tags:
- tag1
- tag2
license: "any valid license identifier"
datasets:
- dataset1
- dataset2
metrics:
- metric1
- metric2
base_model: "base model Hub identifier"
---

您可以在此处找到详细的模型卡元数据规范 这里

指定库

您可以在模型卡元数据部分指定支持的库。了解有关我们支持的库的更多信息 这里。库将按以下优先级顺序指定

  1. 在模型卡中指定library_name(如果您的模型不是transformers 模型,建议这样做)。此信息可以通过元数据 UI 添加,也可以直接在模型卡 YAML 部分添加。
library_name: flair
  1. 使用一个标签来标记支持的库名称。
tags:
- flair

如果没有指定,Hub 将尝试自动检测库类型。但是,这种方法不建议使用,仓库创建者应尽可能使用显式的library_name

  1. 通过查看是否存在*.nemo*.mlmodel 等文件,Hub 可以确定模型是否来自 NeMo 或 CoreML。
  2. 过去,如果未检测到任何内容,并且存在config.json 文件,则假定库为transformers。对于 2024 年 8 月之后创建的模型仓库,这种情况不再适用,因此您需要显式地添加library_name: transformers

指定基础模型

如果您的模型是基础模型的微调版、适配器版或量化版,您可以在模型卡元数据部分指定基础模型。此信息还可以用于指示您的模型是否合并了多个现有模型。因此,base_model 字段可以是单个模型 ID,也可以是基础模型的列表(由其 Hub 标识符指定)。

base_model: HuggingFaceH4/zephyr-7b-beta

此元数据将用于在模型页面上显示基础模型。用户还可以使用此信息按基础模型过滤模型,或查找源自特定基础模型的模型。

对于微调模型
对于适配器(LoRA、PEFT 等)
对于另一个模型的量化版本
对于两个或多个模型的合并

在合并情况下,您需要指定两个或多个基础模型的列表。

base_model:
- Endevor/InfinityRP-v1-7B
- l3utterfly/mistral-7b-v0.1-layla-v4

Hub 将推断当前模型与基础模型之间的关系类型("adapter", "merge", "quantized", "finetune"),但如果需要,您也可以显式设置它,例如:base_model_relation: quantized

指定新版本

如果 Hub 中有您的模型的新版本可用,您可以在new_version 字段中指定它。

例如,在l3utterfly/mistral-7b-v0.1-layla-v3

new_version: l3utterfly/mistral-7b-v0.1-layla-v4

此元数据将用于在模型页面上显示指向模型最新版本的链接。如果new_version 中链接的模型也具有new_version 字段,则将始终显示最新的版本。

指定数据集

您可以在模型卡元数据部分指定用于训练模型的数据集。数据集将显示在模型页面上,用户可以按数据集过滤模型。您应使用 Hub 数据集标识符,该标识符与数据集仓库名称相同。

datasets:
- imdb
- HuggingFaceH4/no_robots

指定任务 (pipeline_tag)

您可以在模型卡元数据中指定pipeline_tagpipeline_tag 指示模型的预期任务类型。此标签将显示在模型页面上,用户可以按任务过滤 Hub 上的模型。此标签还用于确定为模型使用哪个小部件以及在幕后使用哪些 API。

对于transformers 模型,管道标签会从模型的config.json 文件中自动推断,但如果需要,您可以在模型卡元数据中覆盖它。在元数据 UI 中编辑此字段将确保管道标签有效。一些其他与 Hub 集成的库也会自动将管道标签添加到模型卡元数据中。

指定许可证

您可以在模型卡元数据部分指定许可证。许可证将显示在模型页面上,用户可以按许可证过滤模型。使用元数据 UI,您将看到最常见许可证的下拉菜单。

如果需要,您也可以通过添加other 作为许可证值,并在元数据中指定许可证名称和链接来指定自定义许可证。

# Example from https://huggingface.co/coqui/XTTS-v1
---
license: other
license_name: coqui-public-model-license
license_link: https://coqui.ai/cpml
---

如果许可证无法通过 URL 获取,您可以链接到存储在模型仓库中的 LICENSE。

评估结果

您可以在模型卡元数据中以结构化的方式指定模型的评估结果。Hub 会解析这些结果,并在模型页面上的小部件中显示它们。以下是如何在bigcode/starcoder 模型上显示结果的示例。

元数据规范基于 Papers with code 的model-index 规范。这使我们能够在适当的时候将结果直接索引到 Papers with code 的排行榜中。您还可以链接计算评估结果的来源。

以下是一个部分示例,用于描述01-ai/Yi-34B 在 ARC 基准测试上的得分。该结果来自Open LLM 排行榜,它被定义为source

---
model-index:
  - name: Yi-34B
    results:
      - task:
          type: text-generation
        dataset:
          name: ai2_arc
          type: ai2_arc
        metrics:
          - name: AI2 Reasoning Challenge (25-Shot)
            type: AI2 Reasoning Challenge (25-Shot)
            value: 64.59
        source:
          name: Open LLM Leaderboard
          url: https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard
---

有关如何格式化此数据的更多详细信息,请查看模型卡规范

二氧化碳排放

模型卡也是展示模型二氧化碳影响信息的绝佳场所。访问我们的关于跟踪和报告二氧化碳排放的指南以了解更多信息。

链接论文

如果模型卡包含指向 arXiv 上论文的链接,Hugging Face Hub 将提取 arXiv ID 并将其包含在模型标签中,格式为 arxiv:<PAPER ID>。点击标签将允许您

  • 访问论文页面
  • 筛选 Hub 上引用同一篇论文的其他模型。

阅读有关论文页面的更多信息 这里

模型卡文本

有关如何填写没有 Hub 特定元数据的人类可读模型卡的详细信息(以便可以打印出来、剪切和粘贴等)可在 带注释的模型卡 中找到。

常见问题解答

模型标签是如何确定的?

每个模型页面都在页面标题中列出了所有模型的标签,位于模型名称下方。这些标签主要由模型卡元数据计算得出,但有些标签是自动添加的,如 启用小部件 中所述。

我可以向我的模型添加自定义标签吗?

是的,您可以通过将自定义标签添加到模型卡元数据中的 tags 字段来向模型添加自定义标签。元数据 UI 将建议一些流行标签,但您可以添加任何想要的标签。例如,您可以通过添加 finance 标签来表明您的模型专注于金融领域。

如何表明我的模型不适合所有受众

您可以向模型卡元数据添加 not-for-all-audience 标签。当存在此标签时,模型页面上将显示一条消息,表明该模型不适合所有受众。用户可以单击此消息以查看模型卡。

我可以在我的模型卡中写 LaTeX 吗?

可以!Hub 使用 KaTeX 数学排版库在解析 Markdown 之前在服务器端渲染数学公式。

您必须使用以下分隔符

  • $$ ... $$ 用于显示模式
  • \\(...\\) 用于内联模式(斜杠和括号之间没有空格)。

然后你就可以写LaTeX \LaTeX MSE=(1n)i=1n(yixi)2 \mathrm{MSE} = \left(\frac{1}{n}\right)\sum_{i=1}^{n}(y_{i} - x_{i})^{2} E=mc2 E=mc^2

< > 在 GitHub 上更新