以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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值