当前位置: 首页 > news >正文

知识增强语言模型提示 零样本知识图谱问答10.8+10.11

知识增强语言模型提示 零样本知识图谱问答

  • 摘要
  • 介绍
  • 相关工作
  • 方法
    • 零样本QA的LM提示
    • 知识增强的LM提示
    • 与知识问题相关的知识检索
  • 实验设置
    • 数据集
    • 大型语言模型
    • 基线模型和KAPIN
    • 评估指标
    • 实现细节
  • 实验结果和分析
  • 结论

在这里插入图片描述

摘要

大型语言模型(LLM)能够执行 零样本closed-book问答任务 ,依靠其在预训练期间存储在参数中的内部知识。然而,这种内部化的知识可能是不足和错误的,这可能导致LLM生成错误的答案。此外,对LLM进行微调以更新其知识是昂贵的。为此,本文提议直接在LLM的输入中增加知识。具体而言,首先根据问题与相关事实之间的语义相似性从知识图谱中检索与输入问题相关的事实。然后,将检索到的事实以提示的形式前置到输入问题之前,然后将其转发给LLM生成答案。本文提出的框架,称为knowledge-Augmented language model PromptING(KAPING),无需模型训练,因此完全是零样本的。

还验证了KAPING框架在知识图谱问答任务上的性能,该任务旨在基于知识图谱上的事实回答用户的问题,在此任务上,本文的方法在多个不同规模的LLM上相对于相关的零样本基线平均提高了高达48%的性能。

Closed-book问答任务指在回答问题时,模型只能依靠其在预训练阶段学到的知识,而无法进行额外的外部搜索或引用。这意味着在回答问题时,模型不能直接访问互联网或其他外部资源。
Zero-shot closed-book问答任务是一种更具挑战性的闭书问答任务,其中模型在没有任何先前训练的情况下,无需额外的模型微调或更新,直接回答问题。
在传统的闭书问答任务中,模型需要在预训练后进行微调,以根据特定的问题集和答案集进行调整。而在zero-shot closed-book问答任务中,模型不需要进行任何额外的调整或微调,仍然可以回答新问题。
这种任务要求模型能够利用其预训练阶段学到的通用语言理解和推理能力,以及内部的知识表示来解决新问题。模型需要将问题与其内部知识进行联结,从而推断出答案,而无需对任务进行特定的针对性训练。
在zero-shot closed-book问答任务中,模型通常会使用问题的提示信息或关键词来引导答案的生成。模型会利用其预训练的语言表示能力和对内部知识的理解,以及与问题相关的提示信息,生成可能的答案。

介绍

在这里插入图片描述

预训练语言模型通过自监督学习在大量文本语料上进行训练,可以执行闭书问答(closed-book Question Answering,QA)任务,即仅依靠其内部参数中的知识来回答用户的问题,而不使用任何外部知识。此外,当增加语言模型的规模时,大型语言模型可以在没有任何额外微调步骤的情况下为问题生成答案,这称为语言模型提示(LM prompting)。然而,由于LLMs中的知识可能是不完整、错误和过时的,它们经常会生成事实上错误的答案,即所谓的幻觉(hallucination)(见图1a)。此外,通过参数更新来完善LLMs中的知识是昂贵的,特别是当知识不断变化时(例如货币汇率)。最后,LLMs是否正在获取正确的知识来回答问题尚不清楚。

为了克服这些限制,本文提出直接检索和注入相关知识作为输入,称为提示(prompt),传递给LLMs(图1b)。使用知识图谱作为知识源,其中包含以三元组形式表示的符号知识(头实体、关系、尾实体)。因此,为了提取与输入问题相关的事实,首先将问题中的实体与知识图谱中的实体进行匹配。然后,与知识图谱中的实体相关联的三元组被转化为文本形式,并 前置到输入问题前面 ,然后传递给LLMs生成答案。

“前置到输入问题前”
指的是将相关知识直接插入到输入问题之前,作为输入序列的一部分。在传统的问答系统中,只有输入问题作为模型的输入,模型需要通过自身的预训练知识来回答问题。而在这种方法中,我们将从知识图谱中提取的相关知识以文本形式添加到输入问题之前,形成一个新的输入序列。
举个例子,假设有一个问题:
“谁是美国的第一位总统?”。
如果我们有一个知识图谱,并且知道其中包含了以下三元组:(美国,首都,华盛顿)和(华盛顿,位于,哥伦比亚特区)。那么,在前置知识的情况下,我们可以将这些知识转化为文本形式:
“美国的首都是华盛顿,华盛顿位于哥伦比亚特区。”
然后将这个文本知识添加到原始问题之前,形成新的输入序列:
“美国的首都是华盛顿,华盛顿位于哥伦比亚特区。谁是美国的第一位总统?”。
通过这种方式,语言模型在生成答案时可以同时考虑问题和前置的知识,从而能够更好地利用外部知识来提高答案的准确性和相关性。这种前置知识的方法可以帮助语言模型更好地理解问题的上下文和意图,避免产生基于不准确或过时知识的错误答案。

