chatgpt在复杂问题的回答表现

2023/9/30 17:37:23

2023年东南大学论文:Evaluation of ChatGPT as a Question Answering System for Answering Complex Questions

代码库已经无法访问了:https://github.com/tan92hl/Complex-Question-Answering- Evaluation-of-ChatGPT

1.简介

复杂问题的回答(KB-based CQA)是一种很有挑战性的KBQA任务,希望模型能具备compositional reasoning的学习能力,比如通过多步推理、进行集合操作或者其他复杂推理得到最终的答案。

如何去评判ChatGPT的回答表现呢?一方面,该文章采用的方法是,对测试问题进行打多个标签:答案类型(语法分析获得),推理操作,语种(数据集带了),这些标签每一个都可以助于分析ChatGPT的推理能力,标签间的组合也有助于发现潜在的问答场景和ChatGPT的表现情况。另一方面,沿用了checklist的测试方法对模型推理任务执行情况、推理过程可信服进行了测试。

KBQA数据集有很多,格式也不尽相同,这里选择的是基于SPARQL格式的数据集,并利用关键字来识别可能用于回答的推理操作。

结果简述:

  • 单语问题的回答上,ChatGPT除了数字和时间类的,其他表现都是最好的;如果问题需要多步推理或者基于事实的推理(这里我不知道start-shape是啥意思),ChatGPT表现不如GPT3.5;多语言问答上,在少数据源的语言上表现最好
  • checklist测试上,ChatGPT在复杂问题回答上有几个问题:在单推理类型的任务表现不好(MFT结果);和传统的KBQA相比,ChatGPT在相似问题上表现不稳定(INV结果);ChatGPT并不能按照预期prompt生成相应的结果(DIR结果)

2.相关工作

2.1 LLM和prompt

简单介绍了一下GPT3及3.5、T5、BERT。这里不再赘述。

2.2 LLM的评估

之前最全面的评估要数HELM了(Holistic Evaluation of Language Models,该文为大模型评估方向的综述论文,由Percy Liang团队打造,将2022年四月份前的大模型进行了统一的评估。其中,被评估的模型包括GPT-3,InstructGPT等。在经过大量的实验之后,论文提出了一些可供参考的经验总结。)

和HELM类似,本文提出了自己的评价方法(前面说过了,对测试问题进行打多个标签,然后基于标签进行评估)

2.3 NLP模型的黑盒测试

这里用了CheckList的方案,每一项评估包括三项:最小功能测试(MFT)不变性测试(INV)定向期望测试(DIR)

1. 最小功能测试(MFT, minimum functionality test): 类似软工中的“单元测试”,用大量简单但具有极强针对性的样例进行测试。

2. 不变性测试(INT, invariance test): 对原有数据做一些不影响结果的轻微变化。比如拼写错误或者语法错误。

3. 定向期望测试(DIR, directional expectation test): 也是对原有数据做少许改动。改动后,模型的结果应该朝一个期望的方向变化。比如“明天星期六,我很{开心}”,“周末要加班,我很{难过}”

接下来的问题就是,有那么多测试要进行,如何针对每一项测试大规模生成测试样例呢?根据checklist原文的说法,测试样例可以完全“无中生有”,也可以通过改动已有数据得到。而作者们已经给出了强大的开源工具,帮助你快速生成测试样例。整个工具完全可视化,操作性极强。

本文采用的是利用CoT prompting来生成INV和DIR的测试用例。

3.本文提出的LLM评估框架

之前在简介也提到了,整个评估框架包含两部分,第一部分是通过试用多标签来描述一个测试问题,第二部分是针对每一个标签,测试模型的功能性、鲁棒性和控制性。、

3.1 特征驱动的多标签问题打标

原因:现在数据集使用不同标签来定义回答类型、推理类型等,为了可以进行统一的评估,需要对这些特征类型进行标准化。本文设计了三类标签:回答类型(问题涉及的话题)、推理类型(获得答案的方法)、语言类型(描述问题的语种)。一般一个问题只包含一个回答类型。

  1. 参考NER类型定义、英文问题类型、现有KBQA数据集给出的回答类型,本文最终选定8类作为回答类型。
  2. 基于KBQA数据集提供的推理类型,本文选了8个
  3. 语言标签使用了数据集中的标签

