文献阅读:AnnoLLM: Making Large Language Models to Be Better Crowdsourced Annotators

  • 文献阅读:AnnoLLM: Making Large Language Models to Be Better Crowdsourced Annotators
    • 1. 文章简介
    • 2. 方法介绍
    • 3. 实验考察
      • 1. 实验结果
      • 2. 消解实验
      • 3. Consistency & Stability
    • 4. 结论 & 思考
  • 文献链接:https://arxiv.org/abs/2303.16854

1. 文章简介

这一篇文章是我司的另一篇关于GPT模型的Prompt工程调优的文章,不过这篇文章的方法挺有启发意义的,而且这篇文章的工作本身也和我最近在做的工作比较契合,因此打算在这里对这篇文章进行一下整理。

这篇文章的核心工作如前所述,是一个prompt调优的工作,用于使得GPT任务在分类任务的标注上获取更好的效果。

而这篇文章的核心思路其实还是对齐,他在文章中引入了一个叫做explain-then-annotate的方法,算是一个few-shot的变体,不过不同于few-shot的直接给答案或者人工给一些答案,文中采用的方式是先给模型一些人工标注的ground-truth,然后要求模型对此生成explanation来作为few-shot的内容。

用这种方式,某种意义上可以强制LLM对齐任务的判断标准与人的标准相同,从而使得模型在标注任务当中能够收获更好的效果。

2. 方法介绍

下面,我们来具体看一下文中的prompt的具体构造方法以及给出一个具体的prompt例子。

首先,我们来看一下AnnoLLM的整体的设计,这个可以用文中的图表进行展示:

在这里插入图片描述

其中,左侧是人工标注的流程,而右侧则是AnnoLLM的过程。

可以看到,其主要是包含了两个步骤:

  1. 给出task description以及一些标注数据,让模型来说明标注这些label的理由;
  2. 将上述task description,样例数据以及模型回答的理由作为few-shot prompt输入给模型,然后要求模型回答目标问题。

其具体的一个样例如下表所示:

在这里插入图片描述

其中,粗体的部分就是预先给到LLM答案之后由LLM自己生成的explanation,其具体的prompt如下:

在这里插入图片描述

通过这种方式,我们就可以迫使模型去对齐ground truth当中人类的判断标准,从而获得一个更好的效果表达。

3. 实验考察

下面,我们来看一下文中给出具体实验结果。

1. 实验结果

文中实验主要使用了如下三个数据集:

在这里插入图片描述

其中:

  1. QK数据集是一个query与keyword的relevance判断问题;
  2. BoolQ数据集是一个针对doc以及question的是非判断问题;
  3. WiC数据集则是判断同一个词在两个sentence当中是否有相同的语义;

给出三个数据集下的实验结果如下:

  1. QK

    在这里插入图片描述

  2. BoolQ

    在这里插入图片描述

  3. WiC

    在这里插入图片描述

可以看到:

  • 在三个任务当中,模型都获得了很好的效果。

2. 消解实验

为了验证这个CoT方法的有效性,文中还给出了消解实验的实验结果如下:

在这里插入图片描述

我们首先来看一下各组实验都是什么:

  1. baseline,先用label生成explanation,然后在explanation之后拼上label进行强调;
  2. 先用label生成explanation,然后删掉句首的label内容,只保留explanation,但是在句尾拼上label的内容;
  3. 先用label生成explanation,然后只将explanation拼到label之后;
  4. 和1在格式上保持一致,但是在生成explanation时并不事先告诉模型ground truth,而是让模型自由发挥,然后在模型自由生成的explanation之后拼上ground truth;
  5. 和4在格式和内容上保持一致,但是对explanation通过一些简单的过滤规则进行一些后处理,去除掉那些和ground truth不一致的解释。

可以看到:

  • 实验2,3主要是在考察格式对结果的影响;
  • 实验4,5主要是在考察explanation的生成方式对结果的影响;