因此,基于事实知识的LLMs能够生成准确的答案,减轻了幻觉问题,同时保持LLMs的参数不变,无需进行知识更新的微调。整体框架称为Knowledge-Augmented language model PromptING(KAPING),它完全是零样本的,并且可以与任何现成的LLMs一起使用,无需额外的训练。

虽然上述方案看起来简单而有效,但还存在一些挑战。
首先,与问题实体相关的大多数检索到的三元组与回答给定问题无关。例如,在维基数据知识图谱中为问题实体(例如Poseidon)检索相关的三元组时,存在60个三元组,其中大多数(例如流派、出版日期等)与回答问题无关。因此,它们可能会误导模型生成错误的答案。
另一方面,问题实体的三元组数量有时很大(例如,WebQSP数据集中有27%的样本有超过1000个三元组),因此编码包括不必要的所有三元组会带来很高的计算成本,特别是对于大型语言模型来说。

为了克服这些挑战,受信息检索的启发,进一步提出了 基于语义相似性过滤不必要三元组 的方法。具体而言,首先将问题及其相关的语言化三元组表示为嵌入空间中的向量。然后,检索出一小部分三元组,其嵌入与输入问题的嵌入相比其他三元组更接近。这样,只将与给定问题更相关的三元组前置,可以有效防止大型语言模型生成与问题无关的答案,并且具有高的计算效率,不像增加所有三元组的方法那样。值得注意的是,这种过滤方法使用 现成的句子嵌入模型,因此在我们的流程的每个部分都不需要额外的训练。

基于语义相似性过滤不必要的三元组
是指通过比较问题和其关联的三元组之间的语义相似性来筛选出与问题相关性较高的三元组,从而减少不相关的三元组对于问题回答的干扰。
在知识图谱问答任务中,通常通过检索知识图谱中与问题实体相关的三元组来获取问题的背景知识。然而,检索到的三元组中可能包含大量与问题无关的信息,这些不必要的三元组可能会误导模型,导致生成错误的答案。
为了解决这个问题,可以使用语义相似性来衡量问题和三元组之间的相似程度。常见的方法是将问题和三元组表示为向量形式,然后计算它们之间的相似度。根据相似度的大小,可以选择保留与问题最相关的三元组,而过滤掉与问题关联性较低的三元组。

"现成的句子嵌入模型"指的是已经经过预训练并可供使用的句子级别的文本表示模型。这些模型通过将输入的句子转换为连续向量表示,捕捉句子的语义和语法信息,并将其映射到一个高维向量空间中。这些向量表示可以用于计算句子之间的相似性、分类、聚类等自然语言处理任务。常见的句子嵌入模型包括BRERT、GPT等。

然后,在知识图谱问答(KGQA)任务中验证了KAPING框架。结果表明,KAPING显著优于相关的零样本基线。此外,详细的分析支持知识检索和增强方案的重要性。

本文这项工作中的贡献有三个方面:
• 提出了一种新的知识增强的语言模型提示框架,利用知识图谱中的事实知识进行零样本问答。
• 提出了基于问题及其相关三元组之间的语义相似性来检索和增强知识图谱中相关事实的方法。
• 在知识图谱问答基准数据集上验证了我们的KAPING,在这些数据集上,本文的方法令人印象深刻地优于相关的零样本基线。

相关工作

语言模型提示
语言模型预训练是一种训练Transformer模型的方法,使用未标注的文本语料库进行自编码或自回归目标的训练。它已成为自然语言任务的一种重要方法。此外,大型语言模型能够进行零样本学习,例如基于预训练参数中存储的知识,根据输入的文本提示生成答案,而无需额外的参数更新或标记的数据集。为了进一步提高它们的性能,一些工作提出从训练数据集中检索与输入问题相关的样本,并将它们在少样本学习中添加到提示中。最近的一些工作进一步表明,当LLMs在从自然语言任务中提取的一系列指令上进行微调时,它们在未见过的零样本任务上具有强大的泛化性能。然而,LLMs内部的知识可能不足以处理事实性问题,这引发了知识增强的LLMs。

知识增强的语言模型
最近的研究提出将知识,如来自无结构语料库(例如维基百科)的文档和来自知识图谱的事实,整合到语言模型中。其中,REALM和RAG学习检索文档并将其与语言模型结合。此外,知识图谱也可以是另一种知识源,其中知识以最紧凑的形式进行编码,一些方法将KG中的事实增强到语言模型中。然而,所有上述方法都需要大量的训练数据和模型更新用于下游任务。虽然最近的一些工作表明,通过检索增强的语言模型在少样本学习中具有很强的性能,但仍需要额外的训练步骤,这与完全零样本的LM提示不同。

最近,有几项研究在LM提示方案中增加了知识。首先,一些工作提出通过提示提取LLMs本身参数中的知识,然后使用提取的知识回答问题。然而,由于LLMs的参数可能不足以存储所有世界知识,提取的知识和生成的答案可能不准确。另一方面,最近,Lazaridou等人提出使用谷歌搜索在Web上检索文档,然后将检索到的文档与少样本演示一起添加到输入问题中,在少样本的LLM提示方案下回答问题。然而,关注与之前研究不同的零样本提示与KGs的结合,利用KGs可以带来额外的优势。具体而言,由于KGs可以以紧凑的三元组形式简洁地编码知识,在问答任务中,相比于文档情况,本文的方法使LLM提示更加高效(即减少输入序列长度),同时在零样本问答方案上更加有效:LLMs需要从提示中选择包含答案实体的一个三元组,而不是查找包含各种实体的冗长文档。

