2024软件学院创新项目实训(8)--进阶评估

评估之模型评估,本篇博客尝试进行OpenCompass的进阶操作,进行更难更全面的评估。

OpenCompass支持很多自定义操作,无论是模型的选择还是用于评估的数据集都支持自定义,上一篇博客中进行了简单的评估,本篇博客的目标着眼于自定义模型,自定义数据集,尝试进行数据污染评估,大海捞针实验评估。

自定义模型

OpenCompass的自定义操作都依赖于配置文件,配置文件都为py文件,OpenCompass提供了很多可以直接使用的py文件,一个配置文件中要同时包含 datasets 和 models 字段。

自定义模型需要找到指定模型的路径。

from opencompass.models import HuggingFaceCausalLM
models = [
    dict(
        type=HuggingFaceCausalLM,
        # 以下参数为 `HuggingFaceCausalLM` 的初始化参数
        path='/hy-tmp/7B21/merged',
        tokenizer_path='/hy-tmp/7B21/merged',
        tokenizer_kwargs=dict(padding_side='left', truncation_side='left'),
        max_seq_len=2048,
    )
]

自定义数据集

导入相应的数据集

from mmengine.config import read_base

with read_base():
    from .datasets.ceval.ceval_clean_ppl import ceval_datasets  # 有污染标记的 ceval 数据集
    from .summarizers.contamination import ceval_summarizer as summarizer  # 输出格式整理

datasets = [*ceval_datasets]

其中的 summarizer字段用于生成最后结果的可视化展示。

数据污染评估

数据污染 是指本应用在下游测试任务重的数据出现在了大语言模型 (LLM) 的训练数据中,从而导致在下游任务 (例如,摘要、自然语言推理、文本分类) 上指标虚高,无法反映模型真实泛化能力的现象。评估方式主要有以下两种:

基于自建同分布数据的污染数据标注
from mmengine.config import read_base

with read_base():
    from .datasets.gsm8k_contamination.gsm8k_contamination_ppl_ecdd22 import gsm8k_datasets  # 包含训练、测试、参考集

datasets = [*gsm8k_datasets]
models = [
    dict(
        type=HuggingFaceCausalLM,
        # 以下参数为 `HuggingFaceCausalLM` 的初始化参数
        path='/hy-tmp/7B21/merged',
        tokenizer_path='/hy-tmp/7B21/merged',
        tokenizer_kwargs=dict(padding_side='left', truncation_side='left'),
        max_seq_len=2048,
    )
]

评测任务的程序入口为 run.py,使用方法如下:

python run.py configs/data_pollution.py

 得到结果部分如下:

dataset          version    metric       mode       internlm-7b-hf    qwen-7b-hf    yi-6b-hf    chatglm3-6b-base-hf    qwen-14b-hf    baichuan2-13b-base-hf    internlm-20b-hf    aquila2-34b-hf  ...
---------------  ---------  -----------  -------  ----------------  ------------  ----------  ---------------------  -------------  -----------------------  -----------------  ----------------  ...
gsm8k-train-ppl  0b8e46     average_ppl  unknown              1.5           0.78        1.37                   1.16           0.5                      0.76               1.41              0.78  ...
gsm8k-test-ppl   0b8e46     average_ppl  unknown              1.56          1.33        1.42                   1.3            1.15                     1.13               1.52              1.16  ...
gsm8k-ref-ppl    f729ba     average_ppl  unknown              1.55          1.2         1.43                   1.35           1.27                     1.19               1.47              1.35  ...
基于经典预训练集的污染数据标注

这部分的评估和上面过程相似,但是需要对summarizer字段进行引用和修改,但是下载的OpenCompass对这部分有所确实,导致评估难以进行,以失败告终。

大海捞针实验评估

大海捞针测试(灵感来自NeedleInAHaystack)是一种评估方法,它通过在长文本中随机插入关键信息,形成大型语言模型(LLM)的Prompt。该测试旨在检测大型模型是否能从长文本中提取出这些关键信息,从而评估模型处理长文本信息提取的能力,这可以反映LLM对长文本的理解基础能力。

该实验使用给定的数据集对特定的模型进行评估,但是在评估过程中,执行很慢,并且不断报错缺失模组,最终失败。这里仅展示其他模型成功的案例 。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值