Google的REALM-一种基于知识库的增强语言模型

谷歌已经发布了一种预训练语言模型的新方法,Google的REALM是一种基于知识库的增强语言模型。该方法使用知识检索机制进行增强语言模型,该机制可以从外部Wikipedia语料库中查找现有知识。这使得经过训练的语言模型的输出生成基于事实的信息更加丰富。它使用屏蔽语言建模转换器进行培训,并学会从数百万个Wiki文档中检索参与。

OpenAI最近发布了GPT-3,该GPT-3经过训练,使用了1,750亿个参数,可以产生一些非常惊人的结果。以前,Google本身已经发布了基于Transformer的模型,例如Bert和T5,它们已显示出对多种任务有用。

我一直在玩https://learnfromanyone.com/,这是一个正在开发中并使用GPT3 API的应用程序。任何对主题有粗浅知识的人都可以指出不正确的地方,这对于当前基于GPT-3的系统是一个缺陷。

在Transformers的发明和Attention机制应用于深度学习/神经网络体系结构并使用反向传播方法进行训练之后的最后几年,语言模型已经走了很长一段路。这些模型不仅可以理解人类语言的语法和语法,可以产生与人类撰写的新闻文章和会话没有区别的新闻,而且当以纯英语给出提示并演示元学习时,它们还可以理解很多上下文。。它已经掌握了英语和其他几种语言以及语言的几种功能(例如结构,语法等),但是只有在能够理解与环境/世界相关的语言并且可以生成有意义的输出时,它才在实际应用中有用。世界。由于仅了解语言的结构就意味着它总是可以输出古怪的胡言乱语和事实。但是对这种语言模型已经对从互联网上收集的庞大数据集和数百万本书进行了训练,因此它还可以输出几乎任何主题的多个事实。

知识库对于任何组织有效运作都很重要。当前的知识库是以关系方式设计的人工工程数据库,具有有限的基于图形连接,允许工程师查询知识。但是设计该数据库,编写查询等需要大量的人工监督,需要投入大量的时间和资源,并且设计使之可用于领域内特定用例。例如。用于医院,植物基因组资料库或公司数据(工资,法律等)的EHR系统。所有这些数据都存储在不同的数据仓库中,通常很难在一个通用域内共享知识。

近年来,当前的知识库使用复杂的NLP操作(例如实体提取,共指解决方案,实体链接和关系提取)从任何现有文档中提取知识这又是一项相当耗费资源的工作,需要高薪工程师的努力,目前仅由少数公司使用。

这就是GPT-3所展示的庞大模型,这些模型在一般的互联网数据上进行了训练,许多人将其视为智能系统的原始形式,尽管有些人对此表示怀疑。但是,它们对此模型有一些限制:

  • 复杂性:它们是巨大的模型,很难训练。需要大量的计算能力(金钱),大量数据集以及大量时间和工程资源。尽管您只需要训练一次,它就可以在各种任务上很好地执行。OpenAI通过向API授予他们的大型模型权限来证明这一点,许多开发人员正在使用该模型来执行许多不同的任务。但是它所训练的数据不会更新。
  • 小上下文:您可以为模型提供的输入“提示”的上下文确实很小,因此它的行为就像具有短期记忆的人一样,如果您正在交谈,则无法记住10分钟前对它的任何评论。
  • 常识性推理:尽管它可以进行某种推理,但它仍然是非常随机且不一致,并且并没有真正表明它试图理解某些提示背后逻辑。
  • 知识:它存储任何主题的知识,但是该知识以非常抽象的形式存储(以模型的学习权重),并且知识也以压缩形式存储编码有关世界知识。此外,也没有办法促使网络了解其显示知识在何处以及如何存储,因此对于任何需要基于事实和真实知识的应用程序,它都不能用作可靠的模型。同样,对于推理任务,尤其是执行更难的问题(如解决数学或物理问题)所需的推理,可靠的知识库将是必需的。

Google的新模型REALM似乎是朝正确方向迈出的一步,可以解决我刚才提到的一些问题。

检索增强语言表示模型预训练

人类存储信息的能力也很有限,并且大多数知识都存储在外部,我们仅使用正确的工具(例如Google!)就可以通过简单的Google搜索来访问该信息。那么,为什么不教语言模型做同样的事情呢!Google创建了一种新的知识检索机制,该机制可与转换器模型一起使用。尝试生成输出时,该模型不仅利用其内部权重(像到目前为止的大多数转换器一样),还使用外部文档存储库(Wikipedia Corpus)来支持其预测,从而使输出更加准确,比仅查看其自身的编码权重更可靠。