方法

接下来描述KAPING框架。

零样本QA的LM提示

首先从零样本问答开始,然后解释语言模型提示。

零样本问答
给定一个输入问题x,问答(QA)系统返回一个答案y,其中x和y都由一系列标记组成:x = [w1,w2,…,w|x|]。假设P是一个基于生成语言模型的QA模型,它生成给定问题x的答案y的条件概率如下:P(y|x)。与使用一组带标注的(x , y)样本来训练模型P的监督学习不同,零样本学习不使用任何带标签的样本和模型训练。值得注意的是,对这种零样本QA感兴趣是因为收集数据集并为每个新领域微调现有的LM被认为是昂贵且有时不可行的。

LM提示
LM通常通过基于先前标记预测下一个标记进行预训练,这被称为自回归语言建模。然后,由于这种预训练目标,LLM可以进行零样本指令学习。具体而言,当向LLM(即P)提供一个问题和一条指令(例如,“请回答以下问题:《Lady Susan》的作者是谁?”)时,LLM在输入文本的条件下可以顺序生成输出标记的概率,这可能是一个答案,比如“Jane Austen”。

为了更规范,对于每个输入问题x,首先使用特定的指令模板T将其修改为一个文本字符串x’,称为提示(prompt),如下所示:T:x → x’。例如,如果我们有先前的问题x = “Who is the author of Lady Susan?” 以及先前的指令模板"Please answer the question:",则生成的提示x’将为T(x) = “Please answer the question: Who is the author of Lady Susan?”。然后,将提示x’传递给LLM(即P),LLM通过P(y|x’)生成答案(即y)。注意,这种LM提示方案不需要对标记数据进行任何额外的模型参数更新(即微调),因此适用于目标零样本QA任务。

然而,在这种单纯的零样本提示QA中存在多个挑战。首先,LLM依赖参数中的知识,容易生成事实上不正确的答案,因为LLM中的知识可能是不准确和过时的:知识可能随时间的推移而出现和变化。此外,使用额外的参数更新来改进内部知识是昂贵的,而且有必要反映错误和不断增长的知识。最后,LLM在生成对问题提示的答案时记忆和利用哪些知识是不清楚的,这限制了它们在输出上的可解释性。

知识增强的LM提示

为了解决现有LM提示方案的前述限制,本文提出了一种将相关知识从知识图谱(KG)注入到输入问题中的方法,称为增强知识语言模型提示(Knowledge-Augmented language model PromptING,KAPING)。

在本小节中,首先定义了KAPING框架的主要目标,然后介绍了增强KG上的知识以及注入到LM提示中所需的要素。

使用知识图谱进行LM提示
不再仅依赖于 参数内部化的知识 ,而是提出通过访问和注入来自外部KG的知识来回答问题,这些知识包含对回答问题有帮助的准确和最新的事实。形式上,知识图谱G由一组事实三元组{(s, r, o)}组成,其中s和o表示主体和客体实体,r是它们之间的特定关系类型。例如,一个关系型知识"《Lady Susan》是由Jane Austen编写的"可以表示为一个包含两个实体s = "Lady Susan"和o = "Jane Austen"以及关系r = "written by"的三元组。然后,对于通过模板T从示例问题x = "Who is the author of Lady Susan?"转换而成的问题提示x’,还将其相关三元组(Lady Susan, written by, Jane Austen)增加到LM提示方案中。通过这样做,LLM可以根据来自KG的增强知识生成正确的答案,形式化表示为P(y|x’, G)。需要注意的是,由于可以在KG中提供特定和有效的事实给LLM,该框架可以缓解LLM中不准确和过时知识导致的错误生成问题,而无需昂贵地更新模型参数。此外,还可以确认LLM是否基于增强事实生成答案,从而提高LM提示的可解释性。

剩下的问题是如何从输入问题中访问KG上的关系符号事实,将符号知识转化为文本字符串,并将转化后的知识注入到LM提示方案中。下面的段落中将逐一解释它们。

知识访问
为了利用与输入问题相关的事实,首先提取问题中的实体。例如,对于问题"谁是《Lady Susan》的作者?“,提取出实体"Lady Susan”。然后,基于提取的实体,在知识图谱中找到对应的实体,其关联的三元组成为与输入问题相关的事实。需要注意的是,实体匹配可以通过现有的实体链接技术来完成。

知识转化
LLMs处理的是文本输入,而事实三元组表示为符号图。因此,在将来自知识图谱的符号事实注入到LLMs之前,首先将包含(s, r, o)的三元组转化为文本字符串,称为转化。虽然存在最近的方法专门设计或学习图到文本的转换,但在本工作中,我们使用线性转化:将三元组中的主体、关系和客体文本连接起来,我们观察到这在LM提示中效果良好(参见附录B.5)。例如,一个三元组(Lady Susan, written by, Jane Austen)直接使用为"(Lady Susan, written by, Jane Austen)"作为LLM的输入。