结论来说:

  1. 比较1和2,可以看到,句首的grouth truth对于模型的理解有很重要的作用,删除会对模型效果有所影响,即使句末会给到真实的ground truth也一样;
  2. 比较1和3,我们注意到句末的ground truth label的拼接对于模型效果的影响是比较微弱的;
  3. 比较1和4,我们发现,如果不使用label让模型生成explanation,事实上并没有起到标准对齐的效果,模型infer的效果下降会很明显;
  4. 比较4和5,我们注意到即使通过一些规则过滤掉一些明显与ground truth不一致的explanation的情况下,模型效果依然无法恢复到baseline的水平,这可能由于某些问题模型自身始终无法给到正确的explanation,因此无法通过简单规则过滤得到ground truth对应的解释。

3. Consistency & Stability

最后,文章中还考察了一下这一方法的一致性和稳定性,具体来说,就是以下两个点:

  1. 一致性:生成的不同explanation作为prompt是否都能获得较好的效果;
  2. 稳定性:不同的few-shot上面CoT是否都能稳定的获得收益;

给出文中的具体实验结果图如下:

在这里插入图片描述

可以看到:

  • CoT的提升效果是稳定且一致的。

4. 结论 & 思考

综上,这篇文章依然还是一个prompt调优的工作,不过确实感觉很有启发意义。

且核心的思路根据我的理解依然还是在于对齐,虽然文中称之为CoT,不过我个人觉得不是特别合适,因为并没有看出来Chain的效果,更多的感觉还是一个个单例来迫使模型对齐了标准,从而提升了模型判断与人类判断的一致性。

而另一个好的点在于这篇文章的方法论事实上是比较泛化的,基本上可以无缝衔接到所有的分类问题当中,而且实现上也非常简单,倒是可以在我们自己的工作中也试试看,应该可以获得比较好的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/72703.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GrapeCity Documents for Excel, Java Edition Crack

GrapeCity Documents for Excel, Java Edition Crack 增加了对SpreadJS.sjs文件格式的支持: 更快地将大型Microsoft Excel文件转换为.sjs格式。 使用较小的占用空间保存导出的文件。 将Excel/SpreadJS功能导入SpreadJS/从SpreadJS导出。 从.sjs文件中压缩的JSON文件…

@Param详解

文章目录 背景什么是ParamParam的使用方法使用方法:遇到的问题及因Param解决了什么问题使用与不使用对比 Param是如何进行映射的总结 背景 最近在开发过程中,在写mapper接口是在参数前加了Param注解,但是在运行的时候就会报错,说…

设备取电芯片LDR6328Q

2021年5月,USB-IF 协会发布了全新的USB PD3.1规范,该规范将快充功率上限从100 W提升至240W(支持Extended Power Range,简称EPR)。充电功率的提升也让USB PD的应用从手机、笔记本电脑,扩展到便携式设备、物联…

教育行业文件协作的最佳实践分享!

在教育工作中,经常需要进行文件协作,无论是师生间还是老师与老师之间。目前最常用的文件协作方式就是通过社交工具或者邮件进行文件共享。 这种协作方式的缺点 1、大文件传输不便:这种协作方式依托于社交工具,对于大文件传输并不…

百日筑基篇——python爬虫学习(一)

百日筑基篇——python爬虫学习(一) 文章目录 前言一、python爬虫介绍二、URL管理器三、所需基础模块的介绍1. requests2. BeautifulSoup1. HTML介绍2. 网页解析器 四、实操1. 代码展示2. 代码解释1. 将大文件划分为小的文件2. 获得结果页面的url3. 获取结…

opsForHash() 与 opsForValue 请问有什么区别?

&#x1f449;&#xff1a;&#x1f517;官方API参考手册 如图&#xff0c;opsForHash()返回HashOperations<K,HK,HV>但是 opsForValue()返回ValueOperations<K,V>… 区别就是opsForHash的返回值泛型中有K,HK,HV,其中K是Redis指定的某个数据库里面某一个关键字(由…

Flutter BottomSheet 三段式拖拽

BottomSheetBehavior 追踪 BottomSheet系统默认实现效果准备要实现的功能点&#xff1a;定义三段式状态&#xff1a;BottomSheetBehavoir阀值定义1. 未达到滚动阀值&#xff0c;恢复状态2. 达到滚动阀值&#xff0c;更新状态 前面倒是有讲过Android原生的BottomSheetBehavior&a…

谈谈我的感受

