【LLM评估篇】Ceval | GAIA | MMLU benchmarks

note

  • 一些大模型的评估基准benchmark:
  • 多轮:MTBench
  • 关注评估:agent bench
  • 长文本评估:longbench,longeval
  • 工具调用评估:toolbench
  • 安全评估:cvalue,safetyprompt等

常见评测benchmark

在这里插入图片描述
图源自《A Survey on Evaluation of Large Language Models》

Agent相关的评测集

一、 GAIA

《GAIA: A Benchmark for General AI Assistants》是一个面向通用AI助手能力的基准评测体系。
1.组成:里面有466个精心设计的问题,其中分为三个级别,Lv.1、Lv.2、Lv.3。
(a) Level 1 :通常不需要工具,或者最多只需要一个工具,但不超过5个步骤。
(b) Level 2:通常涉及更多步骤,大约在5到10之间,需要结合不同的工具。
© Level 3 :是一个近乎完美的总助理的问题,要求采取任意长的行动序列,使用任意数量的工具,并进入整个世界。
2. 和传统榜单区别:传统的测试一般都是数学(AIME)或者一些专业知识问答、编程等等,但是GAIA测试,里面很多都是概念简单,但是需要多步骤解决的实际问题。
3. 如何评估:使用GAIA,只需向人工智能助理给出zero-shot prompt。

二、AgentBench

AgentBench是第一个旨在评估LLM-as-Agent在各种不同环境中的表现的基准测试。它涵盖8个不同的环境(其中5个是首创,另外3个是根据已发布的数据集进行重新编译得到),以更全面地评估LLM在各种场景中作为自主代理运行的能力。
AgentBench相当于是一个通用的LLM评估框架,来评估LLM作为通用Agent在理解人类意图并执行指令、编码能力、知识获取和推理、策略决策、多轮一致性、逻辑推理、自主探索以及可解释的推理这8个方面上的能力。

三、LangChain评估

工具调用评估为主,LangChain也集成了几个基准(单工具调用、多工具调用、关系数据查询和多元数学问题)来测试LLM在规划、任务分解、函数调用和克服预训练偏差等方面的能力。

  1. 正确性(与GT相比)-这使用LLM作为判断标准。由于所有这些问题的答案都很简洁,而且相当二元,我们发现这些判断与我们自己的决定相对应。
  2. 正确的最终状态(环境)-对于打字机任务,每次工具调用都会更新世界状态。
  3. 中间步骤正确性-每个数据点都有一个最佳的函数调用序列来获得正确的答案。
  4. 所采取的步骤与预期步骤的比率——尽管选择了一组次优的工具,但代理最终可能会返回正确的答案。

四、工具学习:ToolBench

链接:https://github.com/OpenBMB/ToolBench
在这里插入图片描述

ToolBench的总体思路是基于BMTools,在有监督数据中训练大型语言模型。

1. 项目内容

ToolBench仓库中提供了相关数据集、训练和评估脚本,以及在ToolBench上微调的功能模型ToolLLaMA,具体特点为:

  1. 支持单工具和多工具方案

其中单工具设置遵循LangChain提示风格,多工具设置遵循AutoGPT的提示风格。

  1. 模型回复不仅包括最终答案,还包含模型的思维链过程、工具执行和工具执行结果

  2. 支持真实世界级别的复杂性,支持多步工具调用

  3. 丰富的API,可用于现实世界中的场景,如天气信息、搜索、股票更新和PowerPoint自动化

  4. 所有的数据都是由OpenAI API自动生成并由开发团队进行过滤,数据的创建过程很容易扩展

2. 评估方法

  • 机器评估:研究人员对每个工具随机抽取100个链步(chain steps)来构建机器评估测试平台,平均27个最终步骤和73个中间工具调用步骤,其中最终步骤的评估使用Rouge-L指标,中间步骤的评估使用ExactMatch指标进行评估。
  • 人工评估:在天气、地图、股票、翻译、化学和WolframAlpha工具中随机抽取10个query,然后评估工具调用过程的通过率、最终答案以及和ChatGPT最终答案的比较。
  • ChatGPT评估:通过ChatGPT对LLaMA和ChatGPT的答案和工具使用链进行自动评估。