3.2 衡量方法

3.2.1 答案匹配策略

背景:ChatGPT生成的是句子,标答给的是短语

匹配方法:

对于日期、布尔类型、数字的匹配,直接和标答进行匹配。否则,按照如下方式:

基于提取的匹配:

  1. 将ChatGPT生成的句子进行语法解析,提取出名词短语,然后按照[名词,名词短语,短句]升序排列
  2. 对标答进行扩充,包括同义、多语言、别名

基于向量的匹配:

        如果不能基于名词短语匹配,就是用向量相似度算匹配程度

 3.2.2 基于prompt的checklist策略

仿照了checklist的指标:MFT、INV、DIR。

MFT示例如下图(SetOperation和Counting的例子不都一样???)

INV:本文通过随机把句子中的词拼错、同义词改写

DIR:首先,替换了问题中与推理相关的短语,要求模型使用 SPARQL 查询生成答案,以观察 ChatGPT 输出中的逻辑操作是否与给出的修改相对应。其次,将包含答案类型的提示添加到输入中,以检查 ChatGPT 是否可以根据提示控制输出答案类型。第三,从CoT中得到启发,使用通用的多轮提示重写让Chat-GPT通过“逐步”过程获得答案的测试用例,以观察ChatGPT对不同类型问题的CoT提示的敏感性.

 4.参考文献

  1. 解决的是NLP领域模型评测问题的论文解读-夕小瑶
  2. ALC2020会议专辑 | ACL 2020最佳论文:一种全新的NLP模型测试方法CheckList - 知乎


http://www.jnnr.cn/a/486893.html

相关文章

one-stage目标检测方法

YOLO系列算法 从区域推荐到端到端 RCNN系列的方法和核心思想在于:先找出可能存在物体的区域,再确认物体的存在 这种思路归根溯源,来自传统的目标检测算法。 为了解决传统方法中的滑动窗口的方式,来找出可能存在目标的区域&…

Android通过TextToSpeech实现文字转语音

一、直接上代码: import android.app.Activity; import android.os.Bundle; import android.speech.tts.TextToSpeech; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widge…

Anchor Free目标检测方法

faster rcnn anchor:尺寸比例固定 yolo anchor尺寸确定:通过聚类 Anchor Free方法 anchor的简单理解:在特征图上的模板,含有的信息为检测框的大小和尺度 Anchor based 方法小结 Faster rcnn(左上) yolo v3(右上) ssd (中) re…

5月底了,让我看看有多少准备跳槽的····

前两天跟朋友感慨,今年的铜三铁四、裁员导致好多人都没拿到offer!现在已经5月底了,具体金九银十只剩下3个月。 对于想跳槽的职场人来说,绝对要从现在开始做准备了。这时候,很多高薪技术岗、管理岗的缺口和市场需求也出来了。 所…

类型转换-Java 如何计算两个时间的差

一、背景: 今天一个小伙伴在开发中,常取不到数,像string转换int,int转换string 虽然好像只是倒过来了,但是实现的逻辑不一样,今天就是日期在计算过程中的转换做一个总结 二、步聚 1.JAVA中与日期时间相关的类 1.1j…

AD PCB元器件封装设计方法

元器件封装界面 1.元器件可以新建PCB元件库,然后在新建的库中添加 2.也可以采用随便右键某个库中的元器件,选择“Edit…”,进入到元器件封装绘制界面。 元器件封装设计步骤 1.点击菜单栏工具——新的空元件;或者直接点击 Add&a…

PLC/DCS系统中电磁干扰的来源及解决办法

自动化系统中所使用的各种类型DCS/PLC等自动化设备,有的是集中安装在控制室,有的是安装在生产现场和各种电机设备上,它们大多处在强电电路和强电设备所形成的恶劣电磁环境中。要提高这类控制系统可靠性,必须消除各种干扰才能有效保…

chatgpt赋能python:Python三次方根的用途和计算方法

