如何对大模型进行评估上

2023-12-19

大模型评估指标

对于AI大模型,可以从哪些方面来进行评估呢?要进行大模型评估,首先需要熟悉有哪些评估指标。大模型有哪些评估指标呢?先从查看开源大模型的官网开始,看看开源大模型给出了哪些评估指标数据。下图是Qwen、Llama的评估指标

下图是Qwen官网给出的评估指标数据,可以看到,Qwen用了多个数据集对大模型进行了评估。

Llama官网给出的评估指标数据,主要是针对代码编写能力,这里使用了HumanEval,MBPP和Multingual Human Eval指标。

那么上面的各项指标具体代表什么含义呢?背后使用了什么数据集进行评估呢?接下来将一一介绍。

评估指标含义

MMLU: mmlu数据集 包含来自各个知识领域的多项选择题。该数据集涵盖了人文学科、社会科学、自然科学以及其他一些对某些人学习至关重要的领域。数据集包括57个任务,其中包括初等数学、美国历史、计算机科学、法律等内容。通过这个数据集可以评估大模型在不同领域的推理能力。

CMMLU :CMMLU数据集是一个综合性的中文评估基准,由MBZUAI、上海交通大学、微软亚洲研究院共同推出,在评估语言模型在中文语境下的知识和推理能力方面极具权威性。 一句话理解就是中文版本的MMLU。

C-Eval :C-Eval是一个全面的中文基础模型评估套件,它包含了13948个多项选择题,涵盖了52个不同的学科和四个难度级别, 一句话理解就是中文版本的mmlu

GSM-8K :GSM8K是由人类问题作者创建的8.5K高质量语言多样化小学数学单词问题的数据集,通过这套数据集可以评估大模型的数学推理运算能力。下图是考察大模型8大方面能力,例如写作,人文,推理,角色扮演等,众所周知,数学运算是所有大模型能力最弱的部分。GSM8K数据集就是专门用来评估大模型数学运算能力的。

HumanEval: HumanEval是一个用于评估代码生成能力的数据集,由OpenAI在2021年推出。 这个数据集包含164个手工编写的编程问题,每个问题都包括一个函数签名、文档字符串(docstring)、函数体以及几个单元测试。 这些问题涵盖了语言理解、推理、算法和简单数学等方面。

MBPP :MBPP(Mostly Basic Programming Problems)是一个数据集,主要包含了974个短小的Python函数问题,由谷歌在2021年推出,这些问题主要是为初级程序员设计的。 数据集还包含了这些程序的文本描述和用于检查功能正确性的测试用例。一句话理解,和HumanEval一样,也是用于评估大模型代码生成能力的数据集。

BBH :一个包含23个具有挑战性的 BIG-Bench 任务的套件,我们称之为 BIG-Bench Hard(BBH)。这些任务是先前语言模型评估未能超越平均人类评分者的任务。

Multi-HumanEval: 包含多种编程语言的数据集,一句话理解就是HumanEval只包含了python的编程问题,multi-humaneval包含的多种编程语言,例如java,go,javascript等等。

HumanEval-X :HumanEval-X 是一个用于评估代码生成模型的多语言能力的基准测试。 它包含了820个高质量的人工制作的数据样本(每个样本都包含测试用例),涵盖了Python、C++、Java、JavaScript和Go这五种编程语言,可用于各种任务,如代码生成和翻译。一句话理解:HumanEval-X数据集和Multi-HumanEval数据集作用相同,只是数据集推出的机构不同而已。

如果完成评估

在了解了评估指标背后的数据集含义后,如何通过数据集完成评估呢?从实现评估的纬度看,上面的数据集可以分为3类。

选择题类型的数据集

第一类是选择题类型,例如mmlu,cmmlu,c-eval等都属于这种类型。对于选择题类型的评估数据。原理是:将问题输入给大模型,大模型返回的选择题答案与正确答案进行比较,正确答案的占比作为评估数据的指标值。上面的5-shot指:在输入问题给大模型时,给出5个参考样例。实际每个数据集不同类型的问题中都split出了test/validation/train/dev数据集,其中dev数据集只有5条,这5条通常用于shot数据。具体如下图所示,上面提到的所有数据集都可以在 Huggingface 上查看到。

代码编写类型的数据集

