Meta 发布首个「非参数化」掩码语言模型 NPM :吊打 500 倍参数量的 GPT-3

 Meta 发布首个非参数化掩码语言模型 NPM:那年双手插兜,不知道什么叫做 out of vocabulary

虽然大型语言模型在 NLP 领域展现出的强大性能十分惊人,但其带来的负面代价也很严重,比如训练过于昂贵,难以更新等。,而且很难处理长尾知识。

并且语言模型通常采用在预测层采用一个包含有限词汇量的 softmax 层,基本上不会输出少见的单词或短语,极大限制了模型的表达能力。

为了解决模型的长尾问题,最近来自华盛顿大学、Meta AI 和艾伦人工智能研究所的学者联合提出了首个「非参数化掩码语言模型」(NonParametric Masked language model, NPM),通过参考语料库中每个短语的非参数化分布来代替 softmax 输出。

论文链接:https://arxiv.org/ abs / 2212.01349
代码链接:https://github.com/ facebookresearch / NPM

NPM 可以通过对比目标(contrastive objective)和批内近似于检索完整语料库的方式进行有效训练。

研究人员对 9 个封闭式任务和 7 个开放式任务进行了 zero-shot 评估,包括强调需要预测新事实或罕见短语的时空转换和词级翻译任务。

结果发现,无论是否采用检索和生成的方法,NPM 都明显优于较大的参数模型,比如参数量高 500 倍的 GPT-3 和 37 倍的 OPT 13B 性能还强不少,并且 NPM 在处理罕见模式(词义或事实)和预测罕见或几乎未见过的词(如非拉丁文字)方面尤其出色。

首个非参数化语言模型

虽然结合现有的一些检索和生成(retrieve-and-generate)的相关工作可以缓解该问题,但这些模型的最终预测部分仍然需要一个 softmax 层来预测 token,没有从根本上解决长尾问题。

NPM 由一个编码器和一个参考语料库组成,编码器将文本映射成一个固定大小的向量,然后 NPM 从中检索出一个短语并填入 [MASK]。

可以看到,NPM 选择在短语上得到的非参数化分布,而没有使用一个固定的输出词汇 softmax 作为输出。

但训练非参数化模型也带来了两个关键的问题

1. 在训练过程中检索完整的语料库是非常耗时耗力的,研究人员通过使用完整语料库检索的批内近似值来解决;

2. 在没有解码器的情况下学习预测任意长度的短语是很困难的,研究人员通过扩展 span masking 和短语级别的对比目标来解决。

总之,NPM 完全删除了输出词汇的 softmax,通过预测任意数量的 n-gram,实现了有效的无界输出空间。

由此产生的模型可以预测「极其罕见」甚至是「完全未见过」的单词(如韩语单词),并可以有效地支撑无限的词汇量,而现有的模型都无法做到这一点。

NPM 方法

NPM 的关键思想是使用编码器将语料库中的所有短语映射到一个密集的向量空间中。在推理时,当给定一个带有 [MASK] 的查询后,使用编码器从语料库中找到最近的短语并填入 [MASK]。

纯编码器(Encoder-only)模型是一个很有竞争力的表示模型,但现有的纯编码模型无法进行 token 数量未知的预测,使得它们的使用情况在没有微调的情况下受到限制。

NPM 通过检索一个短语来填补 [MASK] 中的任意数量的 token,从而解决了这个问题。

推理

编码器将参考语料库 C 中的每个不同的短语都映射到一个密集的向量空间中。

在测试时,编码器将被 masked 的查询映射到相同的向量空间中,并从 C 中检索出短语来填充 [MASK]。

在这里,C 不一定要和训练语料库一样,在测试时可以被替换或扩展,而不需要重新训练编码器。

在实践中,语料库中存在大量的短语,对所有的短语进行索引是很昂贵的。

比如我们考虑最多有 l 个 token 的短语(l≈20),就需要索引 l×|C| 数量的向量,这可能会很耗时。

研究人员对 C 中每个不同的 token 进行索引,从而将索引的大小从 l×|C | 减少到 |C|,然后在测试时,通过对开头和结尾分别进行 k 近邻搜索,对所有短语的非参数分布进行近似。

