当前位置: 首页 > news >正文

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”)是上海人工智能实验室联合同济大学、上海交通大学、北京大学及商汤科技发布首个大模型因果推理开放评测体系及开放平台。首次从因果推理角度提出评估框架&#xff…...

深入探索卷积神经网络(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…...

win10开机自启动方案总汇

win10开机自启动方案总汇 一、开始文件目录添加二、添加注册表启动程序三、服务启动3.1. 将程序注册为服务使用命令行创建服务设置服务启动类型启动服务 3.2. 使用 Windows 服务管理器配置服务3.3. 删除服务 四、定时任务或程序4.1 设置程序自启动(使用任务计划程序…...

【自动驾驶】基于车辆几何模型的横向控制算法 | Stanley 算法详解与编程实现

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…...

微服务--初识MQ

在微服务架构中,MQ(Message Queue,消息队列)作为一种重要的通信机制,扮演着至关重要的角色。 MQ,即消息队列,是一种在不同服务或系统之间传递消息的中间件。它允许消息的发送者(生产…...

车辆识别数据集,图片数量20500,模型已训练200轮

车辆识别数据集(Vehicle Recognition Dataset, VDRD) 摘要 VDRD 是一个专为车辆识别设计的大规模数据集,它包含了20500张不同类型的汽车、货车、公交车以及其他类型车辆的图像。数据集提供了四种车辆类别:汽车、货车、其他车辆和…...

MES系统如何提升制造企业的运营效率和灵活性

参考拓展:苏州稳联-西门子MES系统-赋能智能制造的核心引擎 制造执行系统(MES)在提升制造企业运营效率和灵活性方面发挥着关键作用。 一、MES系统的基本概念和功能 MES系统是连接企业管理层与生产现场的重要桥梁。它主要负责生产调度、资源管理、质量控制等多个方…...

Nexpose 6.6.270 发布下载,新增功能概览

Nexpose 6.6.270 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, release Sep 18, 2024 请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.or…...

【数据库】sqlite

文章目录 1. 基本概述2. 主要特点3. 应用场景4. 优缺点5. 基本使用示例6. 在编程语言中的使用连接到 SQLite 数据库(如果文件不存在会自动创建)创建表插入数据提交事务查询数据关闭连接 7. 总结 SQLite 是一个轻量级的关系型数据库管理系统(R…...

详解 C++中的模板

目录 前言 一、函数模板 1.定义 2.函数模板的实现 3.模板函数的实例化 4.模板参数的省略 1.函数模板的实参推导 2.类模板的实参推导 3.默认模板参数 4.特殊情况:无法推导的模板 5.推导失败的情况 二、类模板 1.概念和定义 2.类模板定义 3.类模板的使用 4.类模板…...

基于DAMODEL——Faster-RCNN 训练与测试指南

Faster-RCNN 训练与测试指南 前言 今天我们要来实现一个经典的目标检测模型:Faster-Rcnn。我们使用DAMODEL云平台来实现,这是个很强大的云端平台,功能众多,你可以投你所好去进行你想做的事情。 1. 环境与工具准备 1.1 远程连接…...

考研数据结构——C语言实现冒泡排序

冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较每对相邻元素,并在顺序错误的情况下交换它们。这个过程重复进行,直到没有需要交换的元素,这意味着列表已经排序完成。冒泡排序的名字来源于较小的元素会逐…...