文献阅读: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的效果,更多的感觉还是一个个单例来迫使模型对齐了标准,从而提升了模型判断与人类判断的一致性。

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React 组件防止冒泡方法

背景 在使用 antd 组件库开发时,发现点击一个子组件,却触发了父组件的点击事件,比如,我在一个折叠面板里面放入一个下拉框或者对下拉框列表渲染做定制,每个下拉框候选项都有一个子组件… 解决 其实这就是 Javascri…

大学教授开设ChatGPT课程,深入了解如何利用ChatGPT增强学生学习力

作者:ANDREW MAYNARD,亚利桑那州立大学教授 六月底,我开始教授一门由ChatGPT设计的关于使用ChatGPT,并由ChatGPT评估的课程。 这个想法源于看到“提示工程师”工作的新闻,这类工作据说每年可以赚到30多万美元。作为一…

(二)Git在公司中团队内合作和跨团队合作和分支操作的全部流程(一篇就够)

(一)Git连接GitHub的全部流程https://blog.csdn.net/m0_65992672/article/details/132333727 团队内协作 项目经理通过git push将代码推送到远程仓库【也就是git、gitee等代码托管中心】,推完以后组员可以通过git clone克隆下来代码,如果组…

阿里云PolarDB数据库倚天ARM架构详细介绍

阿里云云原生数据库PolarDB MySQL版推出倚天ARM架构,倚天ARM架构规格相比X86架构规格最高降价45%,PolarDB针对自研倚天芯片,从芯片到数据库内核全链路优化,助力企业降本增效。基于阿里云自研的倚天服务器,同时在数据库…

从零构建深度学习推理框架-8 卷积算子实现

其实这一次课还蛮好理解的&#xff1a; 首先将kernel展平&#xff1a; for (uint32_t g 0; g < groups; g) {std::vector<arma::fmat> kernel_matrix_arr(kernel_count_group);arma::fmat kernel_matrix_c(1, row_len * input_c_group);for (uint32_t k 0; k < k…

ssm单位人事管理系统源码和文档

ssm单位人事管理系统源码和文档033 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳…

C语言好题解析(二)

目录 递归类型例题1例题2例题3例题4例题5例题6 递归类型 例题1 根据下面递归函数&#xff1a;调用函数Fun(2)&#xff0c;返回值是多少&#xff08; &#xff09;int Fun(int n) {if (n 5)return 2;elsereturn 2 * Fun(n 1); } A.2 B.4 C.8 D.16【答案】 D 【分析】 …

Nginx运行Vue项目:基本运行

需求 在Nginx服务器中&#xff0c;运行Vue项目。 说明 Vue项目打包生成的生产文件&#xff0c;是无法直接在浏览器打开的。需要放到Nginx服务器中&#xff0c;才能够访问。 本文章只介绍最基本的情况&#xff1a;Nginx中运行一个Vue项目。 实际生产环境&#xff0c;一个Ng…

Vitis高层次综合学习——FPGA

高层次综合 什么是高层次综合&#xff1f;就是使用高级语言&#xff08;如C/C&#xff09;来编写FPGA算法程序。 在高层次综合上并不需要制定微架构决策&#xff0c;如创建状态机、数据路径、寄存器流水线等。这些细节可以留给 HLS 工具&#xff0c;通过提供输入约束&#xff…

【RP2040】香瓜树莓派RP2040之LED

本文最后修改时间&#xff1a;2022年09月05日 11:02 一、本节简介 本节介绍如何编写一个LED驱动。 二、实验平台 1、硬件平台 1&#xff09;树莓派pico开发板 ①树莓派pico开发板*2 ②micro usb数据线*2 2&#xff09;电脑 2、软件平台 1&#xff09;VS CODE 三、版权声…

P1955 [NOI2015] 程序自动分析

[NOI2015] 程序自动分析 题目描述 在实现程序自动分析的过程中&#xff0c;常常需要判定一些约束条件是否能被同时满足。 考虑一个约束满足问题的简化版本&#xff1a;假设 x 1 , x 2 , x 3 , ⋯ x_1,x_2,x_3,\cdots x1​,x2​,x3​,⋯ 代表程序中出现的变量&#xff0c;给…

FOSSASIA Summit 2023 - 开源亚洲行

作者 Ted 致歉&#xff1a;本来这篇博客早就该发出&#xff0c;但是由于前几个月频繁差旅导致精神不佳&#xff0c;再加上后续我又参加了 Linux 基金会 7/27 在瑞士日内瓦举办的 Open Source Congress&#xff0c;以及 7/29-30 台北的 COSCUP23&#xff0c;干脆三篇连发&#x…

FPGA_学习_14_第一个自写模块的感悟和ila在线调试教程与技巧(寻找APD的击穿偏压)

前一篇博客我们提到了&#xff0c;如果要使用算法找到Vbr&#xff0c;通过寻找APD采集信号的噪声方差的剧变点去寻找Vbr是一个不错的方式。此功能的第一步是在FPGA中实现方差的计算&#xff0c;这个我们已经在上一篇博客中实现了。 继上一篇博客之后&#xff0c;感觉过了很久了…

数据结构——栈(C语言)

需求&#xff1a;无 栈的概念&#xff1a; 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端为栈底。栈中的数据元素遵守后进先出&#xff08;LIFO&#xff09;原则。压栈&…

在一小时内构建您的深度学习应用程序

一、说明 我已经做了将近十年的数据分析。有时&#xff0c;我使用机器学习技术从数据中获取见解&#xff0c;并且我习惯于使用经典 ML。 虽然我已经通过了神经网络和深度学习的一些MOOC&#xff0c;但我从未在我的工作中使用过它们&#xff0c;这个领域对我来说似乎很有挑战性。…

理解持续测试,才算理解DevOps

软件产品的成功与否&#xff0c;在很大程度上取决于对市场需求的及时把控&#xff0c;采用DevOps可以加快产品交付速度&#xff0c;改善用户体验&#xff0c;从而有助于保持领先于竞争对手的优势。 作为敏捷开发方法论的一种扩展&#xff0c;DevOps强调开发、测试和运维不同团…

青翼科技自研2路250MSPS DA回放FMC子卡模块

FMC150_V30是一款基于VITA57.1规范的2路125MSPS采样率16位分辨率AD采集、2路250MSPS采样率16位分辨率DA回放FMC子卡模块。该模块遵循VITA57.1规范&#xff0c;可直接与符合VITA57.1规范的FPGA载卡配合使用&#xff0c;板卡ADC器件采用ADI公司的AD9268芯片&#xff0c;板卡DAC器…

React Native expo项目修改应用程序名称

https://expo.dev/accounts/xutongbao/projects npm install --global eas-cli && \eas init --id e32cf2c0-da5b-4a65-814a-4958d58f0ca7 eas init --id e32cf2c0-da5b-4a65-814a-4958d58f0ca7 app.config.js: export default {name: 学习,slug: learn-gpt,owner: x…

【C++】list容器

1.list基本概念 2.list构造函数 #include <iostream> using namespace std;#include<list> //链表list容器构造函数//输出list链表 void printList(const list<int>& L) {for (list<int>::const_iterator it L.begin(); it ! L.end(); it){cout &…

深度学习1:通过模型评价指标优化训练

P(Positive)表示预测为正样本&#xff0c;N(negative)表示预测为负样本&#xff0c;T(True)表示预测正确,F(False)表示预测错误。 TP&#xff1a;正样本预测正确的数量&#xff08;正确检测&#xff09; FP&#xff1a;负样本预测正确数量&#xff08;误检测&#xff09; TN…