背景
书生大模型是一个由上海人工智能实验室开发的语言模型。其是致力于大模型研究与开发工具链的开源组织。2023年7月开源了InterLM-7B,2024年7月4日开源了InterLM2.5。此外,它还开源了一些系列的工具链,如下:
- InternEvo: 大规模模型与训练和微调的轻量级框架。
- XTuner: 高效微调LLMs的工具,支持多种模型和偏好对齐算法。
- LMDeploy: 一个用于压缩、部署和提供大型语言模型(LLMs)的工具包。
- Lagent: 一个轻量级框架,允许用户高效地构建基于大型语言模型(LLM)的代理。
- AgentLego: 一个包含多功能工具API的库,用于扩展和增强基于大型语言模型(LLM)的代理,与Lagent、Langchain等兼容。
- OpenCompass: 一个大型模型评估平台,提供公平、开放且可复现的基准测试。
- OpenAOE: 一个优雅且独特的聊天用户界面,用于比较多个模型。
因为我自己主要从事的是大模型评测方向的工作,因此在这里详细介绍一下opencompass平台。
OpenCompass
OpenCompass 司南 2.0 大模型评测体系,它主要由三大核心模块构建而成:CompassHub(评测集)CompassRank(评测榜单)以及CompassKit(工具链)。
CompassHub(评测集)
CompassHub 评测集社区提供了丰富的评测集信息,目前包括学科、推理、代码、数学、理解、语言、安全、长文本、智能体、创作、指令跟随及其他等共13个类别的数据。评测集包含开源收录、官方自建、合作共建及司南精选这四种类型,累计共57个集合。
接入新评测集
通过注册登录,可以在平台上创建新的评测集,支持公开和私有2种类型。
CompassRank(评测榜单)
榜单类型
目前共有3种类型的榜单:大语言模型榜单、多模态模型榜单、垂类共建榜单,包含7大能力维度评:语言、推理、知识、数学、代码、指令跟随、智能体。
大语言模型榜单:包括官方自建月度榜单、公开学术榜单、Compass Arena 大语言模型对战榜单。其中,官方自建榜单相关规则如下:
- 闭源数据集,每两个月更新评测题目
- 榜单每两月更新一次,会于下一个双月月初发布
多模态大模型榜单:多模态模型榜单、Compass Arena 大语言模型对战榜单。其中多模态榜单规则如下:
- 国内外开源学术评测集
- 榜单每两月更新一次,以每双月初第一个工作日的结果快照作为上个双月月度榜单。
垂类共建榜单:包括金融、安全、通识、法律和医疗垂类下共5个榜单。
参评方式
在 X 月 25 日前(评测开始前) 写邮件至 opencompass@pjlab.org.cn 申请评测。
- 如果是开源模型参与榜单评测,请提供 Hugging Face 或 ModelScope 模型权重及链接;
- 若为 API 模型,需提供 API 网址链接,并写明模型版本(注意:请务必提前向 OpenCompass 提交 PullRequest,加入贵司 API 的实现)
当前榜单情况
- opencompass大语言模型官方自建榜单
目前综合评分排名前十的模型如下(24年9月度):
不同能力维度会根据任务形式选用主观或客观评测方案。总分基于各能力维度加权获得: 语言(10%)、推理(20%)、知识(10%)、代码(20%)、数学(20%)、指令跟随(10%)、智能体(10%)
- OpenCompass 多模态模型评测榜单
目前榜单基于以下 8 个数据集进行平均分计算:MMBench v1.1 (中英测试集), MMStar, MMMU (验证集), MathVista (迷你测试集), HallusionBench, AI2D (测试集), OCRBench, MMVet。
CompassKit(评测工具)
CompassKit是一个大模型评测全栈工具链,支持多种模型的加载、评测和结果分析,提供了丰富的评测指标和数据集选择,以及灵活的评测参数配置。其包括以下2大部分:
- OpenCompass:
- VLMEvalKit:是一款专为大型视觉语言模型 (Large Vision-Language Models, LVLMs) 评测而设计的开源工具包。
其架构如下图:
支持评测能力维度
能力 | 任务介绍 | 评测方式 |
---|---|---|
语言 | 评测模型在信息抽取、信息抽取、内容总结、对话、创作等多种任务上的能力 | 主观评测 |
推理 | 评测模型在逻辑推理、常识推理、表格推理等多种日常推理任务上的能力 | 主观评测 |
知识 | 评测模型在理科、工科、人文社科等多个领域的知识水平 | 客观评测 |
数学 | 评测模型在数值计算、高中及大学难度的数学问题上的能力 | 客观评测 |
代码 | 评测模型在代码生成、代码补全、代码注释、代码重构、代码改写、计算机知识综合问答上的能力 | 客观评测 + 主观评测 |
指令跟随 | 评测模型在基于各类语言、推理、知识等任务中,能否准确遵循复杂指令的能力 | 主观评测 |
智能体 | 评估模型在复杂工具调用的能力,以及数据科学、数学等情况下使用代码解释器的能力 | 客观评测 |
评测方法
OpenCompass采取客观评测与主观评测相结合的方法。对具有确定性答案的能力维度和场景采用客观评测,而对体现模型能力的开放式或半开放式的问题、模型安全问题等,采用主客观相结合的评测方式。
主观评测
基于模型辅助的主观评测:采用0-shot + CoT的方式,在评测时在Prompt中对回答格式进行约束,对于因指令跟随问题带来的无法完成答案提取的情况,将视为回答错误。
0-shot + CoT方式可能会产生不可预期的偏差和有毒性,需要做过偏好对齐改进和缓解毒性指令微雕的模型使用此方式可以降低这个影响,并且要求模型的规模要大,且规模越大,效果越好。
基于人类反馈的主观评测:
在具体开展主观评测时,OpenComapss采用单模型回复满意度统计和多模型满意度比较两种方式开展具体的评测工作。
客观评测
OpenCompass采用提示词工程 (prompt engineering)和语境学习(in-context learning)进行客观评测。采用下列两种方式进行模型输出结果的评测:
- 判别式评测:该评测方式基于将问题与候选答案组合在一起,计算模型在所有组合上的困惑度(perplexity),并选择困惑度最小的答案作为模型的最终输出。例如,若模型在 问题? 答案1 上的困惑度为 0.1,在 问题? 答案2 上的困惑度为 0.2,最终我们会选择 答案1 作为模型的输出。
- 生成式评测:该评测方式主要用于生成类任务,如语言翻译、程序生成、逻辑分析题等。具体实践时,使用问题作为模型的原始输入,并留白答案区域待模型进行后续补全。我们通常还需要对其输出进行后处理,以保证输出满足数据集的要求。
采用基于大模型评价的方式,并对每一道问题均提供评测时的打分指引。比较待测模型相对于参考回复的胜率,共设置为五档:
A++
:回答A远胜于回答B。A+
:回答A略优于回答B。A=B
:回答A和回答B质量相同。B+
:回答B略优于回答A。B++
:回答B远胜于回答A。
详见:opencompass.readthedocs.io/zh-cn/lates…
评测流程
在 OpenCompass 中评估一个模型通常包括以下几个阶段:配置 -> 推理 -> 评估 -> 可视化
VLMEvalKit
支持2种评测集:支持的图文多模态评测、和支持的视频多模态评测集。
大模型竞技场
Compass Arena是国内独家大语言模型评测竞技场,是上海人工智能实验室司南OpenCompass 和 魔搭 ModelScope 于2024年5月联手推出,以本地部署或API接入形式汇集了当前主流的大语言模型。用户根据与大模型的真实对话体验进行投票,经过数据清洗和过滤后,利用Bradley-Terry模型估计了模型的竞技场评级分数,并使用该分数对大模型进行排名。截至2024年11月29日,该平台已有模型数量33个,有效投票数量16545。
评测地址
司南开源评测体系:opencompass.org.cn/arena
魔搭社区:modelscope.cn/studios/ope…
评测机制
- 借鉴了Chatbot Arena,采用Elo评分系统
- 系统自动对大模型进行排名更新
竞技模式
-
匿名对战(支持大语言模型和多模态模型):平台随机给出匿名的2个模型ModelA和ModelB,用户输入评测内容,2个模型会同时生成回复,在进行投票前可以进行多轮对话,但是一旦投票,本轮battle就结束了,同时会显示模型名称。
- 大语言模型:支持34个模型,仅支持用户自行输入文本。
- 多模态模型:支持11个模型,除了自行上传图片,还支持从预设的图库(梗图、艺术、照片三类)种随机采样并生成图片和问题,如下图。
大语言模型投票之后的效果如下:
多模态模型投票之后的效果如下:
- 自选对战(仅支持大语言模型):支持34种模型,可进行多轮对话,投票前后都可以进行推理。
打分用户
打分用户:没有任何限制,需要注意此服务提供的安全措施有限,其平台对生成或传递内容不承担相关法律责任。避免上传任何私人信息或敏感数据。
参评方式
- 写邮件至 opencompass@pjlab.org.cn
- 每家厂商最多申请接入 1 个模型,支持带搜索和不带搜索两种版本
- 每周三更新
注意事项:
接入 Compass Arena 的模型,若要求打开联网功能,请厂商提供可免费使用的 key。
新版本的模型需要积累到一定的有效票数,对战名次才会在榜单中进行体现。
若模型API默认开启搜索功能,Compass Arena接入时会相应开启搜索功能,并在模型名称后标识w/search字样;对于默认未开启搜索功能的模型API,后续可按模型方需求,增加带搜索功能的版本接入。