一文了解大模型性能评测数据、指标以及框架

笔者最近在对比浏览各种大模型性能时,发现不少机构发布的大模型成绩不是那么详细。排行榜仅存在数据集和分数,对于大多数人来说,可能就看个分数高低就忽略了。因此,本文整理了一些常见的评测数据集和指标说明,希望对于普通读者有所帮助。

常见评测数据集

名称 描述 类别 语言 评估指标 数量 发布机构
MMLU 一个涵盖 57 个主题的多项选择题基准,用于评估大规模语言模型的知识和推理能力。 知识问答 英语 Accuracy 15000 University of California, Berkeley
MMLU Pro MMLU 的专业级别版本,包含更具挑战性的问题,旨在评估模型在专业领域的理解和推理能力。 知识问答 英语 Accuracy 38500 Berkeley Artificial Intelligence Research
GSM8K 一个包含 8500 道小学数学题的基准,用于评估模型的数学推理能力。 数学推理 英语 Accuracy 8500 Google
HumanEval 一个包含 164 个手写编程问题的基准,用于评估模型生成代码的能力。 代码生成 英语 Pass@k 164 OpenAI
MBPP 一个包含 974 个简单的 Python 编程问题的基准,用于评估模型生成代码的能力。 代码生成 英语 Pass@k 974 Google
HellaSwag 一个包含 70,000 个多项选择题的基准,用于评估模型的常识推理能力。 常识推理 英语 Accuracy 70000 University of Washington
ARC 一个包含 7787 个多项选择题的基准,用于评估模型的常识推理能力。 常识推理 英语 Accuracy 7787 Allen Institute for AI
TruthfulQA 一个包含 817 个问题的基准,旨在评估模型是否能够生成真实且准确的答案,而不是编造信息。 真实性评估 英语 Accuracy 817 Google
BIG-bench 一个包含 200 多个不同任务的综合基准,用于评估模型的各种能力,包括推理、语言理解和知识。 综合评估 多语言 Varies 200 Google
C-Eval 一个涵盖人文社科、理工科等多个学科的中文多项选择题基准,用于评估模型在中文环境下的知识和推理能力。 知识问答 中文 Accuracy 13948 清华大学等
SuperGLUE 一个包含 8 个自然语言理解任务的基准,旨在评估模型在复杂的语言理解和推理任务上的性能。 自然语言理解 英语 Varies 8 NYU & Facebook AI
DROP 一个需要模型进行离散推理的阅读理解基准,包括计数、比较和排序等操作。 阅读理解 英语 f1 96000 Allen Institute for AI
MATH 一个具有挑战性的数学问题数据集,包含代数、微积分、几何、概率等多个领域。 数学推理 英语 Accuracy 12500 Google
BBH BIG-Bench 的困难子集,包含更具挑战性的任务,用于评估模型的极限能力。 综合评估 英语 Varies 23 Google
HLE 研究生水平以上的超高难度、覆盖超多学科的大模型评测基准 知识问答 英语 Accuracy 3000 Center for AI Safety
GPQA Diamond 测试模型在多种推理场景下的能力,并推动大模型在更加复杂任务上的改进。 常识推理 英语 Accuracy
198 CohereAI
SimpleQA OpenAI发布的一个针对大模型事实问答的能力评测基准,可以有效检验模型幻觉严重程度 真实性评估 英语 Accuracy 4326 OpenAI
SWE-bench 一个从GitHub上提炼的真实世界的Python代码仓的任务评测数据集 代码生成 英语 Accuracy 2294 普林斯顿大学
SWE-bench Verified OpenAI基于SWE-Bench提炼的更加准确和更具代表性的大模型代码工程任务解决能力评测 代码生成 英语 Accuracy 500 OpenAI
MATH-500 OpenAI从MATH评测数据集中精选的500个更具代表性的数学评测基准 数学推理 英语 Accuracy 500 OpenAI

大模式日新月异,随着性能不断提升,老的数据集可能也会被逐步替换或淘汰,各种研究机构也会不断推出新的数据集。这里仅展示比较常见的一些数据集,用于研究学习使用,方便读者举一反三。

数据集示例及测试脚本

问答场景

以mmlu为例,该数据集是选择题,用于评估大规模语言模型的知识和推理能力,常用的字段为question,choices,answer

{
   
    
    
  "question": "Which of the following is a key function of the Golgi apparatus?",
  "choices": ["A) ATP synthesis", "B) Protein modification and sorting", "C) DNA replication", "D) Lipid breakdown"],
  "answer": "B",
  "subject": "biology",
  "source": "https://example.com/bio_questions"
}

基于该数据集的测试代码,构造出一个prompt让模型从上下文选择答案。

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
import json
import numpy as np
from tqdm import tqdm

class ModelEvaluator:
    def __init__(self, model_name="mistralai/Mistral-7B-v0.1"):
        self.tokenizer = AutoTokenizer.from_pretrained(model_name)
        self.model = AutoModelForCausalLM.from_pretrained(
            model_name, 
            torch_dtype=torch.float16,
            device_map="auto"
        )
        
    def evaluate_mmlu(self, dataset_path):
        """评估 MMLU 数据集"""
        correct = 0
        total = 0
        
        with open(dataset_path, 'r') as f:
            questions = json.load(f)
            
        for question in tqdm(questions):
            prompt = f"问题: {
     
      
      question['question']}\n选项:\nA. {
     
      
      question['choices'][0]}\nB. {
     
      
      question['choices'][1]}\nC. {
     
      
      question['choices'][2]}\nD. {
     
      
      question['choices'][3]}\n答案:"
            
            inputs = self.tokenizer(prompt, return_tensors="pt").to(self.model.device)
            outputs = self.model.generate(
                **inputs,
                max_new_tokens=5,
                temperature=0.1
            )
            
            response = self.tokenizer.decode(outputs[0], skip_special_tokens=True)
            predicted_answer = response[-1]  # 取最后一个字符作为答案(假设模型只返回选项)
            
            if predicted_answer == question['answer']:
                correct += 1
            total += 1
            
        return correct / total

推理场景

以HellaSwag为例,该数据集也是选择题,主要用于评估模型的常识推理能力。常用的字段为ctx,endings,label

{
   
    
    
  "activity_label": "Removing ice from car",
  "ctx": "Then, the man writes over the snow covering the window of a car, and a woman wearing winter clothes smiles. then",
  "endings": [
    ", the man adds wax to the windshield and cuts it.",
    ", a person boards a ski lift, while two men support the head of the person...",
    ", the man starts scraping ice off the car window with a scraper.",
    ", the woman opens the car door and gets inside."
  ],
  "label": 2,
  "source_id": 

猜你喜欢

转载自blog.csdn.net/qq_33137873/article/details/145716685