以4%参数量比肩GPT-3!Deepmind 发布检索型 LM,或将成为 LM 发展新趋势!?

d966549d1284e3393f2a6d20cf146ea5.png

文 | ZenMoore
编 | 小轶

GPT3 一声枪响,给 NLP 带来了大模型风潮。这么长时间过来,无论是中文还是英文,模型越做越大。当然,这确实是符合逻辑的,因为如果以人脑为向导的话,那么多神经元,不得不需要大参数量来模拟。但是,过于关注“大”本身,是存在很多问题的:一方面,模型规模增大带来的性能增益逐渐饱和,让我们不得不思考“精”这个维度;另一方面,大模型实在臃肿,在部署成本、下游任务适配、绿色、边缘化等等方面,有着难以解决的劣势。

因此,大模型发展至今,我们同样需要重点思考的,是如何把模型做精做强,如何把模型轻量化而效果不减! 毕竟,模型之大有涯,而知也无涯!以有涯随无涯,殆已!

当然,2021 年出现了很多轻量化模型相关的工作,他们的 Motivation 基本都是采用一系列技巧,把模型的 size 减下来,但是 performance 依旧不输给 GPT3、Megatron等等超大模型。例如:使用 Prompting 技术的 T0 模型;使用知识增强、训练策略改进、压缩蒸馏、Prompting 等一系列方案的中文孟子模型 等等。

DeepMind 最近也入局了 NLP 模型,上来就是一套组合拳,总计三篇论文:

  1. 280B 参数的 Transformer 语言模型:Gopher

  2. 大模型的伦理与社会风险研究

  3. 检索增强的自回归语言模型:Retro

我们重点聊一聊第三篇:使用检索增强的方式,不仅减小了模型的参数量,而且效果也非常能打!因此不失为模型轻量化的又一条路:把模型做成 Open System !

论文标题:
Improving language models by retrieving from trillions of tokens

作者机构:
DeepMind

论文链接:
https://arxiv.org/pdf/2112.04426.pdf

2b8d66570b7b464cfbccf41a599bb265.png方法02fd26f28233d66e7bdf0036b523d524.png

776969cf6d831b79f703884d2349e0f2.png

1. 检索增强的自回归语言模型

从输入开始,首先将输入文本均分为 个块(chunk), 每个 chunk 总共 个 tokens, 即输入文本长度为 . 这些 chunk 分别 记为 . 对每个 , 从 Rertieval Dataset 召回 个 neighbours, 记为 或者 .

因此,目标函数,即序列的对数似然公式如下:

需要注意的是,.

整个模型的结构是基于 Transformer Encoder-Decoder 的。

2. kNN 检索

然后介绍 Frozen kNN Retriever 部分。

首先有一个事先搜集好的 Retrieval Database (数据来源:MassiveText), 总共有 5T tokens 的数据量。将他们以键值对的形式一个 chunk 一个 chunk 地存储起来(不得不说,DeepMind 还是壕啊...):

  • 值:包含两个组分,记为 , 其中, 是 text token chunk, 是这个 token chunk 在数据源文档中的接续文本 (continuation)

  • 键:即对应的 BERT embedding, 记为 (这里的 BERT 是训练好的,参数不会改变)。

这样,计算输入文本 chunk 的 BERT embedding,将其与 Retrieval Database 中的各个键计算 距离,作为度量,就可以得到这个输入文本 chunk 的 个 nearest neighbours.

3. Retro Model

96fcd19f88bc8bbd0f25ca220d8c8c38.png
▲Retro 算法流程

接下来介绍 Retro 模型的主体部分,包含 层 Encoder, 以及 层 Decoder.

首先记输入文本的第 个 chunk 的 activation 为 .

在 Decoder 部分,定义一个整数集合 ,决定哪些层需要使用 Retro-block, 然后其余层均使用 Transformer 原版 Decoder 层即可。即:

同样地,在 Encoder 部分,也有一个对应的 .

我们这里不聊 Transformer 原版的 Encoder 或者 Decoder 层,只聊新的 Decoder (即 Retro-block) 和新的 Encoder.

新的 Encoder :

对于第 个 chunk 的 第 近邻的 retrieval neighbour, 我们使用这个方式对其进行编码:

这样就能以一种可微分的方式将输入文本的信息融合到 Retrieval Encoder 里面,从而控制 Retrieval Neighbour 的编码。

新的 Decoder :