知识注入
基于与输入问题相关的转化后的事实,剩下的步骤是实现知识注入机制,使LLMs能够基于外部知识生成答案。假设有一个与问题x相关的N个关联三元组k = {(sᵢ, rᵢ, oᵢ)}ᴺᵢ₌₁。类似于上述描述的指令模板T:x → x’,修改N个转化后的三元组k,并将知识注入指令添加到知识提示k’中,如下所示:T:k → k’。用于构建提示的一个特定模板,首先逐行列举N个转化后的三元组,然后在提示的顶部添加具体指令:“以下是以三元组形式表示的对回答问题有意义的事实。”。之后,将这样的知识提示字符串k’添加到问题提示x’之前,LLMs根据知识和问题提示生成答案标记,形式化表示为P(y|[k’, x’]),其中[·]表示连接。

与知识问题相关的知识检索

KAPING框架允许LLMs利用知识图谱中的知识进行零-shot问答。然而,存在一个关键挑战,即与问题相关的三元组数量往往太大,无法直接用于LLMs。而且,其中大部分与问题无关,会误导LLMs生成不相关的答案。

知识检索器
为了克服这些限制,进一步提出仅检索和增强与问题相关的三元组。需要注意的是,存在一种文档检索方案,其目标是根据嵌入相似性为给定查询检索相关文档,这激发了我们检索用户问题的三元组的想法。特别是,由于在上一节中定义的知识转化器,可以在文本空间中操作从符号知识图谱中获取的三元组。因此,对于转化后的三元组和问题,首先使用现成的句子嵌入模型对它们进行嵌入表示,然后计算它们之间的相似性。然后,仅使用与给定问题相关的前K个相似三元组,而不是使用所有与问题相关的N个三元组。需要注意的是,与最近的一些研究不同,这些研究旨在通过监督训练改进知识图谱检索器本身,专注于使用知识图谱进行零样本LM提示,因此将现成的检索器作为工具,用于过滤掉与问题无关的三元组。

实验设置

解释数据集、模型、度量和实施。

数据集

在两个知识图谱问答(KGQA)数据集上评估知识增强语言模型PromptING(KAPING)框架,分别是WebQuestionsSP和Mintaka。

WebQuestionsSP(WebQSP) 这个数据集是使用Freebase知识图谱设计的。它包含1,639个测试样本,我们将其用于零样本评估。另外,由于Freebase已经过时,我们还使用了Wikidata知识图谱,并使用了从Freebase ids到Wikidata的可用映射。这个额外的数据集包含1,466个样本。

Mintaka 这个数据集是最近使用Wikidata知识图谱设计的用于复杂KGQA任务的数据集。在8种不同语言中,我们使用英语测试集,其中包含4,000个样本。

大型语言模型

为了验证KAPING框架在大型语言模型(LLM)上的性能,并在零样本KGQA上进行基准测试,使用各种不同大小的LLM。

具体而言,使用了T5、T0(3B、11B)、OPT(2.7B、6.7B)和GPT-3(6.7B、175B)。详细信息请参见附录A.2。

基线模型和KAPIN

在这个小节中解释了四个零样本LM提示的基线模型以及KAPING框架。

无知识(No Knowledge) 这是一个简单的LM提示基线,它在没有来自知识图谱的知识增强的情况下从输入问题生成答案。

随机知识(Random Knowledge) 这是一个LM提示基线,它还会将与问题中出现的实体相关的随机抽样的K三元组增加到提示中。

热门知识(Popular Knowledge) 这是一个LM提示基线,它根据在知识图谱中最常见的关系,将K个热门三元组增加到提示中,这些三元组来自于问题实体的所有三元组中。

生成的知识(Generated Knowledge) 这是一个LM提示的基线模型,它首先根据提示从LLM中提取知识,然后将其作为提示的形式进行增强。

KAPING(本文提出的模型) 这是本文的知识增强语言模型PromptING(KAPING)框架,它首先使用知识检索器检索与问题相似的前K个三元组,然后将它们作为提示的形式进行增强。

评估指标

生成 评估遵循生成式知识图谱问答(generative KGQA)的评估协议,使用准确率作为评估指标,衡量给定提示生成的标记中是否包含答案实体之一。值得注意的是,还考虑了Freebase和Wikidata知识图谱中可用的答案实体的别名(一组替代名称)进行评估。

检索 评估我们还衡量检索器的性能,以了解检索到的三元组对于答案生成的帮助程度。作为评估指标,我们使用平均倒数排名(Mean Reciprocal Rank,MRR)和Top-K准确率(Top-K),它们通过正确检索到包含答案实体的三元组在与问题实体相关的所有三元组中的排名进行计算。

实现细节

对于知识注入,将检索到的事实数目设置为10(K = 10),三元组检索的跳数为1。对于基于文本的检索器,我们尝试使用MPNet,它使用相同的编码器对问题和三元组进行嵌入。有关详细信息,请参见附录A.4。

