MixEval

MixEval

动态更新的大语言模型评测基准

MixEval是一个动态更新的大语言模型评测基准,结合现有基准和真实用户查询构建而成。该基准在保持高准确度的同时,实现了快速、低成本和可重复的评测。MixEval提供更全面、公平的查询分布,并通过定期更新机制避免数据污染。作为一个高效可靠的评测工具,MixEval适用于各类大语言模型研究和应用场景。

MixEvalLLM评估基准测试动态评估模型排名Github开源项目
<p align="center" width="100%"> <img src="https://yellow-cdn.veclightyear.com/2b54e442/5d8b1d14-8086-4ddb-8384-d8204c5608e1.png" width="100%" height="100%"> </p> <p align="center"><a href="https://mixeval.github.io/">🏠 主页</a> | <a href="https://mixeval.github.io/#leaderboard">🏆 排行榜</a> | <a href="https://arxiv.org/abs/2406.06565">📜 arXiv</a> | <a href="https://beneficial-chips-08e.notion.site/Don-t-Build-Random-Evals-Principles-for-General-Purpose-Model-Evaluation-bd5a85ba10f447bc9ac560050f67270b">📝 博客</a> | <a href="https://huggingface.co/datasets/MixEval/MixEval">🤗 HF数据集</a> | <a href="https://huggingface.co/papers/2406.06565">🤗 HF论文</a> | <a href="https://x.com/NiJinjie/status/1798182749049852411">𝕏 Twitter</a></p> </p>

静态徽章 Twitter GitHub仓库星标 <a href="https://hits.seeyoufarm.com"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FPsycoy%2FMixEval&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=访问者&edge_flat=false"/></a> 静态徽章

<br> <p align="center" width="60%"> <img src="https://yellow-cdn.veclightyear.com/2b54e442/135a01e4-1004-4c94-9e48-3074e5a6fc66.jpg" width="60%"> </p>

基准与Chatbot Arena Elo的相关性(%),对比评估单个GPT-3.5-Turbo-0125模型的总成本。MixEval和MixEval-Hard在主要基准中显示出与Arena Elo和Arena Elo(En)的最高相关性。在估算Chatbot Arena上评估单个模型的成本时(约2,936美元),我们参考了Amazon Mechanical Turk的众包价格(每票0.05美元)。Chatbot Arena成本过高,而MixEval和MixEval-Hard是经济高效的替代方案。更多详情,请参阅我们的论文。

<br>

⚡ 新闻

[2024-06-29] 我们的评估套件现在支持评估本地检查点,详情请查看这里

[2024-06-29] 我们的评估套件现在支持其他API作为模型解析器,详情请查看这里

MixEval

我们介绍MixEval,一个基于现成基准混合的基于真实值的动态基准,它能以高度能力的模型排名(即与Chatbot Arena的0.96相关性)评估LLM,同时在本地快速运行(仅需MMLU运行时间和成本的6%),其查询每月稳定轻松更新以避免污染。

MixEval包含两个基准:MixEvalMixEval-Hard,两者都通过我们快速、稳定的流程定期更新。它们都包含两个分割,即自由回答和多项选择。它们的关系如下所示:

 MixEval (动态)
    │
    ├── MixEval
    │   ├──free-form.json
    │   └──multiple-choice.json
    │
    └── MixEval-Hard
        ├──free-form.json
        └──multiple-choice.json

更多详情请查看我们的主页论文

<br>

即点即用的LLM评估套件

本仓库托管了MixEval的评估代码和动态数据发布。当前动态基准版本显示在本页面顶部。我们提供了一个可靠的即点即用评估套件,兼容开源专有模型,包括模型响应生成和分数计算。此外,该评估套件还便于注册自定义模型和基准数据。

论文所示,传统的基于规则的解析器表现出显著的不稳定性,容易产生相当大的错误。我们使用GPT-3.5-Turbo或开源模型作为我们的模型解析器,这在我们的这项研究中已被证明是稳定的。

注意❗ 欢迎使用您自己的评估代码来评估MixEval数据。我们在这里提供了指南。

<br>

快速开始

(步骤1) 克隆仓库并设置环境:

git clone https://github.com/Psycoy/MixEval.git
cd MixEval
conda create -n MixEval python=3.11 --yes
conda activate MixEval
bash setup.sh

