评估文档
创建和分享新的评估
并获得增强的文档体验
开始使用
创建和分享新的评估
设置
在创建新的指标之前,请确保您已安装所有必要的依赖项
pip install evaluate[template]
另请确保您的 Hugging Face 令牌已注册,以便您可以连接到 Hugging Face Hub
huggingface-cli login
创建
所有评估模块,无论是指标、比较还是度量,都位于 🤗 Hub 的 Space 中(例如,请参阅 Accuracy)。 原则上,您可以设置一个新的 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"
资源
def _download_and_prepare(self, dl_manager):
import nltk
nltk.download("punkt")
接下来,我们需要定义评估模块的计算方式。
计算
计算在 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
当您使用 evalute-cli
设置评估模块时,会自动创建 Readme 结构和说明。 它应包括指标的一般描述、有关其输入/输出格式的信息、示例以及有关其局限性或偏差以及参考的信息。
Requirements
如果您的评估模块有其他依赖项(例如 sklearn
或 nltk
),则 requirements.txt
文件是放置它们的地方。 该文件遵循 pip
格式,您可以在其中列出所有依赖项。
App
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
Tada 🎉! 您的评估模块现在已在 🤗 Hub 上,可以供所有人使用了!