实验结果和分析

提供了KAPING框架的总体结果以及对其进行的全面分析。

主要结果 如表1所示,KAPING框架在零样本KGQA任务中显著优于所有的LM提示基线模型。特别是,生成的知识模型在性能上大多低于无知识模型,因为从LLM中提取的知识可能是不准确的。
另一方面,随机知识和热门知识基线模型能够提升性能,因为从知识图谱中增强的知识有时对回答问题是有用的。然而,KAPING模型表现更好,这表明对于零样本的LM提示问答,LLM中内部化的知识不足以生成准确的答案,只使用相关的事实知识是很重要的。

此外,还观察到当LLM相对较小时,性能改进更大。换句话说,由于较小的模型在预训练期间没有足够的参数空间来记忆知识,它们更容易生成事实上不正确的答案。然而,当给予它们适当的知识时,它们的性能有时会变得类似于较大的模型(例如,KAPING对于不同大小的OPT模型具有类似的性能)。因此,对于在资源有限的情况下需要事实知识的任务(例如生产环境),增强知识可能比增加模型大小来处理大量知识更有益。

在这里插入图片描述

检索结果 为了了解增强的知识的相关性,进一步衡量了检索性能。如表2所示,现有的检索模型(即MPNet)在性能上优于随机和热门检索器。这个结果表明我们简单的图转文本表述方法与现有的检索器配合得很好,进一步证实了我们的KAPING在LM提示中增强了有用的事实知识。关于候选三元组的检索跳数,我们观察到当我们将跳数从1增加到2时,检索器更有可能检索到不包含答案实体的不相关三元组,如表2所示。因此,在实验中,从问题实体的1跳三元组中检索知识。
在这里插入图片描述
此外,由于可以根据检索器返回的Top-1三元组中的实体来替代回答输入问题,将LLM的生成性能与检索性能进行了比较。如图2所示,即使在没有知识增强的情况下(即无知识),LM提示方案的性能仍优于仅使用检索到的三元组中的实体进行回答,除了WebQSP w/ Freebase数据集。
此外,KAPING框架与简单的检索方案之间存在巨大差距,这适用于所有数据集。这些结果表明,在零样本KGQA中,利用LLM基于其内部化和外部化的事实知识生成答案会很有帮助,而不是直接在知识图谱中搜索答案实体。

正确和错误检索结果的影响 对正确检索到包含答案实体的三元组对性能改进的影响进行了分析,以及错误检索到不包含答案实体的三元组对性能的影响。如图3所示,当检索到的三元组包含答案实体时,与没有知识增强的模型相比,LLM的性能显著提高。然而,当检索器失败时,性能低于没有知识增强的模型。这些结果表明,当增强相关知识时,LLM能够进行上下文处理并准确生成答案。与此同时,错误检索到的知识使LLM依赖于无关的事实,并生成错误的答案。
在这里插入图片描述
不同数量的知识的影响 改变事实的数量,以查看在提示中增加哪些三元组数量对于性能和墙钟时间之间的权衡是最优的。首先,如图5所示,当三元组的数量为5或10时,大多数LLM达到了相对较高的性能水平。此外,当我们进一步增加增强的三元组数量到15和30时,OPT模型的性能大幅下降。这个结果表明,当无关的三元组数量较多时,一些LLM可能会分散注意力,因此无法选择和生成答案实体。
在这里插入图片描述
在这里插入图片描述

然后,测量了编码器-解码器(T0)和仅解码器(OPT)模型在不同数量的增强三元组下生成答案的墙钟时间。如表3所示,对于编码器-解码器模型,KAPING框架在少于10个三元组的情况下比没有知识增强的模型更快。这是因为当知识增强到模型中时,模型倾向于生成较短的答案,这可以减少解码时间。具体而言,对于带有10个三元组的T0模型,生成的标记长度为15,而无知识模型平均生成32个标记。然而,对于仅解码器模型(OPT),增强的知识越多,模型的速度就越慢,这是由于其自回归特性需要消化输入。

被检索的三元组顺序的影响 在少样本LM提示中,LLM除了观察少量示例外,还对示例的顺序敏感,它们倾向于遵循最后一个示例中的答案。基于这些观察,分析了检索到的三元组的顺序是否影响性能。具体而言,通过将更相似的三元组放置在提示的顶部、底部或随机位置,来改变问题中更相似的三元组的位置。如图4所示,除了WebQSP数据集上的OPT模型外,KAPING对检索到的三元组的位置不敏感。换句话说,OPT模型倾向于生成位于提示输入的第一部分的实体。与此同时,其他LLM可以对整个提示输入进行上下文处理,并生成实体,而不受其位置的影响。
在这里插入图片描述
实体链接的有效性 根据传统的KGQA评估方法,使用数据集中标记的问题实体来检索知识图谱中的事实。然而,为了观察使用实体链接(EL)技术识别出的实体的性能,进一步使用EL模型(即ReFinED)进行实验。如表5所示,尽管由于EL的性能,KAPING w/ EL的性能略有下降,但与没有知识的模型相比,始终观察到了有意义的性能改进。
在这里插入图片描述

