近期,通义千问团队联合魔搭社区开源的多语言基准测试集 P-MMEval,涵盖了高效的基础和专项能力数据集。此外,P-MMEval 确保所有挑选的数据集中的多语言覆盖一致,并提供跨多种语言的并行样本,最高支持来自8个不同语族的10种语言(英、中、阿、西、日、韩、泰、法、葡、越)。因此,P-MMEval 有助于全面评估多语言能力,并进行跨语言迁移能力的比较分析。
司南评测体系OpenCompass面向大模型的开源方和使用者, 提供开源、高效、全面的大模型评测开放平台。通过完整开源可复现的评测框架,支持大语言模型、多模态模型各类模型的一站式评测,并定期公布评测结果榜单。P-MMEval也在第一时间接入了OpenCompass的评测体系,可使用司南OpenCompass开源工具完成评测任务。
数据集链接:
https://www.modelscope.cn/datasets/modelscope/P-MMEval
01.引言
在开发和迭代大语言模型 (LLM) 时,提供准确且并行的评估结果对于识别其多语言能力和量化性能至关重要。早期的工作主要集中在单一任务的评估上,例如 MHellaSwag、XLSum、HumanEval-XL 和 MGSM。近期的研究提出了一些大规模多语言多任务评估基准,统一了多个有代表性的的独立基准任务,如 XTREME、XTREME-R、XGLUE、MEGA 和 BUFFET。然而,这些大规模基准测试集 1) 主要针对基础自然语言处理任务,2) 所选择的数据集覆盖的多语言种类不一致。
本文的目标是提出一个全面的多语言多任务基准测试开发框架,为此:
- 提出了一种基于显著性检验来挑选可用且合理的基准测试集的方法。
- 在上一步的基础上,提出了一个大规模多语言基准测试集,包括基础任务和专项能力任务。该基准集不仅确保选择的各种数据集有一致的多语言覆盖,并提供跨多种语言的平行样本。
- 对各种 LLM 的多语言能力进行了全面分析,不仅分析了 P-MMEval 中每个数据集在区分模型性能方面的有效性,并探索了模型性能受到推理提示、模型类型、模型尺寸、语言种类和任务类型的影响。
02.数据集选择流程
语言模型的评估任务种类繁多,每种类别都积累了大量的多语言数据集。因此,选择有效的数据集至关重要,因为它可以减少冗余测试并提高评估效率。为此,研究团队提出了一种基于大量配对样本 T 检验的方法来优化选择过程,过滤掉不能够有效区分不同模型系列和大小之间性能的数据集。研究团队认为,如果这些基准测试集在模型尺寸差距较大时仍无法保持显著的性能差异,则其评估结果可以被视为无效。
P-MMEval
基于设计的数据集选择方法,研究团队提出了 P-MMEval。它整合了基础自然语言处理任务和能力特定的评估任务,确保每个任务在语言覆盖上的一致性,并提供跨语言的平行样本,以便进行一致的比较。
对于任务多样性,涵盖了两个关键的基础 NLP 任务(生成和理解)以及当前 LLM 的五种核心能力。对于语言多样性,P-MMEval统一了涵盖八个语系的十种不同语言,包括英语 (en)、中文 (zh)、阿拉伯语 (ar)、西班牙语 (es)、日语 (ja)、韩语 (ko)、泰语 (th)、法语 (fr)、葡萄牙语 (pt) 和越南语 (vi)。
基础自然语言处理数据集整理
鉴于基础 NLP 数据集的多样性,P-MMEval精心选择了11 个使用比较广泛的数据集,涵盖了理解和生成两个大类。接下来,在每个数据集上,我们使用配对样本 T 检验来识别挑选的成对模型性能的显著差异。显著性水平被设为 0.01。如果所有选定的模型对都显示出显著的性能差异,则保留该数据集。根据这一标准,XNLI、MHellaSwag 和 Flores-200 被保留用于进一步处理和扩展。
专项能力数据集整理
进一步,研究团队对每个专项能力选择了一个代表性的数据集。对于每个专项能力,通常没有太多选择(大多只有一个基准测试集可用)。因此,代码生成,数学推理,知识理解,逻辑推理,指令跟随分别选择了HumanEval-XL,MGSM,MMMLU,LogiQA 和 IFEval。
多语言测试数据扩展
为了补充每个数据集中缺失的多语言部分,我们采用了一种机器翻译结合专业人工校验的策略。每个数据集被机器翻译到目标语言后,再被专业翻译人员后检验的具体比例如下:
03.实验
设置
研究人员评估了几种代表性的指令调优模型的性能:(i) 闭源模型 GPT-4o、Claude-3.5;(ii) 开源模型 LLaMA3.1、LLaMA3.2、Qwen2.5、Mistral-Nemo、Mistral-Large 和 Gemma2 系列。每个数据集的得分为每种语言得分的 Macro 平均值。我们分别计算理解、生成和专项能力任务的平均得分。
主要结果
首先,除了 LLaMA3.2 系列外,所有模型的多语言能力随着模型规模的增加而提高。主要原因是 LLaMA3.2-1B 和 LLaMA3.2-3B 表现出较差的指令跟随能力,导致答案提取的失败率较高。此外,Qwen2.5 在理解和专项能力任务上表现出强大的多语言性能,而 Gemma2 在生成任务上表现出色。闭源模型总体上优于开源模型。
英语与非英语基准测试的表现
在五个数据集上,测试模型的非英语表现似乎都受到其英语表现的限制。然而,在代码生成任务HumanEval-XL的三个主要编程语言上(python、javascript和java),模型在英语和非英语测试集上的表现相当。
04.最佳实践
PMMEval数据集已经集成到OpenCompass和EvalScope评测框架中。使用下面两个框架,均可以执行评测任务。
OpenCompass:https://github.com/open-compass/opencompass
EvalScope:https://github.com/modelscope/evalscope
- 使用原生的OpenCompass框架执行PMMEval评测任务
环境安装:
pip install git+https://github.com/open-compass/opencompass.git pip install vllm pip install modelscope[framework]
执行命令:
opencompass --models vllm_qwen2_5_1_5b_instruct --datasets pmmeval_gen --accelerator vllm
执行结果示例:
备注:HumanEval-XL子数据集,因为涉及到代码执行沙箱环境,需要依赖Docker镜像环境,具体可参考文档:https://opencompass.readthedocs.io/en/latest/advanced_guides/code_eval_service.html
- 使用EvalScope框架执行PMMEval评测任务
EvalScope支持选择不同的eval_backend来实现特定领域的评测任务,如OpenCompass、VLMEval、RAGEval等。这里我们使用vLLM拉起模型服务,通过OpenAI格式的接口实现评测任务调用流程。
环境安装:
pip install evalscope[opencompass] -U pip install vllm
使用vLLM拉起模型服务:
python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen2-0.5B-Instruct --port 8000
评测脚本:
from evalscope.run import run_task from evalscope.summarizer import Summarizer task_cfg_dict = dict( eval_backend='OpenCompass', eval_config={ 'datasets': ['PMMEval'], 'models': [ {'path': 'Qwen/Qwen2-0.5B-Instruct', 'openai_api_base': 'http://127.0.0.1:8000/v1/chat/completions', 'is_chat': True, 'batch_size': 16}, ], 'work_dir': 'outputs/qwen2_eval_result', 'limit': 5, # 限制每个子数据集最大样本量为5 }, ) def run_eval(): run_task(task_cfg=task_cfg_dict) print('>> Start to get the report with summarizer ...') report_list = Summarizer.get_report_from_cfg(task_cfg_dict) print(f'\n>> The report list: {report_list}') run_eval()
点击阅读原文,直达数据集
https://www.modelscope.cn/datasets/modelscope/P-MMEval