Re48:读论文 kNN-LMs Generalization through Memorization: Nearest Neighbor Language Models

诸神缄默不语-个人CSDN博文目录

论文名称:Generalization through Memorization: Nearest Neighbor Language Models
模型简称:kNN-LMs

本文是2020年ICLR论文,ArXiv网址是https://arxiv.org/abs/1911.00172
作者来自斯坦福和Facebook。
官方GitHub项目:urvashik/knnlm

kNN-LMs通过检索数据集中相似句子,来辅助生成测试数据的下一个token。
假设是文本表征任务比预测下一个token的任务更容易。
做法:在LLM分类的概率上,加一个kNN概率(对测试样本检索k个邻居,其target token的概率与样本距离成反比)来预测下一个token。
这里最近邻的表征是通过LLM得到的,邻居本身可以来自任何文本数据(包括预训练数据)。

kNN-LMs可以不用训练,只要构建出datastore,就能实现。

这个直觉上就像你学英语的时候,有个词不知道用得对不对,就去网上找找别的句子怎么写,如果类似的句子也这么措辞,你就感觉你写对了。直觉。
哎想想我有个项目也差不多用的是这种“参考”的思路,结果它凉了……不说了都是泪。

在这里插入图片描述

1. 任务定义和模型介绍

任务定义:对上下文序列 c t = ( w 1 , … , w t − 1 ) c_t=(w_1,\dots,w_{t-1}) ct=(w1,,wt1),AR LM 估计下一个token(目标token w t w_t wt)的概率分布 p ( w t ∣ c t ) p(w_t|c_t) p(wtct)

context-target对以键值对的形式储存在datastore中
键:context的表征
值:target token
在这里插入图片描述

距离函数 d d d:L2距离,RBF核
检索最近邻:FAISS
kNN得到的LM概率:
在这里插入图片描述
参考1,用可训练参数 λ \lambda λ(在实验中,通过验证集学习)将2个概率加起来:
在这里插入图片描述

2. 实验

1. 数据集

都是英文LM语料:
Wikitext-103
Books
Wiki-3B
Wiki-100M

2. 实验设置

2的结构和优化作为基础LM。

Transformer:
在这里插入图片描述

向量维度是1024。在datastore中每个target token有512+ tokens的上下文

其他具体细节略。

3. 评估指标

perplexity
具体细节略。

4. 主实验

在这里插入图片描述
上图continuous cache是从测试文档中找邻居

在这里插入图片描述

5. 模型分析

  1. 在小数据上预训练,用大数据做datastore,就能获得比大数据预训练模型更好的效果:
    证明检索比预训练效果更好在这里插入图片描述

  2. datastore越大,效果越好, λ \lambda λ也越高
    而且效果越来越好,一直没有饱和在这里插入图片描述

  3. 领域泛化能力:在这里插入图片描述

  4. 这个实验是研究用模型的哪个表征效果最好:在这里插入图片描述

    这个假说蛮有意思的:
    在这里插入图片描述

  5. 这个是衡量超参数k的影响(是绝对的越大越好):在这里插入图片描述

  6. 这个是衡量超参数 λ \lambda λ的影响:在这里插入图片描述

  7. FAISS用量化键计算L 2 ^2 2距离,如果改用全精度键,perplexity会继续提升(小编锐评:那么代价是什么呢)

  8. 案例分析:
    通过检索可以学习到n-gram结构,因此效果超过了uni-gram LM:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  9. 测试用n-gram LM代替kNN的效果:发现还是不如直接检索
    在这里插入图片描述

  10. LM关闭dropout后损失函数能降到0,说明数据中的知识是都能隐式学到的
    说明显式靠邻居知识的效果,不是指望LM隐式记忆就能实现的
    在这里插入图片描述


  1. (2017 NIPS) Unbounded cache model for online language modeling with open vocabulary ↩︎

  2. (2019 ICLR) Adaptive Input Representations for Neural Language Modeling ↩︎

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诸神缄默不语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值