Hugging Face 2024年12月26日
自动评估基准 | 设计你的自动评估任务
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了如何设计有效的自动评估基准,强调了数据集选择、推理方法、提示词设计和评估指标的重要性。在数据集方面,文章建议关注数据来源和质量,并提供了三种构建数据集的方法。对于推理方法,文章比较了对数概率和QA生成两种方法。在提示词设计上,强调了任务描述、上下文和问题的重要性,并提醒注意prompt的细微变化可能带来的影响。最后,文章详细讨论了评估指标的选择,并引入了功能性测试的概念,强调了评估模型实际运行能力的重要性。

📊 数据集选择:评估结果高度依赖数据集质量,专家构建的数据集质量最高。需要关注样本创建者、审核情况、标注标准以及样本数量,并进行人工抽样检查。

🤔 推理方法:多项选择问答任务适合使用对数概率,能提供模型置信度并快速评估;测试模型流畅性和推理能力则适合使用QA生成,但评分难度较高。

📝 Prompt设计:Prompt设计至关重要,需包含任务描述、上下文和问题,并注意prompt的细微变化可能导致评估结果差异。可使用示例来引导模型输出,但需警惕模型对特定prompt格式过拟合。

🎯 评估指标:对数概率评估使用准确率,生成式评估则需考虑生成结果的度量顺序和比较方式,如精确匹配、ROUGE等。评估指标的选择应取决于任务内容,并考虑最差表现。

🧪 功能性测试:代码领域需评估代码实际运行情况,可通过功能性测试评估模型是否能通过单元测试。这种方法有助于减少过拟合,评估模型特定能力。

原创 Hugging Face 2024-12-25 20:30 广东

选择合适的数据集、推理方法、提示词和评估指标

这是 自动评估基准 系列文章的第二篇,敬请关注系列文章:

    基础概念

    设计你的自动评估任务

    一些评估测试集

    技巧与提示

选择数据集

做评估时,你可以选择现有的数据集 (参考一些评估数据集页面) 作为测试集,也可以设计自己的数据集。有一点非常重要,请注意:评估的结果与评估的数据集质量高度相关

评估数据集https://github.com/huggingface/evaluation-guidebook/blob/main/contents/automated-benchmarks/some-evaluation-datasets.md

使用现有的数据集

这部分强烈建议仔细阅读!

数据集需要注意的问题

样本是由谁创建的?在我看来,按照样本的标注员素质高低,数据集质量大致排名如下:专家构建数据集 > 付费标注数据集 > 众包数据集 > MTurk 数据集。你可以在数据集的说明文档 (data card) 找到标注员的统计信息,可以帮助理解数据集语言多样性。

检查样本

随机抽取 50 个样本进行人工检查:

数据集样本数量同样重要 (以确保自动评估基准结果在统计上显著,一般至少需要 100 个测试样本)。

设计自己的数据集

有 3 种设计方法:

整合数据

要使用自己的测试集评估模型执行特定任务的能力,可以从不同的现成数据源整理和聚合。实际上有许多评估测试集都是以这种方式构建的,例如 MATH 和 LSAT 就聚合了人工评估数据集。当然在整理数据时,请遵循上文的质量与任务相关性检查步骤。

人工标注

关于 人工标注 的内容,本指南有一整个篇幅详细介绍,可以自行点击Using human annotators阅读。

合成数据

选择推理方法

除了测试集,还需要选择合适的推理方法。

对于多项选择问答任务 (通常用于测试模型的知识储备或消除歧义的能力),使用对数概率 (MCQA) 非常有效。

对于测试模型流畅性、推理或回答问题能力的任务,使用 QA 生成非常有效。

选择 prompt

Prompt 设计关键问题:

MCQA 或 QA 任务的通用 prompt 设计范式一般包含以下几个部分:

定义 prompt 时需要注意:

选择评估指标

如果你关注 对数概率 评估,那么你期望的度量指标会很简单:准确率 (选择最佳选项的频率)。如果在这个基础上你还想要进行标准化 (通过长度、字符、token 或 PMI),那么度量指标就会变成困惑度 (perplexity)、召回率或 F1 分数。

对于 生成式 评估,你期望的度量指标范围会更广。为此你需要:

    确定生成结果的度量顺序,是直接拿生成结果比较,还是先使用某种方式进行标准化。

确定生成结果与参考答案的比较方式。你可以采用任意的比较方法。评估匹配程度的有:精确匹配、前缀匹配等;评估摘要和翻译能力的有:ROUGE、BLEU、n-gram 等。更多评价指标可以点击这个页面查看,我会在后续更新关于在何时使用哪种指标的章节。

查看更多评价指标https://github.com/huggingface/lighteval/wiki/Metric-List

总的来说,选择哪种评价指标取决于你的任务内容。对于某些领域 (如医疗、聊天机器人),你可能不想要评估平均性能,而是需要评估 最差表现 (如医疗知识输出质量、如果输出不实的后果等)。( 可以查看这篇博客深入了解 )

博客链接https://ehudreiter.com/2024/07/10/challenges-in-evaluating-llms/

智能新任务:功能性测试是什么?

对于代码领域,显然仅评估生成代码的语义是不够的,必须测试代码实际运行情况。所以需要专门设计一个功能性测试:对于给定 prompt 生成的代码段,测试并评估其是否能正确通过单元测试。

这种功能性测试方法极具前景,因为:

不过很多新奇的想法需要一些创造性的工作才能实现!

IFEval 是一个不错的例子,它是用来测试模型指令遵循能力的评估基准,通过创建多个格式化指令 ( 例如:添加指定数量的特殊符号,仅将一句话字母大写,等等 ) 并严格测试生成结果的遵循与否。功能性测试的想法仍需更多的工作来扩展到其他的特征测试上!


英文原文:https://github.com/huggingface/evaluation-guidebook/blob/main/translations/zh/contents/automated-benchmarks/designing-your-automatic-evaluation.md

原文作者: clefourrier

译者: SuSung-boy

审校: adeenayakup

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

自动评估 数据集 推理方法 Prompt设计 评估指标
相关文章