因此,在预培训步骤中,此模型未在其中编码知识,而是在学习从外部存储库中搜索正确的文档。外部化知识检索的过程具有许多优点:

  • 它不需要数十亿的参数来存储这一世界知识。他们证明了只有3亿个参数的模型的性能以及早期T5语言模型中使用的110亿个参数性能。
  • 外部知识库是异步工作的,并且独立于语言模型。目前,他们正在使用Wikipedia,但将来他们可以使用其搜索引擎的功能。因此REALM可以像我们一样使用Google搜索来提供问题的答案。这也解决了保持模型最新更新的问题,而无需再次训练大型模型,又一次节省了金钱和时间。
  • 调试从何处获得答案要容易得多,因为该模型现在可以提供其所引用文档的索引,以支持所创建的参数。对于需要事实检查和更可靠的知识访问的应用程序来说,这将是一个很好的选择。

结果

REALM的性能要比最大的T5-11B模型小30倍。他们在开放域QA上测试该模型,这是最难的基于知识的数据集,并且没有支持文档支持所提出的问题,这是测试知识检索器功能的理想测试平台。他们在FEVER事实验证数据集,Jeopardy trivia问题数据集和其他几个知识测试数据集上也表现良好。(这只是该论文中发表的声明)

模型架构

  • 神经知识检索器(KR):该模型也是一个神经网络,就像其他任何深度学习模型一样,它以端到端的差分方式与Transformer一起训练。该模型的工作是参加数百万个文档(维基百科),并选择能够支持给定输入句子的最佳文档,然后将从知识库中检索的“真实”事实句子添加到输入句子中。
  • Transformer这是与以前使用的Transformer模型相同的多层自注意力模块,该模块负责输入中的每个单词并输出预测的序列。但是输入的上下文更大,因为输入不仅要注意输入句子,还必须注意从Wiki文档中提取的句子。
Google的REALM-一种基于知识库的增强语言模型

REALM模型的预训练过程

训练过程:这是解释它们如何增强语言模型的最简单方法。您将需要一些有关如何训练Transformer知识,以了解这一点。

  • 第一步是从原始数据集(任何互联网语料库)中获取标记化的句子。然后,您随机掩盖一个单词(或单词范围),并将此标记化的句子(以嵌入式矢量形式)以及位置嵌入到REALM模型中。
  • REALM模型的工作是预测被屏蔽的标记应该是什么单词,并通过为词汇集中的所有单词分配概率来做到这一点,而最高的概率是它选择的单词。用更简单的话来说,该模型经过训练可以填充空白。
  • 根据输出及其与真实令牌的距离(屏蔽之前),可以计算出损失。该损失通过模型反向传播,并用于训练权重/参数,训练的目的是使这种损失最小化。
  • 在经典转换器模型中,我们只有一个转换器,该转换器在参数中隐藏了许多层语言和知识表示。这些层使用自我注意层(将句子中的所有单词都包含在内)一起工作,以预测模型认为应该是预测的单词。实际上,如果您查看概率最高的前10个单词,则根据输入句子它们都将具有一定的意义,但最高概率始终是在给定输入句子的情况下选择的最佳单词。
  • 在REALM中,首先将输入的嵌入式令牌提供给KR。KR的工作是(从数百万个文档中)搜索与给定输入令牌紧密匹配的文档。该文档首先使用神经网络权重进行预先计算,并分配了一个向量,该向量给出了多维(128维)空间中的位置和方向。因此,这就像一个庞大的搜索索引,就像您在他们的网站中搜索术语时所使用的Google算法一样。
  • 然后使用称为最大内部产品搜索(MIPS)的方法。MIPS计算查询向量和每个目标文档向量之间的内积。返回最大输出的向量具有选定的文档,该文档的输入语句具有最佳的支持语句。
  • 文档向量是预先计算的(这意味着大多数相关文档被聚在一起),因此查询向量在向量空间中找到一个最匹配其查找内容的邻域。
  • 因此,在训练过程中,KR必须重新计算目标向量的这种安排,以便下一个查询向量可以更轻松地找到所需的内容。它通过从Transformer输出中获取损耗值并更新梯度来实现。
  • 检索到文档语句后,我们将文档文本与输入语句一起添加到转换器中。转换器中的各层在文本和支持文档文本之间执行丰富的交叉注意,并且如果正确学习了注意权重,它将学习将文档文本与输入文本映射,并更准确地预测丢失的单词。但是,如果检索到的文档文本不能帮助它正确地预测单词,则该丢失信号会通过检索器传递,以便它学会做得更好。
  • 而且,如果您具有正确的配置和大小并进行了一段时间的训练,您将拥有一个模型,该模型不仅可以学习检索正确的文档,而且可以正确预测输出顺序。另外,您还可以从语料库中获取文档索引,作为调试的目的。

这里的主要优点是,转换器不必对许多常规事实进行硬编码,因为该任务已卸载。如您稍后将看到的那样,它的结果是重量更轻,参数更少的Transformer模型,但在诸如问答之类的知识密集型任务上仍然表现良好。