3. 工具学习的研究

论文:https://arxiv.org/pdf/2304.08354.pdf
包括工具增强型和工具导向型学习,并制定了一个通用的工具学习框架:从理解用户指令开始,模型应该学会把一个复杂的任务分解成几个子任务,通过推理动态地调整计划,并通过选择合适的工具有效地征服每个子任务。

五、factool

https://github.com/GAIR-NLP/factool

以下的几个指标都是chatglm2使用到的评估指标:

MMLU

ModelAverageSTEMSocial SciencesHumanitiesOthers
ChatGLM-6B40.6333.8944.8439.0245.71
ChatGLM2-6B (base)47.8641.2054.4443.6654.46
ChatGLM2-6B45.4640.0651.6141.2351.24

Chat 模型使用 zero-shot CoT (Chain-of-Thought) 的方法测试,Base 模型使用 few-shot answer-only 的方法测试

SuperCLUE:中文通用大模型综合性评测基准

  • 项目链接:
    • SuperCLUE :https://github.com/CLUEbenchmark/SuperCLUE
    • SuperCLUE琅琊榜:https://github.com/CLUEbenchmark/SuperCLUElyb
    • 网站:https://www.cluebenchmarks.com/
  • SuperCLUE从三个不同的维度评价模型的能力:基础能力、专业能力和中文特性能力。SuperCLUE的特点包括:多个维度能力考察(3大类,70+子能力)、

自动化测评(一键测评)、广泛的代表性模型(9个模型)、人类基准。
SuperCLUE琅琊榜还有一些不同模型之间的对战获胜数据(如下图),考虑到gpt3.5训练语料中中文语料不多,比某些国产大模型要稍逊色也是可以理解的:
在这里插入图片描述

知识评估:C-Eval

C-Eval

项目链接:
如果是做题问答,可以用Ceval指标,chatglm2-6b项目中就有代码
我们选取了部分中英文典型数据集进行了评测,以下为 ChatGLM2-6B 模型在 MMLU (英文)、C-Eval(中文)、GSM8K(数学)、BBH(英文) 上的测评结果。在 evaluation 中提供了在 C-Eval 上进行测评的脚本。

ModelAverageSTEMSocial SciencesHumanitiesOthers
ChatGLM-6B38.933.348.341.338.0
ChatGLM2-6B (base)51.748.660.551.349.8
ChatGLM2-6B50.146.460.450.646.9

Chat 模型使用 zero-shot CoT 的方法测试,Base 模型使用 few-shot answer only 的方法测试

类似的知识类评估基准还有:

GSM8K

8.5k高质量的小学数学应用题

ModelAccuracyAccuracy (Chinese)*
ChatGLM-6B4.825.85
ChatGLM2-6B (base)32.3728.95
ChatGLM2-6B28.0520.45

所有模型均使用 few-shot CoT 的方法测试,CoT prompt 来自 http://arxiv.org/abs/2201.11903

* 我们使用翻译 API 翻译了 GSM8K 中的 500 道题目和 CoT prompt 并进行了人工校对

BBH

ModelAccuracy
ChatGLM-6B18.73
ChatGLM2-6B (base)33.68
ChatGLM2-6B30.00

所有模型均使用 few-shot CoT 的方法测试,CoT prompt 来自 https://github.com/suzgunmirac/BIG-Bench-Hard/tree/main/cot-prompts

zhenbench case

https://github.com/zhenbench/zhenbench

使用gpt进行评估模型