虽然清楚知识需要靠时间沉淀&#xff0c;但在看到自己做不出来的题别人会做&#xff0c;自己写不出的代码别人会写时还是会感到焦虑怎么办&#xff1f; 感受 当我们比别人弱的时候&#xff0c;可能会感到挫败、失落、沮丧或无力。这种感受往往是因为我们与自己设定的标准或别人…

时序预测-Informer简介

Informer介绍 1. Transformer存在的问题 Informer实质是在Transformer的基础上进行改进&#xff0c;通过修改transformer的结构&#xff0c;提高transformer的速度。那么Transformer有什么样的缺点&#xff1a; &#xff08;1&#xff09;self-attention的平方复杂度。self-…

ruoyi-cloud微服务新建子模块

目录 相关文章1、复制system模块2、在modules下的 pom.xml文件中添加子模块 test3、进入 test模块修改 pom.xml4、修改对应的包名、目录名和启动应用程序为test5、修改bootstrap.yml文件中的端口号和应用名称6、nacos中克隆 system-dev.yml的配置&#xff0c;修改名称为 test-d…

章节7:XSS检测和利用

章节7&#xff1a;XSS检测和利用 测试payload <script>alert(XSS)</script> <script>alert(document.cookie)</script> ><script>alert(document.cookie)</script> ><script>alert(document.cookie)</script> &qu…

React Native 图片组件基础知识

在 React Native 中使用图片其实跟 HTML 中使用图片一样简单&#xff0c;在 React Native 中我们使用Image组件来呈现图片的内容&#xff0c;其中主要的属性有&#xff1a;source。这个属性主要是设置图片的内容&#xff0c;它可以是网络图像地址、静态资源、临时本地图像以及本…

Java地图专题课 基本API BMapGLLib 地图找房案例 MongoDB

本课程基于百度地图技术&#xff0c;由基础入门开始到应用实战&#xff0c;适合零基础入门学习。将企业项目中地图相关常见应用场景的落地实战&#xff0c;包括有地图找房、轻骑小程序、金运物流等。同时讲了基于Netty实现高性能的web服务&#xff0c;来处理高并发的问题。还讲…

ElasticSearch单节点部署

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

差分升级在物联网水表上的实现与应用(学习)

摘要 当越来越多的物联网水表加入抄表系统后&#xff0c;实现了水表数据的信息化&#xff0c;并且当水表终端需要技术更新时&#xff0c;通过网络方式来升级产品可以高效修复设备面临的问题&#xff0c;减少用户损失&#xff0c;降低维护成本&#xff0c;但同时也对有限的网络…

Python Opencv实践 - 图像旋转

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR)#图像旋转 #Opencv中的旋转&#xff0c;首先通过cv.getRotationMatrix2D获得旋转矩阵 #cv.getRotationMatrix2D(center,ang…

navicat连接postgresql报错

navicat连接postgresql报错 navicat连接postgresql报错 现象 有小伙伴告诉我 安装了新的postgresql 使用navicat连接&#xff0c;报错 ERROR: column "datlastsysoid" does not existLINE 1: SELECT DISTINCT datlastsysoid FROM pg database column “datlastsy…

supervisor因为依赖安装失败的解决方法

安装FEATA时报错情况 下列软件包有未满足的依赖关系&#xff1a;supervisor : 依赖: python-pkg-resources 但是它将不会被安装依赖: python-meld3 但是它将不会被安装依赖: python:any (< 2.8)依赖: python:any (> 2.7.5-5~) E: 无法修正错误&#xff0c;因为您要求某些…

【Tomcat】(Tomcat 下载Tomcat 启动Tomcat 简单部署 基于Tomcat进行网站后端开发)

文章目录 Tomcat下载Tomcat启动Tomcat简单部署 基于Tomcat进行网站后端开发 Tomcat Tomcat 是一个 HTTP 服务器.HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式. HTTP 服务器我们可以通过 Java Socket 来实现. 而 Tomcat 就是基于 Java 实现的一个开源免费,也是…

【C++ 学习 ⑬】- 详解 list 容器

目录 一、list 容器的基本介绍 二、list 容器的成员函数 2.1 - 迭代器 2.2 - 修改操作 三、list 的模拟实现 3.1 - list.h 3.2 - 详解 list 容器的迭代器 3.2 - test.cpp 一、list 容器的基本介绍 list 容器以类模板 list<T>&#xff08;T 为存储元素的类型&…