案例研究 在表4中进行了一个案例研究。特别是,当没有给予LM知识时,它会产生事实上不正确的答案。然而,当相关的事实被检索并增加到提示中时,它可以生成正确的答案。此外,分析了KAPING是否能够适应更新后的知识,这是因为一些知识可能会随时间变化,而LM中的知识保持不变。为此,如表4的最后一行所示,我们替换了三元组的对象实体,然后将修改后的事实作为提示传递给LM。结果显示,LM可以根据更新后的事实生成输出,这表明了在不昂贵地更新其参数的情况下,适应LM的潜力。

在这里插入图片描述

附加结果 在附录B中提供了额外的实验结果。具体而言,在附录B.1中比较了检索器的性能,对模板文本进行了敏感性分析,在附录B.2中提供了额外指标(包括人工评估)的结果,在附录B.3中验证了我们的KAPING在少样本设置下的效果,在附录B.4中对语言表述进行了分析,以及在附录B.6中提供了效率分析。

结论

在本文中,专注于现有LM提示方案的局限性,这些方案依赖于内部化参数中的静态知识;因此,当这些知识不完整、不准确和过时时,LLM可能会生成事实上不正确的答案。为了解决这一挑战,引入了一种新颖的知识增强语言模型提示(KAPING)框架,该框架直接从知识图谱中为输入问题的提示增添知识,并利用事实检索器仅注入相关知识。所提出的框架完全是零样本的,适用于任何LM,无需额外的参数更新和训练数据集。我们验证了我们的KAPING在KGQA任务上与依赖于其内部知识的LM提示模型之间存在巨大的性能差距,尤其是在使用较小的LM时。从KG中增加事实到LM提示的新机制将在生成基于知识的答案方面产生实质性的影响。

局限性 在本节中,讨论了当前的局限性和未来研究的潜在途径。

首先,知识增强框架的生成性能在很大程度上取决于检索器的有效性。换句话说,如果检索器无法检索到与输入问题相关的事实,那么以无关事实为条件的提示LM很可能会生成错误答案(参见图3)。同样地,如果检索器没有设计用于检索问题实体的2跳邻居的事实,LLMs生成需要2跳知识的答案的可能性较小。请注意,对于Mintaka数据集,具有1跳事实的可回答问题的数量仅占总样本的40%。然而,当包括2跳三元组时,可回答问题的数量增加到62%,这表明了获取2跳检索的必要性,但这仍然具有挑战性(参见表2)。因此,未来的工作可以改进检索方案本身,以向LLM提供更准确的包括多跳的事实,或者可以开发机制来防止LLM被无关事实误导。

另一方面,对于提示的LLM生成性能,评估指标可以进一步改进。具体而言,对于KGQA任务,问题的答案是知识图谱中的实体。然而,没有额外训练的提示LLM(即零样本)往往会将答案生成为句子。例如,在表4中问题的标签实体(例如,Alex Chilton死于哪里?)的答案是“新奥尔良”,然而,LLM经常生成句子级的输出:“Alex Chilton于2010年3月17日在路易斯安那州新奥尔良死于心肌梗死”。目前通过测量生成的标记是否包含答案实体来评估模型性能;然而,开发将LLM的句子级输出与知识图谱中的单词级答案进行更有效比较的附加指标将是值得的。
请注意,还尝试了其他可用的指标(参见附录B.3),例如F1和完全匹配(EM)分数,然而,它们很大程度上惩罚较长的句子(例如,表4中正确示例的EM为0),因此可能不适合评估LM提示方案。

最后,由于专注于提高LM提示中的知识注入,当评估模型时,使用KGQA数据集中的标记实体,遵循现有的KGQA评估设置。然而,在实际应用中,问题中的实体大多数情况下是不提供的,因此首先需要使用现有的实体链接技术提取问题中的实体;因此,模型性能取决于实体链接的有效性。特别是,关于表5中具有实体链接结果的实体的结果,数据集中标记实体的可回答问题部分占总数的40%,然而,使用实体链接模型中的实体的可回答问题部分仅占22%。因此,由于改进的实体链接性能将有助于我们的KAPING框架的性能提升,对于KGQA任务,未来的工作可以推进这样的实体链接方案。

相关文章:

知识增强语言模型提示 零样本知识图谱问答10.8+10.11

知识增强语言模型提示 零样本知识图谱问答 摘要介绍相关工作方法零样本QA的LM提示知识增强的LM提示与知识问题相关的知识检索 实验设置数据集大型语言模型基线模型和KAPIN评估指标实现细节 实验结果和分析结论 摘要 大型语言模型(LLM)能够执行 零样本cl…...

Linux编译FFmpeg

Linux编译FFmpeg 1. 下载FFmpeg源码 FFmpeg源码下载地址:http://ffmpeg.org/download.html 在下面选择版本 2. 解压并创建生成目录 tar xvf ffmpeg-snapshot.tar.bz2 // 解压下载的FFmpeg源码 makedir /root/ffmpeg // 创建生成目录3. 编译FFmpeg 进入FF…...

