当前位置:   article > 正文

AI人工智能 ChatKBQA: 使用大模型的生成-检索框架进行知识库问答_chatkbqa是什么

chatkbqa是什么

知识库问答(KBQA)旨在从大规模知识库中推导出自然语言问题的答案,通常分为知识检索和语义解析两个研究组件。

○ 在大型语言模型(LLMs)时代,ChatKBQA是一个建立在细调开源LLMs(如Llama-2、ChatGLM2和Baichuan2)上的新型生成-检索KBQA框架。它首先通过细调LLMs生成逻辑形式,然后通过无监督检索方法检索和替换实体和关系,从而更加直观地改进了生成和检索。

○ 实验结果显示,ChatKBQA在标准的KBQA数据集WebQSP和ComplexWebQuestions(CWQ)上取得了最新的最优性能。这项工作还为将LLMs与知识图谱(KGs)结合起来进行可解释且需要知识的问答提供了新的范式。

1. ChatKBQA框架的总体概述是什么?它是如何使用开源LLMs进行高效微调的? 回答:ChatKBQA是一个基于开源LLMs进行生成-检索型知识库问答(KBQA)的框架。它首先通过指令微调,根据KBQA数据集中的(自然语言问题,逻辑形式)对,对开源LLMs进行高效微调。然后,使用微调后的LLMs将新的自然语言问题转换成相应的候选逻辑形式进行语义解析。随后,ChatKBQA在短语级别上检索这些逻辑形式中的实体和关系,并将其转换为可执行的SPARQL查询,并搜索可以针对KB执行的逻辑形式。 最后,利用转换后的SPARQL获取最终的答案集,并实现对自然语言问题的解释和基于知识的答案。 ChatKBQA使用指令微调的方法来构建微调训练数据。首先,ChatKBQA将KBQA数据集中测试集的自然语言问题对应的SPARQL转换为等价的逻辑形式,然后将这些逻辑形式中的实体ID(例如“m.06w2sn5”)替换为相应的实体标签(例如“[Justin Bieber]”),从而使LLMs能够更好地理解实体标签而不是无意义的实体ID。然后,将自然语言问题(例如“What is the name of justin bieber brother?”)和处理后的对应逻辑形式(例如“(AND (JOIN [people, person, gender] [Male]) (JOIN (R [people, sibling relationship, sibling]) (JOIN (R [people, person, sibling s]) [Justin Bieber]))”)作为“input”和“output”,并添加“instruction”作为“Generate a Logical Form query that retrieves the information corresponding to the given question.”构成开源LLMs的指令微调训练数据。为了减少微调LLMs所需的大量参数的成本,ChatKBQA利用参数高效微调(PEFT)方法,只微调少量模型参数,同时实现与完全微调相当的性能。其中,LoRA通过使用低秩近似在微调期间改变权重来减少大语言模型的存储占用。QLoRA进一步通过将梯度反向传播到冻结的4位量化模型中来减少存储,同时保持完整16位微调任务的性能。P-tuning v2通过在输入前的每一层中引入可微调参数的前缀微调方法。Freeze通过仅微调Transformer的最后几层的全连接层参数,并冻结所有其他参数来加快模型的收敛。ChatKBQA可以在上述所有高效微调方法以及LLMs之间进行切换,例如Llama-2-7B和ChatGLM2-6B。

2. 经过微调的LLMs对逻辑形式生成的能力如何?使用beam search进行生成的候选逻辑形式的质量如何? 回答:通过微调,LLMs在从自然语言问题到逻辑形式的语义解析能力方面有了一定的掌握。因此,我们使用微调后的LLMs对测试集中的新问题进行语义解析,并发现约63%的样本已经与真实的逻辑形式完全相同。当我们使用beam search时,LLMs输出的候选逻辑形式列表C包含约74%的样本具有真实的逻辑形式,这表明微调后的LLMs在语义解析任务中具有良好的学习和解析能力。进一步地,如果我们将生成的候选逻辑形式中的实体和关系替换为“[]”(例如“(AND (JOIN [] []) (JOIN (R []) (JOIN (R []) [])))”)的形式,这就是逻辑形式的骨架,地面实际逻辑形式的骨架,出现在候选骨架中的样本的百分比超过91%。这表明,我们只需要在逻辑形式中相应位置替换这些实体和关系,用KB中已有的实体和关系来进一步提高性能。

3. 基于生成-检索方法相比检索-生成方法的优劣势是什么? 回答:生成-检索方法和检索-生成方法是KBQA任务中两种不同的方法。生成-检索方法先使用LLMs生成候选逻辑形式,然后通过检索获取最终的SPARQL查询;而检索-生成方法先使用检索方法确定答案子图,然后使用生成方法生成逻辑形式。与检索-生成方法相比,生成-检索方法具有以下优势:

○ 更好的扩展性:生成-检索方法可以使用任何生成模型来生成候选逻辑形式,而不仅限于特定的生成模型。这使得生成-检索方法更具灵活性和扩展性。

○ 更好的解释性:生成-检索方法生成的候选逻辑形式可以更好地解释答案是如何由输入问题推导出来的。这提供了对答案生成过程的更好理解和解释的能力。

○ 更高的灵活性:生成-检索方法可以灵活地选择适用于不同场景的检索和生成模型,以实现最佳的性能和效率。 因此,与检索-生成方法相比,生成-检索方法在KBQA任务中具有更多的优势。

4. 为什么使用经过微调的开源LLMs而不是调用ChatGPT或训练传统的T5模型? 回答:生成-检索方法中使用经过微调的开源LLMs有以下优势:

○ 充分利用已有知识:经过微调的开源LLMs具有较强的语义解析能力,可以将自然语言问题转换成逻辑形式。这使得LLMs能够充分利用已有的知识,并生成相应的候选逻辑形式。

○ 避免Hallucinations:经过微调的开源LLMs可以一定程度上避免LLMs的幻觉问题。指令微调和对抗训练等微调方法可以使LLMs生成更准确、更合理的候选逻辑形式,从而避免不必要的误导和错误。

○ 充分利用开源模型的优点:开源的LLMs模型如Llama-2-7B和ChatGLM2-6B等在庞大预训练参数的基础上具有良好的语言表示能力,经过微调后可以在KBQA任务中取得出色的性能。 因此,使用经过微调的开源LLMs能够更好地支持生成-检索方法,并在KBQA任务中取得良好的性能。

5. 生成-检索方法能够提高检索效率吗? 回答:是的,生成-检索方法可以提高检索效率。首先,生成-检索方法使用LLMs生成候选逻辑形式,这可以帮助缩小搜索空间,从而减少了检索的计算量。其次,生成-检索方法可以利用高效的检索算法,例如BM25、SimCSE和Contriever等,来对候选逻辑形式进行语义检索。这些算法基于语义相似性进行排序和过滤,可以更快地找到与输入问题相关的候选逻辑形式,从而进一步提高检索效率。

6. ChatKBQA是可以插拔的吗? 回答:是的,ChatKBQA是可以插拔的。ChatKBQA框架可以灵活地切换不同的LLMs和检索方法,以适应不同的任务需求和性能要求。例如,可以选择不同的开源LLMs(如Llama-2-7B和ChatGLM2-6B)进行微调,使用不同的微调方法(如LoRA、QLoRA、P-tuning v2和Freeze),以及选择不同的检索方法(如BM25、SimCSE和Contriever)进行实体和关系的检索。通过这种插拔型设计,ChatKBQA能够根据需求选择最佳的模型和算法组合,以实现最佳的性能和效果。

论文链接:https://arxiv.org/abs/2310.08975.pdf

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/626133
推荐阅读
相关标签
  

闽ICP备14008679号