# 设置完成

注意:如果您正在评估最新的模型,可能需要更新setup.py中的依赖项。

(步骤2) 为模型解析器设置OpenAI API密钥。在根目录(MixEval/)下创建.env文件,并添加以下行:

MODEL_PARSER_API=<您的openai api密钥>

排行榜中的值使用GPT-3.5-Turbo-0125作为默认模型解析器。也将支持开源模型解析器。

如果您使用Azure或其他API作为模型解析器,请查看这里

(步骤3) 运行评估并获取结果。就这么简单!

python -m mix_eval.evaluate \
    --model_name gemma_11_7b_instruct \
    --benchmark mixeval_hard \
    --version 2024-06-01 \
    --batch_size 20 \
    --max_gpu_memory 5GiB \
    --output_dir mix_eval/data/model_responses/ \
    --api_parallel_num 20

如果您想评估未包含在mixeval.models.__init__中的模型,请查看这里了解新模型注册的简单步骤。

此命令将同时运行推理和分数计算。如果您只想运行模型推理,请查看这里;如果您只想运行分数计算,请查看这里

模型响应文件和分数将保存到<output_folder>/<model_name>/<benchmark>/<version>/,在这种情况下,是mix_eval/data/model_responses/gemma_11_7b_instruct/mixeval_hard/2024-06-01/。我们将总体分数作为排行榜中报告的分数。

如果您正在评估本地检查点,请查看这里

注意❗ 在运行评估之前,请务必阅读这里的基本配置。

<br> # 注册新模型 **(步骤 1)** 将您的模型文件添加到 `mixeval/models/` 目录下,命名为 `your_model_name.py`,并在其中编写名为 `Model_Class_Name` 的模型类。 - 开源聊天模型继承自 `mixeval.models.base.ChatModel`(示例文件:`llama_3_8b_instruct.py`)。 - 开源基础模型继承自 `mixeval.models.base.BaseModel`(示例文件:`llama_3_8b.py`)。 - 专有模型继承自 `mixeval.models.base_api.APIModelBase`(示例文件:`gpt_4_turbo_2024_04_09.py`,在 `.env` 中添加您的 API 密钥)。 - 在大多数情况下,您只需编写一个带有单个 `__init__` 函数的简单模型类。但是,如果您的模型需要更多设置,例如需要不同的 build_model() 函数,您应该覆盖父模型的相应函数或变量。 - 模型文件名应与您在模型类顶部的 `@register_model()` 装饰器中传递的名称相同。

(步骤 2) 将您的模型添加到 mixeval.models.__init__.AVAILABLE_MODELS 中。

  • 您添加的条目应采用 your_model_name: Model_Class_Name 的形式。请参考 AVAILABLE_MODELS 中的其他模型作为参考。
<br>

仅执行模型推理

有时您可能只想进行模型推理而不计算分数。您可以通过在运行 mix_eval.evaluate 模块时设置 --inference_only 标志来实现这一点:

python -m mix_eval.evaluate \
    --model_name gemma_11_7b_instruct \
    --benchmark mixeval_hard \
    --version 2024-06-01 \
    --batch_size 20 \
    --max_gpu_memory 5GiB \
    --output_folder mix_eval/data/model_responses/ \
    --inference_only

模型响应文件将保存在 <output_folder>/<model_name>/<benchmark>/<version>/ 目录下,在本例中为 mix_eval/data/model_responses/gemma_11_7b_instruct/mixeval_hard/2024-06-01/

如果您正在评估本地检查点,请查看此处

注意❗ 在运行评估之前,务必阅读此处的重要配置。

运行推理后,您可以检查模型响应文件是否完整:

python -m mix_eval.utils.check_eval_complete \
    --benchmark mixeval_hard \
    --version 2024-06-01 \
    --chat_models_to_check \
    gpt_4o \
    llama_3_70b_instruct \
    claude_3_opus \
    --base_models_to_check \
    none \
    --model_response_dir mix_eval/data/model_responses/ \
    --out_path mix_eval/data/model_responses/eval_checks.log

检查结果将写入 --out_path;只有有问题的文件会被记录。

<br>

仅计算分数