Netty深入浅出Java网络编程学习笔记(二) Netty进阶应用篇

目录 四、应用 1、粘包与半包 现象分析 粘包 半包 本质 解决方案 短链接 定长解码器 行解码器 长度字段解码器——LTC 2、协议设计与解析 协议的作用 Redis协议 HTTP协议 自定义协议 组成要素 编码器与解码器 编写测试类 Sharable注解 自定义编解码器能否使用Sharable注解 3、在…...

机器学习基础之《回归与聚类算法(1)—线性回归》

一、线性回归的原理 1、线性回归应用场景 如何判定一个问题是回归问题的,目标值是连续型的数据的时候 房价预测 销售额度预测 贷款额度预测、利用线性回归以及系数分析因子 2、线性回归定义 线性回归(Linear regression)是利用回归方程(函数)对一个或多个自变量(…...

如何实现制造业信息化转型?

一、制造业信息化历史 (1)1930年代 库存控制、管理 当时计算机系统尚未出现,人们为了解决库存管控的难题,提出了订货点法——当库存量降低到某一预先设定的点时,即开始发出订货单补充库存,直至库存量降低…...

stable diffusion艰难炼丹之路

文章目录 概要autoDL系统盘爆满autoDL python3.8切换python3.10dreambooth训练大模型完成后报错 概要 主要是通过autoDL服务器部署stable diffusion,通过dreambooth训练大模型。 问题: autoDL系统盘爆满autoDL python3.8切换python3.10dreambooth训练大…...

竞赛 深度学习 opencv python 实现中国交通标志识别

文章目录 0 前言1 yolov5实现中国交通标志检测2.算法原理2.1 算法简介2.2网络架构2.3 关键代码 3 数据集处理3.1 VOC格式介绍3.2 将中国交通标志检测数据集CCTSDB数据转换成VOC数据格式3.3 手动标注数据集 4 模型训练5 实现效果5.1 视频效果 6 最后 0 前言 🔥 优质…...

用Python实现数据透视表、音频文件格式转换

用Python实现数据透视表、音频文件格式转换 1.用Python实现数据透视表 import pandas as pdif __name__ __main__:# df pd.read_excel(广告-资源位变现效率监测看板-1.xlsx, sheet_name各业务在该资源位的明细数据)df pd.read_excel(填充率分析-Q3.xlsx, sheet_name库存底…...

java枚举中写抽象方法

之前写java枚举时,都是中规中矩的写,从来没见过在枚举中写抽象方法的,但最近换了新公司,接手了新项目,发现枚举中竟然写了抽象方法,由于之前没接触过这种写法,所以这里记录下 实体类student代码…...

麒麟操作系统提示“默认密钥环已上锁”的解决办法

在国产麒麟操作系统上,有的时候不知道为啥,打开vscode或者其他应用软件时,总是提示“密钥环已上锁”,该怎么处理呢? 需要点击“开始”,在搜索框中输入“password” 点击打开“密码和密钥”,看到如下图。 然后点击左上角的箭头,回退,打开如下图:...

云原生周刊:Docker 推出 Docker Debug | 2023.10.9

开源项目推荐 SchemaHero SchemaHero 是一个 Kubernetes Operator,用于各种数据库的声明式架构管理。SchemaHero 有以下目标: 数据库表模式可以表示为可以部署到集群的 Kubernetes 资源。可以编辑数据库模式并将其部署到集群。SchemaHero 将计算所需的…...

设计模式 - 行为型模式考点篇:迭代器模式(概述 | 案例实现 | 优缺点 | 使用场景)

目录 一、行为型模式 一句话概括行为型模式 1.1、迭代器模式 1.1.1、概述 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、行为型模式 一句话概括行为型模式 行为型模式:类或对象间如何交互、如何划分职责,从而更好的完成任务. 1.1、迭代器…...

Spark任务优化分析

一、背景 首先需要掌握 Spark DAG、stage、task的相关概念 Spark的job、stage和task的机制论述 - 知乎 task数量和rdd 分区数相关 二、任务慢的原因分析 找到运行时间比较长的stage 再进去看里面的task 可以看到某个task 读取的数据量明显比其他task 较大。 如果是sql 任…...

最新数据库流行度最新排名(每月更新)

2023年10月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多,这个数据库就被认为越受欢迎。这是一个领先指标。原始数据来自谷歌Trends 如果您相信集体智慧,那么TOP DB索引可以帮…...

Python:如何在一个月内学会爬取大规模数据

Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工具,让爬虫变得…...

K8S云计算系列-(4)

K8s Dashboard UI 部署实操 Kubernetes实现的最重要的工作是对Docker容器集群统一的管理和调度,通常使用命令行来操作Kubernetes集群及各个节点,命令行操作非常不方便,如果使用UI界面来可视化操作,会更加方便的管理和维护。如下为…...

【Mybatis源码】IDEA中Mybatis源码环境搭建

一、Mybatis源码源 在github中找到Mybatis源码地址:https://github.com/mybatis/mybatis-3 找到Mybatis git地址 二、IDEA导入Mybatis源码 点击Clone下载Mybatis源码 三、选择Mybatis分支 选择Mybatis分支,这里我选择的是3.4.x分支...

VUE如何使得大屏自适应的几种方法?

VUE学习大屏自适应的几种方法 1.自适屏幕&#xff0c;始终保持16:9的比例 <!-- 大屏固定比例16&#xff1a;9自适应 --> <template><div class"container"><div class"content" :style"getAspectRatioStyle"><!-- …...

API接口安全运营研究(内附官方开发平台api接口接入方式)

摘 要 根据当前API技术发展的趋势&#xff0c;从实际应用中发生的安全事件出发&#xff0c;分析并讨论相关API安全运营问题。从风险角度阐述了API接口安全存在的问题&#xff0c;探讨了API检测技术在安全运营中起到的作用&#xff0c;同时针对API安全运营实践&#xff0c;提出…...

信钰证券:股票交易费用计算方法?

股票生意是股市参加者之间进行的买入和卖出股票的进程。其中&#xff0c;股票生意费用是参加股市生意的重要组成部分。本文将从多个视点分析股票生意费用计算方法。 首先&#xff0c;股票生意费用一般包含三部分。分别是佣钱、印花税和过户费。佣钱是证券公司为代理股票生意而收…...

通过js获取用户网络ip地址

<!DOCTYPE html> <html><head><meta charset"utf-8"><title>js获取本地ip</title> </head><body><script>var xmlhttp;if (window.XMLHttpRequest) {xmlhttp new XMLHttpRequest();} else {xmlhttp new Act…...

微信小程序wxml使用过滤器

微信小程序wxml使用过滤器 1. 新建wxs2. 引用和使用 如何在微信小程序wxml使用过滤器&#xff1f; 犹如Angular使用pipe管道这样子方便&#xff0c;用的最多就是时间格式化。 下面是实现时间格式化的方法和步骤&#xff1a; 1. 新建wxs 插入代码&#xff1a; /*** 管道过滤工…...

内网渗透面试问题

文章目录 1、熟悉哪些域渗透的手段2、详细说明哈希传递的攻击原理NTLM认证流程哈希传递 3、聊一下黄金票据和白银票据4、shiro反序列化漏洞的形成原因&#xff0c;尝试使用burp抓包查看返回包内容安装环境漏洞验证 5、log4j组件的命令执行漏洞是如何造成的6、画图描述Kerberos协…...

Go语言函数进阶:值传递、引用传递、函数式编程

文章目录 值传递和引用传递闭包柯里化defer go语言教程&#xff1a; 安装入门➡️ for循环➡️ 数组、切片和指针➡️ switch和map 值传递和引用传递 go语言中&#xff0c;函数通过关键字func定义&#xff0c;对于传入和返回的参数需要做类型的定义&#xff0c;其返回值可…...

数据结构 堆——详细动画图解,形象理解

作者主页 &#x1f4da;lovewold少个r博客主页 ​➡️栈和队列博客传送门 &#x1f333;参天大树充满生命力&#xff0c;其根深叶茂&#xff0c;分枝扶疏&#xff0c;为我们展示了数据分治的生动形态 目录 &#x1f333; 树 树的常见概念 &#x1f4d2;树的表示 二叉树 一…...

使用pymodbus进行modbus-TCP通信

模拟modbus-slave 创建slave 设置 完成 安装pymodbus pip3 install pymodbus2.5.3代码 from pymodbus.client.sync import ModbusTcpClient from pymodbus.bit_read_message import ReadCoilsResponse from pymodbus.register_read_message import ReadInputRegistersRe…...

2. redis常见数据类型

一、Redis 数据类型 Redis支持五种数据类型&#xff1a;string&#xff08;字符串&#xff09;&#xff0c;hash&#xff08;哈希&#xff09;&#xff0c;list&#xff08;列表&#xff09;&#xff0c;set&#xff08;集合&#xff09;及zset(sorted set&#xff1a;有序集合…...

多测师肖sir_高级金牌讲师_python之结构语句005

python中常见语句&#xff1a; 一、目录&#xff1a; 1、if语句 2、while 循环语句 3、for循环语句 4、continue 语句 5、break 语句 二、语句详解 1、if判断语句 &#xff08;1&#xff09;if单分支 格式&#xff1a;if 判断条件&#xff1a; 语句块1…… else&#xff1a; 语…...

用3-8译码器实现全减器

描述 请使用3-8译码器和必要的逻辑门实现全减器&#xff0c;全减器接口图如下&#xff0c;A是被减数&#xff0c;B是减数&#xff0c;Ci是来自低位的借位&#xff0c;D是差&#xff0c;Co是向高位的借位。 3-8译码器代码如下&#xff0c;可将参考代码添加并例化到本题答案中。 …...

招投标系统简介 企业电子招投标采购系统源码之电子招投标系统 —降低企业采购成本

功能描述 1、门户管理&#xff1a;所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含&#xff1a;招标公告、非招标公告、系统通知、政策法规。 2、立项管理&#xff1a;企业用户可对需要采购的项目进行立项申请&#xff0c;并提交审批&#xff0c;查看所…...