前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Meta发布首个「非参数化」掩码语言模型NPM:吊打500倍参数量的GPT-3

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

作者头像
新智元
发布2023-01-09 13:47:00
1.1K0
发布2023-01-09 13:47:00
举报
文章被收录于专栏:新智元

新智元报道

编辑:LRS

【新智元导读】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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首个非参数化语言模型
  • NPM方法
  • 实验部分
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档