djciXF

在上面的示例中,原始输入句子具有“磅”作为被屏蔽的单词。检索器继续检索与输入句子紧密匹配的前k个(根据Transformer大小,k可以是任何数字)文档。因此,它可能会找到有关白金汉宫和英格兰的 Wikipedia页面,然后从该页面提供支持输入句子的确切句子。然后,该提取的句子随后将用于预测被屏蔽的令牌,并输出其使用的文档索引。您可以想象,它可以使模型产生非常具体的世界事实和知识而无需在其内部编码太多世界知识的强大功能。

知识检索培训

本节将详细介绍KR内部发生的情况。使用密集通道检索技术对每个文档进行编码,该技术为每个文档中的文本提供了双向编码。您可以将其视为某种压缩编码形式,它以一种形式为每个文档提供一些重要功能,可以在超维空间中使用输入查询向量进行匹配。然后,上述MIPS技术使用神经网络权重与目标文档进行匹配,以进行最近邻居搜索。

面临的主要挑战是要搜索数百万个文档,这带来了两个问题:首先,对数百万个文档进行编码,然后将其保存在内存中,将需要大量的内存;然后,即使计算速度最快,训练所有这些权重的神经权重也会花费很多时间。可用。Google通过以下方式解决了这个问题

  • 训练输入向量并将其与每次仅少量的编码文档进行匹配。
  • 异步地重新计算文档编码(搜索索引生成器),因此转换器将继续使用知识库的快照进行培训,而KB在后台对其进行更新。由于重新计算数百万个文档需要花费时间。
djcZkR

因此,两个作业在KR中并行运行,这是一个主要的培训师工作,它通过侦听来自Transformer的培训信号来更新嵌入参数。还有索引生成器,它基于嵌入的参数为文档建立索引。每一步的训练者都会使用索引的快照,索引会根据最新的模型参数花费自己的时间来重新索引,然后在完成索引操作后更新快照。

他们表明,即使在500步之后建立索引,对Transformer的培训也不会影响性能。这意味着培训师和Transformer要使用500步才能使用“陈旧的”知识库,但对于Transformer来说,准确地进行预测仍然足够。

异步重新索引的另一个优点是,当模型最终投入生产时,无需更改模型或对其进行重新培训,就可以使知识语料库保持最新,并重新计算最新的文档向量。

未来的猜测

像REALM这样的AI系统可以利用这些不同的知识库并提取知识,并为您提出的任何问题提供答案。使用AI系统的信任度取决于它在其上训练的知识库的可信度。

另一个主要障碍是当前的AI系统缺乏推理能力。加里·马库斯(Gary Marcus)最近对GPT-3系统发表了评论,谈到了这一点。将存储的事实转移到外部基础上是否会帮助大型语言模型有效地使用参数来执行更好的推理?这还有待观察,我相信Google和其他公司必须像大型系统一样训练自己的GPT-3。如果还有其他的话,拥有完善的知识库可能会使它更清晰地思考科学,哲学,治理等各个领域中的复杂事物。

与语言模型一样,我看到了三种不同的路径:

  • 封闭式和不透明式:保持模型缩放(不使用外部知识模块)的路径,也许模型学会丢弃不必要的事实,并且仍然设法从编码的抽象权重中推断出知识。这会是一个更“真实”的事实机器,因为它是从吸收的世界知识中推断出知识,而不是依赖于人类和他们自己偏爱的知识基础吗?OpenAI已向批评者证明,对模型进行缩放确实会产生一些令人难以置信的事情,也许仅需将参数从数十亿扩展到万亿,并增加数据集的大小即可。请阅读Gwern撰写的这篇文章,他深入探讨了扩展的思想以及主要的AI公司如何一直忽略这一点。
  • 开放和去中心化:这涉及到让多个参与方创建和维护自己的知识库的想法,并且出现了一个等级系统,您可以在此获得所要支付的费用。这对于公司和特定领域也可能有用,在某些领域,当事方创建自己的知识库并将其出售给拥有自己的AI系统的公司,例如医院的EHR系统。
  • “自由”和垄断:世界仅由一个“真相”统治,而事实就是Google为您提供的任何知识基础。

让我们离开推测世界,回到现实。后续步骤:还有很多工作要做。Google计划在更多推理密集型任务上测试此模型架构。他们还希望探索检索图像和知识图,而不仅限于文本域。

尽管Google尚未向公众发布大型模型,但他们已经发布了较小的版本和代码(感谢开发人员!),以便研究人员可以使用它。[作者:斯瓦普尼尔(Swapnil Sawant)软件工程师,在湾区的一家非盈利基因研究机构工作 email:swapp19902@gmail.com]

上一篇:

下一篇:


标签