东南大学:https://arxiv.org/abs/2303.07992
评估框架由两个主要步骤组成:

  • 首先,受HELM[21]的场景驱动评估策略的启发,我们设计了一种基于特征的多标签注释方法来标记测试问题中涉及的答案类型、推理操作和语言。这些标签不仅有助于我们逐个分析ChatGPT的推理能力,而且它们的组合也可以帮助我们发现许多ChatGPT擅长或不擅长的潜在QA场景。
  • 然后,遵循CheckList[22]的测试规范,测试目标分为三个部分:最小功能测试(MFT)、不变性测试(INV)和方向性期望测试(DIR)。
    • 第一个反映了模型执行各种推理任务的准确性,
    • 而第二个和第三个反映了推理的可靠性。
    • 为了在INV和DIR测试中获得更多可分析的结果,我们采用了Chain-of-Thought(CoT)[5]方法,设计提示模板以建立其他测试用例。

FlagEval天秤

1. 项目内容

  • 项目链接:
    • 项目地址:https://github.com/FlagOpen/FlagEval
    • 网站:https://flageval.baai.ac.cn/
  • 由智源研究院将联合多个高校团队打造,是一种采用“能力—任务—指标”三维评测框架的大模型评测平台,旨在提供全面、细致的评测结果。该平台已提供了 30 多种能力、5 种任务和 4 大类指标,共 600 多个维度的全面评测,任务维度包括 22 个主客观评测数据集和 84433 道题目。

2. 能力框架

能力框架:刻画模型认知能力边界

  • 基础语言能力:简单理解(信息分析、提取概括、判别评价等)、知识运用(知识问答、常识问答、事实问答)推理能力(知识推理、符号推理)。
  • 高级语言能力:特殊生成(创意生成、代码生成、风格生成,修改润色等)、语境理解(语言解析、情境适应、观点辨析等)。
  • 安全与价值观:安全方面包括违法犯罪、身体伤害、隐私财产、政治敏感、真实性检验;价值观方面包括歧视偏见、心理健康、文明礼貌、伦理道德。
  • 综合能力:通用综合能力、领域综合能力。

在这里插入图片描述

具体的指标

rouge指标

ROUGE-1、ROUGE-2、ROUGE-L和 BERTScore

  • ROUGE指标是在机器翻译、自动摘要、问答生成等领域常见的评估指标。ROUGE通过将模型生成的摘要或者回答与参考答案(一般是人工生成的)进行比较计算得到得分。
  • 一般看f值,f是取了f和r的调和平均值
  • 下面的rouge包不能直接使用中文文本,需要分词后使用,如果文本长度不长时可以手动修改,如“你好吗”改为“你 好 吗”
from rouge import Rouge 

hypothesis = "the #### transcript is a written version of each day 's cnn student news program use this transcript to he    lp students with reading comprehension and vocabulary use the weekly newsquiz to test your knowledge of storie s you     saw on cnn student news"

reference = "this page includes the show transcript use the transcript to help students with reading comprehension and     vocabulary at the bottom of the page , comment for a chance to be mentioned on cnn student news . you must be a teac    her or a student age # # or older to request a mention on the cnn student news roll call . the weekly newsquiz tests     students ' knowledge of even ts in the news"

rouger = Rouge()
scores = rouger.get_scores(hypothesis, reference)
[
  {
    "rouge-1": {
      "f": 0.4786324739396596,
      "p": 0.6363636363636364,
      "r": 0.3835616438356164
    },
    "rouge-2": {
      "f": 0.2608695605353498,
      "p": 0.3488372093023256,
      "r": 0.20833333333333334
    },
    "rouge-l": {
      "f": 0.44705881864636676,
      "p": 0.5277777777777778,
      "r": 0.3877551020408163
    }
  }
]

其他人工评估指标

在这里插入图片描述
在这里插入图片描述
注:“领域适应能力”测试中的知识领域包括,代码编程、数学计算、创意写作、舆情分析、医学咨询、历史知识、法律信息、科学解释、翻译。

测评结果:
在这里插入图片描述总得分率=生成质量70%+使用与性能20%+安全与合规*10%,评估截止日期为2023年6月30日。