比如由 4 个 BPE token 组成的短语 Thessaloniki 用 c1 和 c4 的连接来表示,分别对应于该短语的开始(The)和结束(iki)。

然后用同一向量空间中的两个向量 q_start 和 q_end 来表示一个查询,然后用每个向量来检索似是而非的短语的开始和结束,然后再进行聚合。

这样做的前提是开始和结尾的表示足够好,即 q 起点足够接近 c1,q 终点足够接近 c4,而这一点在训练过程中已经得到确保了。

训练

NPM 是在无标签的文本数据上训练的,以确保编码器将文本映射到一个良好的密集向量空间。

训练 NPM 主要有两个难题:1)完整的语料库检索会使训练非常耗时;2)用任意长度的短语而不非 token 来填充 [MASK]。

1. 掩码 Masking

片段掩码(span masking)就是对长度从几何分布中取样的连续 token 进行 mask。

研究人员对此进行扩展:

1)如果某些片段在 batch 中的其他序列中共同出现,再对其进行屏蔽,以保证在训练期间该批次内的正例(in-batch positives)。

比如,屏蔽的片段 2010、the Seattle Seahawks 和 to the 都在另一个序列中共同出现。

但对于「game ,」这个 bigram 来说就无法一起被 mask,虽然它们也都出现在两个序列中,但它们并没有在一起共现。

2)不是用 [MASK] 来替换片段中的每个 token,而是用两个特殊的 token [MASKs][MASKe] 来替换整个片段。

比如上面的例子中,不论被 mask 的片段长度如何,都被替换成 [MASKs][MASKe],从而可以获得每个片段的起点和终点向量,更方便推理。

2. 训练目标

假设被 mask 的片段是 the Seattle Seahawks,在测试时,模型应该从参考语料库的其他序列中检索出 the Seattle Seahawks 这一短语。

而在推理阶段,模型从 [MASKs] 和 [MASKe] 中获得向量,并利用它们分别从语料库中检索出短语的开始和结束。

因此,训练的目标应该鼓励 [MASKs] 的向量更接近于 the Seattle Seahawks 中的 the,而与其他 token 相距较远,并且不应该是任意一个短语中的 the,比如 become the first 中。

通过将完整的语料库近似为 batch 中的其他序列来训练模型来做到这一点,具体来说,训练模型从同一 batch 的其他序列中检索出 the Seattle Seahawks 这一片段的起点和终点。

需要注意的是,该 mask 策略确保每个被遮蔽的跨度在一个 batch 中都有一个共同出现的片段。

实验部分

从结果上看,NPM 在 zero-shot 设置下比其他基线模型的性能都要强。

在参数化模型中,RoBERTa 取得了最好的性能,出人意料地超过了包括 GPT-3 等在内的模型,可能是因为纯编码器模型的双向性起到了至关重要的作用,这也表明,因果语言模型可能不是一个合适的分类选择。

kNN-LM 方法在参数模型中加入了非参数成分,其性能优于其他所有基线。尽管如此,仅仅依靠检索(kNN)在 GPT-2 中的表现很差,这表明仅在推理时使用 kNN 是有限的。

NPM SINGLE 和 NPM 的表现都明显优于所有基线,在所有数据集上都取得了一致的优越性能。这表明,即使对于不明确需要外部知识的任务,非参数模型也非常有竞争力。

定性分析时采用 RoBERTa 和 NPM 在情感分析任务时的预测结果。第一个例子用便宜表示不贵,第二个例子用便宜表示质量很差。

RoBERTa 对这两个例子的预测都是正向的,而 NPM 通过检索在与输入相同的语境中使用 cheap 的语境,做出了正确的预测。

还可以发现,NPM 输出的表征能带来更好的词义消歧。例如,RoBERTa 在 cheap(廉价)和 cheap(质量很差)之间分配了一个很高的相似性分数。

另一方面,NPM 成功地在 cheap 和 cheap 之间分配了一个低的相似性分数,也表明该非参数训练与对比性目标是有效的,可以更好地提高表征学习,而 kNN 推理这类没有训练的算法是完全做不到的。

参考资料:

  • https://arxiv.org/abs/2212.01349

本文来自微信公众号:新智元 (ID:AI_era),编辑:LRS

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注