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

2023-11-11

诸神缄默不语-个人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 ↩︎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Re48:读论文 kNN-LMs Generalization through Memorization: Nearest Neighbor Language Models 的相关文章

随机推荐

  • “三国演义”何处去

    作者 朱金灿 来源 http blog csdn net clever101 微软资深副总裁张亚勤在2011移动开发者大会的演讲 移动互联的新趋势 这样描述当前的移动操作系统的分布趋势 随着Windows Phone的推出 移动平台市场渐成
  • 【Mac】mac 安装Axure RP 8 点不开 就一直跳-后闪退-报错Expected an Int64 but got a System.UInt64

    1 美图 2 概述 2 1 闪退 先确保软件已安装到 应用程序 中 比如 CleanMyMac X 软件闪退 就输入以下命令然后回车即可 如下图 codesign f s deep Applications CleanMyMac X app
  • C语言中循环结构1(求和)思路

    题目描述 求S a aa aaa aa aaa 有n个a 之值 其中a是一个数字 例如 2 22 222 2222 22222 n 5 a 2 a和n由键盘输入 思路 C语言中一个简单的循环 循环次数 循环后的sum 每循环一次 a扩大10
  • JavaWeb问题集锦: 数据库连接池请求超时 HikariPool-1 - Connection is not available, request timed out after 30000ms

    报错日志 java sql SQLTransientConnectionException HikariPool 1 Connection is not available request timed out after 30000ms 原
  • 机器学习-集成学习-梯度提升决策树(GBDT)

    目录 1 GBDT算法的过程 1 1 Boosting思想 1 2 GBDT原理 需要多少颗树 2 梯度提升和梯度下降的区别和联系是什么 3 GBDT的优点和局限性有哪些 3 1 优点 3 2 局限性 4 RF 随机森林 与GBDT之间的区
  • 更换编译器,CODE::BLOCKS 无法DEBUG 至断点

    想在LINUX下使用CODE BLOCKS 编写调试并编译连接ARM运行程序 IDE编译环境默认为 GNU GCC 编译器 修改如下 1 至Settings gt Compiler and debugger settings 将Setect
  • 互联网摸鱼日报(2023-04-19)

    互联网摸鱼日报 2023 04 19 InfoQ 热门话题 传统网关的云原生策略 InfoQ 极客有约 华为发布高阶智能驾驶系统 ADS 2 0 百度发布旗舰产品城市智驾 Apollo City Driving Max 小鹏汽车发布 SEP
  • STM32的FSMC

    FSMC之LCD彩屏学习 彩屏的驱动这里主要用到的是8080并口接口 彩屏这里有区分带有控制器和不带控制器的 80并口有如下一些信号线 CS 片选信号 WR 写数据 RD 读数据 RST 复位 RS 命令 数据标志 0 读写命令 1 读写数
  • linux常用命令整理篇4:关于tomcat的一些命令

    1 查看是否安装了 rpm qa grep tomcat 2 查看tomcat进程ID ps ef grep tomcat 3 杀死tomcat进程 kill 9 进程ID 4 查看tomcat目录 find name tomcat 5 启
  • 云笔记的使用感受和选择

    市场上有很多文章针对云笔记的选择 但经过下载发现可能存在很多虚假广告 求生欲 其实可能是个人使用感受不佳仅表示个人观点 为什么选择云笔记 个人比较喜欢 记录学习笔记和生活中的东西 之前选择有道云笔记 但因为最近打开的时候突然服务器挂了 登录
  • 【HIT-计算机系统】ICS-Lab8 Dynamic Storage Allocator

    第1章 实验基本信息 1 1 实验目的 理解现代计算机系统虚拟存储的基本知识 掌握C语言指针相关的基本操作 深入理解动态存储申请 释放的基本原理和相关系统函数 用C语言实现动态存储分配器 并进行测试分析 培养Linux下的软件系统开发与测试
  • 30分钟部署一个kubernetes集群【1.15】

    作者 李振良 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具 这个工具能通过两条指令完成一个kubernetes集群的部署 创建一个 Master 节点 kubeadm init 将一个 Node 节点加入到当
  • 解决window平台下的.ssh/id_rsa bad permission问题

    参考链接 https www cnblogs com clblacksmith p 11677135 html
  • 解决问题:List集合add元素,添加多个对象出现重复的问题

    首先我们在new 一个对象的时候 对象的id是唯一确定的 将对象add入list中时 放入list中的其实是对象的引用 而每次循环只是简单的set 对象的属性 set新的属性值 而add进list中的对象还是同一个对象id 也就是同一个对象
  • 渗透必备工具-BurpSuite

    目录 介绍 爆破 解码 BurpSuite burpsuite基本可以说是渗透的必备工具 用起来也很简单 方便 通常使用它可以进行一些截包分析 修改包数据 暴力破解 扫描等很多功能 用得最多的应该是开代理截包分析数据和爆破 解码 加密 bu
  • Ubuntu 22.04 LTS root登录、修改当前用户名和主机名

    前言 Ubuntu 22 04 默认不开启root用户 配置操作 1 开启 root 以普通用户登录系统 创建root用户的密码 opt opt sudo passwd root SSH 放行 opt opt sudo sed i s Pe
  • jeecgboot 上传文件

    jeecgboot框架中文件上传接口 jeecg boot sys common upload 支持本地上传 配置云上传等多种方式上传文件 local为本地存储 还需要配置jeecg path upload minio为使用MinIO线上存
  • tcp/ip协议详解

    1 TCP IP协议族是一个四层协议系统 自低而上分别是数据链路层 网络层 传输层 应用层 1 数据链路层 实现了网卡接口的网络驱动程序 以处理数据在物理媒介上的传输 ARP协议 将目标机器的IP地址转换为其物理地址 数据链路层使用物理地址
  • Oracle_SQL_序列与groupby同时用

    暂做记录 大小 19 6 KB 查看图片附件
  • Re48:读论文 kNN-LMs Generalization through Memorization: Nearest Neighbor Language Models

    诸神缄默不语 个人CSDN博文目录 论文名称 Generalization through Memorization Nearest Neighbor Language Models 模型简称 kNN LMs 本文是2020年ICLR论文