这个的核心在于 Chunked Cross-Attention(CCA). 首先以 Figure.2 右侧图的方式,将 分割为 个 attending chunks, 分别记为

然后计算 和 的 cross-attention, 即

其中,cross-attention 这样计算:.

最后,在 Transformer 的实现上,还有两点小小的细节:

  1. LayerNorm 替换为 RMSNorm

  2. 使用相对位置编码 (relative position encoding)

4. 数据泄露的量化

除了模型上的改进,作者为了让自己的工作更加严谨有说服力,还针对大规模 Retrieval Database 以及训练集常见的数据泄露问题,提出了更加科学的定量分析方法,可圈可点!

这个问题其实非常自然,训练集、测试集都来自互联网,规模大了,测试数据很容易泄露(即测试集数据出现在训练集中),很多工作对这样的问题睁一只眼闭一只眼,但其实,在卖萌屋往期的推文也谈到过,这非常的不严谨!有没有什么解决办法呢?

首先对于每个测试集(或者验证集)的 chunk , 从训练集中召回 10 个 nearest neighbours, 计算 与这些 neighbours 的最长公共子序列长度,记作 . 定义 ,用来表征测试集(或验证集)中的 chunk 和训练数据的重合程度。另外,再记 编码的字节数为 , 的对数似然为 ,对 设置一个阈值 ,就可以定义一个新的评估指标 bits-per-bytes(bpb) :

bpb 值越小,模型的效果越好,同时,可以用阈值 来控制对数据泄露问题的容忍度,即 越小,bpb 越能代表无数据泄露时的模型效果,另外,bpb 的斜率还能表征模型对泄露数据的依赖度 (how much the model exploits evaluation leakage).

5. 与其他检索方法的对比

a5fb218923f4725d4597f69781236253.png

作者在这个表中总结得很明白,就不赘述了(溜...

025939e7c7bdf562cfdf227f811e87de.png实验结果6fd5fab4e48d9ba9f30d3137b313fb1b.png

  • Baseline 基本是原版的 Transformer,没有使用 Retrieval 进行增强,改动仅限于 RMSNorm 和相对位置编码

  • Retro[OFF] 指的是在 evaluation 阶段,Retro 是不带 Retrieval 的

  • Retro[ON] 就是上面介绍的完整的 Retro 模型

e13f0f8daf9f4521b9af7e22f656c79a.png
▲注意:纵坐标越小,模型越好
  1. 第一张图:蓝色的圆点代表 172M 的 Retro[ON], 红色的三角代表 7.5B 的 Baseline,这两个效果差不多,证明了 Retrieval 确实可以在保证模型效果的前提下,缩减模型的参数量

  2. 增大 Retrieval Database 的规模,可以有效地提升模型效果

  3. Retrieval Neighbours 的数量也会影响模型效果,但是有一个最优点

23ccdbb56946b579702469f15f113591.png
  1. 不同 model size、不同模型在各个数据集上的效果,可以看上面这张图

397a1647bcf3e1c055e5a3778a64553f.png
  1. 这里挑一个 retrieval intensive 的下游任务——Question Answering. 可见,Retro 仍然战胜了不少模型。(至于为什么比 FID 等略逊一筹,主要是因为 FID 等使用的是 T5-style model,这些模型更加依赖于 encoder output, 而这是影响 QA 性能的关键)

  2. baseline 模型可以快速灵活地 finetuned 为 Retro 模型,同时效果与 trained from scratch 的模型相比,基本相同。这个结论感觉还挺重要的,有了这个结论,我们就能够非常灵活地将现有的模型进一步精调成检索型模型,而不需要重新进行漫长的预训练

  3. 使用作者这种数据泄露问题的定量分析方法,可以证明 Retro 模型的效果增益,基本和数据泄露没有关系。另外,也提倡学界、业界重视起这个问题来,让实验更加严谨!!!

46a55fff48ad5df4bc1431573c218083.png写在最后c376849de8279a2ca2ca1ea5dced5a98.png

DeepMind 很善于从人类身上汲取创造智能的灵感,这一波的灵感是:人类学习的过程,不仅仅是对当下知识的整合,还包括对记忆的检索,甚至包括对学习资料的检索。那么,这样一个检索型的语言模型,是非常自然的想法。

另外,虽然作者进行这个工作的初衷并不一定是模型轻量化,但是从它 10x 的参数缩减量来看,确确实实给轻量化提供了一个新的思路。无论是为了 training efficient, 还是为了 green, 模型的轻量化任重而道远!正如孟子模型的开篇语引用的话一样:“以力服人者, 非心服也,力不赡也。权,然后知轻重;度,然后知长短。” 把模型做精做强,也是我们应该考虑的核心问题

笔者还有一点思考是,当下的语言模型大多是 closed system :输入数据训练,训练完之后“包裹”起来使用。但是,封闭式系统就意味着,在使用模型进行 inference 的时候,不能“查资料”,是“闭卷考试”,这样真的合理吗?我们都知道,对人类来说,这个世界不会被排除在外,我们一直都在做“开卷考试”:写作时,难免查一查词典,翻一翻名著;编文案时,难免上网找一找灵感,看一看模板。相信对于机器来说,也更需要一个 open system,毕竟 “知也无涯”,而 “模型之大有涯”!以有涯随无涯,殆已!

ab86af5452a6739df7cc1db9612fb330.png萌屋作者:ZenMoore

来自北航中法的本科生,数学转码 (AI),想从 NLP 出发探索人工认知人工情感的奥秘... 个人主页是 zenmoore.github.io, 知乎 ID 是 ZenMoore, 微信号是 zen1057398161, 嘤其鸣矣,求其友声!

作品推荐

  1. 一文跟进Prompt进展!综述+15篇最新论文逐一梳理

  2. 图灵奖大佬+谷歌团队,为通用人工智能背书!CV 任务也能用 LM 建模!

a31c1bdecf98d684a5c982c9727f7dfc.png后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

bb88d91f4432c4bb207156a8f71f4a88.gif f9f9c925945f5493e39e77538f3572ef.png

[1]. Language Models are Few-Shot Learners: https://arxiv.org/abs/2005.14165

[2]. Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism: https://arxiv.org/pdf/1909.08053.pdf

[3]. Multitask Prompted Training Enables Zero-Shot Task Generalization: https://arxiv.org/abs/2110.08207

[4]. Mengzi: Towards Lightweight yet Ingenious Pre-trained Models for Chinese:https://arxiv.org/pdf/2110.06696.pdf

[5]. Scaling Language Models: Methods, Analysis & Insights from Training Gopher: https://arxiv.org/abs/2112.11446

[6]. Ethical and social risks of harm from Language Models: https://arxiv.org/abs/2112.04359

[7]. Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering: https://arxiv.org/pdf/2007.01282.pdf

[8]. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer: https://arxiv.org/abs/1910.10683

[9]. Multitask Prompted Training Enables Zero-Shot Task Generalization: https://arxiv.org/abs/2110.08207

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

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

相关文章

Spring Cloud Alibaba基础教程:使用Nacos作为配置中心

通过本教程的前两篇: 《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》《Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)》 我们已经学会了,如何利…

