文献阅读:Large Language Models are Null-Shot Learners

  • 文献阅读:Large Language Models are Null-Shot Learners
    • 1. 文章简介
    • 2. 方法介绍
    • 3. 实验考察 & 结论
      • 1. 基础实验
        • 1. 实验设计
        • 2. 实验结果
      • 2. 消融实验
        • 1. 小模型上的有效性
        • 2. ∅CoT Prompting
        • 3. 位置影响
        • 4. 组成内容
    • 4. 总结 & 思考
  • 文献链接:https://arxiv.org/abs/2401.08273

1. 文章简介

这篇文章是立命馆大学在今年1月发表的一篇工作,依然是一个prompt tuning的一个工作,不过蛮有意思的。

这篇文章提出的一个核心方法叫做 ∅ \varnothing shot prompt,简单来说就是假装告诉模型给了一些example,然后实际不给,然后让模型进行生成,在这种情况下,发现模型获得了较之普通情况下更好的效果表达,也是挺神奇的。

本质上来说,这篇文章就是注意到了当前LLM无法绕开的幻觉问题,然后反其道而用之,利用模型自身的“幻觉”来辅助生成,获得更好的生成效果。

在这里插入图片描述

下面,我们来具体对文章内容进行一下展开。

2. 方法介绍

首先,我们来看一下 ∅ \varnothing shot prompt的具体方法实现。

这部分其实真的很签单,前面说的基本就是全部了,即提示模型prompt中包含一些实际并不存在的example,然后让模型根据这些不存在的example来生成对应的结果。

文中给出了一个具体的实现的示例如下:

在这里插入图片描述

3. 实验考察 & 结论

然后,我们来看一下文中给出的一些关于 ∅ \varnothing shot prompt的具体实验。

1. 基础实验

首先,我们来看一下文中关于 ∅ \varnothing shot prompt的一些基础实验。

其实主要也就是在不同的模型上使用 ∅ \varnothing shot prompt在不同的数据集下进行一下考察。

因此,我们先看一下文中使用了哪些模型以及数据集,然后看一下得到的实验结果以及对应可以得到的结论。

1. 实验设计

我们首先来看一下文献中使用的任务,对应的数据集以及使用的模型:

  1. Arithmetic Reasoning
    • AQuA-RAT
    • GSM8K
  2. Commonsense Reasoning
    • StrategyQA
    • WinoGrande
  3. Reading Comprehension
    • RACE
  4. Natural Language Inference and Closed-Book Question Answering
    • ANLI
    • TriviaQA

而模型方面,则是主要使用以下几个模型:

  1. PaLM 2
  2. PaLM 2 for Chat
  3. GPT-3.5 Turbo
  4. GPT-4 Turbo
2. 实验结果

文中得到的实验结果如下:

在这里插入图片描述

可以看到:

  • ∅ \varnothing shot prompt在PaLM2的两个模型上可以普遍地提升模型效果,几乎在所有任务上均有提升效果;
  • ∅ \varnothing shot prompt在PaLM2模型上的效果是明显优于Chat模型的,原因可能由于Chat模型在SFT当中进行了对齐,消除了更多的幻觉;
  • 而在GPT3.5 Turbo模型当中, ∅ \varnothing shot prompt带来了最大的效果提升;
  • 在GPT4 Turbo模型当中, ∅ \varnothing shot prompt基本没有效果。

对于上述现象,文中给出的一个基础解释就是:

  • ∅ \varnothing shot prompt本质上是利用的模型自身的幻觉来进行辅助生成,因此,模型训练的越好,幻觉越弱, ∅ \varnothing shot prompt能够带来的效果增益就越弱,反之,模型越容易生成幻觉, ∅ \varnothing shot prompt能够带来的效果增益就越大。

基于此,文中甚至提出可以使用这个现象来通过 ∅ \varnothing shot prompt对模型本身的幻觉程度进行一个评估。

2. 消融实验

除了上述基础实验当中的实验效果之外,文中还给出了一些消融实验来对 ∅ \varnothing shot prompt进行更细节的考察,具体来说,包括:

  1. 小模型上 ∅ \varnothing shot prompt的有效性
  2. 是否与其他prompt tuning策略兼容
  3. ∅ \varnothing shot prompt的位置是否对效果有影响
  4. ∅ \varnothing shot prompt的组成本身对效果的影响