如果您想单独计算分数,您应该:

  1. 准备您的模型响应文件。 您可以使用我们的评估套件(参考此处)或您自己的评估套件(参考此处指定的示例响应文件格式和协议)。
  2. 运行分数计算脚本
    python -m mix_eval.compute_metrics \
        --benchmark mixeval_hard \
        --version 2024-06-01 \
        --model_response_dir mix_eval/data/model_responses/ \
        --api_parallel_num 20 \
        --models_to_eval \
        gemma_11_7b_instruct \
        gpt_4o \
        claude_3_opus
    

您应该根据您的 OpenAI 用户等级适当设置 --api_parallel_num,以避免速率限制。通常,如果您是 Tier-5 用户,您可以将 --api_parallel_num 设置为 100 或更高,以在 30 秒内解析结果。

如果您使用 Azure 或其他 API 作为模型解析器,请查看此处

如果您正在解析基础模型的响应,请设置 --extract_base_model_response 标志,以仅保留模型响应中有意义的部分,从而获得更稳定的解析结果。

如果您在一段时间前完成了模型解析,现在想再次显示模型结果,请添加 --compute_score_from_judged_file 标志,以避免再次调用模型解析器 API,从而节省预算。您必须确保目标模型响应文件夹下存在名为 judge_results_ff_model_judge_gpt-3.5-turbo-0125judge_results_mp_model_judge_gpt-3.5-turbo-0125 的已解析文件,其中 gpt-3.5-turbo-0125 表示模型解析器名称,ff 表示自由形式,mp 表示多项选择。

<br>

MixEval 是什么?

有关更多详细信息,请查看我们的主页论文

MixEval 是一种通过利用从网络中挖掘的用户查询并将其与现有基准中的相似查询匹配,来弥合真实世界用户查询与高效、可重复评估之间差距的方法。MixEval 也是使用这种方法构建的proposed benchmark。

MixEval-Hard 是 MixEval 的难度版本,旨在增强基准区分强大模型的能力。它是根据模型评估结果从 MixEval 中抽样得到的,选择更难查询的概率更高。为了解决分布偏差问题,我们引入了一个拒绝采样过程,以确保 MixEval-Hard 的分布与野生查询的分布一致。

动态评估被引入以缓解污染问题。我们使用快速、稳定的流程定期更新 MixEval 和 MixEval-Hard 中的数据点,该流程使用来自相同分布的不同批次野生查询执行基准混合,显示出低方差(0-100 分制中标准差为 0.36)和显著的版本差异(85% 的唯一查询比率)。

<br>

为什么要使用 MixEval 基准?

MixEval 为实践者提供了五个显著优势:

  • 准确的模型排名,与 Chatbot Arena1 的相关性达到 0.96。
  • 快速便宜可重复的执行,仅需 MMLU 6% 的时间和成本,且不依赖人工输入。
  • 通过低成本和稳定的更新机制实现动态基准测试。
  • 基于大规模网络语料库的全面偏差较小的查询分布。
  • 通过基于真实答案的评分机制确保公平的评分过程。
<br>

MixEval 作为基准混合方法的效果如何?

MixEval 是有效的,因为:

  • MixEval 和 MixEval-Hard 在所有基准中与 Arena Elo 和 Arena Elo (En) 的相关性最高。
  • MixEval 提高了其所有主要基准分割与 Arena Elo 和 Arena Elo (En) 的相关性。
  • MixEval 优于基准级和均匀混合。
  • MixEval 有效地将真实世界用户查询映射到基于真实答案的基准。
<br>

🦾 贡献

欢迎点击 ⭐星标按钮或 🦾贡献!我们会定期审查新的问题和 PR,并感谢您的贡献!

我们衷心感谢以下贡献者对本仓库的卓越贡献:

  • @RodriMora
  • @teknium1
  • @philschmid
  • @carstendraschner
<br>

📑 引用

如果您发现这个仓库有用,请考虑 📑引用

@article{ni2024mixeval,
  title={MixEval: Deriving Wisdom of the Crowd from LLM Benchmark Mixtures},
  author={Ni, Jinjie and Xue, Fuzhao and Yue, Xiang and Deng, Yuntian and Shah, Mahir and Jain, Kabir and Neubig, Graham and You, Yang},
  journal={arXiv preprint arXiv:2406.06565},
  year={2024}
}

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多