Python三次方根的用途和计算方法 如果您是一位Python编程工程师,您可能会经常需要用到Python的数学计算功能。在这篇文章中,我们将探讨Python三次方根的概念和使用,以及如何在Python中计算三次方根。 什么是三次方根? 三次方根…

Flutter 可冻结的侧滑表格 sticky-headers-table 结合 NestedScrollView 吸顶悬浮的使用实践

最近在做flutter web的开发,需要做一个类似云文档中表格固定顶部栏和左侧栏的需求,也就是冻结列表的功能 那么在pub上呢也有不少的开源库,比如: table_sticky_headers data_table_2 如果说只是简单的表格和吸顶,那么这…

[GUET-CTF2019]number_game[数独]

目录 题目 学到的知识点: 题目 在buu上看到了一道数独题,没见过,记录一下 下载附件,查壳,无壳,在IDA中打开,直接找到主函数 unsigned __int64 __fastcall main(int a1, char **a2, char **a3…

回归方程的显著性检验——F检验

回归方程的显著性检验——F检验 9.2 回归方程的显著性检验 (edu-edu.com.cn) 概念 记号: y i y_i yi​:真实值,观测值 y ˉ \bar{y} yˉ​:真实值的平均值 y ^ \hat{y} y^​:估计值,预测值 几个差&#x…

【网络编程一】初识网络:IP与端口号 网络模型

目录 🌟需要知道 一、基础概念 🌈1、IP地址与端口号 🌈2、五元组 二、协议分层 🌈1、OSI七层网络网络模型 🌈2、TCP/IP五层(四层)模型 🌈3、封装和分用(重点!) &…

山西煤矿电子封条算法 opencv

山西煤矿电子封条通过pythonopencv网络模型AI视觉技术,pythonopencv算法模型实现对出入井人监察控制、调度室空岗识别、生产作业状态、摄像头遮挡、挪动角度识别、货运车辆出矿识别等。 OpenCV的全称是Open Source Computer Vision Library,是一个跨平台…

picoctf_2018_rop chain

小白垃圾笔记,不建议阅读。 这道题目其实我是瞎做的. 本地调试需要写一个文件名为flag.txt的文件。 先检查下保护:(我把文件名改成pwn了),32位仅仅开启了nx 然后放到32位ida里: main函数如下&#xff1a…

【Servlet API详解】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 1. HttpServlet类 2. HttpServletRequest 2.…

深入篇【C++】类与对象:友元函数与友元类

深入篇【C】类与对象&#xff1a;友元函数与友元类 ①.提出问题&#xff1a;重载operator<<②.解决问题&#xff1a;友元Ⅰ.友元函数【特点】 Ⅱ.友元类【特点】 ③.总结问题 ①.提出问题&#xff1a;重载operator<< 如果我们尝试去重载运算符operator<<,你…

SpringBoot 配置文件和日志文件

目录 一、SpringBoot配置文件 配置文件的格式 .properties配置文件格式 .yml配置文件格式 .properties 与 .yml的区别 配置文件的读取 .properties 与 .yml的区别 设置不同环境的配置⽂件 二、SpringBoot日志文件 日志打印的步骤 得到日志对象 方法一&#xff1a;使…

【MySQL】MySQL的事务原理和实现?

文章目录 MySQL事务的底层实现原理一、事务的目的可靠性和并发处理 二、实现事务功能的三个技术2.1 redo log 与 undo log介绍2.1.1 redo log2.1.2undo log 2.2 mysql锁技术2.2.1 mysql锁技术 2.3 MVCC基础 三、事务的实现3.1 原子性的实现3.1.1 undo log 的生成3.1.2 根据undo…

FrameLayout+LinearLayout实现首页底部菜单

1.布局样式 2.main.xml代码 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_par…

软件架构: 一切皆有代价

软件架构必须随着业务发展而演进&#xff0c;否则就会成为业务的阻碍。但架构本身在发展过程中很容易逐渐腐化&#xff0c;堆积大量技术债务&#xff0c;因此在软件发展过程中始终保持架构愿景非常重要。原文: Software architecture — Paying the Price for Neglecting it 在…
最新文章