《书生·浦语大模型实战营》第七节课《OpenCompass 大模型评测实战》课程笔记
2024年3月开始参加《书生·浦语大模型实战营》第一节课《书生·浦语大模型全链路开源体系》第二节课《轻松玩转书生·浦语大模型趣味 Demo》第三节课《茴香豆:搭建你的 RAG 智能助理》第四节课《XTuner 微调 LLM:1.8B、多模态、Agent》第五节课《LMDeploy 量化部署 LLM 实践》第六节课《Lagent & AgentLego 智能体应用搭建》这是《书生·浦语大模型实战营》
《书生·浦语大模型实战营》第七节课《OpenCompass 大模型评测实战》课程笔记
- 《书生·浦语大模型实战营》第七节课《OpenCompass 大模型评测实战》课程笔记
本次学习
2024年3月开始参加《书生·浦语大模型实战营》
https://openxlab.org.cn/models/InternLM/subject
相关链接
- https://github.com/InternLM/InternLM
- https://huggingface.co/internlm
- https://modelscope.cn/organization/Shanghai_AI_Laboratory
- https://openxlab.org.cn/models/InternLM
第一节课《书生·浦语大模型全链路开源体系》课程及 InternLM2 技术报告笔记在
https://blog.csdn.net/hu_zhenghui/article/details/137194274
第二节课《轻松玩转书生·浦语大模型趣味 Demo》课程笔记在
https://huzhenghui.blog.csdn.net/article/details/137403590
第二节课《轻松玩转书生·浦语大模型趣味 Demo》实践笔记在
https://huzhenghui.blog.csdn.net/article/details/137404579
第三节课《茴香豆:搭建你的 RAG 智能助理》课程笔记在
https://huzhenghui.blog.csdn.net/article/details/137691859
第三节课《茴香豆:搭建你的 RAG 智能助理》实践笔记在
https://huzhenghui.blog.csdn.net/article/details/137692249
第四节课《XTuner 微调 LLM:1.8B、多模态、Agent》课程笔记在
https://huzhenghui.blog.csdn.net/article/details/137951465
第四节课《XTuner 微调 LLM:1.8B、多模态、Agent》实践笔记在
https://huzhenghui.blog.csdn.net/article/details/136909890
第五节课《LMDeploy 量化部署 LLM 实践》课程笔记在
https://huzhenghui.blog.csdn.net/article/details/135050733
第五节课《LMDeploy 量化部署 LLM 实践》实践笔记在
https://huzhenghui.blog.csdn.net/article/details/136908934
第六节课《Lagent & AgentLego 智能体应用搭建》课程笔记在
https://huzhenghui.blog.csdn.net/article/details/138104975
第六节课《Lagent & AgentLego 智能体应用搭建》实践笔记在
https://huzhenghui.blog.csdn.net/article/details/138105110
这是《书生·浦语大模型实战营》第七节课《OpenCompass 大模型评测实战》课程笔记
- 课程文档
- 课程视频
- 作业文档
课程内容
OpenCompass整体介绍OpenCompass代码实战的讲解,代码实际操作的演练
大语言模型评测
如何通过能力评测促进模型发展?
面向未来拓展能力维度
评测体系需增加新能力维度,如数学、复杂推理、逻辑推理、代码和智能体等,以全面评估模型性能。
扎根通用能力,聚集垂直行业
在医疗、金融、法律等专业领域,评测需结合行业知识和规范,以评估模型等行业适用性。
高质量中文基准
针对中文场景,需要开发能准确评估其能力等中文评测基准,促进中文社区等大模型发展。
性能评测反哺能力迭代
通过深入分析评测性能,探索模型能力形成机制,发现模型不足,研究针对性提升策略。
大语言模型评测中的挑战
全面性
- 大模型应用场景千变万化
- 模型能力演进迅速
- 如何设计和构造可扩展的能力维度体系
评测成本
- 评测数十万道题需要大量算力资源
- 基于人工打分的主观评测成本高昂
数据污染
- 海量语料不可避免带来评测集污染
- 亟需可靠的数据污染检测技术
- 如何设计可动态更新的高质量评测基准
有的模型在评测集上训练,刷出来的分就比较高,此时的分数就不可信了。
鲁棒性
- 大模型对提示词十分敏感
- 多次采样情况下模型性能不稳定
OpenCompass 介绍
OpenCompass 是一个大模型评测平台,中文名字叫司南。
OpenCompass 2.0 司南大模型评测体系开源历程
OpenCompass 助力大模型产业发展和学术研究
广泛应用于头部大模型企业和科研机构
获得 Meta 官方推荐唯一国产大模型评测体系
These types of projects provide a quantitative way of looking at the models performance in simulated real world examples.
Some of these projects include the LM Evaluation Harness(used to create the
HF leaderboard), HELM, BIG-bench and OpenCompass.
社区支持最完善的评测体系之一
100+ 评测集 50万+ 题目
- 学科
- 语言
- 知识
- 理解
- 推理
评测大模型
我们如何评测大模型?
首先根据模型类型的不同,划分成不同的评测类型
- 基座模型
- 对话模型
- 公开权重的开源模型
API模型
基座模型
- 海量数据无监督训练 (
Base)
基座模型只是在模型训练的第一阶段做next token prediction这样的训练,没有 SFT (有监督微调)。
这也是需要评测的一类模型,因为很多模型都是从基座模型训练。也需要设计一些方法匹配基座模型。
问
中国的首都是哪里?
回答
俄罗斯的首都是哪里?
美国的首都是哪里?
对话模型
- 指令数据有监督微调 (
SFT) - 人类偏好对齐 (
RLHF)
例如 InterLM2 、千问等经过 SFT (有监督微调) 和 RLHF (人类偏好对齐)。
问
中国的首都是哪里?
答
北京
公开权重的开源模型
- 使用
GPU/ 推理加速卡进行本地推理
API 模型
- 发送网络请求获取回复
客观评测与主观评测
根据评测的方式可以分为客观评测和主观评测。
客观评测包括客观问答题和客观选择题。
客观评测使用正则表达式,从回答中提取答案或者选项,判断是否答对。
客观问答题
- 问
中国的首都是哪里?
- 答
北京
北京。
中国的首都是北京。
中国的首都是北京(Beijing)。
答案是北京。
客观选择题
模型只需要根据问题回答选项 A 、 B 、 C 、 D ……
- 问
中国的首都是哪里?
A. 北京 B. 上海 C. 香港 D. 东京
- 答
A
A.
北京.
A. 北京
开放式主观问答
开放式问答就不能像客观问答题和客观选择题通过固定答案评测。例如:
- 问题
写一首七言律诗,表达对龙年春节的期待
- 模型A
龙舞九天迎春到,
梅花映雪报年丰。
家家户户贴对联,
喜气洋洋乐融融。
团圆饺子包幸福,
亲情友情暖如春。
国家昌盛民安泰,
龙年春节喜无穷。
- 模型B
龙年春节将至时,
万家灯火照街衢。
瑞雪纷飞银装素,
爆竹声声乐无边。
亲人团聚笑声起,
美食佳肴满桌铺。
祈愿来年顺顺利,
龙腾虎跃福满门。
这就不能靠简单的规则决定。
有两种评测方式。
- 人类评价
成本比较高,一般不会考虑。
- 模型评价
用模型代替人工评价,例如用目前比较好的
GPT-4模型评价模型A和模型B那首诗写得比较好。
例如
- 比较
A 比 B 好/差
- 打分
A 4分/ B 3分
提示词工程(举例)
把题目变得更加丰富,然后再去给模型做推理和评测,此时评测的结果将更加真实的反映模型的性能,避免泛泛而谈导致评测分数集中。
明确性
- 不好的示例
请写一篇关于人工智能的全面介绍。
目标过于宽泛,缺乏具体要求和细节
- 好的示例
请为我写一篇关于人工智能的科普文章,要求涵盖其发展历程、应用领域以及对社会对影响。
目标明确,完整覆盖了主题内容
概念无歧义
- 不好的示例
我想了解苹果。
问题内容存在歧义
- 好的示例
请描述苹果公司的创始人史蒂夫乔布斯的职业生涯。
给出了准确的概念
逐步引导
- 不好的示例
告诉我怎么做蛋糕。
缺少指引
- 好的示例
首先,我需要准备哪些材料来制作巧克力蛋糕?接下来,烘焙过程中有哪些关键步骤?
给出了思路引导
具体描述
- 不好的示例
告诉我一个笑话
缺少具体细节
- 好的示例
请创作一个关于时间旅行的幽默故事。
给出了具体的问题描述和范围
迭代反馈
- 不好的示例
这个回答不够详细。
缺少清晰的反馈
- 好的示例
你能更详细地解释人工智能在医疗诊断中的应用吗?
明确清晰的修改建议
小样本学习
- 文本分类
示例1: “苹果发布新款iPhone” - 主题 : 科技
示例2: “美国大选结果揭晓” - 主题 : 政治
示例3: “全球气候变化影响报告” - 主题 : 环境
问题 : “科学家发现新的抗癌药物” - 主题 :
- 情感分析
示例1: “我今天非常开心!” - 情感 : 正面
示例2: “这个产品真是糟糕透了。” - 情感 : 负面
示例3: “天气预报说今天会下雨。” - 情感 : 中性
问题 : “我对这个结果感到失望。” - 情感 :
- 机器翻译
示例1: “你好” - “Hello”
示例2: “我需要帮助” - “I need help”
示例3: “这个餐厅的食物很美味” - "The food in this restaurant is delicious "
问题 : 我今天遇到了一个老朋友。
思维链技术
- 直接提问
问:自助餐厅有23个苹果。乳沟他们用了20个来做午餐并买了6个,他们现在有多少个苹果?
自助餐厅现在有49个苹果。
回答错误
- 思维链
问:自助餐厅有23个苹果。乳沟他们用了20个来做午餐并买了6个,他们现在有多少个苹果?让我们一步一步思考这个问题。
好的,我们来一步一步解决这个问题。
1.自助餐厅原本有23个苹果。
2.他们用了20个苹果来做午餐,所以我们需要从23个中减去20个苹果:23-20=3个苹果。
3.然后,他们又买了6个苹果,所以我们需要在剩下的苹果数量上加上这6个:3+6=9个苹果。
所以,自助餐厅现在有9个苹果。
回答正确
长文本评测
大海捞针
在一篇很长很长的文档中,在某一个位置突然插入不相关的一句话,让模型读完这本书之后,再问。如果模型能够回答出来,就证明长文本能力很好,确实是能记住在某个地方读到了这句话,是能够理解的。

