这是 自动评估基准 系列文章的第二篇,敬请关注系列文章:
基础概念 设计你的自动评估任务 一些评估测试集 技巧与提示
做评估时,你可以选择现有的数据集 (参考
使用现有的数据集
这部分强烈建议仔细阅读!
数据集需要注意的问题
样本是由谁创建的?在我看来,按照样本的标注员素质高低,数据集质量大致排名如下:专家构建数据集 > 付费标注数据集 > 众包数据集 > MTurk 数据集。你可以在数据集的说明文档 (data card) 找到标注员的统计信息,可以帮助理解数据集语言多样性。
样本是否经过其他标注员或作者的审核?你需要先弄明白:
是否给标注员提供了明确的数据创建指导?换句话说,数据集样本间的标注标准是否一致?
检查样本
随机抽取 50 个样本进行人工检查:
数据集样本数量同样重要 (以确保自动评估基准结果在统计上显著,一般至少需要 100 个测试样本)。
设计自己的数据集
有 3 种设计方法:
整合数据
要使用自己的测试集评估模型执行特定任务的能力,可以从不同的现成数据源整理和聚合。实际上有许多评估测试集都是以这种方式构建的,例如 MATH 和 LSAT 就聚合了人工评估数据集。当然在整理数据时,请遵循上文的质量与任务相关性检查步骤。
人工标注
关于 人工标注
的内容,本指南有一整个篇幅详细介绍,可以自行点击
合成数据
使用 LLM 合成这部分可以参考 HF 员工的
基于规则合成如果任务允许,这个绝佳的方法几乎可以无限获取测试样本,并且避免数据污染。参考
选择推理方法
除了测试集,还需要选择合适的推理方法。
对于多项选择问答任务 (通常用于测试模型的知识储备或消除歧义的能力),使用对数概率 (MCQA) 非常有效。
对于测试模型流畅性、推理或回答问题能力的任务,使用 QA 生成非常有效。
度量标准
部分)。选择 prompt
Prompt 设计关键问题:
MCQA 或 QA 任务的通用 prompt 设计范式一般包含以下几个部分:
问题
、上下文
、选项
等)。定义 prompt 时需要注意:
在语义等价的 prompt 中,即使非常微小的变化也可能导致巨大差异的结果 (详见Different prompt
部分),并且 prompt 格式也可能对特定模型的输出造成影响。
在 prompt 中提供示例可以帮助模型输出遵循预期格式,示例可以通过连接词添加至 prompt。
注意模型可能倾向于对特定的 prompt 格式过拟合。
对于一些测试任务的指标,你可能希望模型的输出限制在一个小范围。可以跳转Constraining model outputs
部分了解更多信息。
选择评估指标
如果你关注 对数概率 评估,那么你期望的度量指标会很简单:准确率 (选择最佳选项的频率)。如果在这个基础上你还想要进行标准化 (通过长度、字符、token 或 PMI),那么度量指标就会变成困惑度 (perplexity)、召回率或 F1 分数。
对于 生成式 评估,你期望的度量指标范围会更广。为此你需要:
总的来说,选择哪种评价指标取决于你的任务内容。对于某些领域 (如医疗、聊天机器人),你可能不想要评估平均性能,而是需要评估 最差表现 (如医疗知识输出质量、如果输出不实的后果等)。( 可以查看
智能新任务:功能性测试是什么?
对于代码领域,显然仅评估生成代码的语义是不够的,必须测试代码实际运行情况。所以需要专门设计一个功能性测试:对于给定 prompt 生成的代码段,测试并评估其是否能正确通过单元测试。
这种功能性测试方法极具前景,因为:
不过很多新奇的想法需要一些创造性的工作才能实现!
IFEval 是一个不错的例子,它是用来测试模型指令遵循能力的评估基准,通过创建多个格式化指令 ( 例如:添加指定数量的特殊符号,仅将一句话字母大写,等等 ) 并严格测试生成结果的遵循与否。功能性测试的想法仍需更多的工作来扩展到其他的特征测试上!
英文原文:
https://github.com/huggingface/evaluation-guidebook/blob/main/translations/zh/contents/automated-benchmarks/designing-your-automatic-evaluation.md 原文作者: clefourrier
译者: SuSung-boy
审校: adeenayakup
内容中包含的图片若涉及版权问题,请及时与我们联系删除