第二类是代码编写类型的数据集,这里评估的原理是:每一条数据中都带了单元测试,大模型编写的代码与数据集中单元测试进行组合,如果单元测试通过,则认为编写的代码正确。当然,在计算Pass@k值的时候,并不是简单使用通过单元测试的量/总数据集的百分比来计算的。Pass@k有个详细的计算公式,具体如下所示,这里暂不会对公式的计算过程进行详细介绍,在后面源代码解释部分,会详细说明该公式的计算过程。下图是pass@k的计算公式。

数学题目类型

第三类是从大模型生成的response中提取答案,例如GSM-8K。对于数学类运算问题,在输入给大模型的input text中,通常都会添加step by step的提示语信息。这样,大模型会生成一个计算数学问题的推演过程,在进行评估时,需要从response中提取出最终的答案。然后,和数据集中的正确答案进行对比,从而得到大模型在数学方面的能力分数。

总结而言,使用三种不同类型数据集,在编写脚本进行评估时,有三种范式,具体如下:

上面只观察了Qwen和Llama大模型公布的评估指标,那还有其他常用大模型评估指标么?我们再来看看其他大模型,例如 BaichuanCodeGeeX2

下图是Baichuan官网给出的一些评估指标,这里使用的还是mmlu和c-eval数据集,只是将数据集中的数据进行了进一步的细分,来观察不同纬度的得分。

另外,Baichuan模型的官网还使用了 Gaokao 和AIGEval的数据集进行评估,这两个数据集都是选择题类型,所以,从实现评估脚本的纬度来看,和mmlu评估方式一样,属于第一种类型。

CodeGeeX2是一款专门用于代码生成的大模型,如下图所示,官网给出的指标主要是pass@1,pass@10,pass@100等指标。属于上面第二种类型。

其中,HumanEval-X数据集是一个用于评估代码生成模型的多语言能力的基准测试。 它包含了820个高质量的人工制作的数据样本(每个样本都包含测试用例),涵盖了Python、C++、Java、JavaScript和Go这五种编程语言,可用于各种任务,如代码生成和翻译等。同 multi-humaneval数据集作用相同。

以上就是对大模型评估的理论介绍,下一篇博客将从源代码实现层面出发,一步步分析如何通过python脚本调用LLM生成这些指标。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对大模型进行评估上 的相关文章

