Hub 文件

模型卡片

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

模型卡片

什麼是模型卡片?

模型卡片是隨模型附帶的檔案,提供有用的資訊。在底層,模型卡片是簡單的 Markdown 檔案,附帶額外的元資料。模型卡片對於可發現性、可復現性和共享至關重要!你可以在任何模型倉庫的 `README.md` 檔案中找到模型卡片。

模型卡片應描述

  • 模型
  • 其預期用途和潛在限制,包括 Mitchell,2018 中詳述的偏見和倫理考量
  • 訓練引數和實驗資訊(你可以嵌入或連結到實驗跟蹤平臺以供參考)
  • 用於訓練模型的哪些資料集
  • 模型的評估結果

模型卡片模板可在此處獲取:此處

如何填寫模型卡片中的每個部分,請參閱註釋模型卡片

Hub 上的模型卡片有兩個關鍵部分,資訊有所重疊

模型卡片元資料

模型倉庫將把其 `README.md` 檔案渲染為模型卡片。模型卡片是一個 Markdown 檔案,頂部有一個 YAML 部分,其中包含有關模型的元資料。

你新增到模型卡片的元資料有助於發現和更輕鬆地使用你的模型。例如

  • 允許使用者在 https://huggingface.co/models 上篩選模型。
  • 顯示模型的許可證。
  • 將資料集新增到元資料將向你的模型頁面新增一條訊息,顯示“`Datasets used to train:`”,並連結相關資料集(如果它們在 Hub 上可用)。

資料集、指標和語言識別符號是 資料集指標語言 頁面上列出的識別符號。

向模型卡片新增元資料

有幾種不同的方法可以向模型卡片新增元資料,包括

  • 使用元資料 UI
  • 直接編輯 `README.md` 檔案的 YAML 部分
  • 透過 `huggingface_hub` Python 庫,更多詳細資訊請參閱文件

許多具有 Hub 整合的庫在上傳模型時會自動向模型卡片新增元資料。

使用元資料 UI

您可以使用元資料 UI 將元資料新增到您的模型卡片中。要訪問元資料 UI,請轉到模型頁面,然後單擊模型卡片右上角的“`Edit model card`”按鈕。這將開啟一個編輯器,顯示模型卡片 `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_tag`。`pipeline_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 Leaderboard,它被定義為 `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
---

有關如何格式化此資料的更多詳細資訊,請檢視模型卡片規範

二氧化碳排放量

模型卡片也是展示模型對 CO₂ 影響資訊的絕佳位置。請訪問我們的跟蹤和報告 CO₂ 排放指南以瞭解更多資訊。

連結論文

如果模型卡片包含指向 arXiv 論文的連結,Hugging Face Hub 將提取 arXiv ID 並以 `arxiv:` 的格式將其包含在模型標籤中。單擊該標籤將允許您

  • 訪問論文頁面
  • 篩選 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 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.