自动评估基准 | 设计你的自动评估任务

news/2024/12/26 21:16:50/文章来源:https://www.cnblogs.com/huggingface/p/18634204

设计你的自动评估任务

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

  • 基础概念
  • 设计你的自动评估任务
  • 一些评估测试集
  • 技巧与提示

选择数据集

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

使用现有的数据集

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

数据集需要注意的问题

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

  • 样本是否经过其他标注员或作者的审核?
    你需要先弄明白:

    • 不同标注员标注结果是否一致?
    • 完整数据集是否经过作者审核?
      标注员通常不是目标语言的母语使用者(例如 AWS Mechanical Turk),否则可能会出现拼写错误、语法错误或无意义的答案。
  • 是否给标注员提供了明确的数据创建指导?
    换句话说,数据集样本间的标注标准是否一致?

检查样本

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

  • 检查质量
    • 问题是否明确且不含歧义?
    • 对应的回答是否正确?( 例如:TriviaQA 的每个问题通常包含多个标准答案,有时这些答案会相互冲突。 )
    • 信息是否完整?( 例如: MMLU 有许多问题中缺少参考示意图。 )
  • 检查与任务相关性
    • 样本问题是否是 LLM 特定评估任务的问题类型?
    • 样本是否与测试用例相关?

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

设计自己的数据集

有 3 种设计方法:

整合数据

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

人工标注

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

合成数据

  • 使用 LLM 合成
    这部分可以参考 HF 员工的 Cosmopedia 博客!虽然此篇主要研究如何构建训练集,但想法和技术同样适用于构建测试集。
    合成的测试集仍需手动检查 (遵循上文步骤)。

  • 基于规则合成
    如果任务允许,这个绝佳的方法几乎可以无限获取测试样本,并且避免数据污染。
    参考 NPHardEval,DyVal,MuSR, BabiQA 等。

选择推理方法

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

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

  • 优势:
    • 可以保证所有模型都能获取正确答案。
    • 能够提供模型 “置信度” 代理 (以及校准)。
    • 评估速度快,尤其是单 token 预测任务时 (选择索引 A/B/C/D 或 Yes/No 等)。
    • 允许获取小模型在任务表现上的信号。
  • 劣势:
    • 可能高估小模型的表现。如果不做限制,会使得模型生成的内容超出可选范围。
    • 估结果可能不具代表性。一些模型 倾向于按多项选择的顺序生成特定选择。

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

  • 优势:
    • 与人类关心的点一致,即 LLM 生成文本是否流畅的能力。
  • 劣势:
    • 可能存在评分困难 (见下面的 度量标准 部分)。
    • 成本比对数似然评估稍高,尤其是需要采样的任务。

选择 prompt

Prompt 设计关键问题:

  • 提供给模型的关于任务的信息量大小
  • 如何向模型提供信息

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

  • 任务 prompt (可选):描述任务。
  • 上下文:为问题提供额外的背景信息。
    • 例如: 对于内容总结或信息提取任务,可以提供内容来源
  • 问题:prompt 的核心内容。
  • 对于多项选择评估任务,可以增加选项。
  • 连接词 (问题上下文选项等)。

定义 prompt 时需要注意:

  • 在语义等价的 prompt 中,即使非常微小的变化也可能导致巨大差异的结果 (详见 Troubleshooting reproducibility 的 Different prompt 部分),并且 prompt 格式也可能对特定模型的输出造成影响。
    • 如何缓解这一问题:
      • 高成本方法:使用不同的 prompt 变体进行多次评估。
      • 低成本方法:使用多种 prompt 格式分别分配给多个等效难度的测试样本进行单次评估。
  • 在 prompt 中提供示例可以帮助模型输出遵循预期格式,示例可以通过连接词添加至 prompt。
  • 注意模型可能倾向于对特定的 prompt 格式过拟合。
    • 这篇论文 对此有更详尽的探讨,文中展示了一些模型因在测试集 格式 上过拟合而导致的评估分数过高的情况。
    • 我们特别观察到,在 Open LLM Leaderboard 2 上, Llama 3.2 和 Qwen 2.5 出于这个原因已经不再提供 few-shot 示例的 prompt 格式。
  • 对于一些测试任务的指标,你可能希望模型的输出限制在一个小范围。
    可以跳转 Model inference and evaluation 页面的 Constraining model outputs 部分了解更多信息。

选择评估指标

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

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

  1. 确定生成结果的度量顺序,是直接拿生成结果比较,还是先使用某种方式进行标准化。
    • 标准化如果设计不当,评估结果会有失偏颇 (参考这篇 博客)。但总的来说,它们都能在任务层面提供信号。
    • 标准化对某些特定任务 (例如数学能力评估) 非常重要,因为你可能需要从格式化输出中提取有效的结果。
    • 如果你想要通过添加机制 (如思维链) 来评估准确率,那么标准化同样重要,因为你需要将推理轨迹从实际结果中去除。
  2. 确定生成结果与参考答案的比较方式。
    你可以采用任意的比较方法。评估匹配程度的有:精确匹配、前缀匹配等;评估摘要和翻译能力的有:ROUGE、BLEU、n-gram 等。更多评价指标可以点击 这个页面 查看,我会在后续更新关于在何时使用哪种指标的章节。

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

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

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

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

  • 使得生成测试用例更容易 (大部分情况下都可以基于规则生成测试用例)
  • 减少过拟合
  • 可以评估模型的特定主动能力

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

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


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

