CaLM 因果推理评测体系:如何让大模型更贴近人类认知水平?
CaLM 是什么
CaLM(Causal Evaluation of Language Models,以下简称“CaLM”)是上海人工智能实验室联合同济大学、上海交通大学、北京大学及商汤科技发布首个大模型因果推理开放评测体系及开放平台。首次从因果推理角度提出评估框架,为 AI 研究者打造可靠评测工具,从而为推进大模型认知能力向人类水平看齐提供指标参考。
因果推理是人类认知能力最重要的特征之一,提升因果推理能力被视为由机器智能迈向人类智能水平的关键步骤。为对大模型进行科学有效的因果推理能力评估,上海人工智能实验室联合团队在 CaLM 中提出包含因果评估目标(Causal Target)、评估方式(Adaptation)、评估标准(Metric)及错误分析(Error)的评估框架,同时构建了超过12万道题目的中英文数据集。
基于 CaLM,联合团队首次对 28 个当前主流大模型进行了因果推理能力评测,共产生了 50 项实证性发现,本文摘录其中 6 个结论。相关论文共 315 页,可查看文末链接,或登录网页查阅下载。
CaLM 评估框架
(CaLM 评估框架)
CaLM 采用了一套灵活、易扩展的评估框架,并按照预设实施顺序进行评测:因果评估目标(Causal Target)→评估方式(Adaptation)→评估标准(Metric)→错误分析(Error)。CaLM 的评估框架设计与实施流程,还可应用于数学推理、专业知识及长文本处理等模型能力评估体系构建。
自下而上的因果评估目标
在当前普遍采用的 Judea Pearl 提出的因果阶梯理论基础上,CaLM 进一步发展并明确了四个层次的因果任务:因果发现(Causal Discovery)、关联(Association)、干预(Intervention)及反事实(Counterfactuals)。每层次任务按复杂程度进行基础到高级的顺序排列,构成了自下而上的框架。
因果发现旨在从数据或语义中推测出潜在的因果结构,关联探索数据间的统计依赖关系,干预预测有意改变环境中的变量所带来的影响,以及反事实则对假设的替代场景进行推理。针对四个任务层次,CaLM 设计了因果归因、解释移除效应、对撞偏差和反事实推理等 21 种因果场景,覆盖 COPA、CLADDER 及 CaLM-IV 等多种数据集和问题类型。
(CaLM 因果评估目标设置)
丰富的评估方式
在评估方式的选择上,CaLM 采用了基准提示、对抗性提示、思维链及上下文学习等 9 种评估方式。综合考量了评测实践过程的受众广泛性、用户易用性以及实验控制性。
全面的评估标准
针对模型、提示词以及因果场景,CaLM 中分别设置了不同的评估标准,覆盖包括准确率、鲁棒性、理解度等 7 种,全面反映模型的因果推理能力和鲁棒性、提示词有效性。越复杂的因果场景模型越难解决,从而该场景成熟度越低,因此 CaLM 同时设置了考察因果场景成熟度的评估标准。
(CaLM 评估标准)
系统的错误结果分析
联合团队认为,大模型评测中产生的错误,是应用于下一阶段研究的宝贵资源。通过发现并定义错误,研究人员能够更清晰地界定模型能力边界,识别模型存在的缺陷,并寻找对应提升路径。
为此,CaLM 在评估过程中,将模型产生的错误系统地分为两大类:定量错误(Quantitative)和定性错误(Qualitative)。不仅对每类错误进行明确的定义,还对所有定量错误都进行了统计分析,以量化错误的频率和模式。CaLM 也对于所有定性错误进行了深入的案例研究,以理解错误的具体情况和成因。
(CaLM 错误结果分析框架)
CaLM 因果评测数据集
为了使因果推理能力评估有“考题”可循,联合团队构建了一套全新的评测数据集。基于四个层级的因果任务设置,涵盖了丰富的因果概念,包含超过 12 万条中英文数据。同时,研究人员还细致地将文本模态划分为日常表达(Natural)、抽象表达(Symbolic)和数学表达(Mathematical)三种子态,以考察模型在不同类型模态下的理解能力。
该数据集约 90% 的内容为全新构建,10% 来自于现有公开数据集,既能与已有公开结果进行对比,反映评估的有效性,又能避免训练集数据污染问题。
同时,为了更便捷地评估,团队还推出了 CaLM Lite 版本,包含 9200 条中英文数据。该数据集目前在司南 OpenCompass 大模型能力评测体系也进行了同步公开,可以使用司南 OpenCompass 的评估套件进行快速的模型测试。
(CaLM 数据集问题类型统计概览)
CaLM 数据集题目展示
下面将选取 CaLM 中平均处理效应任务的题目进行展示。CaLM 提供了原始的因果图,条件概率,推理过程等,便于研究者进一步使用。
(CaLM 数据集题目展示)
CaLM 评测结果
针对 28 个当前主流大模型,联合团队使用了 CaLM 进行因果推理能力评测,共产生了 50 项实证性发现。
评估数据和可视化结果均已发布至 CaLM 项目主页(https://opencausalab.github.io/CaLM),同时 CaLM 数据集、评估流程和错误分析的全流程均已开源,便于产学界自主研究使用。(https://github.com/OpenCausaLab/CaLM)
(CaLM 评测结果)
代表性结论速览
1. 因果推理能力普遍欠缺。目前,大语言模型很难有效地执行需要复杂因果推理的任务。随着因果推理复杂性的增加,每个大语言模型的准确性均逐渐下降,最终几乎降至零。
2. 人类反馈的强化学习(RLHF)存在双面效应。RLHF 能够使模型输出与人类推理过程保持更紧密对齐。另一方面,使用RLHF微调的模型也容易受到用户错误指令的影响。
3. OpenAI 模型迭代提升显著。随着其每次更新,模型在执行因果推理任务能力方面都表现出实质性改进,其准确性和鲁棒性的平衡也显著提升。
4. 模型参数规模对因果推理能力的影响。在因果推理任务中,模型参数规模和准确性之间的关系并没有呈现出直接的单调递增,其他因素(例如训练数据和策略)会显著影响来自不同开发者模型的准确性。但在同一开发者的模型中,模型参数规模是准确性的一致且可靠的预测指标。
5. 提示词的改变并不能显著提高模型在复杂因果场景下的性能。由于模型的训练语料库中往往缺乏关于复杂因果推理任务的先验知识,在这种复杂的因果场景中,提示词的改变并不能显著提高模型性能。
6. 不同问题中出现相同回答的错误具有普遍性。受测的 28 个模型中,共计 26 个显示出对不同问题提供相同答案的倾向,表明它们无法有效地处理因果任务。
目前 CaLM 已加入司南 OpenCompass 大模型能力评测体系,欢迎社区的朋友参与共建!
数据集详情链接:
https://hub.opencompass.org.cn/dataset-detail/CaLM
使用 CompassKit 进行评测:
https://github.com/open-compass/opencompass
司南 OpenCompass 大模型能力评测体系将持续与业界共同推进大模型在因果推理领域的评估工作,携手构建一个开放、公平、透明的大语言模型评估体系,促进大语言模型技术的健康发展和持续创新。
OpenCompass 司南评测体系主要包括以下三大模块,欢迎大家使用。
1. 评测工具链体系 CompassKit,不仅提供完整的开源可复现评测代码,更提供了丰富的模型支持和高效的分布式评测策略。
开源地址:
https://github.com/open-compass
2. 高质量评测基准社区 CompassHub,面向大模型能力评测开源开放的基准社区,提供海量的面向不同能力维度和行业场景的评测基准。
社区地址:
https://hub.opencompass.org.cn/home
3. 权威评测榜单 CompassRank,作为 OpenCompass 中各类榜单的承载平台,CompassRank 不受任何商业利益干扰,保持中立性。
榜单地址:
https://rank.opencompass.org.cn/home
相关文章:

CaLM 因果推理评测体系:如何让大模型更贴近人类认知水平?
CaLM 是什么 CaLM(Causal Evaluation of Language Models,以下简称“CaLM”)是上海人工智能实验室联合同济大学、上海交通大学、北京大学及商汤科技发布首个大模型因果推理开放评测体系及开放平台。首次从因果推理角度提出评估框架ÿ…...

深入探索卷积神经网络(CNN)
深入探索卷积神经网络(CNN) 前言图像的数字表示灰度图像RGB图像 卷积神经网络(CNN)的架构基本组件卷积操作填充(Padding)步幅(Strides) 多通道图像的卷积池化层全连接层 CNN与全连接…...

【C++篇】手撕 C++ string 类:从零实现到深入剖析的模拟之路
文章目录 C string 类的模拟实现:从构造到高级操作前言第一章:为什么要手写 C string 类?1.1 理由与价值 第二章:实现一个简单的 string 类2.1 基本构造与析构2.1.1 示例代码:基础的 string 类实现2.1.2 解读代码 2.2 …...

毕业设计选题:基于ssm+vue+uniapp的校园失物招领小程序
开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…...

[系统设计总结] - Proximity Service算法介绍
问题描述 Proximity Service广泛应用于各种地图相关的服务中比如外卖,大众点评,Uber打车,Google地图中,其中比较关键的是我们根据用户的位置来快速找到附近的餐厅,司机,外卖员也就是就近查询算法。 主流的…...

变压吸附制氧机的应用范围
变压吸附制氧机是一种利用变压吸附技术从空气中分离出氧气的设备。该技术通过吸附剂在不同压力下的吸附与解吸性能,实现了氧气的有效分离和纯化。 工业领域 在工业领域,变压吸附制氧机同样具有广泛的应用。首先,钢铁企业在生产过程中需要大量…...

MATLAB绘图基础8:双变量图形绘制
参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。 8.双变量图形绘制 8.1 散点图 散点图用于显示两个变量间的关系,每个数据点在图上表示为一个点,一个变量在 X {\rm X} X轴,一个变量在 Y {\rm Y} Y轴&#…...
Appium高级话题:混合应用与原生应用测试策略
Appium高级话题:混合应用与原生应用测试策略 在移动应用开发领域,混合应用与原生应用各有千秋,但它们的测试策略却大相径庭。本文旨在深入探讨这两种应用类型的测试挑战,并介绍如何利用自动化测试软件ItBuilder高效解决这些问题&…...
windows源码安装protobuf,opencv,ncnn
安装笔记 cmake 在windows可以使用-G"MinGW Makefiles" 搭配make使用,install出来的lib文件时.a结尾的,适合linux下面使用。所以在windows上若无需求使用-G"NMake Makefiles" 搭配nmake。 但是windows上使用-G"NMake Makefil…...
MicroPython 怎么搭建工程代码
在MicroPython中搭建工程代码可以遵循以下步骤: 1. 准备工作 安装MicroPython固件:确保已经将MicroPython烧录到ESP32开发板中。准备开发环境: 可以使用文本编辑器(如VS Code、Thonny、uPyCraft等)来编写代码。 2.…...

Android studio安装问题及解决方案
Android studio安装问题及解决方案 gradle已经安装好了,但是每次就是找不到gradle的位置,每次要重新下载,很慢,每次都不成功 我尝试用安装android studio时自带的卸载程序,卸载android studio,然后重新下…...
前端面试题(二)
6. 深入 JavaScript this 关键字的指向是什么? this 的指向是在函数执行时决定的。默认情况下,非严格模式下 this 指向全局对象(浏览器中为 window),严格模式下 this 为 undefined。在对象方法中,this 通常…...

【C++】stack和queue的使用及模拟实现
stack就是栈的意思,这个结构遵循后进先出(LIFO)的原则,可以将栈想象为一个子弹夹,先进去的子弹后出来。 queue就是队列的意思,这个结构遵循先进先出(FIFO)的原则,可以将对列想象成我们排队买饭的场景,先排…...

MongoDB解说
MongoDB 是一个流行的开源 NoSQL 数据库,它使用了一种被称为文档存储的数据库模型。 与传统的关系型数据库管理系统(RDBMS)不同,MongoDB 不使用表格来存储数据,而是使用了一种更为灵活的格式——JSON 样式的文档。 这…...
问:JAVA中唤醒阻塞的线程有哪些?
在Java中,唤醒阻塞线程的方法有多种,以下是常见的线程唤醒方法。 唤醒方法 使用notify()和notifyAll()方法 synchronized (obj) {obj.notify(); // 唤醒单个等待线程// obj.notifyAll(); // 唤醒所有等待线程 }使用interrupt()方法 Thread thread n…...

Github Webhook触发Jenkins自动构建
1.功能说明 Github Webhook可以触发Jenkins自动构建,通过配置Github Webhook,每次代码变更之后(例如push操作),Webhook会自动通知Jenkins服务器,Jenkins会自动执行预定义的构建任务(如Jenkins …...

ESP32-WROOM-32 [创建AP站点-客户端-TCP透传]
简介 基于ESP32-WROOM-32 开篇(刚买), 本篇讲的是基于固件 ESP32-WROOM-32-AT-V3.4.0.0(内含用户指南, 有AT指令说明)的TCP透传设置与使用 设备连接 TTL转USB线, 接ESP32 板 的 GND,RX2, TX2 指令介绍 注意,下面指…...

新闻文本分类识别系统Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+TensorFlow+Django网页界面
一、介绍 文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集(“体育类”, “财经类”, “房产类”, “家居类”, “教育类”, “科技类”, “时尚类”, “时政类”, “游戏类”, “娱乐类”),然…...
Java使用Map数据结构配合函数式接口存储方法引用
Java使用Map数据结构配合函数式接口存储方法引用 背景 需求中存在这样一直情况 一个国家下面有很多的州 每个州对应的计算日期方法是不同的 这个时候 就面临 可能会有很多if else 为了后期维护尽量还是不想采用这个方式,那么就可以使用策略模式 但是 使用策略带来的…...
LeetCode:2207. 字符串中最多数目的子序列(Java)
目录 2207. 字符串中最多数目的子序列 题目描述: 实现代码与解析: 遍历: 原理思路: 2207. 字符串中最多数目的子序列 题目描述: 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 p…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...