LLMs:MMLU基准(大规模多任务语言理解)的简介(MMLU-ZS/MMLU-FS)、安装、使用方法之详细攻略

目录

MMLU基准的简介

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

MMLU基准的安装

1、数据集下载

MMLU基准的使用方法

1、基础用法

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

2、进阶用法

(1)、QLoRA中的MMLU评估代码


MMLU基准的简介

2020年9月7日,Dan Hendrycks, Collin Burns, Steven Basart等人提出了一种新的测试方法,用于衡量文本模型的多任务准确性。该测试涵盖了57个任务,包括基本数学、美国历史、计算机科学、法律等多个领域。为了在这个测试中获得高准确性,模型必须具备广泛的世界知识和问题解决能力。
         我们发现,尽管大多数最近的模型准确率接近随机猜测,但最大的GPT-3模型平均提高了近20个百分点的准确率。然而,在这57个任务中的每一个任务上,最好的模型仍然需要大幅改进,才能达到专家级的准确性。模型的性能也存在不平衡,经常不知道自己的错误。更糟糕的是,它们在一些社会重要的主题(如道德和法律)上的准确率仍然接近随机。通过全面评估模型在学术和专业理解上的广度和深度,我们的测试可以用于分析模型在多个任务上的表现,并发现重要的不足之处。
         MMLU(Massive Multitask Language Understanding,大规模多任务语言理解)是一个由Hendrycks等人在《Measuring Massive Multitask Language Understanding》中提出的新基准,旨在通过仅在零样本和少样本设置下评估模型来衡量预训练期间获得的知识。这使得基准更具挑战性,更类似于我们评估人类的方式。该基准涵盖了57个科目,包括STEM(科学、技术、工程、数学)、人文科学、社会科学等领域。它的难度从初级水平到高级专业水平不等,测试的内容既涵盖世界知识,又涉及问题解决能力。科目涵盖传统领域(如数学和历史)以及更专业的领域,如法律和伦理学。基准的细粒度和广度使其能够发现模型的盲点。

官网:https://paperswithcode.com/dataset/mmlu

大模型排行榜:https://paperswithcode.com/sota/multi-task-language-understanding-on-mmlu

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

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

MMLU-ZS

"MMLU-ZS"代表"Massive Multitask Language Understanding - Zero-Shot"(零样本)。在MMLU基准中,MMLU-ZS是指在没有进行任何额外训练的情况下,通过零样本学习来评估模型的性能。在这种设置下,模型需要在没有之前见过的任务或领域的情况下进行推理和理解。

MMLU-ZS(Zero-Shot MMLU)是指零样本MMLU。这意味着模型在训练阶段没有接触过MMLU-ZS数据集中的示例。通过在这个子集上评估模型的性能,可以测试模型在新领域或未知主题下的语言生成和理解能力。

MMLU-FS

"MMLU-FS"代表"Massive Multitask Language Understanding - Few-Shot"(少样本)。在MMLU基准中,MMLU-FS是指通过少量样本进行学习来评估模型的性能。模型在这种设置下需要在只有极少数量的训练示例的情况下进行推理和理解。

MMLU-FS(Five-Shot MMLU)是指五样本MMLU。这意味着模型在训练阶段接触了MMLU-FS数据集中的少量示例(通常是五个示例)。通过在这个子集上评估模型的性能,可以测试模型对少量训练样本的学习和泛化能力。

意义

通过使用MMLU-ZS和MMLU-FS进行评估,可以更好地了解模型在没有大量训练数据的情况下的泛化能力和适应能力。这使得评估更加接近真实世界的应用场景,并揭示了模型的弱点和改进的方向。

MMLU基准的安装

1、数据集下载

地址:https://paperswithcode.com/dataset/mmlu

MMLU基准的使用方法

1、基础用法