在这里插入图片描述
评估后的大模型选择:
在这里插入图片描述

相关排行榜

LMSYS、c-Eval、SuperCLUElyb、PubMedQA排行榜

大模型的[知识]和[推理]能力

[知识]和[推理]是两项可以显著区分大小模型的能力,其中

  • 知识型的能力是模型能力的基础,推理能力是进一步的升华
  • [推理]能力的区分度是最高的,比如说gsm8k这个数据集,GPT492分,LLaMA7b只有七分,模型每大一点基本上都是十几二十分的差距;
  • [知识]的区分度没有[推理]这么高,但也很高;这里面模型每大一个台阶基本上是五六分的差距;
  • [推理]能力小的模型基本没有,很多时候acc只有个位数;
  • [知识]能力小模型也会有一点,比如MMLU上11Bflant5也有40+;

关于英文推理能力的benchmark,可以参见https://github.com/FranxYao/chain-of-thought-hub)

Reference

[1] ROUGE: A Package for Automatic Evaluation of Summaries
[2] NLP评估指标之ROUGE
[3] 大模型评测综述:A Survey on Evaluation of Large Language Models
[4] 目前大语言模型的评测基准有哪些-某乎
[5] ChatGPT作为知识库问答系统的问答能力评测
[6] C-Eval: 构造中文大模型的知识评估基准
[7] FlagEval 天秤大模型评测体系及开放平台,打造更全面的引领性评测基准
[8] SuperCLUE琅琊榜:https://www.superclueai.com/

### 关于 Prompt、LLM 和 Memory 的概念及其关系 #### 1. **Prompt** Prompt 是指提供给大语言模型 (LLM) 的输入指令或问题,用于引导模型生成期望的输出。它可以是一个简单的句子、一个问题或者更复杂的结构化数据。Prompt 的设计质量直接影响到 LLM 输出的质量和准确性[^1]。例如,在生成一段关于人工智能的介绍时,可以使用这样的 Prompt:“请介绍一下人工智能的基本概念。”[^4] #### 2. **LLM (Large Language Model)** LLM 是一种基于深度学习技术构建的大规模语言模型,能够理解和生成自然语言文本。它的核心能力来源于大量的训练数据以及复杂的神经网络架构。LLM 能够通过分析历史数据形成所谓的“长期记忆”,即经过训练后的固定参数集合[^2]。 #### 3. **Memory (内存机制)** 在 LLM 中,“memory”通常分为两种形式:**长期记忆**与**短期记忆**。 - **长期记忆**: 来自模型本身的预训练阶段,存储的是从大量文本中学到的知识,这些知识被编码成固定的权重参数并保存下来。它们不会因为新的交互而发生改变。 - **短期记忆**: 当用户与 LLM 展开具体对话时所产生的动态信息流,则构成了短期记忆的一部分。这种类型的记忆允许 LLM 在当前会话期间保持一定的上下文连贯性,但是一旦完成某次具体的交流任务之后便会消失。 #### 它们之间的联系 - **Prompt 和 LLM:** 用户通过精心构造 Prompts 向 LLM 提供指导性的输入来获取所需的信息或创作内容;高质量的 Prompts 可以显著提升 LLM 表现效果。 - **LLM 和 Memory:** LLM 利用自己的长期记忆为基础理解世界,并借助短期记忆维护实时对话中的情境关联度。 - **Prompt 和 Memory:** 正确设置的 Prompts 不仅能激活 LLM 内部已有的长期记忆资源,还能有效利用短期记忆维持多轮对话的一致性和逻辑性。 ```python def generate_response(prompt, model): """ 使用指定的语言模型生成回复 参数: prompt (str): 输入提示符 model : 已加载好的大型语言模型实例 返回值: str: 模型返回的回答字符串 """ response = model.generate(text=prompt) return response ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山顶夕景

小哥哥给我买个零食可好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值