Re53:读论文 How Can We Know What Language Models Know?

news/2024/6/19 6:25:11 标签: 语言模型, 人工智能, 自然语言处理

诸神缄默不语-个人CSDN博文目录
诸神缄默不语的论文阅读笔记和分类

论文名称:How Can We Know What Language Models Know?

ArXiv网址:https://arxiv.org/abs/1911.12543

官方GitHub项目(prompt之类的都有):https://github.com/jzbjyb/LPAQA

本文是2020年TACL论文,作者来自卡耐基梅隆大学和博世北美研究所。

本文关注探索LM中蕴含的知识。以前已经有工作用完形填空的方式来探查知识(Obama is a __ by profession),但是这些填空模版(prompt)都是手工做的,因此可能是sub-optimal的(在上一篇论文最后也提及了),不能充分发挥LM的能力。
本文的解决方案是自动挖掘prompt(远程监督、回译、集成)

这篇工作的实验真的多,这也太能做了。

文章目录

  • 1. 探查知识的方案
  • 2. 实验
    • 1. 数据集
    • 2. LM
    • 3. baseline
    • 4. 实验设置
    • 5. 主实验结果
    • 6. 实验分析
      • Prediction Consistency by Prompt
      • POS-based Analysis
      • Cross-model Consistency
      • Linear vs. Log-linear Combination
    • 7. 失败trick集合

1. 探查知识的方案

在这里插入图片描述

从数据库中获取知识是deterministic的,但从LM中获取知识(完形填空)是不可靠的。
本文用的都是双向LM,做填空题的那种。

  1. mining-based methods:远程监督:从维基百科中找三元组出现的句子。
    1. 方法一:Middle-word Prompts(subject prompt object)
    2. 方法二:Dependency-based Prompts(句法分析→subject和object之间的依存路径)
      在这里插入图片描述
      (句法分析这块我也不懂总之大概是这么个意思吧)
  2. paraphrasing-based methods:对人工或挖掘得到的种子prompt进行回译
  3. 挑选和集成prompt
    1. Top-1 Prompt Selection:选择在训练集上准确率最高的prompt(这个准确率的公式定义比较复杂,但是反正就这个prompt对应的关系里object预测正确的占所有样本的比例)
    2. Rank-based Ensemble:top-K概率求和在这里插入图片描述
    3. Optimized Ensemble:大意是说对每个关系的T个prompt分别训练权重
      在这里插入图片描述
      在这里插入图片描述

这篇paper里面还提及了BERT跟LM的标准定义严格来说不一样这一茬:
在这里插入图片描述
感觉现在已经没人在乎了=== 随便吧==

2. 实验

1. 数据集

在这里插入图片描述

2. LM

BERT-base
BERT-large

增强了外部的实体表征:
ERNIE
Know-Bert

3. baseline

  1. Majority
  2. Man:手工prompt
  3. Mine
  4. Mine+Man
  5. Mine+Para
  6. Man+Para
  7. TopK:求平均
  8. Opti.:加权平均
  9. Oracle:所有prompt中有一个能预测正确,就算LM知道这个知识

4. 实验设置

mine 40个prompts
回译7个prompts

清洗噪音prompts

Adam
batch size: 32

5. 主实验结果

评估指标:micro-averaged accuracy

在这里插入图片描述

与手工prompt相比,效果得到了提升:
在这里插入图片描述

集成权重:
在这里插入图片描述

K的选择:
在这里插入图片描述

prompt做轻微修改也能改变效果:
在这里插入图片描述

两种远程监督方案的对比:
在这里插入图片描述

不同LM的实验结果:
在这里插入图片描述

在LAMA-HUN(一个比LAMA更难的benchmark)上的表现:
在这里插入图片描述

在Google-RE上的表现:
在这里插入图片描述

6. 实验分析

Prediction Consistency by Prompt

在这里插入图片描述
divergence是两个prompt预测结果不同的程度:
在这里插入图片描述
皮尔森相关系数是0.25,说明编辑距离和divergence之间确实存在弱相关性(prompt差别越大,预测结果差别越大)

POS-based Analysis

在这里插入图片描述

在这里插入图片描述
用排名分布而不是准确率分布,在脚注解释了一下是因为不同关系的准确率的量级不同

Cross-model Consistency

检测prompts能不能跨模型通用

在这里插入图片描述

在这里插入图片描述

Linear vs. Log-linear Combination

求和的权重

在这里插入图片描述

7. 失败trick集合

这块真实诚啊

  1. LM-aware Prompt Generation
    在这里插入图片描述
  2. Forward and Backward Probabilities
    在这里插入图片描述

http://www.niftyadmin.cn/n/5209865.html

相关文章

c语言编程题经典100例——(16~20例)

1,将一个字符串转换为整数 在C语言中,可以使用库函数 atoi() 将字符串转换为整数。 atoi() 函数接受一个字符串作为参数,并返回其对应的整数。 以下是一个示例代码,演示如何使用 atoi() 函数将字符串转换为整数: #i…

数据结构-树

参考:https://www.hello-algo.com/chapter_tree/binary_tree/#711 1. 介绍 树存储不同于数组和链表的地方在于既可以保证数据检索的速度,又可以保证数据插入删除修改的速度,二者兼顾。 二叉树是一种很重要的数据结构,是非线性的…

NX二次开发UF_CSYS_create_matrix 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_create_matrix Defined in: uf_csys.h int UF_CSYS_create_matrix(const double matrix_values [ 9 ] , tag_t * matrix_id ) overview 概述 Creates a 3 x 3 matrix. 创建…

HarmonyOS(五)—— 认识页面和自定义组件生命周期

前言 在前面我们通过如何创建自定义组件一文知道了如何如何自定义组件以及自定义组件的相关注意事项,接下来我们认识一下页面和自定义组件生命周期。 自定义组件和页面的关系 在开始之前,我们先明确自定义组件和页面的关系 自定义组件:Co…

【SpringBoot3+Vue3】五【完】【实战篇】-前端(配合后端)

目录 一、环境准备 1、创建Vue工程 2、安装依赖 2.1 安装项目所需要的vue依赖 2.2 安装element-plus依赖 2.2.1 安装 2.2.2 项目导入element-plus 2.3 安装axios依赖 2.4 安装sass依赖 3、目录调整 3.1 删除部分默认目录下文件 3.1.1 src/components下自动生成的…

iOS强引用引起的内存泄漏

项目中遇到一个问题: 1.在A页面的ViewDidLoad 方法里写了一个接收通知的方法,如下图: 然后在B页面发送通知 (注:下图的NOTI 是 [NSNotificationCenter defaultCenter] 的宏, 考虑一下可能有小白看这篇文章…

centos userad命令详解

命令作用 用于创建用户常见参数 -d 指定用户的家目录-e 账号的到期时间,格式YYYY-MM-DD-u 指定该用户的默认UID,(centos7开始1000是普通用户的第一个UID)-g 指定一个初始的用户基本组(必须已经存在)-G 指定…

实例讲解:在3dMax中如何使用python脚本?

如果你是Python或Maxscript的新手,你现在可以跟着这篇文章开始做一些代码了,本文将让我们从非常基本的东西开始学习。 如何在3dmax中获取选定的节点并打印出它们的名称?所有场景对象如何?我们直接看代码: import MaxP…