(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、进阶用法

(1)、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',})

LLMs:MMLU基准(大规模多任务语言理解)的简介(MMLU-ZS/MMLU-FS)、安装、使用方法之详细攻略相关推荐

  1. Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略

    Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略 目录 双下划线介绍 1.关于双下划线的函数或方法或属性 双下划线介绍 1.关于双下划线的函数或方法或属性 __name_ ...

  2. NLP:GLUE和SuperGLUE基准的简介、任务分类、使用方法之详细攻略

    NLP:GLUE和SuperGLUE基准的简介.任务分类.使用方法之详细攻略 目录 GLUE和SuperGLUE基准的简介 GLUE和SuperGLUE基准的具体任务 GLUE task SuperG ...

  3. Database之SQLSever:SQL命令实现理解索引、规则、默认概念及其相关案例之详细攻略

    Database之SQLSever:SQL命令实现理解索引.规则.默认概念及其相关案例之详细攻略 目录 SQL命令实现理解索引.规则.默认概念 索引 规则

  4. Python:python语言中与时间有关的库函数简介、安装、使用方法之详细攻略

    Python:python语言中与时间有关的库函数简介.安装.使用方法之详细攻略 目录 与时间有关的库函数 案例应用 1.打印程序块前后运行时间 #T1.采用time库

  5. Python语言学习之字母D开头函数使用集锦:del、dict使用方法之详细攻略

    Python语言学习之字母D开头函数使用集锦:del.dict使用方法之详细攻略 目录 del.dict使用方法 del dict()    #创建字典 del.dict使用方法 del a=1,  ...

  6. Python语言学习之常见语句命令那些事:python和常见语句命令(条件语句、pass语句)使用方法之详细攻略

    Python语言学习之常见语句命令那些事:python和常见语句命令(条件语句.pass语句)使用方法之详细攻略 目录 Python常见语句命令 1.python的条件语句 2.Python之pass ...

  7. Python语言学习之文件格式后缀那些事:python和常见各种文件格式后缀介绍、使用方法之详细攻略

    Python语言学习之文件格式后缀那些事:python和常见各种文件格式后缀介绍.使用方法之详细攻略 目录 常见各种文件格式后缀介绍 .pyc文件介绍 .py文件介绍 .pxd 文件 .pyd 文件 ...

  8. Python语言学习之数值、小数、空格那些事:python和数值、小数、空格的使用方法之详细攻略

    Python语言学习之数值.小数.空格那些事:python和数值.小数.空格的使用方法之详细攻略 目录 Python与数值那些事 1.python保留两位小数/保留小数点位数 Python去掉空格的方 ...

  9. Python语言学习之文件夹那些事:python和文件夹的使用方法之详细攻略

    Python语言学习之文件夹那些事:python和文件夹的使用方法之详细攻略 目录 Python与文件夹那些事 1.创建/删除文件/文件夹 1.创建文件夹

最新文章

  1. 【Cocosd2d实例教程三】Cocos2d瓦片地图的导入
  2. (原創) 我有牙周病了 (日記)
  3. 【JLOI2013】地形生成
  4. accsess转成mysql语句_轻松教你SQL转ACCESS
  5. 黄章diss小米9:贱人贱己贱行业 之后秒删
  6. window两个窗口上下摆放_滑动窗口技巧
  7. pandas多行合并一行_Pandas函数妙用
  8. 成立一年 百度搜索公司迎来首任 CTO
  9. Pycharm汉化包+操作步骤
  10. Charles的使用方法
  11. postman下载与汉化
  12. ubuntu下QQ无法登录解决。
  13. svchost是什么程序
  14. C++ std::vector 的 emplace_back 能否完全取代 push_back
  15. 计算机及应用课程实验,计算机网络及应用课程实验指导书
  16. 汽车自动驾驶级别分类
  17. ROS双臂定点抓取问题记录
  18. 豪能转债上市价格预测
  19. Navicat 12 for MySQL激活方法(注册机)
  20. 千万不要照着镜子洗头发

热门文章

  1. making sure all `forward` function outputs participate in calculating loss.
  2. 亿客CRM系统如何维护好客户关系?
  3. udp数据报接收流程总结 (转)
  4. 基于百度地图的电子围栏设置工具
  5. 新课标下的小学语文教育教学方法初探
  6. Python——结束语句
  7. 微信小程序顶部标题栏与胶囊对齐
  8. 关于Spring AOP中切点修饰符@annotation、@args与args约束说明
  9. mobiscroll 的详细用法
  10. CUDA out of memory.(已解决)+Windows和Linux查看占用显存的程序