本文主要是介绍Re53:读论文 How Can We Know What Language Models Know?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
诸神缄默不语-个人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,做填空题的那种。
- mining-based methods:远程监督:从维基百科中找三元组出现的句子。
- 方法一:Middle-word Prompts(subject prompt object)
- 方法二:Dependency-based Prompts(句法分析→subject和object之间的依存路径)
(句法分析这块我也不懂总之大概是这么个意思吧)
- paraphrasing-based methods:对人工或挖掘得到的种子prompt进行回译
- 挑选和集成prompt
- Top-1 Prompt Selection:选择在训练集上准确率最高的prompt(这个准确率的公式定义比较复杂,但是反正就这个prompt对应的关系里object预测正确的占所有样本的比例)
- Rank-based Ensemble:top-K概率求和
- Optimized Ensemble:大意是说对每个关系的T个prompt分别训练权重
这篇paper里面还提及了BERT跟LM的标准定义严格来说不一样这一茬:
感觉现在已经没人在乎了=== 随便吧==
2. 实验
1. 数据集
2. LM
BERT-base
BERT-large
增强了外部的实体表征:
ERNIE
Know-Bert
3. baseline
- Majority
- Man:手工prompt
- Mine
- Mine+Man
- Mine+Para
- Man+Para
- TopK:求平均
- Opti.:加权平均
- Oracle:所有prompt中有一个能预测正确,就算LM知道这个知识
4. 实验设置
mine 40个prompts
回译7个prompts
清洗噪音prompts
Adam
batch size: 32
5. 主实验结果
与手工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集合
这块真实诚啊
- LM-aware Prompt Generation
- Forward and Backward Probabilities
这篇关于Re53:读论文 How Can We Know What Language Models Know?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!