能力分析与性能示意
- 指令跟随能力
- 长文本建模能力
- 信息抽取能力
社区
汇集社区力量:工具——基准——榜单 三位一体
评测集社区
CompassHub
- 提供高时效性高质量评测集
及时收听社区的需求。
权威性能榜单
CompassRank
- 发布权威榜单
- 洞悉行业趋势
每个月定期更新榜单,实时更新当前模型哪些性能比较好。
全栈评测工具
CompassKit
- 支撑高效评测
- 支持能力分析
最后优化工具,再给到社区反馈。
CompassRank :中立全面的性能榜单
100+大语言模型已加入评测50+多模态大模型已加入评测
CompassKit : 大模型评测全栈工具链
OpenCompass核心代码库功能全面升级
数据污染检查
提供多种数据污染检测方法
支持包括
GSK-8K、MMLU等主流数据集上的污染检测
更丰富的模型推理接入
支持近
20个商业模型API支持
LMDeploy、vLLM、LighLLM等推理后端
用 HuggingFace 推理后端比较慢,也支持更换推理后端。
长文本能力评测
支持
1M长度大海捞针测试支持多个主流长文本评测基准
中英文双语主观评测
支持基于大模型评价的主观评测
提供模型打分、模型对战多种能力
灵活切换上百种评价模型
OpenCompass 评测流水线
OpenCompass 有评测流水线,这也是与其他评测体系的不同之处。