随机推荐

  • 将yolo格式转化为voc格式:txt转xml(亲测有效)

    1 文件目录如下所示 对以上目录的解释 1 dataset下面的image文件夹 里面装的是数据集的原图片 2 dataset下面的label文件夹 里面装的是图片对应得yolo格式标签 3 dataset下面的Annotations文件夹
  • 集成测试:确保软件系统无缝协同的关键

    摘要 本文将详细介绍集成测试的概念 目的 方法和实践 通过深入探讨集成测试的重要性 以及如何有效地进行集成测试 帮助读者更好地理解和应用集成测试技术 提高软件系统的质量和稳定性 一 引言 随着软件开发过程的不断演进 软件系统变得越来越复杂
  • 各种免费的格式转换工具

    PDF转CAD或其它 Zamzar video converter audio converter image converter eBook converter
  • Arraylist与LinkedList有什么区别?

    Arraylist与LinkedList有什么区别 一个工作4年的程序员去某互联网公司面试 被问到了这个问题 如果大家不知道这个问题该怎么回答 可以在文章尾端扫码二维码领取我整理的50W字的大厂面试指南 问题分析 ArrayList和Lin
  • 模块测试:确保软件质量的关键步骤

    引言 在软件开发过程中 模块测试是确保软件质量的关键环节 通过模块化的设计和测试方法 可以提高开发效率 降低错误率 并最终提供稳定可靠的软件产品 本文将介绍模块测试的概念 重要性以及实施步骤 帮助读者了解如何有效地进行模块测试 一 什么是模
  • 5.docker容器及相关命令

    docker中的容器实际上就是宿主机中的一个进程 目录 1 创建并启动容器 docker run 1 1 如果没有指定的镜像的话 docker会尝试从源拉取 1 2 给容器起名字 name 1 3 交互方式启动 i 与弹出客户端 t 1 4
  • 软件测试之威胁分析:保护您的应用程序免受潜在风险的侵害

    引言 在当今数字化时代 软件已经成为我们日常生活和工作中不可或缺的一部分 然而 随着软件的复杂性和规模不断增加 软件测试的重要性也日益凸显 本文将重点介绍软件测试中的威胁分析 帮助您了解并应对潜在的风险 确保您的应用程序的安全性和稳定性 一
  • MCU平台下确定栈空间大小的方法

    本文介绍MCU平台下确定栈空间大小的方法 通常使用IDE开发MCU程序在生成Image文件时 Image文件被划分为代码区 数据区 BSS区 堆区 栈区 其中 代码区 数据区 BSS区空间大小由编译器最终决定 对于MCU 堆区一般设置为0
  • leetcode 560. 和为 K 的子数组(优质解法)

    代码 class Solution public int subarraySum int nums int k int length nums length key 表示前缀和 value 表示个数 HashMap
  • AI创艺术之美:摄影绘画的未来已来

    前言 AI 与摄影绘画 在这个数字化时代的浪潮中 人工智能技术以其惊人的创造力和创新性席卷全球 从智能助手到自动驾驶 从自然语言处理到机器学习 AI正日益成为我们日常生活和各个领域不可或缺的一部分 摄影和绘画领域也不例外 AI技术为我们提供
  • 股指期权开通要什么条件?

    股指期权是一种金融衍生工具 它赋予持有者在未来某一特定日期按照约定的价格买入或卖出标的资产的权利 对于投资者来说 开通股指期权账户需要满足一定的条件 那么股指期权开通要什么条件 本文来自 财顺期权 开通股指期权账户需要的条件是 申请前20个
  • 一网打尽目前常用的聚类方法,详细介绍了每一种聚类方法的基本概念、优点、缺点!!

    目前常用的聚类方法 1 K 均值聚类 K Means Clustering 2 层次聚类 Hierarchical Clustering 3 DBSCAN聚类 DBSCAN Clustering 4 谱聚类 Spectral Cluster
  • 小程序项目基于微信点单小程序系统

    前言 本微信点单小程序是根据当前的实际情况开发的 在系统语言选择上我们使用的Java语言 数据库是小巧灵活的MySQL数据库 框架方便使用的是当前最主流的SPRING BOOT框架 本系统的开发可以极大的满足了人们在线点单的需求 微信点单小
  • 期权有杠杆吗?在哪里看期权有多少倍杠杠?

    期权有杠杆吗 在哪里看期权有多少倍杠杠 期权本身没有杠杆 期权合约自带杠杆 期权买方只需要缴纳较少的权利金就可以获得更高价值的标的资产波动所带来的收益 但是期权卖方不需要缴纳保证金 期权卖方需要付出保证金才可以建仓 这是因为期权卖方需要履行
  • 如何对大模型进行评估下

    如果从实现评估的纬度来分 可以将不同类型的评估分为三类 具体如下所示 更多理论的详细信息可以参见博客 如何对大模型进行评估上 接下来就从第一种类型出发 看看评估脚本是如何实现的 这里分析的源代码是 Qwen的评估脚本 如何使用选择题类型数据
  • 新书推介——《AI摄影绘画与PS优化从入门到精通》

    在这个数字化时代的浪潮中 人工智能技术以其惊人的创造力和创新性席卷全球 从智能助手到自动驾驶 从自然语言处理到机器学习 AI正日益成为我们日常生活和各个领域不可或缺的一部分 摄影和绘画领域也不例外 AI技术为我们提供了前所未有的创作和表达方
  • PyCharm的环境配置和使用

    最近要开发python项目 用到了编辑器PyCharm 这款工具用起来还是很方便的 自带代码提示功能和代码格式化 报错信息提示 调试代码很方便 我用的软件版本是 PyCharm 2021 3 2 Community Edition 安装完
  • 什么是虚值期权?什么是深度虚值期权?

    在期权市场里有一种合约的价格往往比较便宜 它就是虚值期权 也是最受欢迎的期权之一 虚值期权也就是高杠杆和波动被世人所爱 久闻的一日192倍行情就是出自于虚值期权 下文科普什么是虚值期权 什么是深度虚值期权 一 虚值期权是什么 虚值合约因为价
  • 基于Java的旅游路线系统网站

    前言 本基于Java web的旅游路线系统是根据当前我国旅游的大环境相关的内容实际情况开发的 在系统语言选择上我们使用的Java语言 数据库是小巧灵活的MySQL数据库 本系统的开发可以极大的提高旅游方面的管理 本基于Java web的旅游
  • 如何对大模型进行评估上

    大模型评估指标 对于AI大模型 可以从哪些方面来进行评估呢 要进行大模型评估 首先需要熟悉有哪些评估指标 大模型有哪些评估指标呢 先从查看开源大模型的官网开始 看看开源大模型给出了哪些评估指标数据 下图是Qwen Llama的评估指标 下图