原文作者: clefourrier

译者: SuSung-boy

审校: adeenayakup

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/859462.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字孪生-智能制造

1、数字企业内循环:打造端到端的数字化应用体验 2、GARTNER分层架构 3、企业数字化架构 4、数字企业的两大核心特征 6、产品数字主线赋能企业转型 7、数字主线关键技术:基于统一架构构建产品全量数字模型 8、闭环数字化解决方案 9、基于数字主线的设计-仿真-试验协同 10、产品数…

C# WPF PrintDialog 打印(3)

前面https://www.cnblogs.com/yinyu5/p/18634080使用PrintDocument方法打印了Canvas,这里打印下面的DataGrid列表内容:这里DataGrid的数据源是DataTable,后台代码:1 private void PrintDocument_DataTable_Method(string Title, DataTable dataTable)2 {3 …

【JAVA代码审计】记一次某java类的cms最最最详细的代码审计

前言 刚好遇到一个授权的渗透是通过该cms实现getshell,所以顺便审计一下java类的cms,这个管理系统是一个内容管理系统,下载地址 https://gitee.com/oufu/ofcms/tree/V1.1.3/tomcat下载地址 https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.78/bin/apache-tomcat-8.5.78-wind…

12.26日每日总结

昨天在调试51单片机的串口时,发现芯片手册上有一句话,在使用定时器1产生串口的波特率时,定时器1就不能使能了。不是不能用,是直接不让使能了,使能后会出错,导致发送的数据不稳定。 今天继续研究了触摸滑条,发现滑条输出的值为从小到大,如下图所示的样子,这就导致从最上…

Minio使用教程

Minio MinIO 是一个高性能的对象存储服务器,用于构建云存储解决方案。它使用Golang编写,专为私有云、公有云和混合云环境设计。它是兼容Amazon S3 API的,并可以作为一个独立的存储后端或与其他流行的开源解决方案(如Kubernetes)集成。 MinIO 允许你存储非结构化数据(如图…

人工智能基础导论

人工智能基础导论 绪论 人工智能的主要流派符号主义(逻辑主义) 连接主义(仿生学派) 行为主义(控制论)符号主义:数理逻辑→逻辑演绎系统→启发式算法→专家系统→知识工程理论与技术(主流)缺点:符号主义的核心是知识表示,那么对于像感知、形象思维、模式识别等问题,…

搭建 npm 私服

背景 准备搭建一个自己的网站,放些平时练手的 demo,如果是不同项目,想要保持风格一致,或是要用到一些工具方法,就要在每个项目复制一份,不是很好维护,于是就想要搭建一个自己的 npm 私服 安装 verdaccio 1 安装 verdaccio,这是一个开源的私有 npm 注册中心,要注意的是…

C# WPF PrintDialog 打印(2)

前面https://www.cnblogs.com/yinyu5/p/18633910使用PrintVisual方法只打印了可见部分的元素,所以这里改为使用PrintDocument方法来进行打印。 需要引用System.Printing.dll 界面代码:1 <Window x:Class="WpfApp123.MainWindow"2 xmlns="http://sc…

Redis可视化工具推荐:Another Redis Desktop Manager使用教程与下载

Redis是一种高性能的Key-Value数据库,被广泛应用于缓存、消息队列等场景。尽管Redis的命令行工具功能强大,但对于许多开发者而言,使用一款可视化工具可以大大提高操作效率和用户体验。今天为大家推荐一款功能强大的Redis可视化工具——Another Redis Desktop Manager,并提供…

RISC-V篇-VSCode+qemu+gdb可视化调试Linux Kernel

https://zhuanlan.zhihu.com/p/4185359719本文发布于微信公众号:Linux底层小工,欢迎关注,获取更多原创技术文章! “VSCode+qemu+gdb调试OpenSBI确实很爽,那怎能少了调试kernel呢~~” 01 VScode调试MMU开启之前的kernel 有了调试OpenSBI的基础,再调试kernel,那设置相当简…

中考阅读理解深入逻辑分析-006 A Streams Journey to the Sea 一条小溪通往大海的旅程

文章正文 A little stream ran down from a high mountain far, far away through many villages and forests, until it reached a desert. The stream then thought,“I’ve been through countless difficulties. I should have no problem crossing the desert!”But as sh…

2024-2025-1 20241322 《计算机基础与程序设计》第十四周学习总结

2024-2025-1 20241322 《计算机基础与程序设计》第十四周学习总结 作业信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14这个作业的目标 自学教材《C语言程序设计》…