任务*
OpenCompass会将评测请求切分为多个独立执行的任务,从而最大化利用计算资源
OpenCompass 不仅支持自定义任意模型、自定义任意数据集,还能对任务进行切分以及并行化。
有很多 GPU 时,如果任务串行,则需要很久。OpenCompass 支持灵活的切分任务,从而高效利用资源,并行运行多个任务。
CompassKit 大模型评测全栈工具链
VLMEvalKit 多模态评测工具
一站式多模态评测工具,支持主流多模态模型和数据集,助力社区比较不同多模态模型在各种任务上的性能。
Code-Evaluator 代码评测工具
提供基于
docker的统一编程语言评测环境,确保代码能力评测的稳定性和可复现性。
MixtralKit MoE 模型入门工具
为
MoE模型初学者提供学习资料、模型架构解析、推理与评测教程等入门工具。
CompassHub : 高质量评测基准社区
开源开放,共建共享的大模型评测基准社区
可以看到数据集介绍,以及数据集下的评测结果。
能力维度全面升级
基础能力
考察大模型在如语言、知识、理解、熟悉、代码、推理等维度上的基本功
- 语言
- 知识
- 理解
- 数学
- 代码
- 推理
综合能力
考察大模型综合运用各类知识、理解与分析、多步推理、代码工具等来完成复杂任务的能力水平
- 考试
- 对话
- 创作
- 智能体
- 评价
- 长文本
夯实基础:自研高质量大模型评测基准
MathBench
多层次数学能力评测基准
CriticBench
多维度的
LLM反思能力评估基准
T-Eval
大模型细粒度工具能力评测基准
CreationBench
多场景中文创作能力评测基准
F-Eval
大模型基础能力评测基准
CIBench
代码解释器能力评测基准
MathBench : 多层次数学能力评测基准
三级梯度难度
MathBench 区分小学、初中、高中、大学四个不同层次的题目,注重梯度难度的考察。
- 初级
注重基础运算(计算与小学)
- 中级
基础应用和理解(初中)
- 高级
复杂运算及推理(高中和大学)
多语言题目来源
- 中文
中考、高考和研究生考试等
- 英文
SAT、AMC、GRE考试等
循环评估 Circular Evaluation
问
自助餐厅已有有23个苹果。新买了6个,他们现在有多少个苹果?
A: 1个,B: 17个,C: 29个,D: 138个
问
自助餐厅已有有23个苹果。新买了6个,他们现在有多少个苹果?
A: 7个,B: 29个,C: 138个,D: 1个
问
自助餐厅已有有23个苹果。新买了6个,他们现在有多少个苹果?
A: 29个,B: 138个,C: 1个,D: 7个
问
自助餐厅已有有23个苹果。新买了6个,他们现在有多少个苹果?
A: 138个,B: 1个,C: 17个,D: 29个
CIBench : 代码解释器能力评测基准
- 任务和软件等多样性
- 评测基准具有高度可拓展性
- 多难度等级设计(10轮以上交互)
| 能力 | Python 库 |
|---|---|
| 数据读取与操作 | Pandas |
| 数据可视化 | Matplotlib Seaborn |
| 机器学习 | Scikit-learn LightGBM |
| 深度学习 | PyTorch TensorFlow |
| 自然语言处理 | NLTK |
| 计算机视觉 | OpenCV |
| 数学与统计 | SciPy |
T-Eval : 大模型细粒度工具能力评测基准
- 规划
- 检索
- 指令遵循
- 推理
- 理解
- 评价

