Evaluate 文件

建立和分享一個新的評估

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

建立和分享一個新的評估

設定

在建立新指標之前,請確保已安裝所有必需的依賴項。

pip install evaluate[template]

另外,請確保你的 Hugging Face 令牌已註冊,以便你可以連線到 Hugging Face Hub。

huggingface-cli login

建立

所有評估模組,無論是指標、比較還是測量,都存放在 🤗 Hub 上的一個空間 (Space) 中(例如,請參見準確率)。原則上,你可以設定一個新的 Space,並按照相同的結構新增新模組。不過,我們增加了一個命令列工具(CLI),使得建立新的評估模組變得更加容易。

evaluate-cli create "My Metric" --module_type "metric"

這將在 🤗 Hub 上建立一個新的 Space,將其克隆到本地,並用一個模板來填充它。關於如何填寫模板的說明將顯示在終端中,這裡也對此進行了更詳細的解釋。

有關 Spaces 的更多資訊,請參見Spaces 文件

模組指令碼

評估模組指令碼(字尾為 `*.py` 的檔案)是新模組的核心,包含了計算評估的所有程式碼。

屬性

首先,在 `EvaluationModule._info()` 中新增一些關於你的評估模組的資訊。你應該指定的最重要的屬性是:

  1. `EvaluationModuleInfo.description` 提供了你的評估模組的簡要描述。

  2. `EvaluationModuleInfo.citation` 包含了評估模組的 BibTex 引用。

  3. `EvaluationModuleInfo.inputs_description` 描述了預期的輸入和輸出。它也可能提供評估模組的使用示例。

  4. `EvaluationModuleInfo.features` 定義了預測值和參考值的名稱和型別。這必須是單個 `datasets.Features` 物件,或者如果允許多種輸入型別,則是一個 `datasets.Features` 物件列表。

然後,我們可以繼續準備實際計算之前的所有工作。

下載

有些評估模組需要一些外部資料,例如需要資源的 NLTK 或需要檢查點的 BLEURT 指標。你可以在 `EvaluationModule._download_and_prepare()` 中實現這些下載,它透過 `dlmanager` 下載並快取資源。以下是一個關於 BLEURT 如何下載和載入檢查點的簡化示例:

def _download_and_prepare(self, dl_manager):
    model_path = dl_manager.download_and_extract(CHECKPOINT_URLS[self.config_name])
    self.scorer = score.BleurtScorer(os.path.join(model_path, self.config_name))

或者,如果你需要下載 NLTK 的 `"punkt_tab"` 資源:

def _download_and_prepare(self, dl_manager):
    import nltk
    nltk.download("punkt_tab")

接下來,我們需要定義評估模組的計算工作方式。

計算

計算在 `EvaluationModule._compute()` 方法中執行。它接受與 `EvaluationModuleInfo.features` 相同的引數,然後應以字典形式返回結果。以下是一個精確匹配指標的示例:

def _compute(self, references, predictions):
    em = sum([r==p for r, p in zip(references, predictions)])/len(references)
    return {"exact_match": em}

當你之後呼叫 `.compute()` 時,就會使用這個方法。

Readme

當你使用 `evaluate-cli` 設定評估模組時,會自動建立 Readme 結構和說明。它應該包括指標的總體描述、其輸入/輸出格式資訊、示例以及關於其侷限性、偏見和參考文獻的資訊。

依賴項

如果你的評估模組有額外的依賴項(例如 `sklearn` 或 `nltk`),`requirements.txt` 檔案就是放置它們的地方。該檔案遵循 `pip` 格式,你可以在那裡列出所有依賴項。

應用

`app.py` 是 Spaces 小部件所在的地方。通常它看起來如下,不需要任何更改。

import evaluate
from evaluate.utils import launch_gradio_widget


module = evaluate.load("lvwerra/element_count")
launch_gradio_widget(module)

如果你想要一個自定義小部件,可以在這裡新增你的 Gradio 應用。

推送到 Hub

最後,當你完成以上所有更改後,就可以將你的評估模組推送到 Hub 了。為此,請導航到你的模組資料夾,並使用 git add/commit/push 將更改推送到 Hub。

cd PATH_TO_MODULE
git add .
git commit -m "Add my new, shiny module."
git push

完成 🎉!你的評估模組現在已經在 🤗 Hub 上,並準備好供所有人使用!

< > 在 GitHub 上更新

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