下面,我们来对这些内容逐一进行一下整理。

1. 小模型上的有效性

首先,关于 ∅ \varnothing shot prompt在小模型上的有效性,文中在LLama 2 7B模型上进行了一下考察,得到结果如下:

在这里插入图片描述

可以看到:

  • ∅ \varnothing shot prompt在LLama 2 7B上有较好的效果表达,但是在LLama 2 7B Chat上面的效果并不好,这不仅证明了 ∅ \varnothing shot prompt在小模型上的有效性,且同样复现了前述 ∅ \varnothing shot prompt在Chat模型上效果更差的现象,说明对齐消除幻觉确实会减弱 ∅ \varnothing shot prompt的效果。
2. ∅CoT Prompting

然后,文中还考察了一下 ∅ \varnothing shot prompt能否与其他的prompt tuning策略兼容,具体来说,文中主要考查了一下 ∅ \varnothing shot prompt与CoT的联合使用效果,即文中提到的 ∅ \varnothing CoT prompt。

给出文中的一个 ∅ \varnothing CoT prompt的具体示例如下:

在这里插入图片描述

对应文中得到的实验结果如下:

在这里插入图片描述

可以看到:

  • ∅ \varnothing CoT prompt的效果并不如CoT本身。

这个其实也好理解,因为本质上 ∅ \varnothing shot prompt利用的就是模型本身的幻觉来进行的生成优化,而CoT策略则本身就是为了减少模型的幻觉,因此两者在实现机理上本就是相悖的,因此 ∅ \varnothing CoT prompt效果变差反而验证了文中的结论。

3. 位置影响

除此之外,文中还考察了一下 ∅ \varnothing shot prompt的位置对于结果的影响,具体就是这个虚拟的example应该出现在头部还是在prompt的尾部。

文中得到的实验结果如下:

在这里插入图片描述

可以看到:

  • ∅ \varnothing shot出现在prompt的头部能够带来更好的效果。

这个现象和其它的文章中的结论也是一致的,即prompt头部的内容会较之其他部分更加重要一些。

4. 组成内容

最后,文中还考察了一下不同写法的 ∅ \varnothing shot prompt的效果。

文中给出了4种不同的 ∅ \varnothing shot prompt的实现如下:

在这里插入图片描述

对比上述4中prompt,文中得到实验结果如下:

在这里插入图片描述

可以看到:

  • 文中的最终版本的 ∅ \varnothing shot prompt有着最好的整体效果。

不过这部分的实验有点偏弱了,或许再魔改魔改prompt能够获得更好的prompt也说不好。

4. 总结 & 思考

综上,这篇文章感觉还是非常非常有意思的,因为它和其他的文章思路上是截然不同的。

众所周知,LLM的一大问题就是生成的幻觉问题,或者说事实性错误问题。而往往大家的思路都是考虑怎么去优化这个问题,有从模型角度的RLHF和SFT,也有从prompt工程角度的CoT,few shot learning或者Take a Step Back等等等等。

而这篇文章完全是另辟蹊径,选择的路线是打不过就加入,既然无法绕开幻觉,那就利用模型本身的幻觉现象来增强模型的生成质量。

但是这种另辟蹊径同时也就令这篇工作多少有些鸡肋了,因为本质上来说他并没有去解决模型本身的幻觉问题,反而会放大模型的幻觉,因此输出结果可能也会更不可控。

另一方面,模型发展的整体大方向一定还是要去消除模型固有的幻觉的,因此这种强依赖于模型本身幻觉的方法在未来的有效性一定也是越来越差的,文中在GPT4上的效果事实上就已经证明了这个情况了,因此很难说这个工作实际在应用中是否真的能够有用。

因此,结论而言,这个工作有趣是真的有趣的,但是无用也是真的无用,至少我是看不出这个工作有什么真正被利用起来的可能了……

当然,纯粹一家之言,大家看看就行了,莫当真,莫当真。

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

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