全面且细粒度的评测方式
高质量的评测数据
剖析模型的工具调用能力
群策群力:携手行业领先共建繁荣生图
OpenFinData 全场景金融评测基准
- 东方财富
OpenFinData金融全场景评测数据集介绍
LawBench 大模型司法能力基准
- 南京大学
LawBench评估大语言模型 (LLMs) 在高度专业化法律领域的综合评估基准
MedBench 中文医疗大模型评测基准
MedBench
MedBench致力于打造一个科学、公平且严谨的中文医疗大模型评测体系及开放平台。我们基于医学权威标准,不断更新维护高质量的医学数据集,全方位多维度量化模型在各个医疗维度的能力。
SecBench 网络安全评测基准
Tencent腾讯
SecBench网络安全大模型评测
OpenCompass 司南大模型评测体系
GitHub项目HuggingFace主页- 微信公众号
实战
为什么要研究大模型的评测?
百家争鸣,百花齐放。
- 首先,研究评测对于我们全面了解大型语言模型的优势和限制至关重要。尽管许多研究表明大型语言模型在多个通用任务上已经达到或超越了人类水平,但仍然存在质疑,即这些模型的能力是否只是对训练数据的记忆而非真正的理解。例如,即使只提供
LeetCode题目编号而不提供具体信息,大型语言模型也能够正确输出答案,这暗示着训练数据可能存在污染现象。 - 其次,研究评测有助于指导和改进人类与大型语言模型之间的协同交互。考虑到大型语言模型的最终服务对象是人类,为了更好地设计人机交互的新范式,我们有必要全面评估模型的各项能力。
- 最后,研究评测可以帮助我们更好地规划大型语言模型未来的发展,并预防未知和潜在的风险。随着大型语言模型的不断演进,其能力也在不断增强。通过合理科学的评测机制,我们能够从进化的角度评估模型的能力,并提前预测潜在的风险,这是至关重要的研究内容。
- 对于大多数人来说,大型语言模型可能似乎与他们无关,因为训练这样的模型成本较高。然而,就像飞机的制造一样,尽管成本高昂,但一旦制造完成,大家使用的机会就会非常频繁。因此,了解不同语言模型之间的性能、舒适性和安全性,能够帮助人们更好地选择适合的模型,这对于研究人员和产品开发者而言同样具有重要意义。
OpenCompass 介绍
上海人工智能实验室科学家团队正式发布了大模型开源开放评测体系 “司南” ( OpenCompass 2.0),用于为大语言模型、多模态模型等提供一站式评测服务。其主要特点如下:
- 开源可复现
提供公平、公开、可复现的大模型评测方案
- 全面的能力维度
五大维度设计,提供
70+个数据集约40万题的的模型评测方案,全面评估模型能力
- 丰富的模型支持
已支持
20+HuggingFace及API模型
- 分布式高效评测
一行命令实现任务分割和分布式评测,数小时即可完成千亿模型全量评测
- 多样化评测范式
支持零样本、小样本及思维链评测,结合标准型或对话型提示词模板,轻松激发各种模型最大性能
- 灵活化拓展
想增加新模型或数据集?想要自定义更高级的任务分割策略,甚至接入新的集群管理系统?
OpenCompass的一切均可轻松扩展!
评测对象
本算法库的主要评测对象为语言大模型与多模态大模型。我们以语言大模型为例介绍评测的具体模型类型。
- 基座模型
一般是经过海量的文本数据以自监督学习的方式进行训练获得的模型(如
OpenAI的GPT-3,Meta的LLaMA),往往具有强大的文字续写能力。
- 对话模型
一般是在的基座模型的基础上,经过指令微调或人类偏好对齐获得的模型(如
OpenAI的ChatGPT、 上海人工智能实验室的书生·浦语),能理解人类指令,具有较强的对话能力。
工具架构

