【评测】MMLU(大规模多任务语言理解)简介(MMLU-ZS/MMLU-FS)

文章介绍了MMLUBenchmark,一个用于衡量多任务语言理解模型泛化能力和知识迁移的工具,特别关注零样本(MMLU-ZS)和少样本学习(MMLU-FS)。文章还提供了使用预训练语言模型如BERT进行评估的方法示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官网MMLU Dataset | Papers With Code

大模型排行榜MMLU Benchmark (Multi-task Language Understanding) | Papers With Code

两种特定的测试设置—衡量泛化能力知识迁移能力:MMLU-ZS、MMLU-FS

         MMLU基准的目标是揭示模型在各个任务上的盲点和不足,并推动模型在多任务语言理解方面的进一步改进和发展。mmlu-zs和mmlu-fs测试是MMLU基准中的重要组成部分,用于衡量模型在零样本和少样本学习中的能力。
         在MMLU基准中,涉及到了两种特定的测试设置,即mmlu-zs(zero-shot)和mmlu-fs(few-shot)。这些测试设置旨在模拟零样本学习和少样本学习的情况,更接近人类学习的方式。mmlu-zs测试涉及在没有任何训练数据的情况下对模型进行评估,而mmlu-fs测试涉及在有限的训练数据情况下对模型进行评估。
         这两种测试设置旨在衡量模型在零样本和少样本情况下的泛化能力和知识迁移能力。

===========================================================

MMLU基准的安装

1、数据集下载

地址:MMLU Dataset | Papers With Code

MMLU基准的使用方法

1、使用MMLU基准对一个预训练的语言模型进行评估


# 何使用MMLU基准对一个预训练的语言模型进行评估
import transformers
from transformers import pipeline
 
# 加载预训练的语言模型和标记器
model_name = "bert-base-uncased"  # 可根据需要选择合适的预训练模型
model = transformers.AutoModelForMaskedLM.from_pretrained(model_name)
tokenizer = transformers.AutoTokenizer.from_pretrained(model_name)
 
# 定义要评估的任务和输入文本
tasks = [
    "mathematics",
    "history",
    "computer science",
    "law",
    # 其他任务...
]
texts = [
    "What is the square root of 16?",
    "Who was the first President of the United States?",
    "What is the difference between CPU and GPU?",
    "What are the basic principles of contract law?",
    # 其他文本...
]
 
# 创建MMLU基准评估器
# 使用pipeline函数来执行文本分类任务,对每个任务和文本进行评估,并打印出预测的标签和分数。
mmlu_evaluator = pipeline(
    "text-classification",
    model=model,
    tokenizer=tokenizer,
    device=0,  # 可根据需要选择使用的设备
)
 
# 对每个任务和文本进行评估
for task in tasks:
    print(f"Task: {task}")
    for text in texts:
        result = mmlu_evaluator(text, task)
        print(f"Text: {text}")
        print(f"Label: {result[0]['label']}")
        print(f"Score: {result[0]['score']}")
        print("")
 

2、QLoRA中的MMLU评估代码

    if args.do_mmlu_eval:
        # 根据 args.mmlu_dataset 参数的不同值加载相应的 MMLU数据集
        if args.mmlu_dataset == 'mmlu-zs':
            mmlu_dataset = load_dataset("json", data_files={
                'eval': 'data/mmlu/zero_shot_mmlu_val.json',
                'test': 'data/mmlu/zero_shot_mmlu_test.json',
            })
            mmlu_dataset = mmlu_dataset.remove_columns('subject')
        # MMLU Five-shot (Eval/Test only)
        elif args.mmlu_dataset == 'mmlu' or args.mmlu_dataset == 'mmlu-fs':
            mmlu_dataset = load_dataset("json", data_files={
                'eval': 'data/mmlu/five_shot_mmlu_val.json',
                'test': 'data/mmlu/five_shot_mmlu_test.json',
            })

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值