相关文章

Zookeeper客户端命令、JAVA API、监听原理、写数据原理以及案例

1. Zookeeper节点信息 指定服务端,启动客户端命令: bin/zkCli.sh -server 服务端主机名:端口号 1)ls / 查看根节点下面的子节点 ls -s / 查看根节点下面的子节点以及根节点详细信息 其中,cZxid是创建节点的事务id&#xff0c…

Python 鼠标模拟

鼠标模拟即:通过python 进行模拟鼠标操作 引入类库 示例如下: import win32api import win32con import time 设置鼠标位置 设置鼠标位置为窗口中的回收站。 示例如下: # 设置鼠标的位置 win32api.SetCursorPos([30, 40]) 双击图标 设置…

vue:find查找函数实际开发的使用

find的作用: find 方法主要是查找数组中的属性,会遍历数组,对每一个元素执行提供的函数,直到找到使该函数返回 true 的元素。然后返回该元素的值。如果没有元素满足测试函数,则返回 undefined。 基础使用&#xff1a…

五、数组——Java基础篇

六、数组 1、数组元素的遍历 1.1数组的遍历:将数组内的元素展现出来 1、普通for遍历:根据下表获取数组内的元素 2、增强for遍历: for(数据元素类型 变量名:数组名){ 变量名:数组内的每一个值…

python统计分析——多解释变量的方差分析

参考资料:用python动手学统计学 1、导入库 # 导入库 # 用于数值计算的库 import numpy as np import pandas as pd import scipy as sp from scipy import stats # 用于绘图的库 from matplotlib import pyplot as plt import seaborn as sns sns.set() # 用于估计…

docker-compose 搭建laravel环境

laravel环境包含nginx,mysql,php7.4,redis 一、安装好docker后pull镜像 1.nginx镜像 docker pull nginx:latest单独启动容器 docker run --name nginx -p 80:80 -d nginx 2.php镜像 docker pull php:7.4-fpm3.mysql镜像 docker pull mysql:5.74.redis镜像 docker pull r…

高频面试题整理(一)

文章目录 平台无关性如何实现?JVM如何加载 .class文件?什么是反射?谈谈ClassLoader谈谈类的双亲委派机制类的加载方式Java的内存模型?JVM内存模型-jdk8程序计数器:Java虚拟机栈局部变量表和操作数栈: Java内存模型中堆和栈的区别…

Linux部署前后端分离项目

目录 一、jdk安装 二、tomcat安装 三、MySQL安装 四、nginx安装 五、配置多个tomcat负载,部署后端项目 六、前端部署 一、jdk安装 1. 上传jdk安装包 jdk-8u151-linux-x64.tar.gz 进入opt目录,将安装包拖进去 2. 解压安装包 这里需要解压到usr/loc…

17.材质和外观

1.图形学中的材质 在图形学中,材质(Material)是用来描述物体外观和表面特性的属性集合。它包含了控制光的反射、折射、吸收以及其他光学效果的信息,从而决定了物体在渲染过程中的外观。 渲染方程中那一项和材质有关? …

vue项目的前端工程化思路webpack(持续更新中)

写在前面:现在的前端网页功能丰富,特别是SPA(single page web application 单页应用)技术流行后,JavaScript的复杂度增加和需要一大堆依赖包,还需要解决Scss,Less……新增样式的扩展写法的编译工…

设计模式学习笔记 - 面向对象 - 8.实践:贫血模型和充血模型的原理及实践

1.Web开发常用的贫血MVC架构违背OOP吗? 前面我们依据讲过了面向对象四大特性、接口和抽象类、面向对象和面向过程编程风格,基于接口而非实现编程和多用组合少用继承设计思想。接下来,通过实战来学习如何将这些理论应用到实际的开发中。 大部…

第二节:Vben Admin 登录逻辑梳理和对接后端准备

系列文章目录 上一节:第一节:Vben Admin介绍和初次运行 文章目录 系列文章目录前言项目路径的概述一、登录逻辑梳理loginApi接口查看Mock 二、后端程序对接准备关闭Mock 总结 前言 第一节,我们已经配置了前端环境,运行起来了我们…