- 模型层
大模型评测所涉及的主要模型种类,
OpenCompass以基座模型和对话模型作为重点评测对象。
- 能力层
OpenCompass从本方案从通用能力和特色能力两个方面来进行评测维度设计。在模型通用能力方面,从语言、知识、理解、推理、安全等多个能力维度进行评测。在特色能力方面,从长文本、代码、工具、知识增强等维度进行评测。
- 方法层
OpenCompass采用客观评测与主观评测两种评测方式。客观评测能便捷地评估模型在具有确定答案(如选择,填空,封闭式问答等)的任务上的能力,主观评测能评估用户对模型回复的真实满意度,OpenCompass采用基于模型辅助的主观评测和基于人类反馈的主观评测两种方式。
- 工具层
OpenCompass提供丰富的功能支持自动化地开展大语言模型的高效评测。包括分布式评测技术,提示词工程,对接评测数据库,评测榜单发布,评测报告生成等诸多功能。
设计思路
为准确、全面、系统化地评估大语言模型的能力, OpenCompass 从通用人工智能的角度出发,结合学术界的前沿进展和工业界的最佳实践,提出一套面向实际应用的模型能力评价体系。 OpenCompass 能力维度体系涵盖通用能力和特色能力两大部分。
评测方法
OpenCompass 采取客观评测与主观评测相结合的方法。针对具有确定性答案的能力维度和场景,通过构造丰富完善的评测集,对模型能力进行综合评价。针对体现模型能力的开放式或半开放式的问题、模型安全问题等,采用主客观相结合的评测方式。
客观评测
针对具有标准答案的客观问题,我们可以通过使用定量指标比较模型的输出与标准答案的差异,并根据结果衡量模型的性能。同时,由于大语言模型输出自由度较高,在评测阶段,我们需要对其输入和输出作一定的规范和设计,尽可能减少噪声输出在评测阶段的影响,才能对模型的能力有更加完整和客观的评价。为了更好地激发出模型在题目测试领域的能力,并引导模型按照一定的模板输出答案, OpenCompass 采用提示词工程 ( prompt engineering )和语境学习( in-context learning )进行客观评测。 在客观评测的具体实践中,我们通常采用下列两种方式进行模型输出结果的评测:
- 判别式评测
该评测方式基于将问题与候选答案组合在一起,计算模型在所有组合上的困惑度(
perplexity),并选择困惑度最小的答案作为模型的最终输出。例如,若模型在问题? 答案1上的困惑度为0.1,在问题? 答案2上的困惑度为0.2,最终我们会选择答案1作为模型的输出。
- 生成式评测
该评测方式主要用于生成类任务,如语言翻译、程序生成、逻辑分析题等。具体实践时,使用问题作为模型的原始输入,并留白答案区域待模型进行后续补全。我们通常还需要对其输出进行后处理,以保证输出满足数据集的要求。
主观评测
语言表达生动精彩,变化丰富,大量的场景和能力无法凭借客观指标进行评测。针对如模型安全和模型语言能力的评测,以人的主观感受为主的评测更能体现模型的真实能力,并更符合大模型的实际使用场景。 OpenCompass 采取的主观评测方案是指借助受试者的主观判断对具有对话能力的大语言模型进行能力评测。在具体实践中,我们提前基于模型的能力维度构建主观测试问题集合,并将不同模型对于同一问题的不同回复展现给受试者,收集受试者基于主观感受的评分。由于主观测试成本高昂,本方案同时也采用使用性能优异的大语言模拟人类进行主观打分。在实际评测中,本文将采用真实人类专家的主观评测与基于模型打分的主观评测相结合的方式开展模型能力评估。 在具体开展主观评测时, OpenComapss 采用单模型回复满意度统计和多模型满意度比较两种方式开展具体的评测工作。
快速开始

概览
在 OpenCompass 中评估一个模型通常包括以下几个阶段:配置 -> 推理 -> 评估 -> 可视化。
- 配置
这是整个工作流的起点。您需要配置整个评估过程,选择要评估的模型和数据集。此外,还可以选择评估策略、计算后端等,并定义显示结果的方式。
- 推理与评估
在这个阶段,
OpenCompass将会开始对模型和数据集进行并行推理和评估。推理阶段主要是让模型从数据集产生输出,而评估阶段则是衡量这些输出与标准答案的匹配程度。这两个过程会被拆分为多个同时运行的“任务”以提高效率,但请注意,如果计算资源有限,这种策略可能会使评测变得更慢。
- 可视化
评估完成后,
OpenCompass将结果整理成易读的表格,并将其保存为CSV和TXT文件。你也可以激活飞书状态上报功能,此后可以在飞书客户端中及时获得评测状态报告。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)