LeetCode 1020. 飞地的数量(图的BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 给出一个二维数组 A,每个单元格为 0(代表海)或 1(代表陆地)。 移动是指在陆地上从一个地方走到另一个地方(朝四个方向之一)或离开网格的边界。 …

论文浅尝 | ISEEQ: 利用动态元信息检索和知识图谱的资讯搜索式问题生成器

笔记整理:侯哲衡,东南大学硕士,研究方向为知识图谱问答、自然语言生成。动机对话资讯搜索是在智能问答中一个新兴研究领域。对话资讯搜索旨在根据通过用户查询自动询问资讯搜索式问题(information-seeking questions,I…

浅谈点击信号对搜索的影响

文 | bytecoder源 | 知乎背景过去一周,我们探讨了搜索系统最核心的指标以及如何通过实验的方式来判断策略的好坏。但是影响一个实验的好坏除去策略本身的影响之外,还会受到一些反直觉的因素的影响;之前在做搜索,尤其是搜索系统成熟…

Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)

通过《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》一文的学习,我们已经学会如何使用Nacos来实现服务的注册与发现,同时也介绍如何通过LoadBalancerClient接口来获取某个服务的具体实例,并根据实例信息来发起服务…

CCKS 2022 | 如何通过“说一句话”精准获取数据?恒生发布金融NL2SQL评测任务

某投资者登录券商理财APP,想要查找最近两年上市的公司,并按照最新的市值进行排序。然而他很难直接找到结果,需要经过层层筛选才能大致找到相关结果。有没有更简便的方式来查找数据?如果说一句话或者打一小段文字后,就能…

AI从业几年还不具备提出新模型的技术能力?看这个就够了!

AI是一门入门简单,但想深入却很难的学科,这也是为什么AI高端人才一直非常紧缺的重要原因。在AI领域技术领域,我们可以说机器学习功底决定了一个人的上限也不为过。为什么?机器学习就像物理学中的数学,如果你对数学没有…

Spring Cloud Alibaba基础教程:Nacos 生产级版本 0.8.0

昨晚Nacos社区发布了第一个生产级版本:0.8.0。由于该版本除了Bug修复之外,还提供了几个生产管理非常重要的特性,所以觉得还是有必要写一篇讲讲这次升级,在后续的文章中也都将以0.8.0版本为基础。 升级的理由 如Nacos官方的发布文…

LeetCode 1016. 子串能表示从 1 到 N 数字的二进制串(bitset)

1. 题目 给定一个二进制字符串 S(一个仅由若干 ‘0’ 和 ‘1’ 构成的字符串)和一个正整数 N,如果对于从 1 到 N 的每个整数 X,其二进制表示都是 S 的子串,就返回 true,否则返回 false。 示例 1&#xff…

论文浅尝 | KM-BART:用于视觉常识生成的知识增强多模态BART

笔记整理:陈子强,天津大学硕士动机视觉语言模型早期集中在纯理解任务(例如,VQA视觉问答),尽管在理解任务上取得了先进的性能,却很少关注多模态生成任务。当前的预训练任务例如,掩码语…

AllenAI | 用GPT-3帮助增建数据,NLI任务直接提升十个点!?

文 | iven编 | 小轶用机器构建数据集,这件事可能比机器学习诞生的还要早,很多人做过很多工作。怎样让机器参与进来?前人的工作可以分成两类思路:一类是以远程监督为代表,让机器来标注,主要目的在于得到更多…

论文浅尝 | CLIP-Event: 用事件结构连接文本和图像

笔记整理:康婧淇,东南大学硕士,研究方向为多模态事件抽取、自然语言处理。动机视觉语言预训练模型通过理解图像和文本之间的排列组合,在支持多媒体应用方面取得了巨大成功。虽然现有的视觉语言预训练模型主要侧重于理解图像中的物…

LeetCode 402. 移掉K位数字(贪心,单调栈)

1. 题目 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 注意: num 的长度小于 10002 且 ≥ k。 num 不会包含任何前导零。 示例 1 : 输入: num "1432219", k 3 输出: "1219" 解释: 移除掉…

Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少团队的支持;同时,由于Spring …

忙累了躺平,躺醒后该干点啥

文 | 一只菜鸡前几天刷到 微调 的一些碎碎念,觉得自己的2021年还是有蛮多收获的,于是在各位卖萌屋小伙伴的鼓励下,就有了本文。收获很多,我从中挑选出来自我感觉对读者来说比较有用的三点。1. 放低期待,学会适当躺平我…

论文浅尝 | P-Adapters: 从具有不同提示的语言模型中鲁棒地提取事实信息

笔记整理:田玺,浙江大学硕士研究生。研究方向:知识图谱、自然语言处理论文地址:https://openreview.net/forum?idDhzIU48OcZh,录用于ICLR2022摘要之前的工作发现,从大型语言模型(LLMs&#xff…

LeetCode 470. 用 Rand7() 实现 Rand10()(随机概率)

1. 题目 已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。 不要使用系统的 Math.random() 方法。 示例 1: 输入: 1 输出: [7]示例 2: 输入: 2 输出: [8,4]示例 3: 输入: 3 输出: [8,1,10]提示: rand…

Spring Cloud Stream同一通道根据消息内容分发不同的消费逻辑

应用场景 有的时候,我们对于同一通道中的消息处理,会通过判断头信息或者消息内容来做一些差异化处理,比如:可能在消息头信息中带入消息版本号,然后通过if判断来执行不同的处理逻辑,其代码结构可能是这样的…

图谱实战 | 再谈图谱表示:图网络表示GE与知识图谱表示KGE的原理对比与实操效果分析...

转载公众号 | 老刘说NLP知识图谱嵌入是一个经典话题,在之前的文章《知识表示技术:图谱表示VS图网络表示及基于距离函数的表示学习总结》中,围绕知识图谱嵌入学习这一主题,对比了知识图谱嵌入与图网络嵌入的异同。而在实际工作中&a…

LeetCode 1247. 交换字符使得字符串相同

1. 题目 有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 “x” 和 “y”,你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候,你都可以在两个字符串中各选一个字符进行交换。 交换只能发生在两个不同的字…