Project Icon

MixEval

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

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

🏠 主页 | 🏆 排行榜 | 📜 arXiv | 📝 博客 | 🤗 HF数据集 | 🤗 HF论文 | 𝕏 Twitter


静态徽章 Twitter GitHub仓库星标 静态徽章


基准与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是经济高效的替代方案。更多详情,请参阅我们的论文。


⚡ 新闻

[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

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


即点即用的LLM评估套件

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

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

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


快速开始

(步骤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/。我们将总体分数作为排行榜中报告的分数。

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

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


# 注册新模型 **(步骤 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 中的其他模型作为参考。

仅执行模型推理

有时您可能只想进行模型推理而不计算分数。您可以通过在运行 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;只有有问题的文件会被记录。


仅计算分数

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

  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 表示多项选择。


MixEval 是什么?

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

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

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

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


为什么要使用 MixEval 基准?

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

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

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

MixEval 是有效的,因为:

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

🦾 贡献

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

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

  • @RodriMora
  • @teknium1
  • @philschmid
  • @carstendraschner

📑 引用

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

@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}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号