ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenCompass CompassBench 官方自建榜单评测指南:能力维度、评测方法与配置实现

OpenCompass CompassBench 官方自建榜单评测指南:能力维度、评测方法与配置实现 模型评测人工智能大模型AI 评测【免费下载链接】opencompassOpenCompass is an LLM evaluation platform, supporting a wide range of models from OpenAI, Anthropic, Gemini, Qwen, GLM, DeepSeek, etc, across 100 datasets covering knowledge, reasoning, coding, science, language, long-context, and safety.项目地址https://gitcode.com/gh_mirrors/op/opencompass点击查看免费下载本文是 OpenCompass 官方自建榜单 CompassBench 的技术指南基于 docs/zh_cn/advanced_guides/compassbench_intro.md 展开并结合仓库内的真实评测配置、数据加载器与汇总器源码进行纵深讲解。读完本文你将完整掌握 CompassBench 2.0 v1.3 版本的七大能力维度划分、客观题0-shot CoT 循环选项与主观题LLM 五档对比评价两套评测方法、评分提示词结构以及如何定位配置、数据与汇总文件来复现官方榜单的评测逻辑。CompassBench 是什么官方自建榜单的公开化CompassBench 是 OpenCompass 的官方自建榜单。从 2024 年 7 月起OpenCompass 开始公布自建榜单的评测规则评测配置文件和示例数据集文件目的是帮助社区更透明地了解自建榜单的评测逻辑与方法也便于第三方复现与参与共建。2024 年 8 月的榜单即基于本文所述的规则体系后续经过多次迭代仓库中可看到 v1.1、v2.0 v1.1 与 v1.3 等多套配置并存本文聚焦于CompassBench 2.0 v1.3 版本。与常见只给分数、不公开细节的榜单不同CompassBench 的客观题与主观题配置均以 Python 配置文件形式开源在仓库中示例数据也在官方数据仓库中提供仓库内对应配置位于 opencompass/configs/datasets/compassbench_v1_3/ 与 opencompass/configs/datasets/subjective/compassbench/。能力维度七大维度覆盖语言、推理、知识与工具使用2024 年 8 月榜单v1.3 体系覆盖以下七个能力维度评测方式分为主观评测基于大模型评价与客观评测基于答案匹配/执行结果两类能力任务介绍评测方式示例数据说明语言评测模型在信息抽取、内容总结、对话、创作等多种任务上的能力主观评测官方数据仓库 v1_3_data/language 目录推理评测模型在逻辑推理、常识推理、表格推理等多种日常推理任务上的能力主观评测官方数据仓库 v1_3_data/reasoning 目录知识评测模型在理科、工科、人文社科等多个领域的知识水平客观评测官方数据仓库 v1_3_data/knowledge 目录数学评测模型在数值计算、高中及大学难度的数学问题上的能力客观评测官方数据仓库 v1_3_data/math 目录代码评测模型在代码生成、代码补全、代码注释、代码重构、代码改写、计算机知识综合问答上的能力客观评测 主观评测官方数据仓库 v1_3_data/code 目录指令跟随评测模型在基于各类语言、推理、知识等任务中能否准确遵循复杂指令的能力主观评测官方数据仓库 v1_3_data/instruct 目录智能体评估模型在复杂工具调用的能力以及数据科学、数学等情况下使用代码解释器的能力客观评测基于 T-Eval 与 CIBench 体系从仓库配置可以印证各维度的落盘方式知识维度数据文件组织为./data/compassbench_v1_3/knowledge/wiki_zh_sub_500_人文科学.jsonl、wiki_en_sub_500_自然科学-理科.jsonl等 10 个中英文子集每个子集 500 题全部为单项选择题配置见 compassbench_v1_3_knowledge.py数学维度分为arithmetic_cloze_en填空题与college_single_choice_en/cn中英文大学难度单选题配置见 compassbench_v1_3_math.py代码维度客观部分拆为代码补全HumanEval / HumanEval 风格、代码面试LCBench 风格EASY/MEDIUM/HARD 三档与代码竞赛TACO 风格EASY 至 VERY_HARD 五档另含代码相关的主观评测子集配置见 compassbench_v1_3_code_gen_c8c3aa.py智能体维度客观评测复用 CIBench 与 T-Evalmus_teval体系相关模板配置见 opencompass/configs/datasets/compassbench_20_v1_1/agent/。客观评测方法0-shot CoT 与后处理优化对于客观评测知识、数学、代码、智能体CompassBench 采用0-shot CoT思维链的方式评测并配套两套关键机制1. Prompt 中的回答格式约束评测时会在 Prompt 中对回答格式进行约束。以知识/数学单选题为例中英文 Prompt 均要求一步步推理并在最后用固定句式给出选项配置见 compassbench_v1_3_objective_gen_068af0.py中文单选题…请你一步步推理并在最后用“答案选项为X”来回答其中X是ABCD中你认为正确的选项序号…让我们一步步解决这个问题英文单选题…Please reason step by step and answer with The answer is X at the end…Lets solve this problem step by step:填空题cloze要求最终答案放入\boxed{}中数学或直接给出数值知识。对于因指令跟随问题导致无法完成答案提取的情况一律视为回答错误——这是榜单对指令跟随能力的隐性考核避免了宽松提取带来的虚高分数。2. 后处理Postprocessor与循环选项Circular EvaluationOpenCompass 在客观题评测的后处理上做了较多优化单选后处理使用first_option_postprocessoptionsABCD从生成文本中提取首个合法选项填空后处理知识题使用compassbench_objective_v1_3_postprocess实现于 compassbench_obj.py其逻辑是若文本包含答案是 / The answer is则截取其后内容再去掉千分位逗号并抽取第一个/最后一个数字作为最终答案数学题则使用math_postprocess_v2配合MATHEvaluator做数值判分循环选项防盲猜单选题开启CircularEval True时数据加载器CompassBenchObjectiveV1_3.load会把每道题复制为 ABCD、BCDA、CDAB、DABC 四种选项排列见 compassbench_obj.py 中circular_patterns [ABCD, BCDA, CDAB, DABC]答案随排列重映射最终以四种排列上的平均表现perf_4见汇总配置作为该题得分。这样即使模型只会选 A也会因选项位置被轮换而露出破绽有效抵抗位置偏见。从配置细节还可以看到推理使用GenInferencermax_out_len2048知识/数学或512代码补全等数据集reader_cfg统一为input_columns[question]、output_columnanswer代码维度按 HumanEval/LCBench/TACO 各自的评估器执行HumanEvalEvaluator/HumanEvalPlusEvaluatorpass1、LCPassKEvaluator代码面试与TACOEvaluator代码竞赛。3. 真实评测数据与开源示例数据不同文档明确指出数学、智能体题目类型与给定的示例数据类似但真实评测数据与开源数据不同。这意味着示例数据仅用于理解题型与评测流程榜单成绩无法通过背题刷分保证了官方榜单的可靠性。主观评测方法基于大模型评价的五档胜率对比对于主观评测语言、推理、指令跟随、部分代码CompassBench 采用**基于大模型评价LLM-as-a-Judge**的方式对每一道问题均提供评测时的打分指引checklist评价模型需先阅读用户问题与对话历史再依据指引逐项分析两个回答的质量比较待测模型相对于参考回复的胜率共设置五档A回答 A 远胜于回答 BA回答 A 略优于回答 BAB回答 A 和回答 B 质量相同B回答 B 略优于回答 AB回答 B 远胜于回答 A。主观评测的具体实现可见 compassbench_checklist.py其数据覆盖 en/cn 双语的language、instruct、reasoning、coding共 8 个验证集*_val使用LMEvaluator作为评价器infer_orderrandom、modem2n并以gpt4-1106作为基准参考模型base_models。更早的 v1.1 对比配置可参考 compassbench_compare.py其同样以 gpt4 系列作为参考回答来源。主观评价提示词官方模板主观评测使用的评价提示词中英文双语配置内以pair_prompt_en/pair_prompt_cn形式完整保存如下可直接用于理解评价模型的工作方式# Instruction You are an expert evaluator. Your task is to evaluate the quality of the \ responses generated by two AI models. We will provide you with the user query and a pair of AI-generated \ responses (Response A and Response B). You should first read the user query and the conversation history \ carefully for analyzing the task, and then evaluate the quality of the \ responses based on and rules provided below. # Conversation between User and AI ## User Query |begin_of_query| {question} |end_of_query| ## Response A |begin_of_response_A| {prediction} |end_of_response_A| ## Response B |begin_of_response_B| {prediction2} |end_of_response_B| # Evaluation ## Checklist |begin_of_checklist| {checklist} |end_of_checklist| Please use this checklist to guide your evaluation, but do not limit your \ assessment to the checklist. ## Rules You should compare the above two responses based on your analysis of the \ user queries and the conversation history. You should first write down your analysis and the checklist that you used \ for the evaluation, and then provide your assessment according to the \ checklist. There are five choices to give your final assessment: [A, A, \ AB, B, B], which correspond to the following meanings: - A: Response A is much better than Response B. - A: Response A is only slightly better than Response B. - AB: Response A and B are of the same quality. Please use this \ choice sparingly. - B: Response B is only slightly better than Response A. - B: Response B is much better than Response A. ## Output Format First, please output your analysis for each model response, and \ then summarize your assessment to three aspects: reason AB, \ reason AB, and reason BA, and finally make your choice for \ the final assessment. Please provide your evaluation results in the following json \ format by filling in the placeholders in []: { analysis of A: [analysis of Response A], analysis of B: [analysis of Response B], reason of AB: [where Response A and B perform equally well], reason of AB: [where Response A is better than Response B], reason of BA: [where Response B is better than Response A], choice: [A or A or AB or B or B], }对应中文版本# 指令 您是一位专业评估专家。您的任务是评估两个AI模型生成回答的质量。 我们将为您提供用户问题及一对AI生成的回答回答A和回答B。 您应当首先仔细阅读用户问题然后根据以下提供的规则评估回答的质量。 # 用户与AI之间的对话 ## 用户问题 |begin_of_query| {question} |end_of_query| ## 回答A |begin_of_response_A| {prediction} |end_of_response_A| ## 回答B |begin_of_response_B| {prediction2} |end_of_response_B| # 评估 ## 检查清单 |begin_of_checklist| {checklist} |end_of_checklist| 请参考此检查清单来评估回答的质量但不要局限于此检查清单。 ## 规则 您应当基于用户查询分析比较上述两种回答。 您应当基于检查清单写下您的分析然后提供您的评价。 有五个选项供您做出最终评估[A, A, AB, B, B]它们对应如下含义 - A回答A远胜于回答B。 - A回答A略优于回答B。 - AB回答A和回答B质量相同。请谨慎使用此选项。 - B回答B略优于回答A。 - B回答B远胜于回答A。 ## 输出格式 首先请输出您对每个模型回答的分析 然后总结您的评估到三个方面AB的理由A优于B的理由和 B优于A的理由 最后做出您对最终评估的选择。 请按照以下json格式提供您的评估结果通过填充[]中的占位符 { 回答A的分析: [回答A的分析], 回答B的分析: [回答B的分析], AB的理由: [A和B回答差不多的理由], A优于B的理由: [回答A优于B的理由], B优于A的理由: [回答B优于A的理由], choice: [A or A or AB or B or B], }该模板的关键设计点值得注意先分析后打分要求评价模型先写出对两个回答的分析analysis再总结AB、AB、BA三个方向的理由最后才给出结论强制推理前置减少直接拍脑袋打分结构化 JSON 输出最终结论必须以固定 JSON 结构返回方便自动化解析统计胜率checklist 动态注入{checklist}占位符由每道题自带的打分指引填充数据列见reader_cfg的input_columns[question, checklist]既保证评分标准统一又允许每道题有针对性要求五档而非二选一A/A/AB/B/B的细分粒度让略优与远胜得以区分同时模板提示请谨慎使用 AB避免评价模型偷懒给平局。汇总Summarizer从细粒度指标到榜单总分评测完成后各子集的细粒度指标由汇总器聚合成榜单总分配置见 compassbench_v1_3_objective.py。其summary_groups定义了清晰的指标层级知识8 个中英文子集各自以perf_4四种循环排列的平均分上报再聚合成knowledge_en、knowledge_cn与总knowledge数学college_single_choice_*_circular使用perf_4arithmetic_cloze_en使用accuracy聚合为math_en/math_cn/math代码code-completion_enHumanEval pass1、code-completion_cnHumanEval pass1、code-interview_en/cn按 EASY/MEDIUM/HARD 的 pass1、code-competitionTACO 五个难度档的 pass1再按naive_average聚合智能体CIBench 的executable/numeric_correct/vis_sim与 T-Evalmus_teval的plugin_eval-mus-p10_one_review(_zh)聚合成agent_en/agent_cn/agent。最终summarizer.dataset_abbrs按knowledge → math → code → agent的顺序输出榜单分数与官方榜单的呈现结构一一对应。复现与使用如何运行 CompassBench 评测要在本地复现或参与 CompassBench 评测可按以下流程操作仓库仅提供查看与运行方式数据需按配置中的路径放置准备数据按各配置文件中path字段的约定将示例/评测数据放置在./data/compassbench_v1_3/下知识knowledge/、数学math/、代码coding/、主观language|instruct|reasoning|coding各验证集主观评测另需data/subjective/compassbench目录存放参考回答如 gpt4 预测结果查看官方评测配置客观部分组合 compassbench_v1_3_objective_gen_068af0.py、compassbench_v1_3_knowledge.py、compassbench_v1_3_math.py、compassbench_v1_3_code_gen_c8c3aa.py 中的数据集列表主观部分参考 compassbench_checklist.py汇总部分配置见 compassbench_v1_3_objective.py组装并运行仿照 examples/eval_subjective.py 等示例将上述数据集与待测模型含推理后端配置组合成完整评测配置通过python run.py config启动评测具体启动方式与命令行参数可查阅 docs/zh_cn/user_guides/experimentation.md 与 docs/zh_cn/get_started/quick_start.md解析结果评测后由CompassBenchSummarizer实现位于 opencompass/summarizers/subjective/compassbench.py与客观汇总器输出各维度分数与总分与官方榜单口径对齐。总结CompassBench 2.0 v1.3 的评测体系可以概括为三点核心设计七维能力覆盖语言/推理/知识/数学/代码/指令跟随/智能体、双轨评测方法客观题 0-shot CoT 循环选项防盲猜主观题 LLM 五档对比 每题打分指引、全链路配置开源数据组织、Prompt、后处理、评估器与汇总器均在仓库中可查可复现。通过阅读 compassbench_intro.md 并结合仓库源码社区开发者既可以完整理解官方榜单的评测逻辑也可以基于同一套规则搭建自己的评测流程。赞分享模型评测人工智能大模型AI 评测【免费下载链接】opencompassOpenCompass is an LLM evaluation platform, supporting a wide range of models from OpenAI, Anthropic, Gemini, Qwen, GLM, DeepSeek, etc, across 100 datasets covering knowledge, reasoning, coding, science, language, long-context, and safety.项目地址https://gitcode.com/gh_mirrors/op/opencompass点击查看免费下载相关推荐LMDeploy 与 OpenCompass 联合评测指南两阶段学术能力评测实战LMDeploy 与 OpenCompass 联合评测指南两阶段学术能力评测实战 本指南以 LMDeploy 开源仓库的 模型评测文档 https://lin人工智能大模型模型推理服务推理引擎本地部署模型量化GTA5线上小助手告别枯燥任务开启你的洛圣都自由冒险之旅GTA5线上小助手告别枯燥任务开启你的洛圣都自由冒险之旅 你是否曾在GTA5线上模式中感到疲惫每天重复着枯燥的任务为了虚拟货币而奔波却错过了洛圣都真正模型评测人工智能大模型AI 评测OpenCompass评估指标详解如何选择最适合的模型评测方法OpenCompass评估指标详解如何选择最适合的模型评测方法 引言 在人工智能模型评估领域选择合适的评估指标至关重要。OpenCompass作为一个全面的模型评测人工智能大模型AI 评测上一篇MXNet-R 字符级循环神经网络Char RNN语言模型实战从数据处理到逐字符文本采样下一篇【生产力革命】10分钟搞定将Navicat Premium封装为API服务的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表