Evaluate 文件
建立和分享一個新的評估
並獲得增強的文件體驗
開始使用
建立和分享一個新的評估
設定
在建立新指標之前,請確保已安裝所有必需的依賴項。
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()` 中新增一些關於你的評估模組的資訊。你應該指定的最重要的屬性是:
`EvaluationModuleInfo.description` 提供了你的評估模組的簡要描述。
`EvaluationModuleInfo.citation` 包含了評估模組的 BibTex 引用。
`EvaluationModuleInfo.inputs_description` 描述了預期的輸入和輸出。它也可能提供評估模組的使用示例。
`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 上更新